--- version: 23 --- @import 'variables'; @import 'utilities'; $base-nav-link-padding: 0.75rem; $sm-nav-link-padding: 0.25rem; $nav-link-font-size: 0.875rem; @mixin nav-link-toc-level($i) { padding-left: $base-nav-link-padding * ($i + 0.75); padding-top: 0; line-height: 1rem; } @mixin toc-nav-link { font-size: $nav-link-font-size; color: $toc-link-color; border-radius: 0; border-left: 3px solid $gds-indigo-100; border-bottom: 0; &:hover { color: $link-color-nav-hover; text-decoration: underline; background-color: transparent; box-shadow: none; border-bottom: 0; } &.active { color: $link-color-nav; background-color: transparent; border-color: $gds-indigo-800; /* stylelint-disable-next-line selector-list-comma-newline-after */ &:hover, &:only-child { color: $link-color-nav-hover; background-color: transparent; } } } // ToC styles .table-of-contents { padding: 0.5rem 1rem 0; li { list-style: none; } .nav-link { @include toc-nav-link; } } // ToC before JavaScript loads #markdown-toc { position: absolute; top: 0; right: 0; padding-top: calc(4.75rem + 1.375rem * 1.125); padding-left: 3rem; margin: 0; transform: translateX(100%); overflow-x: hidden; overflow-y: scroll; width: calc(25vw - 1rem); // max scrollbar size code { all: revert; font: inherit; } a { @include toc-nav-link; display: block; padding: 0 1rem 0.5rem; line-height: 1rem; } ul, li { list-style: none; margin: 0; padding: 0; line-height: 1; } } .markdown-toc { top: 0; @media(min-width: $bp-xl) { padding-left: 1rem; margin-bottom: 1.5rem; overflow-y: scroll; height: 100vh; } @media(max-width: $bp-xl) { margin-top: 7rem; } } .nav-pills { flex-wrap: nowrap; } // NOTE: This only allows for 10 levels. // This should be acceptable since levels are determined by the `` which is less // than 10 anyways... @for $i from 0 to 10 { .nav-link.toc-level-#{$i} { @include nav-link-toc-level($i); } #markdown-toc #{repeat-str('ul', $i)} a { @include nav-link-toc-level($i); } } @media(max-width: $bp-xl) { .doc-nav { margin-left: -20px; margin-top: -55px; position: relative; z-index: 1; } .table-of-contents { padding: 0 1rem; font-size: 0.875rem; .nav-link { border-left: 0; padding: $sm-nav-link-padding; } h4 { font-size: $nav-link-font-size; } } .sm-collapsing { height: 0; overflow: hidden; transition: height 0.2s ease; } .sm-collapsed { display: none; } .toc-lg { display: none; } .toc-sm { display: block; } } // wide enough to show toc but not quick nav @media(min-width: $bp-xl) { .header { top: 0; left: 0; } .doc-nav { &.toc-no-breadcrumbs { padding-top: 6px; } } .toc-lg { display: block; } .toc-sm { display: none; } }