.layout-header, .layout-footer { flex: 0 0 auto; } .layout-body { display: flex; flex: 1 0 auto; flex-direction: column; padding: 2rem; } .layout-content { margin-top: 2rem; } .layout-sidebar { order: -1; background-color: $color-gray-light2; padding: 1rem; } footer { margin: auto auto 0 auto; position: sticky; bottom: 0; } @media (min-width: 720px) { .layout-body { flex-direction: row; } .layout-content { // Content area cannot exceed 1200px // but can shrink as required // (was flex: 1;). flex: 0 1 1000px; // flex: 1; padding: 0 2rem; margin: 0; } .layout-sidebar { flex: 0 0 20rem; // height: calc(100vh - 145px); overflow-x: hidden; overflow-y: auto; } } @media (min-width: 1200px) { .layout-sidebar { flex: 0 0 30rem; } .layout-content { padding: 0 2rem 0 3rem; } } @media (min-width: 1800px) { .layout-sidebar { flex: 0 0 35rem; } .layout-content { padding: 0 2rem 0 4rem; } } @media (max-width: 576px) { footer { position: relative; bottom: auto; } }