mediawiki-skins-Vector/resources/skins.vector.styles/components/TableOfContents.less
Jon Robson cd44419c95 Use codex link styles in Vector, remove old link color variables
Visual changes: blue and red link colors have been updated to match codex, including hover/focus/active state colors

Bug: T366515
Change-Id: I16411a7ea47ae26c7e67a71f83e0521962c8ce61
2024-06-17 14:23:50 -05:00

127 lines
3.2 KiB
Plaintext

.vector-toc {
.vector-pinnable-header {
margin-left: @toc-list-item-padding-start;
}
.vector-pinnable-header-label {
font-size: @font-size-reset; // Update font-size because the label is an <h2>
}
.vector-toc-numb {
display: none;
}
.vector-toc-toggle {
// For no-js users, toggling is disabled and icon is hidden
display: none;
transition: @transition-duration-base;
position: absolute;
left: -@size-toc-subsection-toggle/2;
// Visual centering.
top: 1px;
// Override .cdx-button styles
min-width: @size-toc-subsection-toggle; // ~22px @ 12
min-height: @size-toc-subsection-toggle;
padding: 0;
font-size: @size-toc-subsection-toggle-icon;
}
.vector-toc-link {
display: block;
word-break: break-word;
}
// Highlight and bold active sections, active top sections that are unexpanded
// and active top sections that are the only active element.
.vector-toc-list-item-active,
.vector-toc-level-1-active:not( .vector-toc-list-item-expanded ),
.vector-toc-list-item-active.vector-toc-level-1-active {
> .vector-toc-link {
// Highlight active section
.mixin-vector-selected-link();
font-weight: bold;
.vector-toc-text {
// Increase width to prevent line wrapping due to bold text
// Avoid applying on link element to avoid focus indicator changing size
width: ~'calc( 100% + @{padding-horizontal-dropdown-menu} )';
}
}
}
// Highlight active top sections that contain an active section
.vector-toc-level-1-active:not( .vector-toc-list-item-active ) > .vector-toc-link {
.mixin-vector-selected-link();
}
.vector-toc-text {
// Match .mixin-vector-dropdown-menu-item() vertical padding
padding: @padding-vertical-dropdown-menu-item 0;
}
.vector-toc-contents,
.vector-toc-list {
margin: 0;
list-style: none;
}
.vector-toc-list-item {
position: relative;
list-style-type: none;
padding-left: @toc-list-item-padding-start;
margin: 0;
}
}
// Collapse ToC sections by default, excluding no-js
.client-js .vector-toc {
.vector-toc-level-1 .vector-toc-list-item {
display: none;
}
.vector-toc-level-1.vector-toc-list-item-expanded .vector-toc-list-item {
display: block;
}
.vector-toc-toggle {
display: block;
}
.vector-toc-level-1.vector-toc-list-item-expanded .vector-toc-toggle {
transform: rotate( 0deg );
}
}
.client-js body.ltr .vector-toc .vector-toc-toggle {
transform: rotate( -90deg );
}
.client-js body.rtl .vector-toc .vector-toc-toggle {
transform: rotate( 90deg );
}
// Ensure there is only 1 table of contents landmark at anytime
.vector-toc-landmark {
display: none;
}
.vector-feature-toc-pinned-clientpref-0 body:not( .vector-sticky-header-visible ) .vector-page-titlebar,
.vector-feature-toc-pinned-clientpref-0 .vector-sticky-header-visible .vector-sticky-header-context-bar,
.vector-feature-toc-pinned-clientpref-1 .vector-column-start {
.vector-toc-landmark {
display: block;
}
}
// On smaller viewports the TOC will always be moved to the page titlebar via JS
// regardless of the TOC pinned classes
@media ( max-width: @max-width-breakpoint-tablet ) {
.client-js .vector-page-titlebar .vector-toc-landmark {
display: block;
}
.client-js .mw-table-of-contents-container.vector-toc-landmark {
display: none;
}
}