@intility/bifrost-css
Version:
1,763 lines (1,604 loc) • 165 kB
CSS
@charset "UTF-8";
/* global bifrost css, included in both @intility/bifrost-react and @intility/bifrost-css packages */
:root {
--bf-underline-offset: 0.214em;
--font-satoshi: "Satoshi";
--font-open-sans: "Open Sans";
}
html {
/* prevent nav top bar from obscuring top section of an element scrolled to when using a url hash */
scroll-padding-top: calc(var(--bf-nav-top-height) + var(--bfs24));
/* first value: thumb color, second value: track color */
scrollbar-color: var(--bfc-base-dimmed) var(--bfc-base-3);
}
body {
line-height: 1.5;
margin: 0;
scrollbar-color: var(--bfc-base-dimmed) transparent;
/* Eirik's mac hack */
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
/* Prevent font scaling for mobile devices in landscape orientation.
prefix needed for Safari on iOS and Firefox on Android */
/* stylelint-disable-next-line property-no-vendor-prefix */
-webkit-text-size-adjust: none;
}
/* separate selector to confuse css minifiers that erroneously remove the
required webkit prefix above for Safari on iOS and Firefox on Android */
/* stylelint-disable-next-line no-duplicate-selectors */
body {
text-size-adjust: none;
}
body,
.bf-options {
display: flow-root;
color: var(--bfc-base-c);
background-color: var(--bfc-base);
/* todo: remove `vh` fallback when browser support for `dvh` is better */
min-height: 100vh;
/* stylelint-disable-next-line declaration-block-no-duplicate-properties */
min-height: 100dvh;
}
/* normalize native html inputs */
button,
input,
optgroup,
select,
textarea {
/* prevent inputs and buttons from inheriting font-feature-settings
while still defaulting to arial on windows */
font-family: inherit;
font-weight: inherit;
font-size: 100%;
line-height: inherit;
margin: 0;
}
/* disable all transitions, used for temporarily disabling color transitions
while changing theme */
.bf-no-transitions,
.bf-no-transitions * {
transition: none !important;
}
/* padding for devices with a 'notch' a.k.a. 'busslomme' */
.bf-nav ~ main,
.bf-nav-main,
.bf-main,
.bf-notch {
padding-right: env(safe-area-inset-right);
padding-left: env(safe-area-inset-left);
}
/* a negative margin enables content inside main to stretch full width */
.bf-negative-notch {
margin-right: calc(0px - env(safe-area-inset-right));
margin-left: calc(0px - env(safe-area-inset-left));
}
/* Scrollbar */
.bf-scrollbar-small,
.bf-dropdown-content {
scrollbar-width: thin;
}
@media (prefers-reduced-motion: no-preference) {
html,
.bf-scrollbar,
.bf-scrollbar-small {
scroll-behavior: smooth;
}
}
@media (min-width: 600px) and (min-height: 600px) {
/* ::-webkit-scrollbar-* css is overridden by `scrollbar-color` in all browsers except Safari.
todo: remove when Safari adds support for scrollbar-color https://bugs.webkit.org/show_bug.cgi?id=231590 */
:is(.bf-scrollbar,
.bf-scrollbar-small,
.bf-dropdown-content)::-webkit-scrollbar {
height: 18px;
width: 18px;
background-color: transparent;
}
:is(.bf-scrollbar,
.bf-scrollbar-small,
.bf-dropdown-content)::-webkit-scrollbar-corner {
background-color: transparent;
}
:is(.bf-scrollbar,
.bf-scrollbar-small,
.bf-dropdown-content)::-webkit-scrollbar-thumb {
height: 30px;
width: 30px;
border: 4px solid transparent;
background-color: var(--bfc-base-dimmed);
background-clip: padding-box;
border-radius: var(--bf-radius-full);
}
:is(html, body).bf-scrollbar:is(::-webkit-scrollbar,
::-webkit-scrollbar-corner) {
background-color: var(--bfc-base-3);
}
/* small chrome scrollbar */
.bf-scrollbar-small::-webkit-scrollbar,
.bf-dropdown-content::-webkit-scrollbar {
width: 14px;
height: 14px;
}
:where(.bf-textarea, .bf-scrollbar, .bf-scrollbar-small)::-webkit-resizer {
background-color: transparent;
background-image: url("data:image/svg+xml;utf8,%3Csvg%20id%3D%22Layer_1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2014%2014%22%3E%3Cline%20x1%3D%2211%22%20y1%3D%228%22%20x2%3D%228%22%20y2%3D%2211%22%20style%3D%22fill%3Anone%3B%20stroke%3Agray%3B%20stroke-linecap%3Around%3B%22%2F%3E%3Cline%20x1%3D%2211%22%20y1%3D%224.4%22%20x2%3D%224.4%22%20y2%3D%2211%22%20style%3D%22fill%3Anone%3B%20stroke%3Agray%3B%20stroke-linecap%3Around%3B%22%2F%3E%3Cpath%20d%3D%22M11%2C1L1%2C11%22%20style%3D%22fill%3Anone%3B%20stroke%3Agray%3B%20stroke-linecap%3Around%3B%22%2F%3E%3C%2Fsvg%3E");
background-repeat: no-repeat;
background-position: center;
}
}
.bf-break-word {
overflow-wrap: break-word;
hyphens: auto;
/* Firefox re-renders fonts when not specifying this??? */
hyphenate-character: "-";
}
.bf-content,
.bf-elements {
font-size: var(--bf-font-size-m);
}
:where(.bf-content, .bf-elements) p,
.bf-p {
font-size: var(--bf-font-size-m);
margin: 0;
}
:where(.bf-content) p {
margin: var(--bfs16) 0;
}
:where(.bf-elements) pre,
.bf-pre {
margin: 0;
}
/* link, title-link, and neutral-link styles */
.bf-link:is(:hover, :active),
:where(.bf-content, .bf-elements) a:is(:hover, :active) {
text-decoration-thickness: 0.142em;
text-decoration-style: solid;
}
:where(.bf-content, .bf-elements) a,
.bf-link {
cursor: pointer;
color: var(--bfc-base-c-theme);
text-decoration-line: underline;
text-decoration-style: solid;
text-underline-offset: var(--bf-underline-offset);
text-decoration-thickness: 0.0714em;
}
.bf-title-link {
color: var(--bfc-base-c-theme);
text-decoration-line: none;
cursor: pointer;
}
.bf-title-link:is(:hover, :active) {
text-decoration-line: underline;
text-decoration-style: solid;
text-underline-offset: var(--bf-underline-offset);
}
.bf-neutral-link,
.bf-neutral-link:hover {
color: inherit;
text-decoration-line: none;
}
.bf-neutral-link:hover:where(:not(:disabled)) .bf-neutral-link-text {
text-decoration-line: underline;
text-decoration-style: solid;
text-underline-offset: var(--bf-underline-offset);
}
/* link styling for buttons */
:where(button):is(.bf-link, .bf-title-link, .bf-neutral-link) {
border: none;
background: none;
padding: 0;
font: inherit;
cursor: pointer;
outline: none;
text-align: inherit;
}
button:is(.bf-link):disabled {
text-decoration-line: underline;
}
button:is(.bf-link, .bf-title-link, .bf-neutral-link):disabled {
text-decoration-line: none;
cursor: default;
}
/* focus state */
:where(.bf-link, .bf-title-link):focus,
:where(.bf-content, .bf-elements) a:where(:focus) {
outline: none;
}
:where(.bf-link, .bf-title-link, .bf-neutral-link):focus-visible,
:where(.bf-content, .bf-elements) a:where(:focus-visible) {
outline: 2px dotted currentcolor;
outline-offset: 2px;
-moz-outline-radius: var(--bf-radius-xs);
border-radius: var(--bf-radius-xs);
}
/* open sans helper class and default for body */
body,
.bf-open-sans {
font-family: "Open Sans", "Segoe UI", sans-serif;
font-family: var(--font-open-sans, "Open Sans"), "Open Sans", "Segoe UI", sans-serif;
font-feature-settings: normal;
}
/* all things satoshi */
.bf-satoshi,
.bf-drawer-header,
.bf-modal-header,
.bf-nav-logo-name,
.bf-h1,
.bf-h2,
.bf-h3,
.bf-h4,
.bf-h5,
.bf-h6,
:where(.bf-content, .bf-elements) :is(h1, h2, h3, h4, h5, h6) {
/* on windows, sans-serif is the same as 'Arial'
which mis-renders badly with these font-feature-settings,
so we use Segoe UI as backup font instead */
font-family: Satoshi, "Segoe UI", sans-serif;
font-family: var(--font-satoshi, Satoshi), Satoshi, "Segoe UI", sans-serif;
font-feature-settings: "ss02", "ss03", "ss04", "liga" 0;
}
/* headings */
:where(.bf-content, .bf-elements) h1,
.bf-h1 {
font-size: var(--bf-font-size-h1);
font-weight: 660;
line-height: 1.26;
margin: 0;
}
:where(.bf-content) h1 {
margin-top: var(--bfs32);
margin-bottom: var(--bfs12);
}
:where(.bf-content, .bf-elements) h2,
.bf-h2 {
font-size: var(--bf-font-size-h2);
font-weight: 660;
line-height: 1.36;
margin: 0;
}
:where(.bf-content) h2 {
margin-top: var(--bfs32);
margin-bottom: var(--bfs8);
}
:where(.bf-content, .bf-elements) h3,
.bf-h3 {
font-size: var(--bf-font-size-h3);
font-weight: 700;
line-height: 1.39;
margin: 0;
}
:where(.bf-content) h3 {
margin-top: var(--bfs32);
margin-bottom: var(--bfs8);
}
:where(.bf-content, .bf-elements) h4,
.bf-h4 {
font-size: var(--bf-font-size-h4);
font-weight: 720;
line-height: 1.47;
margin: 0;
}
:where(.bf-content) h4 {
margin-top: var(--bfs24);
margin-bottom: var(--bfs8);
}
:where(.bf-content, .bf-elements) h5,
.bf-h5 {
font-size: var(--bf-font-size-h5);
font-weight: 740;
line-height: 1.36;
margin: 0;
}
:where(.bf-content) h5 {
margin-top: var(--bfs16);
margin-bottom: var(--bfs16);
}
:where(.bf-content, .bf-elements) small,
.bf-small {
font-size: var(--bf-font-size-s);
}
.bf-medium {
font-size: var(--bf-font-size-m);
}
:where(.bf-content, .bf-elements) big,
.bf-large {
font-size: var(--bf-font-size-l);
}
:where(.bf-content, .bf-elements) code,
.bf-code {
font-family: Consolas, monospace;
background-color: hsla(var(--bfc-base-c-inverted-hsl), 0.1);
padding: 0 0.2rem;
margin: 0 0.1rem;
border-radius: var(--bf-radius-xs);
}
:where(.bf-content, .bf-elements) pre code {
display: inline-block;
}
:where(.bf-content, .bf-elements) a code,
a .bf-code {
color: inherit;
text-decoration-line: inherit;
text-decoration-style: inherit;
}
.bf-em {
font-style: italic;
}
:where(.bf-content, .bf-elements) :is(b, strong),
.bf-strong {
font-weight: 600;
}
/* list styling */
:where(.bf-content, .bf-elements) :is(ul, ol),
.bf-ul,
.bf-ol {
padding-left: var(--bfs24);
margin: 0;
}
:where(.bf-content) :is(ul, ol) {
margin: var(--bfs16) 0;
}
:where(.bf-content, .bf-elements) :is(ul, ol) ::marker,
:is(.bf-ul, .bf-ol) ::marker {
color: var(--bfc-base-c-theme);
}
:where(.bf-content, .bf-elements) ol ::marker,
.bf-ol ::marker {
font-weight: 600;
}
:is(.bf-ul, .bf-ol) :where(li),
.bf-li,
.bf-toc :where(li) {
margin: 0;
}
/* 8px spacing between list items. try to keep specificity consistent
* (0,0,1 for .bf-elements and .bf-content, and 0,1,0 for other classes) */
:where(.bf-content, .bf-elements) li + :where(li),
:is(.bf-ul, .bf-ol) :where(li + li),
.bf-li + :where(.bf-li),
.bf-toc :where(li + li) {
margin-top: 8px;
}
/* nested lists */
:where(.bf-content, .bf-elements) li :is(ul, ol),
:is(.bf-ul, .bf-ol) :where(ul, ol) {
margin: 8px 0 0;
}
/* #region Table of contents */
/* first level */
.bf-toc {
padding: 0;
margin: 0;
}
.bf-toc li {
position: relative;
list-style: none;
}
/* second level */
.bf-toc :is(ul, ol) {
margin: 8px 0 0;
padding: 0;
}
.bf-toc :is(ul, ol) li {
padding-left: 1.5rem;
}
.bf-toc :is(ul, ol) li::before {
content: "¬"; /* '¬' supported by open sans */
position: absolute;
left: 6px;
color: var(--bfc-base-c-2);
rotate: 180deg;
scale: 1.3;
transform-origin: 50% 53%;
}
/* third level */
.bf-toc :is(ul, ol) :is(ul, ol) li::before {
content: "−"; /* '−' supported by open sans (slightly longer than a dash '-') */
rotate: unset;
}
/* #endregion */
/* todo: remove in 7.0 */
.bf-intility-logo > a {
height: var(--bfs56);
border-bottom: var(--bf-border);
display: block;
line-height: 1;
cursor: pointer;
}
/* todo: remove in 7.0 */
.bf-intility-logo > a:focus-visible {
outline: 1px dashed var(--bfc-theme);
outline-offset: -1px;
}
/* todo: remove in 7.0 */
.bf-intility-logo svg {
margin: 17px 19px 0;
height: var(--bfs24);
fill: var(--bfc-base-c);
}
/* #region highlight header with id matching hash from current url */
.bf-highlight-target :target:is(h1, h2, h3, h4, h5, h6) {
animation: bf-highlight-target-scale 0.6s 3, bf-highlight-target-color 12s 1;
transform-origin: 20% 50%;
}
@keyframes bf-highlight-target-scale {
50% {
scale: 0.99;
}
}
@keyframes bf-highlight-target-color {
0% {
color: var(--bfc-base-c-theme);
}
}
/* #endregion */
/* #region recharts accessibilityLayer focus outline */
.recharts-surface:focus,
.recharts-layer:focus {
outline: none;
}
.recharts-surface:focus-visible,
.recharts-layer:focus-visible {
border-radius: var(--bf-radius-xs);
outline: 2px dotted var(--bfc-base-c);
outline-offset: 2px;
position: relative;
z-index: 1;
}
/* #endregion */
/* #region loading stripes overlay */
.bf-loading-stripes {
position: relative;
overflow: hidden;
}
.bf-loading-stripes::after {
inset: 0;
content: "";
position: absolute;
background-image: linear-gradient(-45deg, black 25%, white 25%, white 50%, black 50%, black 75%, white 75%);
background-size: 50px 50px;
animation: loading-stripes 2s linear infinite;
width: calc(100% + 100px);
opacity: 0.1;
}
@keyframes loading-stripes {
0% {
transform: translate3d(0, 0, 0);
}
100% {
transform: translate3d(-50px, 0, 0);
}
}
/* #endregion */
/* #region teal theme (default) */
/* #endregion */
:root,
::backdrop {
--bfc-overlay: rgba(0, 0, 0, 0.7);
--bfc-overlay-c: white;
}
html,
.bf-darkmode,
[data-bf-color-mode=dark] {
color-scheme: only dark;
--bf-mode: dark;
--bfc-base-hsl: 212, 70%, 9%;
--bfc-base-2-hsl: 210, 64%, 11%;
--bfc-base-3-hsl: 210, 55%, 13%;
--bfc-base-c-hsl: 240, 14%, 96%;
--bfc-base-c-2: hsl(212, 15%, 60%);
--bfc-base-c-success: hsl(157, 100%, 48%);
--bfc-base-c-warning: var(--bfc-warning);
--bfc-base-c-alert: hsl(7, 100%, 60%);
--bfc-base-c-wcag: hsl(220, 10%, 43%);
--bfc-base-c-disabled: hsl(212, 18%, 35%);
--bfc-base-dimmed-hsl: 212, 29%, 20%;
--bfc-base-dimmed-2-hsl: 210, 39%, 17%;
--bfc-base-dimmed-3-hsl: 210, 29%, 22%;
--bfc-base-disabled-hsl: 212, 22%, 34%;
--bfc-base-c-inverted-hsl: 0, 0%, 100%;
--bfc-base-c-inverted-2: hsl(235, 16%, 85%);
--bfc-base-c-inverted-3: hsl(216, 7%, 86%);
--bfc-neutral-hsl: var(--gray-100-hsl);
--bfc-neutral-2-hsl: var(--gray-50-hsl);
--bfc-neutral-c-hsl: var(--gray-800-hsl);
--bfc-neutral-hc: var(--gray-920);
--bfc-neutral-fade-hsl: var(--gray-800-hsl);
--bfc-neutral-fade-c-hsl: var(--gray-100-hsl);
--bfc-brand-hsl: var(--teal-300-hsl);
--bfc-brand-c-hsl: var(--teal-800-hsl);
--bfc-brand-hc: var(--base-920);
--bfc-brand-fade-hsl: var(--teal-800-hsl);
--bfc-brand-fade-c-hsl: var(--teal-300-hsl);
--bfc-chill-hsl: var(--purple-300-hsl);
--bfc-chill-c-hsl: var(--purple-800-hsl);
--bfc-chill-hc: var(--base-920);
--bfc-chill-fade-hsl: var(--purple-800-hsl);
--bfc-chill-fade-c-hsl: var(--purple-300-hsl);
--bfc-attn-hsl: var(--pink-300-hsl);
--bfc-attn-c-hsl: var(--pink-800-hsl);
--bfc-attn-hc: var(--base-920);
--bfc-attn-fade-hsl: var(--pink-800-hsl);
--bfc-attn-fade-c-hsl: var(--pink-300-hsl);
--bfc-success-hsl: 157, 100%, 48%;
--bfc-success-c-hsl: 157, 100%, 10%;
--bfc-success-hc: var(--base-920);
--bfc-success-fade-hsl: 157, 100%, 23%;
--bfc-success-fade-c-hsl: 157, 100%, 80%;
--bfc-warning-fade-hsl: var(--yellow-800-hsl);
--bfc-warning-fade-c-hsl: var(--yellow-300-hsl);
--bfc-alert-fade-hsl: 346, 26%, 23%;
--bfc-alert-fade-2: hsl(7, 100%, 13%);
--bfc-alert-fade-c-hsl: 7, 100%, 70%;
--bfc-alert-fade-2-c-hsl: 7, 100%, 70%;
--bfc-shadow: rgba(0, 0, 0, 0.3);
--bfc-theme-hsl: var(--teal-300-hsl);
--bfc-theme-2: hsl(var(--teal-250-hsl));
--bfc-theme-3: hsl(var(--teal-200-hsl));
--bfc-theme-c-hsl: var(--teal-800-hsl);
--bfc-theme-c-2-hsl: var(--teal-890-hsl);
--bfc-theme-hc: var(--base-920);
--bfc-theme-fade-hsl: var(--teal-800-hsl);
--bfc-theme-fade-c-hsl: var(--teal-300-hsl);
}
.bf-lightmode,
[data-bf-color-mode=light] {
color-scheme: only light;
--bf-mode: light;
--bfc-base-hsl: 238, 15%, 96%;
--bfc-base-2-hsl: 238, 10%, 98%;
--bfc-base-3-hsl: 0, 0%, 100%;
--bfc-base-c-hsl: 212, 70%, 9%;
--bfc-base-c-2: hsl(238, 16%, 40%);
--bfc-base-c-success: hsl(157, 100%, 24%);
--bfc-base-c-warning: var(--yellow-570);
--bfc-base-c-alert: hsl(7, 77%, 41%);
--bfc-base-c-wcag: hsl(240, 5%, 57%);
--bfc-base-c-disabled: hsl(238, 18%, 65%);
--bfc-base-dimmed-hsl: 238, 16%, 85%;
--bfc-base-dimmed-2-hsl: 216, 7%, 86%;
--bfc-base-dimmed-3-hsl: 210, 7%, 77%;
--bfc-base-disabled-hsl: 238, 18%, 65%;
--bfc-base-c-inverted-hsl: 210, 55%, 13%;
--bfc-base-c-inverted-2: hsl(212, 29%, 26%);
--bfc-base-c-inverted-3: hsl(210, 39%, 17%);
--bfc-neutral-hsl: var(--gray-920-hsl);
--bfc-neutral-2-hsl: var(--gray-970-hsl);
--bfc-neutral-c-hsl: var(--gray-150-hsl);
--bfc-neutral-hc: white;
--bfc-neutral-fade-hsl: var(--gray-150-hsl);
--bfc-neutral-fade-c-hsl: var(--gray-920-hsl);
--bfc-brand-hsl: var(--teal-570-hsl);
--bfc-brand-c-hsl: var(--teal-120-hsl);
--bfc-brand-hc: white;
--bfc-brand-fade-hsl: var(--teal-120-hsl);
--bfc-brand-fade-c-hsl: var(--teal-570-hsl);
--bfc-chill-hsl: var(--purple-570-hsl);
--bfc-chill-c-hsl: var(--purple-120-hsl);
--bfc-chill-hc: white;
--bfc-chill-fade-hsl: var(--purple-120-hsl);
--bfc-chill-fade-c-hsl: var(--purple-570-hsl);
--bfc-attn-hsl: var(--pink-570-hsl);
--bfc-attn-c-hsl: var(--pink-120-hsl);
--bfc-attn-hc: white;
--bfc-attn-fade-hsl: var(--pink-120-hsl);
--bfc-attn-fade-c-hsl: var(--pink-570-hsl);
--bfc-success-hsl: 157, 100%, 48%;
--bfc-success-c-hsl: 157, 100%, 10%;
--bfc-success-hc: var(--base-920);
--bfc-success-fade-hsl: 144, 100%, 82%;
--bfc-success-fade-c-hsl: 144, 100%, 20%;
--bfc-warning-fade-hsl: var(--yellow-120-hsl);
--bfc-warning-fade-c-hsl: var(--yellow-570-hsl);
--bfc-alert-fade-hsl: 8, 100%, 94%;
--bfc-alert-fade-2: hsl(7, 100%, 95%);
--bfc-alert-fade-c-hsl: 7, 77%, 41%;
--bfc-alert-fade-2-c-hsl: 7, 100%, 40%;
--bfc-shadow: rgba(0, 0, 0, 0.1);
--bfc-theme-hsl: var(--teal-570-hsl);
--bfc-theme-2: hsl(var(--teal-620-hsl));
--bfc-theme-3: hsl(var(--teal-660-hsl));
--bfc-theme-c-hsl: var(--teal-120-hsl);
--bfc-theme-c-2-hsl: var(--teal-100-hsl);
--bfc-theme-hc: white;
--bfc-theme-fade-hsl: var(--teal-120-hsl);
--bfc-theme-fade-c-hsl: var(--teal-570-hsl);
}
@media (prefers-color-scheme: light) {
html {
color-scheme: only light;
--bf-mode: light;
--bfc-base-hsl: 238, 15%, 96%;
--bfc-base-2-hsl: 238, 10%, 98%;
--bfc-base-3-hsl: 0, 0%, 100%;
--bfc-base-c-hsl: 212, 70%, 9%;
--bfc-base-c-2: hsl(238, 16%, 40%);
--bfc-base-c-success: hsl(157, 100%, 24%);
--bfc-base-c-warning: var(--yellow-570);
--bfc-base-c-alert: hsl(7, 77%, 41%);
--bfc-base-c-wcag: hsl(240, 5%, 57%);
--bfc-base-c-disabled: hsl(238, 18%, 65%);
--bfc-base-dimmed-hsl: 238, 16%, 85%;
--bfc-base-dimmed-2-hsl: 216, 7%, 86%;
--bfc-base-dimmed-3-hsl: 210, 7%, 77%;
--bfc-base-disabled-hsl: 238, 18%, 65%;
--bfc-base-c-inverted-hsl: 210, 55%, 13%;
--bfc-base-c-inverted-2: hsl(212, 29%, 26%);
--bfc-base-c-inverted-3: hsl(210, 39%, 17%);
--bfc-neutral-hsl: var(--gray-920-hsl);
--bfc-neutral-2-hsl: var(--gray-970-hsl);
--bfc-neutral-c-hsl: var(--gray-150-hsl);
--bfc-neutral-hc: white;
--bfc-neutral-fade-hsl: var(--gray-150-hsl);
--bfc-neutral-fade-c-hsl: var(--gray-920-hsl);
--bfc-brand-hsl: var(--teal-570-hsl);
--bfc-brand-c-hsl: var(--teal-120-hsl);
--bfc-brand-hc: white;
--bfc-brand-fade-hsl: var(--teal-120-hsl);
--bfc-brand-fade-c-hsl: var(--teal-570-hsl);
--bfc-chill-hsl: var(--purple-570-hsl);
--bfc-chill-c-hsl: var(--purple-120-hsl);
--bfc-chill-hc: white;
--bfc-chill-fade-hsl: var(--purple-120-hsl);
--bfc-chill-fade-c-hsl: var(--purple-570-hsl);
--bfc-attn-hsl: var(--pink-570-hsl);
--bfc-attn-c-hsl: var(--pink-120-hsl);
--bfc-attn-hc: white;
--bfc-attn-fade-hsl: var(--pink-120-hsl);
--bfc-attn-fade-c-hsl: var(--pink-570-hsl);
--bfc-success-hsl: 157, 100%, 48%;
--bfc-success-c-hsl: 157, 100%, 10%;
--bfc-success-hc: var(--base-920);
--bfc-success-fade-hsl: 144, 100%, 82%;
--bfc-success-fade-c-hsl: 144, 100%, 20%;
--bfc-warning-fade-hsl: var(--yellow-120-hsl);
--bfc-warning-fade-c-hsl: var(--yellow-570-hsl);
--bfc-alert-fade-hsl: 8, 100%, 94%;
--bfc-alert-fade-2: hsl(7, 100%, 95%);
--bfc-alert-fade-c-hsl: 7, 77%, 41%;
--bfc-alert-fade-2-c-hsl: 7, 100%, 40%;
--bfc-shadow: rgba(0, 0, 0, 0.1);
--bfc-theme-hsl: var(--teal-570-hsl);
--bfc-theme-2: hsl(var(--teal-620-hsl));
--bfc-theme-3: hsl(var(--teal-660-hsl));
--bfc-theme-c-hsl: var(--teal-120-hsl);
--bfc-theme-c-2-hsl: var(--teal-100-hsl);
--bfc-theme-hc: white;
--bfc-theme-fade-hsl: var(--teal-120-hsl);
--bfc-theme-fade-c-hsl: var(--teal-570-hsl);
}
html:not(.bf-darkmode, [data-bf-color-mode=dark]) .bf-dark-only {
display: none !important;
}
}
@media (prefers-color-scheme: dark) {
html:not(.bf-lightmode, [data-bf-color-mode=light]) .bf-light-only {
display: none !important;
}
}
html:is(.bf-darkmode, [data-bf-color-mode=dark]) .bf-light-only,
html:is(.bf-lightmode, [data-bf-color-mode=light]) .bf-dark-only {
display: none !important;
}
.bf-theme-teal,
.bf-theme-teal.bf-darkmode,
.bf-darkmode .bf-theme-teal,
[data-bf-color-mode=dark] .bf-theme-teal,
.bf-lightmode .bf-darkmode .bf-theme-teal {
--bfc-theme-hsl: var(--teal-300-hsl);
--bfc-theme-2: hsl(var(--teal-250-hsl));
--bfc-theme-3: hsl(var(--teal-200-hsl));
--bfc-theme-c-hsl: var(--teal-800-hsl);
--bfc-theme-c-2-hsl: var(--teal-890-hsl);
--bfc-theme-hc: var(--base-920);
--bfc-theme-fade-hsl: var(--teal-800-hsl);
--bfc-theme-fade-c-hsl: var(--teal-300-hsl);
}
.bf-theme-teal.bf-lightmode,
.bf-lightmode .bf-theme-teal,
[data-bf-color-mode=light] .bf-theme-teal,
.bf-darkmode .bf-lightmode .bf-theme-teal {
--bfc-theme-hsl: var(--teal-570-hsl);
--bfc-theme-2: hsl(var(--teal-620-hsl));
--bfc-theme-3: hsl(var(--teal-660-hsl));
--bfc-theme-c-hsl: var(--teal-120-hsl);
--bfc-theme-c-2-hsl: var(--teal-100-hsl);
--bfc-theme-hc: white;
--bfc-theme-fade-hsl: var(--teal-120-hsl);
--bfc-theme-fade-c-hsl: var(--teal-570-hsl);
}
@media (prefers-color-scheme: light) {
.bf-theme-teal {
--bfc-theme-hsl: var(--teal-570-hsl);
--bfc-theme-2: hsl(var(--teal-620-hsl));
--bfc-theme-3: hsl(var(--teal-660-hsl));
--bfc-theme-c-hsl: var(--teal-120-hsl);
--bfc-theme-c-2-hsl: var(--teal-100-hsl);
--bfc-theme-hc: white;
--bfc-theme-fade-hsl: var(--teal-120-hsl);
--bfc-theme-fade-c-hsl: var(--teal-570-hsl);
}
}
/* #region purple theme */
.bf-theme-purple,
.bf-theme-purple.bf-darkmode,
.bf-darkmode .bf-theme-purple,
[data-bf-color-mode=dark] .bf-theme-purple,
.bf-lightmode .bf-darkmode .bf-theme-purple {
--bfc-theme-hsl: var(--purple-300-hsl);
--bfc-theme-2: hsl(var(--purple-250-hsl));
--bfc-theme-3: hsl(var(--purple-200-hsl));
--bfc-theme-c-hsl: var(--purple-800-hsl);
--bfc-theme-c-2-hsl: var(--purple-890-hsl);
--bfc-theme-hc: var(--base-920);
--bfc-theme-fade-hsl: var(--purple-800-hsl);
--bfc-theme-fade-c-hsl: var(--purple-300-hsl);
}
.bf-theme-purple.bf-lightmode,
.bf-lightmode .bf-theme-purple,
[data-bf-color-mode=light] .bf-theme-purple,
.bf-darkmode .bf-lightmode .bf-theme-purple {
--bfc-theme-hsl: var(--purple-570-hsl);
--bfc-theme-2: hsl(var(--purple-620-hsl));
--bfc-theme-3: hsl(var(--purple-660-hsl));
--bfc-theme-c-hsl: var(--purple-120-hsl);
--bfc-theme-c-2-hsl: var(--purple-100-hsl);
--bfc-theme-hc: white;
--bfc-theme-fade-hsl: var(--purple-120-hsl);
--bfc-theme-fade-c-hsl: var(--purple-570-hsl);
}
@media (prefers-color-scheme: light) {
.bf-theme-purple {
--bfc-theme-hsl: var(--purple-570-hsl);
--bfc-theme-2: hsl(var(--purple-620-hsl));
--bfc-theme-3: hsl(var(--purple-660-hsl));
--bfc-theme-c-hsl: var(--purple-120-hsl);
--bfc-theme-c-2-hsl: var(--purple-100-hsl);
--bfc-theme-hc: white;
--bfc-theme-fade-hsl: var(--purple-120-hsl);
--bfc-theme-fade-c-hsl: var(--purple-570-hsl);
}
}
/* #endregion */
/* #region gray theme */
.bf-theme-gray,
.bf-theme-gray.bf-darkmode,
.bf-darkmode .bf-theme-gray,
[data-bf-color-mode=dark] .bf-theme-gray,
.bf-lightmode .bf-darkmode .bf-theme-gray {
--bfc-theme-hsl: var(--base-120-hsl);
--bfc-theme-2: hsl(var(--base-100-hsl));
--bfc-theme-3: hsl(var(--base-30-hsl));
--bfc-theme-c-hsl: var(--base-500-hsl);
--bfc-theme-c-2-hsl: var(--base-920-hsl);
--bfc-theme-hc: var(--base-920);
--bfc-theme-fade-hsl: var(--base-500-hsl);
--bfc-theme-fade-c-hsl: var(--base-120-hsl);
}
.bf-theme-gray.bf-lightmode,
.bf-lightmode .bf-theme-gray,
[data-bf-color-mode=light] .bf-theme-gray,
.bf-darkmode .bf-lightmode .bf-theme-gray {
--bfc-theme-hsl: var(--base-420-hsl);
--bfc-theme-2: hsl(var(--base-380-hsl));
--bfc-theme-3: hsl(var(--gray-400-hsl));
--bfc-theme-c-hsl: var(--base-40-hsl);
--bfc-theme-c-2-hsl: var(--base-30-hsl);
--bfc-theme-hc: white;
--bfc-theme-fade-hsl: var(--base-40-hsl);
--bfc-theme-fade-c-hsl: var(--base-360-hsl);
}
@media (prefers-color-scheme: light) {
.bf-theme-gray {
--bfc-theme-hsl: var(--base-420-hsl);
--bfc-theme-2: hsl(var(--base-380-hsl));
--bfc-theme-3: hsl(var(--gray-400-hsl));
--bfc-theme-c-hsl: var(--base-40-hsl);
--bfc-theme-c-2-hsl: var(--base-30-hsl);
--bfc-theme-hc: white;
--bfc-theme-fade-hsl: var(--base-40-hsl);
--bfc-theme-fade-c-hsl: var(--base-360-hsl);
}
}
/* #endregion */
/* #region pink theme */
.bf-theme-pink,
.bf-theme-pink.bf-darkmode,
.bf-darkmode .bf-theme-pink,
[data-bf-color-mode=dark] .bf-theme-pink,
.bf-lightmode .bf-darkmode .bf-theme-pink {
--bfc-theme-hsl: var(--pink-300-hsl);
--bfc-theme-2: hsl(var(--pink-250-hsl));
--bfc-theme-3: hsl(var(--pink-200-hsl));
--bfc-theme-c-hsl: var(--pink-800-hsl);
--bfc-theme-c-2-hsl: var(--pink-890-hsl);
--bfc-theme-hc: var(--base-920);
--bfc-theme-fade-hsl: var(--pink-800-hsl);
--bfc-theme-fade-c-hsl: var(--pink-300-hsl);
}
.bf-theme-pink.bf-lightmode,
.bf-lightmode .bf-theme-pink,
[data-bf-color-mode=light] .bf-theme-pink,
.bf-darkmode .bf-lightmode .bf-theme-pink {
--bfc-theme-hsl: var(--pink-570-hsl);
--bfc-theme-2: hsl(var(--pink-620-hsl));
--bfc-theme-3: hsl(var(--pink-660-hsl));
--bfc-theme-c-hsl: var(--pink-120-hsl);
--bfc-theme-c-2-hsl: var(--pink-100-hsl);
--bfc-theme-hc: white;
--bfc-theme-fade-hsl: var(--pink-120-hsl);
--bfc-theme-fade-c-hsl: var(--pink-570-hsl);
}
@media (prefers-color-scheme: light) {
.bf-theme-pink {
--bfc-theme-hsl: var(--pink-570-hsl);
--bfc-theme-2: hsl(var(--pink-620-hsl));
--bfc-theme-3: hsl(var(--pink-660-hsl));
--bfc-theme-c-hsl: var(--pink-120-hsl);
--bfc-theme-c-2-hsl: var(--pink-100-hsl);
--bfc-theme-hc: white;
--bfc-theme-fade-hsl: var(--pink-120-hsl);
--bfc-theme-fade-c-hsl: var(--pink-570-hsl);
}
}
/* #endregion */
/* #region green theme */
.bf-theme-green,
.bf-theme-green.bf-darkmode,
.bf-darkmode .bf-theme-green,
[data-bf-color-mode=dark] .bf-theme-green,
.bf-lightmode .bf-darkmode .bf-theme-green {
--bfc-theme-hsl: var(--green-300-hsl);
--bfc-theme-2: hsl(var(--green-250-hsl));
--bfc-theme-3: hsl(var(--green-200-hsl));
--bfc-theme-c-hsl: var(--green-800-hsl);
--bfc-theme-c-2-hsl: var(--green-890-hsl);
--bfc-theme-hc: var(--base-920);
--bfc-theme-fade-hsl: var(--green-800-hsl);
--bfc-theme-fade-c-hsl: var(--green-300-hsl);
}
.bf-theme-green.bf-lightmode,
.bf-lightmode .bf-theme-green,
[data-bf-color-mode=light] .bf-theme-green,
.bf-darkmode .bf-lightmode .bf-theme-green {
--bfc-theme-hsl: var(--green-570-hsl);
--bfc-theme-2: hsl(var(--green-620-hsl));
--bfc-theme-3: hsl(var(--green-660-hsl));
--bfc-theme-c-hsl: var(--green-120-hsl);
--bfc-theme-c-2-hsl: var(--green-120-hsl);
--bfc-theme-hc: white;
--bfc-theme-fade-hsl: var(--green-120-hsl);
--bfc-theme-fade-c-hsl: var(--green-570-hsl);
}
@media (prefers-color-scheme: light) {
.bf-theme-green {
--bfc-theme-hsl: var(--green-570-hsl);
--bfc-theme-2: hsl(var(--green-620-hsl));
--bfc-theme-3: hsl(var(--green-660-hsl));
--bfc-theme-c-hsl: var(--green-120-hsl);
--bfc-theme-c-2-hsl: var(--green-120-hsl);
--bfc-theme-hc: white;
--bfc-theme-fade-hsl: var(--green-120-hsl);
--bfc-theme-fade-c-hsl: var(--green-570-hsl);
}
}
/* #endregion */
/* #region yellow theme */
.bf-theme-yellow,
.bf-theme-yellow.bf-darkmode,
.bf-darkmode .bf-theme-yellow,
[data-bf-color-mode=dark] .bf-theme-yellow,
.bf-lightmode .bf-darkmode .bf-theme-yellow {
--bfc-theme-hsl: var(--yellow-300-hsl);
--bfc-theme-2: hsl(var(--yellow-250-hsl));
--bfc-theme-3: hsl(var(--yellow-200-hsl));
--bfc-theme-c-hsl: var(--yellow-800-hsl);
--bfc-theme-c-2-hsl: var(--yellow-890-hsl);
--bfc-theme-hc: var(--base-920);
--bfc-theme-fade-hsl: var(--yellow-800-hsl);
--bfc-theme-fade-c-hsl: var(--yellow-300-hsl);
}
.bf-theme-yellow.bf-lightmode,
.bf-lightmode .bf-theme-yellow,
[data-bf-color-mode=light] .bf-theme-yellow,
.bf-darkmode .bf-lightmode .bf-theme-yellow {
--bfc-theme-hsl: var(--yellow-570-hsl);
--bfc-theme-2: hsl(var(--yellow-620-hsl));
--bfc-theme-3: hsl(var(--yellow-660-hsl));
--bfc-theme-c-hsl: var(--yellow-120-hsl);
--bfc-theme-c-2-hsl: var(--yellow-100-hsl);
--bfc-theme-hc: white;
--bfc-theme-fade-hsl: var(--yellow-120-hsl);
--bfc-theme-fade-c-hsl: var(--yellow-570-hsl);
}
@media (prefers-color-scheme: light) {
.bf-theme-yellow {
--bfc-theme-hsl: var(--yellow-570-hsl);
--bfc-theme-2: hsl(var(--yellow-620-hsl));
--bfc-theme-3: hsl(var(--yellow-660-hsl));
--bfc-theme-c-hsl: var(--yellow-120-hsl);
--bfc-theme-c-2-hsl: var(--yellow-100-hsl);
--bfc-theme-hc: white;
--bfc-theme-fade-hsl: var(--yellow-120-hsl);
--bfc-theme-fade-c-hsl: var(--yellow-570-hsl);
}
}
/* #endregion */
/* #region theme aliases
aliases and values for `theme` needs to be applied for both dark and light
mode for every theme class (or nested themes won't work) */
html,
.bf-darkmode,
.bf-lightmode,
[data-bf-color-mode=dark],
[data-bf-color-mode=light],
.bf-theme-teal,
.bf-theme-purple,
.bf-theme-pink,
.bf-theme-green,
.bf-theme-yellow,
.bf-theme-gray {
--bfc-base-c-theme: var(--bfc-theme);
--bfc-theme-1: hsl(var(--bfc-theme-hsl));
--bfc-theme-c-1: hsl(var(--bfc-theme-c-hsl));
--bfc-theme-c-2: hsl(var(--bfc-theme-c-2-hsl));
--bfc-theme-c: var(--bfc-theme-c-1);
--bfc-theme: var(--bfc-theme-1);
--bfc-theme-fade: hsl(var(--bfc-theme-fade-hsl));
--bfc-theme-fade-c: hsl(var(--bfc-theme-fade-c-hsl));
--bff-theme: var(--bfc-base-c-theme);
--bft-theme: var(--bfc-base-c-theme);
}
/* #endregion */
/* #region aliases and values for both dark and light mode */
html,
.bf-darkmode,
.bf-lightmode,
[data-bf-color-mode=dark],
[data-bf-color-mode=light] {
--bf-shadow-blur: 8px;
--bf-shadow-bottom: 0 4px var(--bf-shadow-blur) var(--bfc-shadow);
--bf-shadow-left: -4px 0 var(--bf-shadow-blur) var(--bfc-shadow);
--bf-shadow-right: 4px 0 var(--bf-shadow-blur) var(--bfc-shadow);
--bf-shadow-top: 0 -4px var(--bf-shadow-blur) var(--bfc-shadow);
--bf-shadow: 0 0 var(--bf-shadow-blur) var(--bfc-shadow);
--bfc-base: var(--bfc-base-1);
--bfc-base-1: hsl(var(--bfc-base-hsl));
--bfc-base-2: hsl(var(--bfc-base-2-hsl));
--bfc-base-3: hsl(var(--bfc-base-3-hsl));
--bfc-base-c-1: hsl(var(--bfc-base-c-hsl));
--bfc-base-c-chill: var(--bfc-chill);
--bfc-base-c-brand: var(--bfc-brand);
--bfc-base-c-attn: var(--bfc-attn);
--bfc-base-c-dimmed: var(--bfc-base-dimmed);
--bfc-base-c: var(--bfc-base-c-1);
--bfc-base-dimmed-1: var(--bfc-base-dimmed);
--bfc-base-dimmed-2: hsl(var(--bfc-base-dimmed-2-hsl));
--bfc-base-dimmed-3: hsl(var(--bfc-base-dimmed-3-hsl));
--bfc-base-dimmed-c: var(--bfc-base-c-1);
--bfc-base-dimmed: hsl(var(--bfc-base-dimmed-hsl));
--bfc-base-c-inverted-1: hsl(var(--bfc-base-c-inverted-hsl));
--bfc-base-c-inverted: var(--bfc-base-c-inverted-1);
--bfc-base-disabled-c: var(--bfc-base-c-2);
--bfc-base-disabled: hsl(var(--bfc-base-disabled-hsl));
--bfc-neutral: hsl(var(--bfc-neutral-hsl));
--bfc-neutral-2: hsl(var(--bfc-neutral-2-hsl));
--bfc-neutral-c: hsl(var(--bfc-neutral-c-hsl));
--bfc-neutral-fade: hsl(var(--bfc-neutral-fade-hsl));
--bfc-neutral-fade-c: hsl(var(--bfc-neutral-fade-c-hsl));
--bfc-brand: hsl(var(--bfc-brand-hsl));
--bfc-brand-c: hsl(var(--bfc-brand-c-hsl));
--bfc-brand-fade: hsl(var(--bfc-brand-fade-hsl));
--bfc-brand-fade-c: hsl(var(--bfc-brand-fade-c-hsl));
--bfc-chill: hsl(var(--bfc-chill-hsl));
--bfc-chill-c: hsl(var(--bfc-chill-c-hsl));
--bfc-chill-fade: hsl(var(--bfc-chill-fade-hsl));
--bfc-chill-fade-c: hsl(var(--bfc-chill-fade-c-hsl));
--bfc-attn: hsl(var(--bfc-attn-hsl));
--bfc-attn-c: hsl(var(--bfc-attn-c-hsl));
--bfc-attn-fade: hsl(var(--bfc-attn-fade-hsl));
--bfc-attn-fade-c: hsl(var(--bfc-attn-fade-c-hsl));
--bfc-success: hsl(var(--bfc-success-hsl));
--bfc-success-c: hsl(var(--bfc-success-c-hsl));
--bfc-success-fade: hsl(var(--bfc-success-fade-hsl));
--bfc-success-fade-c: hsl(var(--bfc-success-fade-c-hsl));
--bfc-warning-hs: 45, 100%;
--bfc-warning-hsl: var(--yellow-300-hsl);
--bfc-warning-c-hsl: var(--yellow-800-hsl);
--bfc-warning-hc: var(--base-920);
--bfc-warning: hsl(var(--bfc-warning-hsl));
--bfc-warning-c: hsl(var(--bfc-warning-c-hsl));
--bfc-warning-fade: hsl(var(--bfc-warning-fade-hsl));
--bfc-warning-fade-c: hsl(var(--bfc-warning-fade-c-hsl));
--bfc-alert-hsl: 8, 75%, 45%;
--bfc-alert-2: hsl(8, 73%, 49%);
--bfc-alert-c-hsl: 0, 0%, 100%;
--bfc-alert-c: hsl(var(--bfc-alert-c-hsl));
--bfc-alert-hc: white;
--bfc-alert-fade-1-c: hsl(var(--bfc-alert-fade-c-hsl));
--bfc-alert-fade-1: hsl(var(--bfc-alert-fade-hsl));
--bfc-alert-fade-2-c: hsl(var(--bfc-alert-fade-2-c-hsl));
--bfc-alert-fade-c: var(--bfc-alert-fade-1-c);
--bfc-alert-fade: var(--bfc-alert-fade-1);
--bfc-alert: hsl(var(--bfc-alert-hsl));
--bff-alert: var(--bfc-base-c-alert);
--bff-attn: var(--bfc-base-c-attn);
--bff-base-2: var(--bfc-base-c-2);
--bff-base: var(--bfc-base-c);
--bff-chill: var(--bfc-base-c-chill);
--bff-dimmed: var(--bfc-base-c-dimmed);
--bff-disabled: var(--bfc-base-c-disabled);
--bff-inverted-2: var(--bfc-base-c-inverted-2);
--bff-inverted: var(--bfc-base-c-inverted);
--bff-success: var(--bfc-base-c-success);
--bff-warning: var(--bfc-base-c-warning);
--bff-wcag: var(--bfc-base-c-wcag);
--bft-base-2: var(--bfc-base-c-2);
--bft-base: var(--bfc-base-c);
--bft-disabled: var(--bfc-base-c-disabled);
}
/* #endregion */
/* #region Background color class names */
.bfc-base-bg,
.bfc-base-1-bg {
background-color: var(--bfc-base);
color: var(--bft-base);
}
.bfc-base-2-bg {
background-color: var(--bfc-base-2);
color: var(--bft-base);
}
.bfc-base-3-bg {
background-color: var(--bfc-base-3);
color: var(--bft-base);
}
.bfc-dimmed-bg {
background-color: var(--bfc-base-dimmed);
color: var(--bfc-base-dimmed-c);
}
.bfc-inverted-bg {
background-color: var(--bfc-base-c-inverted);
color: var(--bfc-base);
}
.bfc-inverted-2-bg {
background-color: var(--bfc-base-c-inverted-2);
color: var(--bfc-base);
}
.bfc-disabled-bg {
background-color: var(--bfc-base-disabled);
color: var(--bfc-base-c-2);
}
.bfc-theme-bg {
background-color: var(--bfc-theme);
color: var(--bfc-theme-hc);
}
.bfc-theme-fade-bg {
background-color: var(--bfc-theme-fade);
color: var(--bfc-theme-fade-c);
}
.bfc-theme-fade-2-bg {
background-color: var(--bfc-theme-c-2);
color: var(--bfc-theme);
}
.bfc-success-bg {
background-color: var(--bfc-success);
color: var(--bfc-success-hc);
}
.bfc-success-fade-bg {
background-color: var(--bfc-success-fade);
color: var(--bfc-success-fade-c);
}
.bfc-warning-bg {
background-color: var(--bfc-warning);
color: var(--bfc-warning-hc);
}
.bfc-warning-fade-bg {
background-color: var(--bfc-warning-fade);
color: var(--bfc-warning-fade-c);
}
.bfc-neutral-bg {
background-color: var(--bfc-neutral);
color: var(--bfc-neutral-hc);
}
.bfc-neutral-fade-bg {
background-color: var(--bfc-neutral-fade);
color: var(--bfc-neutral-fade-c);
}
.bfc-alert-bg {
background-color: var(--bfc-alert);
color: var(--bfc-alert-hc);
}
.bfc-alert-fade-bg {
background-color: var(--bfc-alert-fade);
color: var(--bfc-alert-fade-c);
}
.bfc-alert-fade-2-bg {
background-color: var(--bfc-alert-fade-2);
color: var(--bfc-alert-fade-2-c);
}
.bfc-attn-bg {
background-color: var(--bfc-attn);
color: var(--bfc-attn-hc);
}
.bfc-attn-fade-bg {
background-color: hsl(var(--bfc-attn-fade-hsl));
color: hsl(var(--bfc-attn-fade-c-hsl));
}
.bfc-brand-bg {
background-color: var(--bfc-brand);
color: var(--bfc-brand-hc);
}
.bfc-brand-fade-bg {
background-color: var(--bfc-brand-fade);
color: var(--bfc-brand-fade-c);
}
.bfc-chill-bg {
background-color: var(--bfc-chill);
color: var(--bfc-chill-hc);
}
.bfc-chill-fade-bg {
background-color: var(--bfc-chill-fade);
color: var(--bfc-chill-fade-c);
}
/* #endregion */
:where(.bfc-dimmed-bg,
.bfc-inverted-bg,
.bfc-inverted-2-bg,
.bfc-disabled-bg,
.bfc-theme-bg,
.bfc-theme-fade-bg,
.bfc-theme-fade-2-bg,
.bfc-neutral-bg,
.bfc-neutral-fade-bg,
.bfc-brand-bg,
.bfc-brand-fade-bg,
.bfc-chill-bg,
.bfc-chill-fade-bg,
.bfc-attn-bg,
.bfc-attn-fade-bg,
.bfc-success-bg,
.bfc-success-fade-bg,
.bfc-warning-bg,
.bfc-warning-fade-bg,
.bfc-alert-bg,
.bfc-alert-fade-bg,
.bfc-alert-fade-2-bg) :is(a, .bf-link) {
color: inherit;
}
.bfc-base-1,
.bfc-base {
color: var(--bft-base);
}
.bfc-base-2 {
color: var(--bft-base-2);
}
.bfc-disabled {
color: var(--bft-disabled);
}
.bfc-theme {
color: var(--bft-theme);
}
.bfc-success {
color: var(--bfc-base-c-success);
}
.bfc-warning {
color: var(--bfc-base-c-warning);
}
.bfc-alert {
color: var(--bfc-base-c-alert);
}
.bfc-attn {
color: var(--bfc-base-c-attn);
}
.bfc-brand {
color: var(--bfc-base-c-brand);
}
.bfc-chill {
color: var(--bfc-base-c-chill);
}
.bf-shadow {
box-shadow: var(--bf-shadow);
}
.bf-shadow-top {
box-shadow: var(--bf-shadow-top);
}
.bf-shadow-right {
box-shadow: var(--bf-shadow-right);
}
.bf-shadow-bottom {
box-shadow: var(--bf-shadow-bottom);
}
.bf-shadow-left {
box-shadow: var(--bf-shadow-left);
}
html {
--teal-100-hsl: 172, 94%, 94%;
--teal-100: hsl(var(--teal-100-hsl));
--teal-120-hsl: 172, 91%, 92%;
--teal-120: hsl(var(--teal-120-hsl));
--teal-150-hsl: 172, 90%, 88%;
--teal-150: hsl(var(--teal-150-hsl));
--teal-200-hsl: 173, 90%, 80%;
--teal-200: hsl(var(--teal-200-hsl));
--teal-250-hsl: 173, 90%, 68%;
--teal-250: hsl(var(--teal-250-hsl));
--teal-300-hsl: 173, 90%, 50%;
--teal-300: hsl(var(--teal-300-hsl));
--teal-570-hsl: 181, 100%, 23%;
--teal-570: hsl(var(--teal-570-hsl));
--teal-620-hsl: 181, 98%, 21%;
--teal-620: hsl(var(--teal-620-hsl));
--teal-660-hsl: 181, 100%, 17%;
--teal-660: hsl(var(--teal-660-hsl));
--teal-800-hsl: 186, 100%, 13%;
--teal-800: hsl(var(--teal-800-hsl));
--teal-890-hsl: 192, 100%, 8%;
--teal-890: hsl(var(--teal-890-hsl));
--purple-100-hsl: 258, 92%, 95%;
--purple-100: hsl(var(--purple-100-hsl));
--purple-120-hsl: 259, 94%, 93%;
--purple-120: hsl(var(--purple-120-hsl));
--purple-150-hsl: 258, 100%, 91%;
--purple-150: hsl(var(--purple-150-hsl));
--purple-200-hsl: 258, 100%, 87%;
--purple-200: hsl(var(--purple-200-hsl));
--purple-250-hsl: 258, 100%, 82%;
--purple-250: hsl(var(--purple-250-hsl));
--purple-300-hsl: 258, 100%, 77%;
--purple-300: hsl(var(--purple-300-hsl));
--purple-570-hsl: 264, 76%, 46%;
--purple-570: hsl(var(--purple-570-hsl));
--purple-620-hsl: 264, 76%, 41%;
--purple-620: hsl(var(--purple-620-hsl));
--purple-660-hsl: 264, 77%, 37%;
--purple-660: hsl(var(--purple-660-hsl));
--purple-800-hsl: 252, 53%, 25%;
--purple-800: hsl(var(--purple-800-hsl));
--purple-890-hsl: 238, 44%, 16%;
--purple-890: hsl(var(--purple-890-hsl));
--pink-100-hsl: 323, 100%, 93%;
--pink-100: hsl(var(--pink-100-hsl));
--pink-120-hsl: 323, 100%, 91%;
--pink-120: hsl(var(--pink-120-hsl));
--pink-150-hsl: 323, 100%, 89%;
--pink-150: hsl(var(--pink-150-hsl));
--pink-200-hsl: 324, 100%, 84%;
--pink-200: hsl(var(--pink-200-hsl));
--pink-250-hsl: 323, 100%, 77%;
--pink-250: hsl(var(--pink-250-hsl));
--pink-300-hsl: 324, 100%, 71%;
--pink-300: hsl(var(--pink-300-hsl));
--pink-570-hsl: 325, 100%, 37%;
--pink-570: hsl(var(--pink-570-hsl));
--pink-620-hsl: 325, 94%, 34%;
--pink-620: hsl(var(--pink-620-hsl));
--pink-660-hsl: 324, 89%, 32%;
--pink-660: hsl(var(--pink-660-hsl));
--pink-800-hsl: 317, 75%, 20%;
--pink-800: hsl(var(--pink-800-hsl));
--pink-890-hsl: 285, 51%, 12%;
--pink-890: hsl(var(--pink-890-hsl));
--green-100-hsl: 145, 100%, 93%;
--green-100: hsl(var(--green-100-hsl));
--green-150-hsl: 144, 100%, 89%;
--green-150: hsl(var(--green-150-hsl));
--green-200-hsl: 144, 100%, 82%;
--green-200: hsl(var(--green-200-hsl));
--green-250-hsl: 153, 95%, 67%;
--green-250: hsl(var(--green-250-hsl));
--green-300-hsl: 157, 100%, 48%;
--green-300: hsl(var(--green-300-hsl));
--green-570-hsl: 157, 100%, 24%;
--green-570: hsl(var(--green-570-hsl));
--green-620-hsl: 157, 100%, 21%;
--green-620: hsl(var(--green-620-hsl));
--green-660-hsl: 157, 100%, 19%;
--green-660: hsl(var(--green-660-hsl));
--green-800-hsl: 157, 100%, 11%;
--green-800: hsl(var(--green-800-hsl));
--green-890-hsl: 156, 67%, 8%;
--green-890: hsl(var(--green-890-hsl));
--yellow-100-hsl: 49, 100%, 92%;
--yellow-100: hsl(var(--yellow-100-hsl));
--yellow-120-hsl: 49, 100%, 89%;
--yellow-120: hsl(var(--yellow-120-hsl));
--yellow-150-hsl: 49, 100%, 85%;
--yellow-150: hsl(var(--yellow-150-hsl));
--yellow-200-hsl: 49, 100%, 79%;
--yellow-200: hsl(var(--yellow-200-hsl));
--yellow-250-hsl: 47, 100%, 75%;
--yellow-250: hsl(var(--yellow-250-hsl));
--yellow-300-hsl: 45, 100%, 72%;
--yellow-300: hsl(var(--yellow-300-hsl));
--yellow-570-hsl: 37, 88%, 32%;
--yellow-570: hsl(var(--yellow-570-hsl));
--yellow-620-hsl: 39, 91%, 27%;
--yellow-620: hsl(var(--yellow-620-hsl));
--yellow-660-hsl: 40, 95%, 23%;
--yellow-660: hsl(var(--yellow-660-hsl));
--yellow-800-hsl: 39, 100%, 15%;
--yellow-800: hsl(var(--yellow-800-hsl));
--yellow-890-hsl: 43, 100%, 5%;
--yellow-890: hsl(var(--yellow-890-hsl));
/* temporary base primitives */
--base-0-hsl: 0, 0%, 100%;
--base-10-hsl: 238, 10%, 98%;
--base-10: hsl(var(--base-10-hsl));
--base-20-hsl: 238, 15%, 96%;
--base-20: hsl(var(--base-20-hsl));
--base-30-hsl: 238, 13%, 94%;
--base-30: hsl(var(--base-30-hsl));
--base-40-hsl: 238, 10%, 90%;
--base-40: hsl(var(--base-40-hsl));
--base-100-hsl: 210, 15%, 87%;
--base-100: hsl(var(--base-100-hsl));
--base-110-hsl: 213, 14%, 85%;
--base-110: hsl(var(--base-110-hsl));
--base-120-hsl: 212, 15%, 83%;
--base-120: hsl(var(--base-120-hsl));
--base-200-hsl: 211, 15%, 65%;
--base-200: hsl(var(--base-200-hsl));
--base-320-hsl: 212, 15%, 56%;
--base-320: hsl(var(--base-320-hsl));
--base-340-hsl: 212, 15%, 44%;
--base-340: hsl(var(--base-340-hsl));
--base-360-hsl: 213, 22%, 34%;
--base-360: hsl(var(--base-360-hsl));
--base-380-hsl: 211, 20%, 30%;
--base-380: hsl(var(--base-380-hsl));
--base-400-hsl: 212, 30%, 22%;
--base-400: hsl(var(--base-400-hsl));
--base-410-hsl: 212, 33%, 20%;
--base-410: hsl(var(--base-410-hsl));
--base-420-hsl: 212, 35%, 19%;
--base-420: hsl(var(--base-420-hsl));
--base-500-hsl: 211, 39%, 17%;
--base-500: hsl(var(--base-500-hsl));
--base-900-hsl: 210, 55%, 13%;
--base-900: hsl(var(--base-900-hsl));
--base-910-hsl: 210, 64%, 11%;
--base-910: hsl(var(--base-910-hsl));
--base-920-hsl: 212, 70%, 9%;
--base-920: hsl(var(--base-920-hsl));
--gray-50-hsl: 240, 9%, 98%;
--gray-50: hsl(var(--gray-50-hsl));
--gray-100-hsl: 240, 14%, 96%;
--gray-100: hsl(var(--gray-100-hsl));
--gray-150-hsl: 240, 10%, 90%;
--gray-150: hsl(var(--gray-150-hsl));
--gray-800-hsl: 210, 40%, 17%;
--gray-800: hsl(var(--gray-800-hsl));
--gray-920-hsl: 212, 70%, 9%;
--gray-920: hsl(var(--gray-920-hsl));
--gray-970-hsl: 215, 67%, 4%;
--gray-970: hsl(var(--gray-970-hsl));
}
/* stylelint-disable no-duplicate-selectors */
html {
box-sizing: border-box;
}
*,
*::after,
*::before {
box-sizing: inherit;
}
:root {
/* px based spacing */
--bfs0: 0px;
--bfs2: 2px;
--bfs4: 4px;
--bfs6: 6px;
--bfs8: 8px;
--bfs12: 12px;
--bfs16: 16px;
--bfs24: 24px;
--bfs28: 28px;
--bfs32: 32px;
--bfs40: 40px;
--bfs48: 48px;
--bfs52: 52px;
--bfs56: 56px;
--bfs80: 80px;
/* dynamic spacing variables following browser font-size.
* numbers assuming default root font-size of 16px */
--rem0: 0rem;
--rem2: 0.125rem;
--rem4: 0.25rem;
--rem6: 0.375rem;
--rem8: 0.5rem;
--rem12: 0.75rem;
--rem16: 1rem;
--rem24: 1.5rem;
--rem28: 1.75rem;
--rem32: 2rem;
--rem40: 2.5rem;
--rem48: 3rem;
--rem52: 3.25rem;
--rem56: 3.5rem;
--rem80: 5rem;
/* font sizes */
--bf-font-size-s: 0.75rem; /* 12px - small, .bf-small */
--bf-font-size-m: 0.875rem; /* 14px - p, body, label, .bf-medium */
--bf-font-size-l: 1rem; /* 16px - input, big, .bf-large */
--bf-font-size-h5: 1.125rem; /* 18px - h5 */
--bf-font-size-h4: 1.25rem; /* 20px - h4 */
--bf-font-size-h3: 1.5rem; /* 24px - h3 */
--bf-font-size-h2: 1.8125rem; /* 29px - h2 */
--bf-font-size-h1: 2rem; /* 32px - h1 */
/* border radius */
--bf-radius-none: 0px;
--bf-radius-xs: 4px;
--bf-radius-s: 8px;
--bf-radius-m: 12px;
--bf-radius-l: 16px;
--bf-radius-xl: 24px;
--bf-radius-full: 9999px;
--bf-radius: var(--bf-radius-m);
/* transition and animations */
--bf-animation-duration: 0.2s;
--bf-timing-function: ease;
}
/* general utility classes */
.bf-radius-xs {
border-radius: var(--bf-radius-xs);
}
.bf-radius-s {
border-radius: var(--bf-radius-s);
}
.bf-radius,
.bf-radius-m {
border-radius: var(--bf-radius-m);
}
.bf-radius-l {
border-radius: var(--bf-radius-l);
}
.bf-radius-xl {
border-radius: var(--bf-radius-xl);
}
.bf-radius-full {
border-radius: var(--bf-radius-full);
}
.bf-radius-none {
border-radius: var(--bf-radius-none);
}
.bfl-border,
.bf-border {
border: var(--bf-border);
}
.bf-border-top {
border-top: var(--bf-border);
}
.bf-border-right {
border-right: var(--bf-border);
}
.bf-border-bottom {
border-bottom: var(--bf-border);
}
.bf-border-left {
border-left: var(--bf-border);
}
/* disable bifrost css animation for users that prefers reduced motion */
@media (prefers-reduced-motion) {
:root {
--bf-animation-duration: 0s;
}
}
:root,
.bf-darkmode {
--bf-border: 1px solid var(--bfc-base-dimmed);
--bfl-border: var(--bf-border);
--bf-form-focus-outline: 0 0 0 4px var(--bfc-base-dimmed);
}
.bf-lightmode {
--bf-border: 1px solid var(--bfc-base-dimmed);
--bfl-border: var(--bf-border);
--bf-form-focus-outline: 0 0 0 4px var(--bfc-base-dimmed);
}
/* responsive modal padding */
:root {
--bfl-modal-padding: var(--bfs40);
}
@media (max-width: 599.9px), (max-height: 599.9px) {
:root {
--bfl-modal-padding: var(--bfs24);
}
}
/* responsive page padding */
:root {
/* page padding changes at 600px and 1920px screen width. 12 - 24 - 40 */
--bf-page-padding: var(--bfs12);
--bfl-page-padding: var(--bf-page-padding);
}
.bfl-page-padding,
.bf-page-padding {
padding: var(--bf-page-padding, 12px);
}
.bfl-page-padding-x,
.bf-page-padding-x {
padding-left: var(--bf-page-padding);
padding-right: var(--bf-page-padding);
}
.bfl-page-padding-y,
.bf-page-padding-y {
padding-top: var(--bf-page-padding);
padding-bottom: var(--bf-page-padding);
}
.bf-notch:where(.bfl-page-padding,
.bfl-page-padding-x,
.bf-page-padding,
.bf-page-padding-x) {
padding-left: calc(var(--bf-page-padding) + env(safe-area-inset-left));
padding-right: calc(var(--bf-page-padding) + env(safe-area-inset-right));
}
@media (min-width: 600px) {
:root {
--bf-page-padding: var(--bfs24);
}
}
@media (min-width: 1920px) {
:root {
--bf-page-padding: var(--bfs40);
}
}
/* responsive box padding */
:root {
/* box padding changes at 1280px screen width. 16 - 24 */
--bf-box-padding: var(--bfs16);
--bfl-box-padding: var(--bf-box-padding);
}
.bfl-padding,
.bf-padding {
padding: var(--bf-box-padding);
}
.bfl-padding-x,
.bf-padding-x {
padding-left: var(--bf-box-padding);
padding-right: var(--bf-box-padding);
}
.bfl-padding-y,
.bf-padding-y {
padding-top: var(--bf-box-padding);
padding-bottom: var(--bf-box-padding);
}
.bf-notch:where(.bfl-padding, .bfl-padding-x, .bf-padding, .bf-padding-x) {
padding-left: calc(var(--bf-box-padding) + env(safe-area-inset-left));
padding-right: calc(var(--bf-box-padding) + env(safe-area-inset-right));
}
@media (min-width: 1280px) {
:root {
--bf-box-padding: var(--bfs24);
}
}
/* responsive automatic columns
number of columns will be available width divided by autocol-width
each column will stretch to take up available space
if available width is less than autocol-width, minimum column width will not exceed 100%
prefer css grids because `gap` is well supported (compiles to include `grid-gap`), but not for flexbox or css columns
read more: https://css-tricks.com/snippets/css/complete-guide-grid/ */
:root {
--bf-autocol-width: 300px;
--bfl-autocol-width: var(--bf-autocol-width);
--bf-autocol-gap: var(--bfs12, 12px);
--bfl-autocol-gap: var(--bf-autocol-gap);
}
.bfl-autocol,
.bf-autocol {
display: grid;
gap: var(--bf-autocol-gap);
grid-template-columns: repeat(auto-fill, minmax(min(var(--bf-autocol-width), 100%), 1fr));
}
/* column grid */
:root {
/* default column count for .bfl-grid */
--bfl-columns: 1;
}
.bfl-grid {
--bfl-gap: var(--bfs12, 12px);
display: grid;
gap: var(--bfl-gap);
grid-template-columns: repeat(var(--bfl-columns, 1), minmax(0, 1fr));
}
/* utility class to set display: block; for inline elements like `<a>` */
:where(.bf-block) {
display: block;