// // Grid layout // // Makes a column span entire page .mixin-column-full-width() { grid-column: sidebar / content; margin-left: auto; margin-right: auto; // Needed for minimal content e.g. one word articles. width: 100%; box-sizing: border-box; } // aligns left side of column with hamburger icon. .mixin-column-align-width-hamburger-icon() { // Align the content with the hamburger icon padding: 0 0 0 @margin-horizontal-sidebar-button-icon; } .vector-layout-grid { @media ( max-width: @max-width-mobile ) { .mw-header { // Should match grid-template-rows definition below. height: 66px; // Should match row-gap below. margin-bottom: 24px; } } @media ( min-width: @min-width-tablet ) { .mw-page-container-inner { display: grid; width: 100%; grid-template: ~'66px auto 1fr / 232px 20px minmax(0, 1fr)'; grid-template-areas: 'header header header' 'sidebar gutter content' 'footer footer footer'; row-gap: 24px; } .mw-body { padding-left: 0; } .mw-header { grid-area: header; } .vector-sidebar-container { grid-area: sidebar; } .mw-content-container { grid-area: content; } .mw-footer-container { grid-area: footer; } } @media ( min-width: @min-width-desktop ) { .mw-page-container-inner { grid-template-columns: ~'284px 20px 1fr'; } } /** * Special handling for sidebar when table of contents is visible. * This only applies between the tablet and desktop breakpoints. * It shouldn't apply on mobile as it will lead to misalignment with the hamburger icon. * Cover the cases where: * 1) the main menu is closed, there is no TOC in the sidebar * 2) the main menu is closed, the sidebar TOC is hidden at the breakpoint. * In these situation content should span the entire page. */ @media ( min-width: ( @min-width-tablet ) ) and ( max-width: @max-width-tablet ) { @{selector-sidebar-container-sidebar-closed} { .mw-navigation { display: none; } & + .mw-content-container { .mixin-column-full-width(); .mixin-column-align-width-hamburger-icon(); } } } @{selector-sidebar-no-toc-sidebar-closed} { & + .mw-content-container { .mixin-column-full-width(); @media ( min-width: ( @min-width-tablet ) ) and ( max-width: @max-width-tablet ) { .mixin-column-align-width-hamburger-icon(); } } } }