media/css/protocol/components/legal-toc.scss (75 lines of code) (raw):

// This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this // file, You can obtain one at https://mozilla.org/MPL/2.0/. @use '~@mozilla-protocol/core/protocol/css/includes/lib' as *; @use '../../m24/vars/color' as m24-tokens; @media #{$mq-md} { .toc-is-sticky { position: sticky; top: 1.8rem; // heading has breathing room but is neatly hidden by sticky global nav } } .c-toc { margin-bottom: $layout-lg; h3 { margin-bottom: $layout-xs; } ul { border-top: 1px solid $color-light-gray-30; @media #{$mq-md} { border-top: none; } } li a { @include bidi(( (background-position, center right, center left), (padding, $spacing-md $layout-sm $spacing-md 0, $spacing-md 0 $spacing-md $layout-sm), )); background-image: url('/media/img/icons/m24-small/curve-arrow3.svg'); background-repeat: no-repeat; background-size: $layout-xs auto; border-bottom: 1px solid $color-light-gray-30; display: block; font-weight: 600; position: relative; text-decoration: none; text-wrap: balance; &:hover, &:focus-visible { text-decoration: underline; } &::before { @include bidi(( (left, -10px, right, auto), )); bottom: $spacing-sm; content: ''; display: block; position: absolute; top: $spacing-sm; transition: background-color 300ms ease-in; width: 2px; } @media #{$mq-md} { @include bidi(( (padding, $spacing-sm 0, $spacing-sm 0), )); background: none; border: none; } } li.active a { &::before { background-color: m24-tokens.$token-color-green; } } li.active + li.active a { &::before { background-color: transparent; } } } .c-extra { display: none; margin-top: $layout-sm; @media #{$mq-md} { display: block; } }