@bakung-ui/bakung.css
Version:
HTML UI library pure CSS, lightweight, no javascript
2,342 lines (1,842 loc) • 168 kB
CSS
@charset "UTF-8";
:root{
--font-style:normal;
--font-variant:normal;
--font-weight:300;
--font-stretch:normal;
--font-size:16px;
--line-height:1.5;
--font-family:Lato, "Helvetica Neue", sans-serif;
--font:var(--font-style) var(--font-variant) var(--font-weight) var(--font-stretch) var(--font-size) / var(--line-height) var(--font-family);
--letter-spacing:0.06em;
--accent-color:oklch(0.59 0.11 281.84);
--font-color:oklch(0.36 0.02 285.26);
--font-color:oklch(0 0 0);
--font-color-alt-1:oklch(0.44 0.02 284.16);
--font-color-alt-2:oklch(0.6 0.02 285.26);
--bg-color:oklch(0.98 0 0);
--bg-color-text-alt-1:oklch(0.36 0.02 285.26);
--bg-color-text:oklch(0.95 0.01 285.37);
--bg-color-clickable:oklch(0.96 0.01 285.53);
--border-color-control:oklch(0.75 0.02 285.18);
--border-color-boundary:oklch(0.82 0.02 285.18);
--transparent-color:oklch(from var(--accent-color) l c h / .15);
--href--color:oklch(0.56 0.22 276.32);
--href--visited-color:oklch(0.42 0.13 279.17);
--shadow-float:0 3px 10px 0 var(--transparent-color);
--shadow-clickable:0 2px 2px 0 var(--transparent-color);
--focus-outline:0.25rem solid var(--transparent-color);
--focus--box-shadow:0 0 0 0.25rem var(--transparent-color);
--elements-block-level-space:1rem;
--boundary--border:1px solid var(--border-color-boundary);
--h--font-family:Montserrat, sans-serif;
--h--font-weight:500;
--h--line-height:1;
--h--letter-spacing:-0.016em;
--h--color:var(--font-color-alt-1);
--backdrop--bg-color:var(--transparent-color);
--dialog--height:auto;
--dialog--width:auto;
--blockquote--border-width:0 0 0 4px;
--blockquote--border-style:solid;
--blockquote--border-color:var(--border-color-boundary);
--blockquote_--footer--color:var(--font-color-alt-2);
--blockquote_--footer--margin:1rem 0 0;
--pre--color:var(--font-color-alt-1);
--pre--background:var(--bg-color-text);
--pre--border:var(--boundary--border);
--cks--font-family:"Sometype Mono", monospace, monospace;
--cks--font-size:1.125rem;
--cks--font-weight:400;
--code--color:var(--font-color);
--code--background:oklch(from var(--pre--background) .9 c h / .8);
--kbd--color:white;
--kbd--background:var(--bg-color-text-alt-1);
--kbd--border-radius:3px;
--kbd_-kbd--font-weight:400;
--kbd_-kbd--color:var(--font-color);
--kbd_-kbd--border:solid var(--border-color-boundary);
--kbd_-kbd--border-width:1px 2px 3px 1px;
--kbd_-kbd--padding:0 0.5rem 0.25rem .25rem;
--controls--font-color:var(--font-color);
--controls--border:1px solid var(--border-color-control);
--controls--min-height:1.75rem;
--controls--padding:0.125em 0.25em 0.25em;
--input--bg-color:white;
--btn--font-weight:400;
--btn--font-size:var(--font-size);
--btn--line-height:1.5;
--btn--font:normal var(--btn--font-weight) var(--btn--font-size) / var(--btn--line-height) var(--font-family);
--btn--font-color:var(--font-color);
--btn--bg-color:var(--bg-color-clickable);
--btn--paddings:0.2lh 1.5em;
--btn--paddings:.2lh .75lh .25lh;
--btn--borders-width:1px;
--btn--border-style:solid;
--btn--border-color:var(--border-color-control);
--btn--borders-radius:0.375em;
--btn--borders-radius:0.25em;
--btn--shadow:var(--shadow-clickable);
--moz-input--paddings:0.125em 0.25em 0.25em;
--moz-input--select-paddings:0.125em 0.25em 0.25em;
--moz-btn-paddings:0.2lh 1.5em;
--moz-btn-paddings:.2lh .75lh .25lh;
}
:root{
--color-base-white:white;
--color-base-1:oklch(0.99 0 0);
--color-base-2:;
--color-base-5:oklch(0.98 0 0);
--color-base-6:oklch(0.96 0.02 285.26);
--color-base-7:oklch(0.93 0.02 285.26);
--color-base-8:oklch(0.9 0.02 285.26);
--color-base-9:oklch(0.87 0.02 285.26);
--color-base-10:oklch(0.77 0.02 285.26);
--color-base-20:oklch(0.67 0.02 285.26);
--color-base-30:oklch(0.57 0.02 285.26);
--color-base-40:oklch(0.47 0.02 285.26);
--color-base-50:oklch(0.36 0.02 285.26);
--color-base-60:oklch(0.31 0.02 285.26);
--color-base-70:oklch(0.26 0.02 285.26);
--color-base-80:oklch(0.21 0.02 285.26);
--color-base-90:oklch(0.16 0.02 285.26);
--color-low-5:oklch(0.97 0.06 129.67);
--color-low-10:oklch(0.96 0.1 134.3);
--color-low-20:oklch(0.94 0.14 134.71);
--color-low-30:oklch(0.91 0.13 133.87);
--color-low-40:oklch(0.86 0.15 134.24);
--color-low-50:oklch(0.58 0.19 135.24);
--color-low-60:oklch(0.51 0.19 135.24);
--color-low-70:oklch(0.46 0.19 135.24);
--color-low-80:oklch(0.39 0.19 135.24);
--color-low-90:oklch(0.19 0.19 135.24);
--color-normal-5:oklch(0.98 0.08 107.75);
--color-normal-10:oklch(0.96 0.1 106.96);
--color-normal-20:oklch(0.93 0.11 107.32);
--color-normal-30:oklch(0.91 0.14 107.68);
--color-normal-40:oklch(0.86 0.15 107.93);
--color-normal-50:oklch(0.58 0.15 108.19);
--color-normal-60:oklch(0.5 0.15 108.19);
--color-normal-70:oklch(0.44 0.15 108.19);
--color-normal-80:oklch(0.37 0.15 108.19);
--color-normal-90:oklch(0.2 0.15 108.19);
--color-important-5:oklch(0.95 0.02 51.36);
--color-important-10:oklch(0.95 0.03 51.33);
--color-important-20:oklch(0.94 0.04 51.31);
--color-important-30:oklch(0.91 0.06 51.27);
--color-important-40:oklch(0.86 0.07 51.23);
--color-important-50:oklch(0.61 0.13 50.75);
--color-important-60:oklch(0.54 0.13 50.75);
--color-important-70:oklch(0.49 0.13 50.75);
--color-important-80:oklch(0.42 0.13 50.75);
--color-important-90:oklch(0.29 0.13 50.75);
--color-critical-5:oklch(0.97 0.03 329.25);
--color-critical-10:oklch(0.96 0.04 329.32);
--color-critical-20:oklch(0.95 0.06 329.46);
--color-critical-30:oklch(0.92 0.09 329.69);
--color-critical-40:oklch(0.89 0.13 330.04);
--color-critical-50:oklch(0.63 0.18 335.23);
--color-critical-60:oklch(0.57 0.18 335.16);
--color-critical-70:oklch(0.52 0.18 335.16);
--color-critical-80:oklch(0.46 0.18 335.16);
--color-critical-90:oklch(0.23 0.22 335.7);
--color-info-5:oklch(0.99 0.04 177.23);
--color-info-10:oklch(0.94 0.04 178.96);
--color-info-20:oklch(0.93 0.06 176.76);
--color-info-30:oklch(0.9 0.07 176.68);
--color-info-40:oklch(0.86 0.1 175.98);
--color-info-50:oklch(0.57 0.09 175.98);
--color-info-60:oklch(0.51 0.09 175.98);
--color-info-70:oklch(0.47 0.09 175.98);
--color-info-80:oklch(0.38 0.09 175.98);
--color-info-90:oklch(0.17 0.09 175.98);
--color-success-5:oklch(0.97 0.06 129.67);
--color-success-10:oklch(0.96 0.1 134.3);
--color-success-20:oklch(0.94 0.14 134.71);
--color-success-30:oklch(0.91 0.13 133.87);
--color-success-40:oklch(0.86 0.15 134.24);
--color-success-50:oklch(0.58 0.19 135.24);
--color-success-60:oklch(0.51 0.19 135.24);
--color-success-70:oklch(0.46 0.19 135.24);
--color-success-80:oklch(0.39 0.19 135.24);
--color-success-90:oklch(0.19 0.19 135.24);
--color-caution-5:oklch(0.98 0.08 107.75);
--color-caution-10:oklch(0.96 0.1 106.96);
--color-caution-20:oklch(0.93 0.11 107.32);
--color-caution-30:oklch(0.91 0.14 107.68);
--color-caution-40:oklch(0.86 0.15 107.93);
--color-caution-50:oklch(0.58 0.15 108.19);
--color-caution-60:oklch(0.5 0.15 108.19);
--color-caution-70:oklch(0.44 0.15 108.19);
--color-caution-80:oklch(0.37 0.15 108.19);
--color-caution-90:oklch(0.2 0.15 108.19);
--color-warning-5:oklch(0.95 0.02 51.36);
--color-warning-10:oklch(0.95 0.03 51.33);
--color-warning-20:oklch(0.94 0.04 51.31);
--color-warning-30:oklch(0.91 0.06 51.27);
--color-warning-40:oklch(0.86 0.07 51.23);
--color-warning-50:oklch(0.61 0.13 50.75);
--color-warning-60:oklch(0.54 0.13 50.75);
--color-warning-70:oklch(0.49 0.13 50.75);
--color-warning-80:oklch(0.42 0.13 50.75);
--color-warning-90:oklch(0.29 0.13 50.75);
--color-error-5:oklch(0.97 0.03 329.25);
--color-error-10:oklch(0.96 0.04 329.32);
--color-error-20:oklch(0.95 0.06 329.46);
--color-error-30:oklch(0.92 0.09 329.69);
--color-error-40:oklch(0.89 0.13 330.04);
--color-error-50:oklch(0.63 0.18 335.23);
--color-error-60:oklch(0.57 0.18 335.16);
--color-error-70:oklch(0.52 0.18 335.16);
--color-error-80:oklch(0.46 0.18 335.16);
--color-error-90:oklch(0.23 0.22 335.7);
--color-danger-5:oklch(0.93 0.04 9.18);
--color-danger-10:oklch(0.91 0.06 10.23);
--color-danger-20:oklch(0.99 0.23 17.23);
--color-danger-30:oklch(0.91 0.23 17.23);
--color-danger-40:oklch(0.83 0.23 17.23);
--color-danger-50:oklch(0.7 0.23 17.23);
--color-danger-60:oklch(0.64 0.23 17.23);
--color-danger-70:oklch(0.61 0.23 17.23);
--color-danger-80:oklch(0.54 0.21 16.44);
--color-danger-90:oklch(0.22 0.23 17.23);
--bg-color-off:oklch(0.9 0.02 285.26);
--bg-color-active:oklch(0.97 0.01 285.51);
--border-color-light:oklch(0.9 0.02 285.18);
--shadow-float-alt-1:drop-shadow(0 2px 2px var(--transparent-color));
--shadow-border:drop-shadow(0 1px 1px var(--transparent-color));
--as-btn--paddings:.21lh 1em .26lh;
--as-btn--paddings:.2lh .75lh .25lh;
--indicator-dimension:1em;
--space-distance-1:1rem;
--space-distance-2:1.25rem;
--space-distance-3:1.5rem;
--space-distance-4:1.75rem;
--space-distance-5:2rem;
--space-group-1:.125rem;
--space-group-2:.25rem;
--space-group-3:.5rem;
--space-group-4:.75rem;
--space-group-5:1rem;
--z-index-layover:900;
--z-index-dropdown:1000;
--z-index-sticky:1020;
--z-index-fixed:1030;
--z-index-offcanvas-backdrop:1040;
--z-index-offcanvas:1045;
--z-index-modal-backdrop:1050;
--z-index-modal:1055;
--z-index-popover:1070;
--z-index-tooltip:1080;
--avatar-size:1;
--badge-size:1;
--btn-size:1;
--toggle-size:1;
--popover-space:1;
--visual-aside-size:1;
--visual-indicator-size:1;
}
@layer base{
*,
*::before,
*::after{
box-sizing:border-box;
margin:0;
padding:0;
}
*:focus-visible{
outline:var(--focus-outline);
}
*:where([type="radio"], [type="range"]):focus-visible{
outline:none;
}
html{
font:var(--font);
-webkit-text-size-adjust:100%;
&:has(dialog[open], dialog[popover]:popover-open){
overflow:hidden;
}
}
body{
accent-color:var(--accent-color);
color:var(--font-color);
background:var(--bg-color);
letter-spacing:var(--letter-spacing);
line-height:var(--line-height);
}
main{
display:block;
}
h1,
h2,
h3,
h4,
h5,
h6{
font:var(--h--font-weight) 4rem / var(--h--line-height) var(--h--font-family);
letter-spacing:var(--h--letter-spacing);
color:var(--h--color);
margin:2.5rem 0 1.25rem;
}
h1{
font-size:clamp(2.799rem, calc(2.799rem + 0.125vw), 3.799rem);
}
h2{
font-size:clamp(2.332rem, calc(2.332rem + 0.125vw), 3.332rem);
}
h3{
font-size:clamp(1.944rem, calc(1.944rem + 0.125vw), 2.944rem);
}
h4{
font-size:clamp(1.62rem, calc(1.62rem + 0.125vw), 2.62rem);
}
h5{
font-size:clamp(1.35rem, calc(1.35rem + 0.125vw), 2.35rem);
}
h6{
font-size:clamp(1.125rem, calc(1.125rem + 0.125vw), 2.125rem);
}
blockquote{
--data-quoter-marker:attr(data-quoter-marker, "\2014 \00A0");
border-width:var(--blockquote--border-width);
border-style:var(--blockquote--border-style);
border-color:var(--blockquote--border-color);
padding:1rem;
margin:0 0 0 1rem;
:where(&) footer{
color:var(--blockquote_--footer--color);
margin:var(--blockquote_--footer--margin);
}
:where(&) footer:before{
content:var(--data-quoter-marker);
}
}
ul,
ol{
padding:0 0 0 1.25em;
}
fieldset{
border:var(--boundary--border);
padding:0.5rem;
:where(&) > label{
margin:0 1rem 0 0;
}
}
legend{
color:inherit;
display:table;
padding:0;
white-space:normal;
}
details{
display:block;
}
summary{
cursor:pointer;
display:list-item;
}
dt{
font-weight:bold;
}
pre{
color:var(--pre--color);
background:var(--pre--background);
border:var(--pre--border);
padding:1rem;
overflow:auto;
}
hr{
border:var(--boundary--border);
border-width:0 0 1px;
box-sizing:content-box;
color:inherit;
overflow:visible;
margin:0.5rem 0;
}
a{
display:inline-block;
&:focus,
&:hover{
filter:brightness(105%);
}
&:visited{
color:var(--href--visited-color);
}
}
[href]{
color:var(--href--color);
}
abbr[title]{
border-bottom:none;
-webkit-text-decoration:underline dotted;
text-decoration:underline dotted;
}
audio,
video{
display:inline-block;
}
audio:not([controls]){
display:none;
}
b,
strong{
font-weight:bold;
}
code,
kbd,
samp{
font:normal var(--cks--font-weight) var(--cks--font-size) var(--cks--font-family);
font-optical-sizing:auto;
}
code{
color:var(--code--color);
background:var(--code--background);
}
kbd{
color:var(--kbd--color);
background:var(--kbd--background);
border-radius:var(--kbd--border-radius);
&:has(kbd){
background-color:unset;
border:var(--kbd_-kbd--border);
border-width:var(--kbd_-kbd--border-width);
padding:var(--kbd_-kbd--padding);
}
kbd{
font-weight:var(--kbd_-kbd--font-weight);
color:var(--kbd_-kbd--color);
background-color:unset;
}
}
small{
font-size:80%;
}
sub,
sup{
font-size:75%;
line-height:0;
position:relative;
vertical-align:baseline;
}
sub{
bottom:-0.25em;
}
sup{
top:-0.5em;
}
img{
border:none;
max-height:90vh;
max-width:90vw;
display:inline-block;
}
figure{
:where(&) img{
margin:auto auto 0.5rem;
line-height:1;
}
}
figcaption{
font-size:0.875em;
}
button,
input,
optgroup,
option,
select,
textarea{
color:var(--controls--font-color);
font:var(--font-weight) var(--font-size)/var(--line-height) var(--font-family);
}
button,
input,
optgroup,
select,
textarea{
border:var(--controls--border);
margin:0;
min-height:var(--controls--min-height);
padding:var(--controls--padding);
}
button,
input,
select{
text-transform:none;
}
button,
[type="button"],
[type="reset"],
[type="submit"],
.btn{
cursor:pointer;
font:var(--btn--font);
line-height:var(--btn--line-height);
color:var(--btn--font-color,);
background-color:var(--btn--bg-color, revert);
border:0 var(--btn--border-style) var(--btn--border-color, initial);
border-width:var(--btn--borders-width, 1px);
border-radius:var(--btn--borders-radius);
box-shadow:var(--btn--shadow,);
min-height:var(--controls--min-height);
position:relative;
padding:var(--btn--paddings);
text-align:center;
text-decoration:none;
vertical-align:middle;
overflow:visible;
-webkit-appearance:button;
-moz-appearance:button;
appearance:button;
-webkit-user-select:none;
-moz-user-select:none;
user-select:none;
:where(&:active):not(:disabled){
transform:translateY(1px);
box-shadow:none;
}
&:disabled{
color:revert;
}
&:focus-visible{
box-shadow:none;
}
}
input{
overflow:visible;
}
[type="color"]{
cursor:pointer;
background:inherit;
padding:0.25em;
min-height:2rem;
}
[type="checkbox"],
[type="radio"]{
min-height:initial;
padding:0;
}
[type="date"],
[type="datetime-local"],
[type="month"],
[type="week"],
[type="time"]{
padding:0.125em 0.25em;
}
[type="number"]::-webkit-inner-spin-button,
[type="number"]::-webkit-outer-spin-button{
height:auto;
}
[type="search"]{
-webkit-appearance:textfield;
appearance:textfield;
}
[type="search"]::-webkit-search-decoration{
-webkit-appearance:none;
}
[type="file"]{
padding:0 0.125em 0 0;
}
::file-selector-button{
-webkit-appearance:button;
font:inherit;
padding:0.125em 0.25em;
margin:-1px 0.125em -1px -1px;
}
progress{
display:inline-block;
vertical-align:baseline;
}
select{
min-width:1.7em;
}
select optgroup{
border:none;
}
optgroup{
color:var(--font-color-alt-1);
padding:0.125em;
}
option{
margin:0 0 0 .5em;
padding:0.25em 0.25em 0.125em;
}
textarea{
overflow:auto;
vertical-align:top;
}
svg:not(:root){
overflow:hidden;
}
table{
text-indent:0;
border-color:inherit;
}
th{
color:var(--font-color-alt-1);
}
td{
padding:0.5em;
}
dialog,
[popover]{
pointer-events:none;
color:inherit;
background:var(--bg-color);
border:none;
opacity:0;
box-shadow:var(--shadow-float);
position:fixed;
inset:50% auto auto 50%;
display:none;
padding:1rem;
text-align:initial;
overflow:visible;
z-index:1000;
transform:translate(-50%, -50%) scale(0.85);
transition:opacity 350ms ease-in-out, transform 350ms ease-in-out, overlay 350ms allow-discrete, display 350ms allow-discrete;
}
dialog{
min-height:5rem;
height:var(--dialog--height, auto);
max-height:calc(100vh - 4rem);
min-width:clamp(280px, 100vw - 4rem, 400px);
width:var(--dialog--width, auto);
max-width:clamp(280px, 100vw - 4rem, 1160px);
}
[popover]{
height:var(--popover--height, auto);
max-height:calc(100vh - 2rem);
width:var(--popover--width, auto);
max-width:clamp(4rem, 100vw - 2rem, 1200px);
}
dialog[open],
[popover]:popover-open{
pointer-events:initial;
opacity:1;
display:block;
transform:translate(-50%, -50%) scale(1);
@starting-style{
opacity:0;
transform:translate(-50%, -50%) scale(0.85);
}
}
dialog::backdrop,
[popover]::backdrop{
background:var(--backdrop--bg-color);
backdrop-filter:blur(0.5rem);
}
template{
display:none;
}
input,
textarea,
select,
[type="color"]{
background:var(--input--bg-color);
}
[type="checkbox"],
[type="file"],
[type="radio"],
[type="range"]{
cursor:pointer;
}
[type="range"]:focus-visible::-webkit-slider-thumb{
border-radius:50%;
outline:var(--focus-outline);
height:0.8em;
width:0.8em;
}
[type="radio"]:focus-visible{
box-shadow:var(--focus--box-shadow);
}
[disabled]{
cursor:not-allowed;
filter:contrast(.5);
}
[hidden]{
display:none;
}
:where(
dl,
ol,
ul,
fieldset,
p,
details,
pre,
form,
address,
blockquote,
figure,
table
):has(
+ :is(
dl,
ol,
ul,
fieldset,
p,
details,
pre,
form,
address,
blockquote,
figure,
table,
nav
)
){
margin-bottom:var(--elements-block-level-space);
}
input,
select,
textarea,
audio,
video,
details,
button,
[type="button"],
[type="reset"],
[type="submit"],
.btn{
margin:0.25rem;
}
@-moz-document url-prefix(){
button,
[type="button"],
[type="reset"],
[type="submit"],
.btn{
padding:var(--moz-btn-paddings);
}
textarea,
[type="email"],
[type="number"],
[type="password"],
[type="search"],
[type="tel"],
[type="text"],
[type="url"],
[type="date"],
[type="datetime"],
[type="datetime-local"],
[type="month"],
[type="week"],
[type="time"]{
padding:var(--moz-input--paddings);
}
select{
min-width:1.5em;
padding:var(--moz-input--select-paddings);
&:focus{
outline:var(--focus-outline);
}
}
input[type=range]{
background:transparent;
border:none;
&:active{
filter:brightness(120%);
}
&::-moz-range-thumb{
background:var(--accent-color);
border:none;
height:1rem;
width:1rem;
}
&:focus-visible::-moz-range-thumb{
outline:var(--focus-outline);
}
&::-moz-range-track{
cursor:pointer;
background:var(--accent-color);
border-radius:.25rem;
height:.5rem;
}
}
}
}
@layer base{
}
@layer ui{
.avatar{
font:300 calc(var(--avatar--font-size, .75rem) * var(--avatar-size)) var(--font-family);
background:var(--color-base-6);
border-radius:.125em;
height:var(--avatar--height, 2em);
width:var(--avatar--width, 2em);
position:relative;
display:inline-block;
text-align:center;
}
[data-avatar-name]::before{
content:attr(data-avatar-name);
font-size:.5em;
width:80%;
position:absolute;
inset:50% auto auto 50%;
translate:-50% -50%;
overflow:hidden;
}
.avatar__img{
border-radius:inherit;
height:100%;
width:100%;
position:absolute;
inset:0 auto auto 0;
z-index:1;
}
.avatar__figure:not(img){
border-radius:inherit;
position:absolute;
inset:50% auto auto 50%;
display:block;
translate:-50% -50%;
z-index:1;
}
.avatar__indicator{
background:var(--bg-color-off);
border-radius:50%;
box-shadow:0 0 0 1px var(--color-base-5);
height:var(--avatar__indicator--height, .65em);
width:var(--avatar__indicator--width, .65em);
position:absolute;
inset:0 -.25em auto auto;
text-align:center;
z-index:1;
}
.avatar--circle{
border-radius:50%;
.avatar__indicator{
inset:0 0 auto auto;
translate:0;
}
}
.badge{
user-select:none;
font:normal normal calc(var(--badge--font-size, .9rem) * var(--badge-size)) / 1 var(--font-family);
color:var(--badge--color, var(--color-base-50));
background:var(--badge--bg-color, var(--color-base-6));
border:0 var(--badge--border-style, solid) var(--badge--border-color, var(--border-color-boundary));
border-width:var(--badge--borders-width, 1px);
border-radius:var(--badge--borders-radius, 1rem);
white-space:nowrap;
min-height:var(--badge--min-height, .75rem);
min-width:var(--badge--min-width, .75rem);
display:inline-block;
margin:0;
padding:.125rem .5rem .25rem;
display:inline-flex;
align-items:baseline;
a&{
text-decoration:none;
}
}
.badge--accent{
color:white;
background:var(--accent-color);
border-color:var(--accent-color);
}
.badge--low{
background:var(--color-low-10);
border-color:var(--color-low-20);
}
.badge--normal{
background:var(--color-normal-10);
border-color:var(--color-normal-20);
}
.badge--important{
background:var(--color-important-10);
border-color:var(--color-important-20);
}
.badge--critical{
background:var(--color-critical-10);
border-color:var(--color-critical-20);
}
.badge--success{
background:var(--color-success-10);
border-color:var(--color-success-20);
}
.badge--info{
background:var(--color-info-10);
border-color:var(--color-info-20);
}
.badge--caution{
background:var(--color-caution-10);
border-color:var(--color-caution-20);
}
.badge--warning{
background:var(--color-warning-10);
border-color:var(--color-warning-20);
}
.badge--error{
background:var(--color-error-10);
border-color:var(--color-error-20);
}
.badge--danger{
color:var(--color-danger-70);
background:var(--color-danger-10);
border-color:var(--color-danger-20);
}
.badge--chip{
background:var(--bg-color);
border:1px solid currentColor;
border-radius:.25rem;
transition:color 200ms ease-out, background 200ms ease-out, border 200ms ease-out;
:where(&) .btn--icon{
color:inherit;
}
&:where(.badge--accent){
color:var(--accent-color);
}
&:where(.badge--low){
color:var(--color-low-50);
}
&:where(.badge--normal){
color:var(--color-normal-50);
}
&:where(.badge--important){
color:var(--color-important-50);
}
&:where(.badge--critical){
color:var(--color-critical-50);
}
&:where(.badge--success){
color:var(--color-success-50);
}
&:where(.badge--info){
color:var(--color-info-50);
}
&:where(.badge--caution){
color:var(--color-caution-50);
}
&:where(.badge--warning){
color:var(--color-warning-50);
}
&:where(.badge--error){
color:var(--color-error-50);
}
&:where(.badge--danger){
color:var(--color-danger-50);
}
}
.btn{
--btn--font-size:calc(var(--btn--font-size, 1rem) * var(--btn-size));
transition:color 500ms ease-out, background 500ms ease-out, border 500ms ease-out;
}
.btn:not(:where(button, [type="button"], [type="reset"], [type="submit"])){
padding:var(--as-btn--paddings, .21lh 1em .26lh);
}
.btn--icon{
background:none;
border:none;
border-radius:50%;
line-height:1;
min-height:auto;
margin:0;
padding:0;
box-shadow:none;
&:focus,
&:hover{
scale:1.1;
}
&:hover{
box-shadow:none;
}
.badge &{
translate:0 .125em;
}
}
.btn--accent, .btn--low, .btn--normal, .btn--important, .btn--critical, .btn--success, .btn--info, .btn--caution, .btn--warning, .btn--error, .btn--danger{
&:not(:disabled):focus,
&:not(:disabled):hover{
filter:brightness(105%);
}
&:not(:disabled):active{
filter:brightness(110%);
}
}
.btn--accent{
color:white;
background:var(--accent-color);
border-color:var(--accent-color);
}
.btn--low{
background:var(--color-low-30);
border-color:var(--color-low-40);
}
.btn--normal{
background:var(--color-normal-30);
border-color:var(--color-normal-40);
}
.btn--important{
background:var(--color-important-30);
border-color:var(--color-important-40);
}
.btn--critical{
background:var(--color-critical-30);
border-color:var(--color-critical-40);
}
.btn--success{
background:var(--color-success-30);
border-color:var(--color-success-40);
}
.btn--info{
background:var(--color-info-30);
border-color:var(--color-info-40);
}
.btn--caution{
background:var(--color-caution-30);
border-color:var(--color-caution-40);
}
.btn--warning{
background:var(--color-warning-30);
border-color:var(--color-warning-40);
}
.btn--error{
background:var(--color-error-30);
border-color:var(--color-error-40);
}
.btn--danger{
background:var(--color-danger-30);
border-color:var(--color-danger-40);
}
.btn--ghost{
background:oklch(from var(--accent-color) l c h / .05);
border:0;
box-shadow:none;
text-decoration:underline 2px dotted var(--color-base-9);
&:focus{
text-decoration-style:solid;
}
&:active{
background:oklch(from var(--accent-color) l c h / .25);
}
}
.btn--bordered{
background:revert-layer;
border-color:currentColor;
:where(&).btn--accent{
color:var(--accent-color);
}
:where(&).btn--low{
color:var(--color-low-50);
}
:where(&).btn--normal{
color:var(--color-normal-50);
}
:where(&).btn--important{
color:var(--color-important-50);
}
:where(&).btn--critical{
color:var(--color-critical-50);
}
:where(&).btn--success{
color:var(--color-success-50);
}
:where(&).btn--info{
color:var(--color-info-50);
}
:where(&).btn--caution{
color:var(--color-caution-50);
}
:where(&).btn--warning{
color:var(--color-warning-50);
}
:where(&).btn--error{
color:var(--color-error-50);
}
:where(&).btn--danger{
color:var(--color-danger-50);
}
}
[be-removeable]{
user-select:none;
display:inline-flex;
align-items:flex-end;
opacity:1;
transition:opacity 350ms linear, display 350ms allow-discrete, scale 200ms linear;
:where(&) > .btn{
margin:auto auto auto .75em;
}
&:has([data-state-handler]:not(:checked)){
scale:85%;
opacity:0;
display:none;
}
&:has([data-state-handler]:focus-visible){
outline:var(--focus-outline);
}
}
[be-switchable]{
user-select:none;
cursor:pointer;
color:var(--font-color-alt-2);
border-color:var(--border-color-control);
:where(&) > .visual-indicator{
margin:0 .5em 0 0;
overflow:clip;
transition:opacity 350ms ease-out, width 200ms ease-out, margin 200ms ease-out;
}
&:has([data-state-handler]:focus-visible){
outline:var(--focus-outline);
}
}
[selected], :has(> [data-state-handler]:checked){
[be-switchable]:not(&){
.active-visible{
opacity:0;
width:0;
margin:0;
}
}
[be-switchable]:is(&){
color:white;
background:var(--accent-color);
border-color:var(--accent-color);
.active-invisible{
opacity:0;
width:0;
margin:0;
}
}
}
.toggle{
display:inline-flex;
align-items:baseline;
&:has(:is([data-toggle-handler-on], [data-toggle-handler-off-on]):not(:checked)) .active-visible,
&:has([data-toggle-handler-off]:not(:checked)) .active-invisible{
display:none;
}
}
.toggle__control{
--the-size:var(--toggle-size, 1);
align-self:center;
border:none;
height:calc(.75em * var(--the-size));
width:calc(1.5em * var(--the-size));
position:relative;
display:flex;
margin:0 .5em;
padding:0;
& > label{
cursor:pointer;
height:inherit;
width:inherit;
position:absolute;
display:block;
z-index:1;
&:has(:is([data-toggle-handler-off], [data-toggle-handler-on]):checked){
opacity:0;
height:0;
width:0;
z-index:-1;
}
}
&:has([data-toggle-handler-off]:focus-visible, [data-toggle-handler-on]:focus-visible, [data-toggle-handler-off-on]:focus-visible)::after{
outline:var(--focus-outline);
}
&:has(:is([data-toggle-handler-on], [data-toggle-handler-off-on]):checked)::after{
inset:0 0 auto auto;
}
&:has(:is([data-toggle-handler-off], [data-toggle-handler-on], [data-toggle-handler-off-on]):disabled) > label{
cursor:not-allowed;
}
&::before,
&::after{
content:"";
position:absolute;
display:block;
}
&::before{
background:var(--bg-color-off);
border:var(--controls--border);
border-radius:calc(1em * var(--the-size));
height:calc(.5em * var(--the-size));
width:100%;
transition:background 200ms ease-in-out;
transform:translate(0, 25%);
}
&::after{
background:var(--bg-color-clickable);
border:var(--controls--border);
border-radius:50%;
box-shadow:none;
height:calc(.75em * var(--the-size));
width:calc(.75em * var(--the-size));
position:absolute;
inset:0 calc(100% - calc(.75em * var(--the-size))) auto auto;
transition:inset 200ms ease-in-out;
}
}
.toggle__control:has(:is([data-toggle-handler-on], [data-toggle-handler-off-on]):checked),
.toggle:is(.toggle--mutual) .toggle__control{
&::before{
background:var(--color-base-5);
}
&::after{
background:var(--accent-color);
}
}
.toggle--vertical{
display:inline-flex;
flex-flow:column-reverse;
> .toggle__control{
margin:.5em 0;
transform:rotate(270deg);
}
}
.divider{
align-self:stretch;
border-color:var(--border-color-boundary);
margin:.75rem .5rem;
position:relative;
inset:0;
height:auto;
}
[be-divider-caption]::after{
content:attr(be-divider-caption, 'or');
font-size:.8rem;
color:var(--font-color-alt-2);
background:var(--bg-color);
position:absolute;
inset:auto auto auto 50%;
padding:0;
translate:-50% -50%;
padding:.125rem .5rem;
}
.divider--vertical{
border-width:0 1px 0 0;
margin:.5rem 1rem;
:where(&)[be-divider-caption]::after{
inset:50% auto auto;
}
}
.img--fluid{
height:auto;
width:100%;
max-width:100%;
max-width:-webkit-fill-available;
display:block;
}
.img--thumbnail{
background:var(--bg-color);
border:var(--boundary--border);
border-radius:0.375rem;
height:auto;
width:100%;
max-width:100%;
max-width:-webkit-fill-available;
display:block;
padding:0.25em;
}
.img--fit-cover{
object-fit:cover;
}
.img--fit-contain{
object-fit:contain;
}
.video--fluid{
height:auto;
width:100%;
max-width:100%;
position:relative;
display:block;
padding:0;
overflow:hidden;
}
.video--fluid::before{
content:none;
}
.video--scale-4-3::before{
padding-bottom:75%;
}
.video--scale-1-1::before{
padding-bottom:100%;
}
.navbar{
display:flex;
flex-flow:row wrap;
align-items:center;
& a{
text-decoration:none;
}
> .nav > .nav__item > .nav{
filter:var(--shadow-float-alt-1);
}
.navbar__toggle,
.active-visible,
.active-invisible{
border-radius:50%;
display:none;
z-index:1;
}
&:has([data-toggle-navbar-handler]:checked){
.active-invisible{
display:none;
}
.active-visible{
display:block;
}
}
}
.navbar__brand{
display:inline-block;
}
.navbar__toggle{
cursor:pointer;
padding:.5rem;
box-shadow:none;
&:is(:focus, :focus-within){
outline:var(--focus-outline);
}
}
.nav{
background:var(--bg-color);
width:max-content;
display:inline-flex;
flex-flow:row wrap;
margin:0;
padding:0;
list-style:none;
.nav{
background:var(--bg-color);
position:absolute;
inset:100% auto auto 0;
display:none;
flex-flow:column nowrap;
margin:0;
padding:0;
transform:translateY(-.25rem);
z-index:var(--z-index-popover);
transition:display 200ms allow-discrete, transform 200ms ease-in-out;
.nav{
inset:0 auto auto 100%;
}
}
}
.nav__item-line::before{
content:"";
border:var(--boundary--border);
border-width:0 0 1px;
height:0;
display:block;
padding:0;
}
.nav__item{
flex:0 0 auto;
position:relative;
padding:.5rem 1rem;
&:has(.nav) > a::after{
content:"";
position:relative;
display:inline-block;
margin:auto auto auto 1em;
border-right:.25em solid transparent;
border-bottom:.25em solid currentColor;
border-left:.25em solid transparent;
inset:auto auto .25em auto;
transition:transform 350ms ease-in-out;
}
&:hover{
background-color:var(--bg-color-active);
& > a::after{
transform:scaleY(-1);
transform-origin:center;
}
}
> .visual-indicator,
> * > .visual-indicator{
margin:0 0 0 1em;
padding:0;
transform:rotate(90deg) scaleX(-1);
transition:transform 350ms ease-in-out;
}
&:is(:hover, :focus, :focus-within){
> .visual-indicator,
> * > .visual-indicator{
transform:rotate(90deg) scaleX(1);
}
> .nav{
display:inline-flex;
transform:translateY(0);
@starting-style{
transform:translateY(-.25rem);
}
}
}
}
.navbar--no-indicator .nav__item > a::after{
display:none;
}
.navbar--vertical{
flex-flow:column;
align-items:initial;
.navbar__brand{
padding:.5rem 1rem;
}
.nav{
inset:0 auto auto 100%;
flex-flow:column;
}
}
.navbar--compact{
justify-content:space-between;
.navbar__toggle,
.active-invisible{
display:block;
}
> .nav{
display:none;
overflow:hidden;
transition:display 200ms allow-discrete, margin-top 200ms ease-in-out;
> .nav__item > .nav{
filter:none;
}
> .nav__item:first-child{
margin-top:-110%;
transition:margin-top 350ms ease-in-out;
}
}
.nav{
background:transparent;
position:static;
width:100%;
.nav{
width:calc(100% + 2rem);
display:none;
margin:.5rem -1rem -.5rem -1rem;
padding:0 0 0 1rem;
transition:none;
}
}
.nav__item{
.nav__item:first-child{
margin:0;
}
.nav__item:last-child{
padding:.5rem 1rem;
}
&:hover{
filter:brightness(98%);
}
}
.nav__item:is(:focus, :focus-within),
&:not(.navbar--no-hover) .nav__item:hover{
> .nav{
display:block;
}
}
:where(&).navbar--compact-expand,
&:has([data-toggle-navbar-handler]:checked){
> .nav{
display:block;
> .nav__item:first-child{
margin-top:0;
@starting-style{
margin-top:-110%;
}
}
}
}
}
.navbar--breadcrumb{
--breadcrumb-divider:attr(be-breadcrumb-divider, '/');
.navbar__brand::after,
> .nav > .nav__item:not(:last-child)::after{
content:var(--breadcrumb-divider);
color:var(--font-color-alt-2);
margin:0 .5em;
}
> .nav > .nav__item{
padding:0;
&:hover{
background:inherit;
}
}
}
.steps{
display:grid;
grid:max-content min-content / auto-flow 200px;
gap:1rem;
list-style:none;
}
.step{
grid-area:span 2 / auto;
grid:subgrid [row-1-start] [row-1-end row-2-start] [row-2end] / subgrid [col];
display:grid;
text-align:center;
}
.step__header{
display:flex;
margin:.5rem;
}
.step__trail{
position:relative;
width:100%;
display:flex;
align-items:center;
justify-content:center;
&::before,
&::after{
content:"";
background:var(--bg-color-off);
position:absolute;
z-index:-1;
}
:where(.step:not(:last-child)) &::after{
height:1px;
width:calc(100% + 2rem);
transform:translate(50%, 0);
}
}
.step__indicator{
background:var(--bg-color-off);
border:0 var(--step__indicator--border-style) var(--step__indicator--border-color, var(--bg-color));
border-width:var(--step__indicator--borders-width, 0);
border-radius:50%;
min-height:.5rem;
min-width:.5rem;
display:inline-flex;
&:has(.visual-aside, .visual-indicator){
padding:.25rem;
}
.visual-aside,
.visual-indicator{
translate:0;
}
}
.step__body{
color:var(--step__body--color, var(--font-color-alt-2));
padding:.5rem;
}
.steps--vertical{
grid:auto-flow min-content / min-content minmax(auto, 1fr);
.step{
grid-area:auto / span 2;
text-align:left;
}
.step__header{
justify-content:center;
}
.step__trail{
margin-top:.25lh;
align-items:baseline;
justify-content:center;
.step:not(:last-child) &::after{
height:calc(100% + 2.5rem);
width:1px;
transform:none;
}
}
}
.step--active{
.step:has(~ &){
.step__trail{
&::before, &::after{
background:var(--accent-color);
}
}
.step__indicator{
background:var(--accent-color);
min-height:.75rem;
min-width:.75rem;
}
.step__body{
color:revert-layer;
}
}
.step__trail::before{
background:var(--accent-color);
}
.step__indicator{
background:var(--bg-color);
border:0 var(--step--active__-step__indicator--border-style, solid) var(--accent-color);
border-width:var(--step--active__-step__indicator--border-width, .125rem);
min-height:.75rem;
min-width:.75rem;
}
.step__body{
color:revert-layer;
}
}
.steps--done{
.step__trail{
&::before, &::after{
background:var(--accent-color);
}
}
.step__indicator:not(:has(.visual-aside, .visual-indicator)){
background:var(--accent-color);
min-height:.75rem;
min-width:.75rem;
}
.step__body{
color:revert-layer;
}
}
.tabs{
display:flex;
flex-flow:column nowrap;
filter:var(--shadow-border);
margin:auto auto 1rem;
}
.tabs__nav{
border:0 var(--tabs__nav--border-style, solid) var(--tabs__nav--border-color, var(--border-color-boundary));
border-width:0;
display:flex;
}
.tab__nav{
cursor:pointer;
background:var(--bg-color-clickable);
border:var(--boundary--border);
border-width:1px 1px 0;
border-radius:.125rem .125rem 0 0;
position:relative;
padding:.25rem .75rem;
box-shadow:none;
&:is(&:focus, &:focus-within){
text-decoration:underline 2px dashed var(--color-base-9);
box-shadow:none;
outline:none;
scale:none;
}
}
.tab__nav[data-tab-active],
.tab__nav:has([data-tab-select-handler]:checked){
background:var(--bg-color);
z-index:100;
}
.tabs__content{
background:var(--bg-color);
border:var(--boundary--border);
border-width:1px;
position:relative;
margin:-1px 0 0;
padding:1rem;
z-index:99;
}
.tab__content{
border:0 solid var(--border-color-boundary);
display:none;
}
.tab__content[data-tab-active],
.tabs:has(.tab__nav:nth-child(1) [data-tab-select-handler]:checked)
.tab__content:nth-child(1),
.tabs:has(.tab__nav:nth-child(2) [data-tab-select-handler]:checked)
.tab__content:nth-child(2),
.tabs:has(.tab__nav:nth-child(3) [data-tab-select-handler]:checked)
.tab__content:nth-child(3),
.tabs:has(.tab__nav:nth-child(4) [data-tab-select-handler]:checked)
.tab__content:nth-child(4),
.tabs:has(.tab__nav:nth-child(5) [data-tab-select-handler]:checked)
.tab__content:nth-child(5),
.tabs:has(.tab__nav:nth-child(6) [data-tab-select-handler]:checked)
.tab__content:nth-child(6),
.tabs:has(.tab__nav:nth-child(7) [data-tab-select-handler]:checked)
.tab__content:nth-child(7),
.tabs:has(.tab__nav:nth-child(8) [data-tab-select-handler]:checked)
.tab__content:nth-child(8),
.tabs:has(.tab__nav:nth-child(9) [data-tab-select-handler]:checked)
.tab__content:nth-child(9),
.tabs:has(.tab__nav:nth-child(10) [data-tab-select-handler]:checked)
.tab__content:nth-child(10),
.tabs:has(.tab__nav:nth-child(11) [data-tab-select-handler]:checked)
.tab__content:nth-child(11),
.tabs:has(.tab__nav:nth-child(12) [data-tab-select-handler]:checked)
.tab__content:nth-child(12),
.tabs:has(.tab__nav:nth-child(13) [data-tab-select-handler]:checked)
.tab__content:nth-child(13),
.tabs:has(.tab__nav:nth-child(14) [data-tab-select-handler]:checked)
.tab__content:nth-child(14),
.tabs:has(.tab__nav:nth-child(15) [data-tab-select-handler]:checked)
.tab__content:nth-child(15){
display:block;
}
.tabs--right{
flex-flow:row-reverse nowrap;
.tabs__nav{
flex:0 0 auto;
flex-flow:column;
}
.tab__nav{
border-width:1px 1px 0 0;
border-radius:0 .125rem .125rem 0;
&:last-child{
border-width:1px 1px 1px 0;
}
}
.tabs__content{
flex:1 0 auto;
margin:0 -1px 0 0;
}
}
.tabs--bottom{
flex-flow:column-reverse nowrap;
.tabs__nav{
flex:0 0 auto;
flex-flow:row;
}
.tab__nav{
border-width:0 0 1px 1px;
border-radius:0 0 .125rem .125rem;
&:last-child{
border-width:0 1px 1px 1px;
}
}
.tabs__content{
flex:1 0 auto;
margin:0 0 -1px 0;
}
}
.tabs--left{
flex-flow:row nowrap;
.tabs__nav{
flex:0 0 auto;
flex-flow:column;
}
.tab__nav{
border-width:1px 0 0 1px;
border-radius:.125rem 0 0 .125rem;
&:last-child{
border-width:1px 0 1px 1px;
}
}
.tabs__content{
flex:1 0 auto;
margin:0 0 0 -1px;
}
}
[be-tooltip]{
&::before{
content:"";
border-left:.4rem solid transparent;
border-right:.4rem solid transparent;
border-bottom:.4rem solid var(--bg-color-text);
position:absolute;
inset:0 auto auto 50%;
opacity:0;
transform:scaleY(-1) translateX(-50%);
z-index:1;
transition:opacity 200ms ease-in-out, inset 200ms ease-in-out;
}
&:is(.tooltip--active)::before,
&:is(.tooltip--focus):focus::before,
&:hover::before{
inset:-.5rem auto auto 50%;
opacity:1;
}
&::after{
pointer-events:none;
font-size:.7rem;
color:revert-layer;
background:var(--bg-color-text);
border-radius:.125rem;
opacity:0;
max-width:clamp(200px, 100vw - 1.5rem, 50rem);
position:absolute;
inset:auto auto 100% 50%;
display:block;
overflow:hidden;
padding:.25rem .5rem;
content:attr(be-tooltip);
white-space:pre;
text-overflow:ellipsis;
transform:translateX(-50%);
z-index:var(--z-index-tooltip);
transition:opacity 200ms ease-in-out, inset 200ms ease-in-out;
}
&:is(.tooltip--active)::after,
&:is(.tooltip--focus):focus::after,
&:hover::after{
inset:auto auto calc(100% + .5rem) 50%;
opacity:1;
}
&:disabled{
pointer-events:auto;
}
}
.tooltip--right{
&::before{
inset:50% auto auto calc(100% - .5rem);
transform:rotate(-90deg);
translate:0 -50%;
}
&:is(.tooltip--active)::before,
&:is(.tooltip--focus):focus::before,
&:hover::before{
inset:50% auto auto 100%;
}
&::after{
inset:50% auto auto 100%;
transform:translateY(-50%);
}
&:is(.tooltip--active)::after,
&:is(.tooltip--focus):focus::after,
&:hover::after{
inset:50% auto auto calc(100% + .55rem);
}
}
.tooltip--bottom{
&::before{
inset:auto auto 0 50%;
transform:rotate(0deg) translateX(-50%);
}
&:is(.tooltip--active)::before,
&:is(.tooltip--focus):focus::before,
&:hover::before{
inset:auto auto -.5rem 50%;
}
&::after{
inset:100% auto auto 50%;
transform:translateX(-50%);
}
&:is(.tooltip--active)::after,
&:is(.tooltip--focus):focus::after,
&:hover::after{
inset:calc(100% + .5rem) auto auto 50%;
}
}
.tooltip--left{
&::before{
inset:50% calc(100% - .5rem) auto auto;
transform:rotate(90deg);
translate:0 -50%;
}
&:is(.tooltip--active)::before,
&:is(.tooltip--focus):focus::before,
&:hover::before{
inset:50% 100% auto auto;
}
&::after{
inset:50% 100% auto auto;
transform:translateY(-50%);
}
&:is(.tooltip--active)::after,
&:is(.tooltip--focus):focus::after,
&:hover::after{
inset:50% calc(100% + .55rem) auto auto;
}
}
.tooltip--no-pointer{
&::before{
display:none;
}
&:hover::after{
translate:0 .25rem;
}
&:is(.tooltip--right):hover::after{
translate:-.25rem;
}
&:is(.tooltip--bottom):hover::after{
translate:0 -.25rem;
}
&:is(.tooltip--left):hover::after{
translate:.25rem;
}
}
.dialog{
color:var(--dialog--font-color, revert-layer);
background:var(--dialog--bg-color, var(--bg-color));
border:0 var(--dialog--border-style, solid) var(--dialog--border-color, var(--border-color-light));
border-width:va