mirror of
https://github.com/tenrok/bootstrap.git
synced 2026-05-27 14:46:01 +03:00
015d729445
Heavily WIP still, but this begins the process of implementing dark mode for our docs and across the project itself. - Color modes are toggled in the docs navbar with a custom toggler, which stores the select color mode in local storage. - Color modes can also be set via data attribute thanks to `data-theme` (with light or dark options available currently). - Docs are heavily WIP for demonstrating the dark mode. - In order to best implement color modes, I've spiked out a number of new Sass and CSS variables (e.g., `--bs-secondary-bg` and `--bs-tertiary-bg`). In addition, I've added new global CSS variables like `--bs-border-color` and more. So, in addition to general color modes and theming support, we get greater real-time customization, too. Todos and open questions: - [ ] Do we refer to these as themes or color modes? - [ ] Do we provide a color mode toggler JS plugin? - [ ] Update all components to better utilize global CSS variables so they can be more easily themed (e.g., see `$dropdown-*` Sass variable changes in the diff).
88 lines
1.5 KiB
SCSS
88 lines
1.5 KiB
SCSS
// stylelint-disable selector-max-type
|
|
|
|
.bd-toc {
|
|
@include media-breakpoint-up(lg) {
|
|
position: sticky;
|
|
top: 5rem;
|
|
right: 0;
|
|
z-index: 2;
|
|
height: subtract(100vh, 7rem);
|
|
overflow-y: auto;
|
|
}
|
|
|
|
nav {
|
|
@include font-size(.875rem);
|
|
|
|
ul {
|
|
padding-left: 0;
|
|
margin-bottom: 0;
|
|
list-style: none;
|
|
|
|
ul {
|
|
padding-left: 1rem;
|
|
margin-top: .25rem;
|
|
}
|
|
}
|
|
|
|
li {
|
|
margin-bottom: .25rem;
|
|
}
|
|
|
|
a {
|
|
color: inherit;
|
|
|
|
&:not(:hover) {
|
|
text-decoration: none;
|
|
}
|
|
|
|
code {
|
|
font: inherit;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
.bd-toc-toggle {
|
|
display: flex;
|
|
align-items: center;
|
|
|
|
@include media-breakpoint-down(sm) {
|
|
justify-content: space-between;
|
|
width: 100%;
|
|
}
|
|
|
|
@include media-breakpoint-down(md) {
|
|
border: 1px solid var(--bs-border-color);
|
|
@include border-radius(.4rem);
|
|
|
|
&:hover,
|
|
&:focus,
|
|
&:active,
|
|
&[aria-expanded="true"] {
|
|
color: var(--bd-violet);
|
|
background-color: $white;
|
|
border-color: var(--bd-violet);
|
|
}
|
|
|
|
&:focus,
|
|
&[aria-expanded="true"] {
|
|
box-shadow: 0 0 0 3px rgba(var(--bd-violet-rgb), .25);
|
|
}
|
|
}
|
|
}
|
|
|
|
.bd-toc-collapse {
|
|
@include media-breakpoint-down(md) {
|
|
nav {
|
|
padding: 1.25rem;
|
|
background-color: var(--bs-gray-100);
|
|
border: 1px solid $border-color;
|
|
@include border-radius(.25rem);
|
|
}
|
|
}
|
|
|
|
@include media-breakpoint-up(md) {
|
|
display: block !important; // stylelint-disable-line declaration-no-important
|
|
}
|
|
}
|