| /* Some sane resets. */ |
| html { |
| height: 100%; |
| } |
| |
| body { |
| margin: 0; |
| min-height: 100%; |
| } |
| |
| /* All the flexbox magic! */ |
| body, |
| .sb-announcement, |
| .sb-content, |
| .sb-main, |
| .sb-container, |
| .sb-container__inner, |
| .sb-article-container, |
| .sb-footer-content, |
| .sb-header, |
| .sb-header-secondary, |
| .sb-footer { |
| display: flex; |
| } |
| |
| /* These order things vertically */ |
| body, |
| .sb-main, |
| .sb-article-container { |
| flex-direction: column; |
| } |
| |
| /* Put elements in the center */ |
| .sb-header, |
| .sb-header-secondary, |
| .sb-container, |
| .sb-content, |
| .sb-footer, |
| .sb-footer-content { |
| justify-content: center; |
| } |
| /* Put elements at the ends */ |
| .sb-article-container { |
| justify-content: space-between; |
| } |
| |
| /* These elements grow. */ |
| .sb-main, |
| .sb-content, |
| .sb-container, |
| article { |
| flex-grow: 1; |
| } |
| |
| /* Because padding making this wider is not fun */ |
| article { |
| box-sizing: border-box; |
| } |
| |
| /* The announcements element should never be wider than the page. */ |
| .sb-announcement { |
| max-width: 100%; |
| } |
| |
| .sb-sidebar-primary, |
| .sb-sidebar-secondary { |
| flex-shrink: 0; |
| width: 17rem; |
| } |
| |
| .sb-announcement__inner { |
| justify-content: center; |
| |
| box-sizing: border-box; |
| height: 3rem; |
| |
| overflow-x: auto; |
| white-space: nowrap; |
| } |
| |
| /* Sidebars, with checkbox-based toggle */ |
| .sb-sidebar-primary, |
| .sb-sidebar-secondary { |
| position: fixed; |
| height: 100%; |
| top: 0; |
| } |
| |
| .sb-sidebar-primary { |
| left: -17rem; |
| transition: left 250ms ease-in-out; |
| } |
| .sb-sidebar-secondary { |
| right: -17rem; |
| transition: right 250ms ease-in-out; |
| } |
| |
| .sb-sidebar-toggle { |
| display: none; |
| } |
| .sb-sidebar-overlay { |
| position: fixed; |
| top: 0; |
| width: 0; |
| height: 0; |
| |
| transition: width 0ms ease 250ms, height 0ms ease 250ms, opacity 250ms ease; |
| |
| opacity: 0; |
| background-color: rgba(0, 0, 0, 0.54); |
| } |
| |
| #sb-sidebar-toggle--primary:checked |
| ~ .sb-sidebar-overlay[for="sb-sidebar-toggle--primary"], |
| #sb-sidebar-toggle--secondary:checked |
| ~ .sb-sidebar-overlay[for="sb-sidebar-toggle--secondary"] { |
| width: 100%; |
| height: 100%; |
| opacity: 1; |
| transition: width 0ms ease, height 0ms ease, opacity 250ms ease; |
| } |
| |
| #sb-sidebar-toggle--primary:checked ~ .sb-container .sb-sidebar-primary { |
| left: 0; |
| } |
| #sb-sidebar-toggle--secondary:checked ~ .sb-container .sb-sidebar-secondary { |
| right: 0; |
| } |
| |
| /* Full-width mode */ |
| .drop-secondary-sidebar-for-full-width-content |
| .hide-when-secondary-sidebar-shown { |
| display: none !important; |
| } |
| .drop-secondary-sidebar-for-full-width-content .sb-sidebar-secondary { |
| display: none !important; |
| } |
| |
| /* Mobile views */ |
| .sb-page-width { |
| width: 100%; |
| } |
| |
| .sb-article-container, |
| .sb-footer-content__inner, |
| .drop-secondary-sidebar-for-full-width-content .sb-article, |
| .drop-secondary-sidebar-for-full-width-content .match-content-width { |
| width: 100vw; |
| } |
| |
| .sb-article, |
| .match-content-width { |
| padding: 0 1rem; |
| box-sizing: border-box; |
| } |
| |
| @media (min-width: 32rem) { |
| .sb-article, |
| .match-content-width { |
| padding: 0 2rem; |
| } |
| } |
| |
| /* Tablet views */ |
| @media (min-width: 42rem) { |
| .sb-article-container { |
| width: auto; |
| } |
| .sb-footer-content__inner, |
| .drop-secondary-sidebar-for-full-width-content .sb-article, |
| .drop-secondary-sidebar-for-full-width-content .match-content-width { |
| width: 42rem; |
| } |
| .sb-article, |
| .match-content-width { |
| width: 42rem; |
| } |
| } |
| @media (min-width: 46rem) { |
| .sb-footer-content__inner, |
| .drop-secondary-sidebar-for-full-width-content .sb-article, |
| .drop-secondary-sidebar-for-full-width-content .match-content-width { |
| width: 46rem; |
| } |
| .sb-article, |
| .match-content-width { |
| width: 46rem; |
| } |
| } |
| @media (min-width: 50rem) { |
| .sb-footer-content__inner, |
| .drop-secondary-sidebar-for-full-width-content .sb-article, |
| .drop-secondary-sidebar-for-full-width-content .match-content-width { |
| width: 50rem; |
| } |
| .sb-article, |
| .match-content-width { |
| width: 50rem; |
| } |
| } |
| |
| /* Tablet views */ |
| @media (min-width: 59rem) { |
| .sb-sidebar-secondary { |
| position: static; |
| } |
| .hide-when-secondary-sidebar-shown { |
| display: none !important; |
| } |
| .sb-footer-content__inner, |
| .drop-secondary-sidebar-for-full-width-content .sb-article, |
| .drop-secondary-sidebar-for-full-width-content .match-content-width { |
| width: 59rem; |
| } |
| .sb-article, |
| .match-content-width { |
| width: 42rem; |
| } |
| } |
| @media (min-width: 63rem) { |
| .sb-footer-content__inner, |
| .drop-secondary-sidebar-for-full-width-content .sb-article, |
| .drop-secondary-sidebar-for-full-width-content .match-content-width { |
| width: 63rem; |
| } |
| .sb-article, |
| .match-content-width { |
| width: 46rem; |
| } |
| } |
| @media (min-width: 67rem) { |
| .sb-footer-content__inner, |
| .drop-secondary-sidebar-for-full-width-content .sb-article, |
| .drop-secondary-sidebar-for-full-width-content .match-content-width { |
| width: 67rem; |
| } |
| .sb-article, |
| .match-content-width { |
| width: 50rem; |
| } |
| } |
| |
| /* Desktop views */ |
| @media (min-width: 76rem) { |
| .sb-sidebar-primary { |
| position: static; |
| } |
| .hide-when-primary-sidebar-shown { |
| display: none !important; |
| } |
| .sb-footer-content__inner, |
| .drop-secondary-sidebar-for-full-width-content .sb-article, |
| .drop-secondary-sidebar-for-full-width-content .match-content-width { |
| width: 59rem; |
| } |
| .sb-article, |
| .match-content-width { |
| width: 42rem; |
| } |
| } |
| |
| /* Full desktop views */ |
| @media (min-width: 80rem) { |
| .sb-article, |
| .match-content-width { |
| width: 46rem; |
| } |
| .sb-footer-content__inner, |
| .drop-secondary-sidebar-for-full-width-content .sb-article, |
| .drop-secondary-sidebar-for-full-width-content .match-content-width { |
| width: 63rem; |
| } |
| } |
| |
| @media (min-width: 84rem) { |
| .sb-article, |
| .match-content-width { |
| width: 50rem; |
| } |
| .sb-footer-content__inner, |
| .drop-secondary-sidebar-for-full-width-content .sb-article, |
| .drop-secondary-sidebar-for-full-width-content .match-content-width { |
| width: 67rem; |
| } |
| } |
| |
| @media (min-width: 88rem) { |
| .sb-footer-content__inner, |
| .drop-secondary-sidebar-for-full-width-content .sb-article, |
| .drop-secondary-sidebar-for-full-width-content .match-content-width { |
| width: 67rem; |
| } |
| .sb-page-width { |
| width: 88rem; |
| } |
| } |