2
0
mirror of https://github.com/tenrok/bootstrap.git synced 2026-06-05 16:42:29 +03:00
Files
bootstrap/site/assets/scss/_masthead.scss
T
Mark Otto 015d729445 Add dark mode support
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).
2022-04-18 18:45:51 -07:00

86 lines
2.0 KiB
SCSS

.bd-masthead {
--bd-pink-rgb: #{to-rgb($pink)};
padding: 3rem 0;
// stylelint-disable
background-image: linear-gradient(180deg, rgba(var(--bs-body-bg-rgb), .01), rgba(var(--bs-body-bg-rgb), 1) 85%),
radial-gradient(ellipse at top left, rgba(var(--bs-primary-rgb), .5), transparent 50%),
radial-gradient(ellipse at top right, rgba(var(--bd-accent-rgb), .5), transparent 50%),
radial-gradient(ellipse at center right, rgba(var(--bd-violet-rgb), .5), transparent 50%),
radial-gradient(ellipse at center left, rgba(var(--bd-pink-rgb), .5), transparent 50%);
// stylelint-enable
h1 {
@include font-size(4rem);
}
.lead {
@include font-size(1rem);
font-weight: 400;
color: var(--bs-secondary-color);
}
.highlight {
padding: .5rem 4rem .5rem 1rem;
margin-bottom: 0;
line-height: 1.25;
background-color: rgba(var(--bs-body-color-rgb), .075);
@include border-radius(.5rem);
}
.btn-clipboard {
margin-top: .4rem;
background-color: transparent;
}
#carbonads { // stylelint-disable-line selector-max-id
margin-inline: auto;
}
@include media-breakpoint-up(md) {
.lead {
@include font-size(1.5rem);
}
}
}
.bd-masthead-followup {
.lead {
@include font-size(1rem);
}
.highlight {
@include border-radius(.5rem);
}
@include media-breakpoint-up(md) {
.lead {
@include font-size(1.25rem);
}
}
}
.bd-btn-lg {
padding: .8rem 2rem;
}
.masthead-followup-icon {
padding: 1rem;
color: rgba(var(--bg-rgb), 1);
background-color: rgba(var(--bg-rgb), .1);
background-blend-mode: multiple;
@include border-radius(1rem);
mix-blend-mode: darken;
svg {
filter: drop-shadow(0 1px 1px #fff);
}
}
.masthead-followup-svg {
filter: drop-shadow(0 1px 0 rgba(0, 0, 0, .125));
}
.masthead-notice {
background-color: var(--bd-accent);
box-shadow: inset 0 -1px 1px rgba(var(--bs-body-color-rgb), .15), 0 .25rem 1.5rem rgba(var(--bs-body-bg-rgb), .75);
}