@kahi-ui/framework
Version:
Straight-forward Svelte UI for the Web
1,134 lines • 453 kB
CSS
/*!
* @kahi-ui/framework v0.6.4
*
* https://github.com/novacbn/kahi-ui.git
*/
*,
::before,
::after {
-webkit-box-sizing: border-box;
box-sizing: border-box;
border-width: 0;
border-style: solid;
border-color: currentColor;
}
:root {
-moz-tab-size: 4;
-o-tab-size: 4;
tab-size: 4;
}
:-moz-focusring {
outline: 1px dotted ButtonText;
}
:-moz-ui-invalid {
box-shadow: none;
}
::moz-focus-inner {
border-style: none;
padding: 0;
}
::-webkit-inner-spin-button,
::-webkit-outer-spin-button {
height: auto;
}
::-webkit-search-decoration {
-webkit-appearance: none;
}
::-webkit-file-upload-button {
-webkit-appearance: button;
font: inherit;
}
[type=search] {
-webkit-appearance: textfield;
outline-offset: -2px;
}
abbr[title] {
-webkit-text-decoration: underline dotted;
text-decoration: underline dotted;
}
body {
margin: 0;
font-family: inherit;
line-height: inherit;
}
html {
-webkit-text-size-adjust: 100%;
font-family:
ui-sans-serif,
system-ui,
-apple-system,
BlinkMacSystemFont,
"Segoe UI",
Roboto,
"Helvetica Neue",
Arial,
"Noto Sans",
sans-serif,
"Apple Color Emoji",
"Segoe UI Emoji",
"Segoe UI Symbol",
"Noto Color Emoji";
line-height: 1.5;
}
a {
color: inherit;
text-decoration: inherit;
}
b,
strong {
font-weight: bolder;
}
button {
text-transform: none;
background-color: transparent;
background-image: none;
}
button,
[type=button],
[type=reset],
[type=submit] {
-webkit-appearance: button;
}
button:focus {
outline: 1px dotted;
outline: 5px auto -webkit-focus-ring-color;
}
button,
[role=button] {
cursor: pointer;
}
figure,
hr,
blockquote,
pre,
h6,
h5,
h4,
h3,
h2,
h1,
p {
margin: 0;
}
hr {
height: 0;
color: inherit;
border-top-width: 1px;
}
h6,
h5,
h4,
h3,
h2,
h1 {
font-size: inherit;
font-weight: inherit;
}
input,
button,
textarea {
font-family: inherit;
font-size: 100%;
line-height: 1.15;
margin: 0;
padding: 0;
line-height: inherit;
color: inherit;
}
img {
border-style: solid;
max-width: 100%;
height: auto;
}
input::placeholder {
opacity: 1;
color: #a1a1aa;
}
img,
svg {
display: block;
vertical-align: middle;
}
ol,
ul {
list-style: none;
margin: 0;
padding: 0;
}
pre,
code,
kbd,
samp {
font-size: 1em;
font-family:
ui-monospace,
SFMono-Regular,
Menlo,
Monaco,
Consolas,
"Liberation Mono",
"Courier New",
monospace;
}
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;
}
table {
text-indent: 0;
border-color: inherit;
border-collapse: collapse;
}
textarea {
resize: vertical;
}
textarea::placeholder {
opacity: 1;
color: #a1a1aa;
}
audio,
canvas,
embed,
img,
object,
svg,
video {
user-select: none;
}
audio,
canvas,
embed,
iframe,
img,
object,
svg,
video {
display: block;
}
img,
video {
height: auto;
max-width: 100%;
}
:root {
--palette-background-lightest: var(--palettes-auto-background-lightest);
--palette-background-lighter: var(--palettes-auto-background-lighter);
--palette-background-light: var(--palettes-auto-background-light);
--palette-background-normal: var(--palettes-auto-background-normal);
--palette-background-bold: var(--palettes-auto-background-bold);
--palette-background-bolder: var(--palettes-auto-background-bolder);
--palette-background-boldest: var(--palettes-auto-background-boldest);
--palette-foreground-lightest: var(--palettes-auto-foreground-lightest);
--palette-foreground-lighter: var(--palettes-auto-foreground-lighter);
--palette-foreground-light: var(--palettes-auto-foreground-light);
--palette-foreground-normal: var(--palettes-auto-foreground-normal);
--palette-foreground-bold: var(--palettes-auto-foreground-bold);
--palette-foreground-bolder: var(--palettes-auto-foreground-bolder);
--palette-foreground-boldest: var(--palettes-auto-foreground-boldest);
background-color: hsla(var(--palette-background-lighter), var(--document-background-opacity));
color: hsla(var(--palette-foreground-normal), var(--document-font-opacity));
font-family: var(--document-font-family);
line-height: var(--document-font-line-height);
font-size: var(--document-font-size);
transition: background-color var(--animations-visual-duration) var(--animations-visual-function), color var(--animations-visual-duration) var(--animations-visual-function);
}
::selection {
background-color: hsla(var(--palette-foreground-lighter), var(--document-background-opacity));
color: hsla(var(--palette-background-normal), var(--document-font-opacity));
}
* {
-webkit-tap-highlight-color: transparent;
scrollbar-width: var(--document-scrollbar-standard-size);
scrollbar-color: hsla(var(--palettes-dark-background-lightest), var(--document-scrollbar-thumb-background-opacity)) hsla(var(--palettes-auto-background-boldest), var(--document-scrollbar-track-background-opacity));
transition: scrollbar-color var(--animations-visual-duration) var(--animations-visual-function);
}
::-webkit-scrollbar {
width: calc(var(--document-scrollbar-webkit-size) + (var(--document-scrollbar-track-padding) * 1rem));
height: calc(var(--document-scrollbar-webkit-size) + (var(--document-scrollbar-track-padding) * 1rem));
}
::-webkit-scrollbar-track,
::-webkit-scrollbar-thumb {
border: calc(var(--document-scrollbar-track-padding) * 1rem) solid rgba(255, 255, 255, 0);
transition: background-color var(--animations-visual-duration) var(--animations-visual-function);
}
::-webkit-scrollbar-track {
background-color: hsla(var(--palettes-auto-background-boldest), var(--document-scrollbar-track-background-opacity));
}
::-webkit-scrollbar-thumb {
background-clip: padding-box;
background-color: hsla(var(--palettes-dark-background-lightest), var(--document-scrollbar-thumb-background-opacity));
}
.blockquote,
:where(.article) > blockquote {
--palette-background-lightest: var(--palettes-neutral-background-lightest);
--palette-background-lighter: var(--palettes-neutral-background-lighter);
--palette-background-light: var(--palettes-neutral-background-light);
--palette-background-normal: var(--palettes-neutral-background-normal);
--palette-background-bold: var(--palettes-neutral-background-bold);
--palette-background-bolder: var(--palettes-neutral-background-bolder);
--palette-background-boldest: var(--palettes-neutral-background-boldest);
--palette-foreground-lightest: var(--palettes-neutral-foreground-lightest);
--palette-foreground-lighter: var(--palettes-neutral-foreground-lighter);
--palette-foreground-light: var(--palettes-neutral-foreground-light);
--palette-foreground-normal: var(--palettes-neutral-foreground-normal);
--palette-foreground-bold: var(--palettes-neutral-foreground-bold);
--palette-foreground-bolder: var(--palettes-neutral-foreground-bolder);
--palette-foreground-boldest: var(--palettes-neutral-foreground-boldest);
position: relative;
padding: calc(var(--blockquote-padding-y) * 1em) calc(var(--blockquote-padding-x) * 1em);
background-color: hsla(var(--palette-background-bolder), var(--blockquote-background-opacity));
border-left: var(--blockquote-border-width) var(--blockquote-border-style) hsla(var(--palette-background-bolder), var(--blockquote-border-opacity));
border-radius: calc(var(--blockquote-border-radius) * 1em);
transition: background-color var(--animations-visual-duration) var(--animations-visual-function), border-color var(--animations-visual-duration) var(--animations-visual-function);
}
:where(.article) > blockquote:not(:last-child) {
margin-bottom: calc(var(--blockquote-article-margin-y) * 1rem);
}
:where(.article) > blockquote > :not(:last-child) {
margin-bottom: calc(var(--blockquote-article-children-margin-y) * 1rem);
}
.code,
:where(.article) > :is(code, pre),
:where(.article) > :is(blockquote, p, ol, ul, table) code,
:where(.article) > .scrollable > table code {
--palette-background-lightest: var(--palettes-auto-foreground-lightest);
--palette-background-lighter: var(--palettes-auto-foreground-lighter);
--palette-background-light: var(--palettes-auto-foreground-light);
--palette-background-normal: var(--palettes-auto-foreground-normal);
--palette-background-bold: var(--palettes-auto-foreground-bold);
--palette-background-bolder: var(--palettes-auto-foreground-bolder);
--palette-background-boldest: var(--palettes-auto-foreground-boldest);
--palette-foreground-lightest: var(--palettes-auto-background-lightest);
--palette-foreground-lighter: var(--palettes-auto-background-lighter);
--palette-foreground-light: var(--palettes-auto-background-light);
--palette-foreground-normal: var(--palettes-auto-background-normal);
--palette-foreground-bold: var(--palettes-auto-background-bold);
--palette-foreground-bolder: var(--palettes-auto-background-bolder);
--palette-foreground-boldest: var(--palettes-auto-background-boldest);
position: relative;
background-color: hsla(var(--palette-background-bolder), var(--code-background-opacity));
font-family: var(--code-font-family);
border-radius: calc(var(--code-border-radius) * 1em);
vertical-align: middle;
transition: background-color var(--animations-visual-duration) var(--animations-visual-function), border-color var(--animations-visual-duration) var(--animations-visual-function);
}
code.code,
:where(.article) > code,
:where(.article) > :is(blockquote, p, ol, ul, table) code,
:where(.article) > .scrollable > table code {
padding: calc(var(--code-code-padding-y) * 1em) calc(var(--code-code-padding-x) * 1em);
font-size: calc(var(--code-font-size) * 1em);
overflow-wrap: break-word;
}
pre.code,
:where(.article) > pre {
padding: calc(var(--code-pre-padding-y) * 1em) calc(var(--code-pre-padding-x) * 1em);
overflow-x: auto;
}
pre.code > code,
:where(.article) > pre > code {
white-space: pre;
}
:where(.article) > pre:not(:last-child) {
margin-bottom: calc(var(--code-article-margin-y) * 1rem);
}
.heading,
:where(.article) > :is(h1, h2, h3, h4, h5, h6) {
--alignment-text: initial;
--transform-text: inherit;
color: currentColor;
font-family: var(--heading-font-family);
text-align: var(--alignment-text);
text-transform: var(--transform-text);
transition: color var(--animations-visual-duration) var(--animations-visual-function);
}
.heading[data-palette],
:where(.article) > :is(h1, h2, h3, h4, h5, h6)[data-palette] {
color: hsla(var(--palette-background-boldest), var(--text-font-opacity));
}
.heading[data-variation~=truncate],
:where(.article) > :is(h1, h2, h3, h4, h5, h6)[data-variation~=truncate] {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
h1.heading,
:where(.article) > h1 {
line-height: var(--heading-inline-h1-font-line-height);
font-size: calc(var(--heading-inline-h1-font-size) * 1rem);
font-weight: var(--heading-inline-h1-font-weight);
}
h1.heading[data-variation~=block],
:where(.article) > h1[data-variation~=block] {
line-height: var(--heading-block-h1-font-line-height);
font-size: calc(var(--heading-block-h1-font-size) * 1rem);
font-weight: var(--heading-block-h1-font-weight);
}
h2.heading,
:where(.article) > h2 {
line-height: var(--heading-inline-h2-font-line-height);
font-size: calc(var(--heading-inline-h2-font-size) * 1rem);
font-weight: var(--heading-inline-h2-font-weight);
}
h2.heading[data-variation~=block],
:where(.article) > h2[data-variation~=block] {
line-height: var(--heading-block-h2-font-line-height);
font-size: calc(var(--heading-block-h2-font-size) * 1rem);
font-weight: var(--heading-block-h2-font-weight);
}
h3.heading,
:where(.article) > h3 {
line-height: var(--heading-inline-h3-font-line-height);
font-size: calc(var(--heading-inline-h3-font-size) * 1rem);
font-weight: var(--heading-inline-h3-font-weight);
}
h3.heading[data-variation~=block],
:where(.article) > h3[data-variation~=block] {
line-height: var(--heading-block-h3-font-line-height);
font-size: calc(var(--heading-block-h3-font-size) * 1rem);
font-weight: var(--heading-block-h3-font-weight);
}
h4.heading,
:where(.article) > h4 {
line-height: var(--heading-inline-h4-font-line-height);
font-size: calc(var(--heading-inline-h4-font-size) * 1rem);
font-weight: var(--heading-inline-h4-font-weight);
}
h4.heading[data-variation~=block],
:where(.article) > h4[data-variation~=block] {
line-height: var(--heading-block-h4-font-line-height);
font-size: calc(var(--heading-block-h4-font-size) * 1rem);
font-weight: var(--heading-block-h4-font-weight);
}
h5.heading,
:where(.article) > h5 {
line-height: var(--heading-inline-h5-font-line-height);
font-size: calc(var(--heading-inline-h5-font-size) * 1rem);
font-weight: var(--heading-inline-h5-font-weight);
}
h5.heading[data-variation~=block],
:where(.article) > h5[data-variation~=block] {
line-height: var(--heading-block-h5-font-line-height);
font-size: calc(var(--heading-block-h5-font-size) * 1rem);
font-weight: var(--heading-block-h5-font-weight);
}
h6.heading,
:where(.article) > h6 {
line-height: var(--heading-inline-h6-font-line-height);
font-size: calc(var(--heading-inline-h6-font-size) * 1rem);
font-weight: var(--heading-inline-h6-font-weight);
}
h6.heading[data-variation~=block],
:where(.article) > h6[data-variation~=block] {
line-height: var(--heading-block-h6-font-line-height);
font-size: calc(var(--heading-block-h6-font-size) * 1rem);
font-weight: var(--heading-block-h6-font-weight);
}
:where(.article) > :is(h1, h2, h3, h4, h5, h6):not(:last-child) {
margin-bottom: calc(var(--heading-article-margin-y) * 1em);
}
:where(.article) > :not(h1, h2, h3, h4, h5, h6) + :is(h1, h2, h3, h4, h5, h6) {
margin-top: calc(var(--heading-article-margin-y) * 1em);
}
.text,
:where(.article) > p {
--alignment-text: initial;
--sizing-font-size-inline: 1;
--transform-text: inherit;
color: currentColor;
text-align: var(--alignment-text);
text-transform: var(--transform-text);
font-size: calc(var(--sizing-font-size-inline) * 1em);
transition: color var(--animations-visual-duration) var(--animations-visual-function), opacity var(--animations-visual-duration) var(--animations-visual-function);
}
.text[data-palette],
:where(.article) > p[data-palette] {
color: hsla(var(--palette-background-boldest), var(--text-font-opacity));
}
.text[data-variation~=block],
:where(.article) > p[data-variation~=block] {
font-size: calc(var(--sizing-font-size-block) * 1em);
}
.text[data-variation~=truncate],
:where(.article) > p[data-variation~=truncate] {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
small.text,
:where(.article) > small,
:where(.article) > :is(blockquote, p, ol, ul, table) small,
:where(.article) > .scrollable > table small {
font-size: calc(var(--text-small-font-size) * 1em);
opacity: var(--text-small-opacity);
}
:where(.article) > p:not(:last-child) {
margin-bottom: calc(var(--text-article-margin-y) * 1em);
}
.button {
--palette-background-lightest: var(--palettes-neutral-background-lightest);
--palette-background-lighter: var(--palettes-neutral-background-lighter);
--palette-background-light: var(--palettes-neutral-background-light);
--palette-background-normal: var(--palettes-neutral-background-normal);
--palette-background-bold: var(--palettes-neutral-background-bold);
--palette-background-bolder: var(--palettes-neutral-background-bolder);
--palette-background-boldest: var(--palettes-neutral-background-boldest);
--palette-foreground-lightest: var(--palettes-neutral-foreground-lightest);
--palette-foreground-lighter: var(--palettes-neutral-foreground-lighter);
--palette-foreground-light: var(--palettes-neutral-foreground-light);
--palette-foreground-normal: var(--palettes-neutral-foreground-normal);
--palette-foreground-bold: var(--palettes-neutral-foreground-bold);
--palette-foreground-bolder: var(--palettes-neutral-foreground-bolder);
--palette-foreground-boldest: var(--palettes-neutral-foreground-boldest);
--shape-radius: var(--button-border-radius);
--sizing-font-size-inline: var(--button-font-size);
display: inline-flex;
align-items: center;
justify-content: center;
position: relative;
gap: calc(var(--button-gap-y) * 1em) calc(var(--button-gap-x) * 1em);
padding: calc(var(--button-padding-y) * 1em) calc(var(--button-padding-x) * 1em);
outline: none !important;
line-height: 1;
font-size: calc(var(--sizing-font-size-inline) * 1rem);
font-weight: var(--button-font-weight);
text-decoration: none !important;
cursor: pointer;
user-select: none;
vertical-align: middle;
white-space: nowrap;
border-color: transparent;
border-style: var(--button-border-style);
border-width: var(--button-border-width);
border-radius: calc(var(--shape-radius) * 1rem);
transition:
background-color var(--animations-visual-duration) var(--animations-visual-function),
opacity var(--animations-visual-duration) var(--animations-visual-function),
color var(--animations-visual-duration) var(--animations-visual-function),
transform var(--animations-movement-duration) var(--animations-movement-function),
border-color var(--animations-visual-duration) var(--animations-visual-function);
}
.button:is(:disabled, [aria-disabled=true]) {
cursor: not-allowed;
opacity: var(--button-disabled-opacity);
}
.button:not([data-variation~=subtle]) {
transform: scale(1);
}
.button:not([data-variation~=subtle]):not(:disabled, [aria-disabled=true]):is(:active, [aria-current], [aria-pressed=true]) {
transform: scale(var(--button-loud-active-scale-x), var(--button-loud-active-scale-y));
}
.button[data-variation~=subtle]:not([data-palette]) {
--palette-background-lightest: inherit;
--palette-background-lighter: inherit;
--palette-background-light: inherit;
--palette-background-normal: inherit;
--palette-background-bold: inherit;
--palette-background-bolder: inherit;
--palette-background-boldest: inherit;
--palette-foreground-lightest: inherit;
--palette-foreground-lighter: inherit;
--palette-foreground-light: inherit;
--palette-foreground-normal: inherit;
--palette-foreground-bold: inherit;
--palette-foreground-bolder: inherit;
--palette-foreground-boldest: inherit;
}
.button:not([data-variation~=clear], [data-variation~=outline]) {
background-color: hsla(var(--palette-background-bolder), var(--button-block-background-opacity));
color: hsla(var(--palette-foreground-normal), var(--button-block-font-opacity));
}
.button:not([data-variation~=clear], [data-variation~=outline])[data-variation~=subtle]:not([data-palette]) {
background-color: hsla(var(--palette-foreground-bolder), var(--button-block-background-opacity));
color: hsla(var(--palette-background-normal), var(--button-block-font-opacity));
}
.button:not([data-variation~=clear], [data-variation~=outline]):not(:disabled, [aria-disabled=true]):is(:focus, :hover) {
background-color: hsla(var(--palette-background-normal), var(--button-block-focus-background-opacity));
color: hsla(var(--palette-foreground-normal), var(--button-block-focus-font-opacity));
}
.button:not([data-variation~=clear], [data-variation~=outline]):not(:disabled, [aria-disabled=true]):is(:focus, :hover)[data-variation~=subtle]:not([data-palette]) {
background-color: hsla(var(--palette-foreground-normal), var(--button-block-focus-background-opacity));
color: hsla(var(--palette-background-normal), var(--button-block-focus-font-opacity));
}
.button:not([data-variation~=clear], [data-variation~=outline]):not(:disabled, [aria-disabled=true]):is(:active, [aria-current], [aria-pressed=true]) {
background-color: hsla(var(--palette-background-lightest), var(--button-block-active-background-opacity));
color: hsla(var(--palette-foreground-normal), var(--button-block-active-font-opacity));
}
.button:not([data-variation~=clear], [data-variation~=outline]):not(:disabled, [aria-disabled=true]):is(:active, [aria-current], [aria-pressed=true])[data-variation~=subtle]:not([data-palette]) {
background-color: hsla(var(--palette-foreground-lightest), var(--button-block-active-background-opacity));
color: hsla(var(--palette-background-normal), var(--button-block-active-font-opacity));
}
.button[data-variation~=clear] {
background-color: hsla(var(--palette-background-lightest), var(--button-clear-background-opacity));
color: hsla(var(--palette-background-normal), var(--button-clear-font-opacity));
}
.button[data-variation~=clear][data-variation~=subtle]:not([data-palette]) {
background-color: hsla(var(--palette-foreground-lightest), var(--button-clear-background-opacity));
color: hsla(var(--palette-foreground-normal), var(--button-clear-font-opacity));
}
.button[data-variation~=clear]:not(:disabled, [aria-disabled=true]):is(:focus, :hover) {
background-color: hsla(var(--palette-background-lightest), var(--button-clear-focus-background-opacity));
color: hsla(var(--palette-background-normal), var(--button-clear-focus-font-opacity));
}
.button[data-variation~=clear]:not(:disabled, [aria-disabled=true]):is(:focus, :hover)[data-variation~=subtle]:not([data-palette]) {
background-color: hsla(var(--palette-foreground-lightest), var(--button-clear-focus-background-opacity));
color: hsla(var(--palette-foreground-normal), var(--button-clear-focus-font-opacity));
}
.button[data-variation~=clear]:not(:disabled, [aria-disabled=true]):is(:active, [aria-current], [aria-pressed=true]) {
background-color: hsla(var(--palette-background-lightest), var(--button-clear-active-background-opacity));
color: hsla(var(--palette-foreground-normal), var(--button-clear-active-font-opacity));
}
.button[data-variation~=clear]:not(:disabled, [aria-disabled=true]):is(:active, [aria-current], [aria-pressed=true])[data-variation~=subtle]:not([data-palette]) {
background-color: hsla(var(--palette-foreground-lightest), var(--button-clear-active-background-opacity));
color: hsla(var(--palette-background-normal), var(--button-clear-active-font-opacity));
}
.button[data-variation~=outline] {
border-color: hsla(var(--palette-background-lightest), var(--button-outline-border-opacity));
background-color: hsla(var(--palette-background-lightest), var(--button-outline-background-opacity));
color: hsla(var(--palette-background-normal), var(--button-outline-font-opacity));
}
.button[data-variation~=outline][data-variation~=subtle]:not([data-palette]) {
border-color: hsla(var(--palette-foreground-lightest), var(--button-outline-border-opacity));
background-color: hsla(var(--palette-foreground-lightest), var(--button-outline-background-opacity));
color: hsla(var(--palette-foreground-normal), var(--button-outline-font-opacity));
}
.button[data-variation~=outline]:not(:disabled, [aria-disabled=true]):is(:focus, :hover) {
border-color: hsla(var(--palette-background-lightest), var(--button-outline-focus-border-opacity));
background-color: hsla(var(--palette-background-lightest), var(--button-outline-focus-background-opacity));
color: hsla(var(--palette-background-normal), var(--button-outline-focus-font-opacity));
}
.button[data-variation~=outline]:not(:disabled, [aria-disabled=true]):is(:focus, :hover)[data-variation~=subtle]:not([data-palette]) {
border-color: hsla(var(--palette-foreground-lightest), var(--button-outline-focus-border-opacity));
background-color: hsla(var(--palette-foreground-lightest), var(--button-outline-focus-background-opacity));
color: hsla(var(--palette-foreground-normal), var(--button-outline-focus-font-opacity));
}
.button[data-variation~=outline]:not(:disabled, [aria-disabled=true]):is(:active, [aria-current], [aria-pressed=true]) {
border-color: hsla(var(--palette-background-lightest), var(--button-outline-active-border-opacity));
background-color: hsla(var(--palette-background-lightest), var(--button-outline-active-background-opacity));
color: hsla(var(--palette-foreground-normal), var(--button-outline-active-font-opacity));
}
.button[data-variation~=outline]:not(:disabled, [aria-disabled=true]):is(:active, [aria-current], [aria-pressed=true])[data-variation~=subtle]:not([data-palette]) {
border-color: hsla(var(--palette-foreground-lightest), var(--button-outline-active-border-opacity));
background-color: hsla(var(--palette-foreground-lightest), var(--button-outline-active-background-opacity));
color: hsla(var(--palette-background-normal), var(--button-outline-active-font-opacity));
}
.check {
--palette-background-lightest: var(--palettes-neutral-background-lightest);
--palette-background-lighter: var(--palettes-neutral-background-lighter);
--palette-background-light: var(--palettes-neutral-background-light);
--palette-background-normal: var(--palettes-neutral-background-normal);
--palette-background-bold: var(--palettes-neutral-background-bold);
--palette-background-bolder: var(--palettes-neutral-background-bolder);
--palette-background-boldest: var(--palettes-neutral-background-boldest);
--palette-foreground-lightest: var(--palettes-neutral-foreground-lightest);
--palette-foreground-lighter: var(--palettes-neutral-foreground-lighter);
--palette-foreground-light: var(--palettes-neutral-foreground-light);
--palette-foreground-normal: var(--palettes-neutral-foreground-normal);
--palette-foreground-bold: var(--palettes-neutral-foreground-bold);
--palette-foreground-bolder: var(--palettes-neutral-foreground-bolder);
--palette-foreground-boldest: var(--palettes-neutral-foreground-boldest);
--sizing-font-size-inline: var(--check-font-size);
appearance: none;
display: inline-flex;
align-items: center;
justify-content: center;
position: relative;
padding: calc(var(--check-padding-y) * 1em) calc(var(--check-padding-x) * 1em);
outline: none !important;
font-size: calc(var(--sizing-font-size-inline) * 1rem);
cursor: pointer;
user-select: none;
vertical-align: middle;
white-space: nowrap;
transform: scale(1);
transition:
background-color var(--animations-visual-duration) var(--animations-visual-function),
opacity var(--animations-visual-duration) var(--animations-visual-function),
color var(--animations-visual-duration) var(--animations-visual-function),
transform var(--animations-movement-duration) var(--animations-movement-function);
border-radius: calc(var(--check-border-radius) * 1rem);
}
.check:disabled {
cursor: not-allowed;
opacity: var(--check-disabled-opacity);
}
.check:is(:enabled:active, [aria-pressed=true]) {
transform: scale(var(--check-active-scale-x), var(--check-active-scale-y));
}
.check::before {
content: "";
width: 0.5em;
height: 0.5em;
background: currentColor;
border-radius: 12.5%;
transform: scale(0);
transition: transform var(--animations-movement-duration) var(--animations-movement-function);
}
.check:enabled:is(:active, :focus, :hover)::before,
.check:is(:checked, [aria-pressed=true])::before {
transform: scale(1);
}
.check:is(:not([data-variation]), [data-variation~=block]):not(:checked) {
background-color: hsla(var(--palette-background-bolder), var(--check-block-unchecked-background-opacity));
color: hsla(var(--palette-background-bolder), var(--check-block-unchecked-font-opacity));
}
.check:is(:not([data-variation]), [data-variation~=block]):not(:checked):enabled:is(:focus, :hover) {
background-color: hsla(var(--palette-background-bolder), var(--check-block-unchecked-focus-background-opacity));
color: hsla(var(--palette-background-bolder), var(--check-block-unchecked-focus-font-opacity));
}
.check:is(:not([data-variation]), [data-variation~=block]):not(:checked):is(:enabled:active, [aria-pressed=true]) {
background-color: hsla(var(--palette-background-bolder), var(--check-block-unchecked-active-background-opacity));
color: hsla(var(--palette-foreground-normal), var(--check-block-unchecked-active-font-opacity));
}
.check:is(:not([data-variation]), [data-variation~=block]):checked {
background-color: hsla(var(--palette-background-bolder), var(--check-block-checked-background-opacity));
color: hsla(var(--palette-foreground-normal), var(--check-block-checked-font-opacity));
}
.check:is(:not([data-variation]), [data-variation~=block]):checked:enabled:is(:focus, :hover) {
background-color: hsla(var(--palette-background-bolder), var(--check-block-checked-focus-background-opacity));
color: hsla(var(--palette-foreground-normal), var(--check-block-checked-focus-font-opacity));
}
.check:is(:not([data-variation]), [data-variation~=block]):checked:is(:enabled:active, [aria-pressed=true]) {
background-color: hsla(var(--palette-background-bolder), var(--check-block-checked-active-background-opacity));
color: hsla(var(--palette-background-bolder), var(--check-block-checked-active-font-opacity));
}
.check[data-variation~=flush]:not(:checked) {
color: hsla(var(--palette-background-bolder), var(--check-flush-unchecked-font-opacity));
}
.check[data-variation~=flush]:not(:checked):enabled:is(:focus, :hover) {
color: hsla(var(--palette-background-bolder), var(--check-flush-unchecked-focus-font-opacity));
}
.check[data-variation~=flush]:not(:checked):is(:enabled:active, [aria-pressed=true]) {
color: hsla(var(--palette-background-bolder), var(--check-flush-unchecked-active-font-opacity));
}
.check[data-variation~=flush]:checked {
color: hsla(var(--palette-background-bolder), var(--check-flush-checked-font-opacity));
}
.check[data-variation~=flush]:checked:enabled:is(:focus, :hover) {
color: hsla(var(--palette-background-bolder), var(--check-flush-checked-focus-font-opacity));
}
.check[data-variation~=flush]:checked:is(:enabled:active, [aria-pressed=true]) {
color: hsla(var(--palette-background-bolder), var(--check-flush-checked-active-font-opacity));
}
.file-drop-input {
--palette-background-lightest: var(--palettes-neutral-background-lightest);
--palette-background-lighter: var(--palettes-neutral-background-lighter);
--palette-background-light: var(--palettes-neutral-background-light);
--palette-background-normal: var(--palettes-neutral-background-normal);
--palette-background-bold: var(--palettes-neutral-background-bold);
--palette-background-bolder: var(--palettes-neutral-background-bolder);
--palette-background-boldest: var(--palettes-neutral-background-boldest);
--palette-foreground-lightest: var(--palettes-neutral-foreground-lightest);
--palette-foreground-lighter: var(--palettes-neutral-foreground-lighter);
--palette-foreground-light: var(--palettes-neutral-foreground-light);
--palette-foreground-normal: var(--palettes-neutral-foreground-normal);
--palette-foreground-bold: var(--palettes-neutral-foreground-bold);
--palette-foreground-bolder: var(--palettes-neutral-foreground-bolder);
--palette-foreground-boldest: var(--palettes-neutral-foreground-boldest);
display: flex;
align-items: center;
justify-content: center;
position: relative;
padding: calc(var(--file-drop-input-padding-y) * 1rem) calc(var(--file-drop-input-padding-x) * 1rem);
background-color: hsla(var(--palette-background-lightest), var(--file-drop-input-background-opacity));
border: var(--file-drop-input-border-width) var(--file-drop-input-border-style) hsla(var(--palette-background-bolder), var(--file-drop-input-border-opacity));
color: hsla(var(--palette-background-bolder), var(--file-drop-input-font-opacity));
line-height: 1;
text-align: center;
transition:
background-color var(--animations-visual-duration) var(--animations-visual-function),
border-color var(--animations-visual-duration) var(--animations-visual-function),
color var(--animations-visual-duration) var(--animations-visual-function);
}
.file-drop-input--input,
.file-drop-input--input::file-selector-button {
position: absolute;
inset: 0;
width: 100%;
height: 100%;
cursor: pointer;
opacity: 0;
}
.number-input {
--alignment-text: initial;
--palette-background-lightest: var(--palettes-neutral-background-lightest);
--palette-background-lighter: var(--palettes-neutral-background-lighter);
--palette-background-light: var(--palettes-neutral-background-light);
--palette-background-normal: var(--palettes-neutral-background-normal);
--palette-background-bold: var(--palettes-neutral-background-bold);
--palette-background-bolder: var(--palettes-neutral-background-bolder);
--palette-background-boldest: var(--palettes-neutral-background-boldest);
--palette-foreground-lightest: var(--palettes-neutral-foreground-lightest);
--palette-foreground-lighter: var(--palettes-neutral-foreground-lighter);
--palette-foreground-light: var(--palettes-neutral-foreground-light);
--palette-foreground-normal: var(--palettes-neutral-foreground-normal);
--palette-foreground-bold: var(--palettes-neutral-foreground-bold);
--palette-foreground-bolder: var(--palettes-neutral-foreground-bolder);
--palette-foreground-boldest: var(--palettes-neutral-foreground-boldest);
--shape-radius: var(--number-input-border-radius);
--sizing-font-size-inline: var(--number-input-font-size);
--transform-text: inherit;
appearance: none;
position: relative;
padding: calc(var(--number-input-padding-y) * 1em) calc(var(--number-input-padding-x) * 1em);
outline: none !important;
background: transparent;
border-radius: calc(var(--shape-radius) * 1rem);
border-style: var(--number-input-border-style);
border-width: var(--number-input-border-width);
font-size: calc(var(--sizing-font-size-inline) * 1rem);
text-align: var(--alignment-text);
text-transform: var(--transform-text);
vertical-align: middle;
transition:
border-color var(--animations-visual-duration) var(--animations-visual-function),
background-color var(--animations-visual-duration) var(--animations-visual-function),
opacity var(--animations-visual-duration) var(--animations-visual-function),
color var(--animations-visual-duration) var(--animations-visual-function);
}
.number-input:disabled {
cursor: not-allowed;
opacity: var(--number-input-disabled-opacity);
}
.number-input::placeholder {
color: currentColor;
opacity: var(--number-input-placeholder-opacity);
}
.number-input:not([data-variation]) {
border-color: hsla(var(--palette-background-bolder), var(--number-input-outline-border-opacity));
}
.number-input:not([data-variation]):enabled:hover {
border-color: hsla(var(--palette-background-bolder), var(--number-input-outline-hover-border-opacity));
}
.number-input:not([data-variation]):enabled:is(:active, :focus) {
border-color: hsla(var(--palette-background-bolder), var(--number-input-outline-active-border-opacity));
}
.number-input[data-variation=block] {
border-color: hsla(var(--palette-background-bolder), var(--number-input-block-border-opacity));
background-color: hsla(var(--palette-background-bolder), var(--number-input-block-background-opacity));
}
.number-input[data-variation=block]:enabled:hover {
border-color: hsla(var(--palette-background-bolder), var(--number-input-block-hover-border-opacity));
background-color: hsla(var(--palette-background-bolder), var(--number-input-block-hover-background-opacity));
}
.number-input[data-variation=block]:enabled:is(:active, :focus) {
border-color: hsla(var(--palette-background-bolder), var(--number-input-block-active-border-opacity));
background-color: hsla(var(--palette-background-bolder), var(--number-input-block-active-background-opacity));
}
.number-input[data-variation=flush] {
padding: 0;
border: none;
border-radius: none;
font-size: inherit;
line-height: inherit;
text-align: inherit;
text-transform: inherit;
vertical-align: top;
}
.number-input[data-variation=flush][data-palette] {
color: hsla(var(--palette-background-boldest), var(--number-input-flush-font-opacity));
}
.number-input[data-variation=flush]:enabled:is(:active, :hover, :focus) {
text-decoration: underline;
}
.number-input:not([cols], [size]) {
width: 100%;
}
.radio {
--palette-background-lightest: var(--palettes-neutral-background-lightest);
--palette-background-lighter: var(--palettes-neutral-background-lighter);
--palette-background-light: var(--palettes-neutral-background-light);
--palette-background-normal: var(--palettes-neutral-background-normal);
--palette-background-bold: var(--palettes-neutral-background-bold);
--palette-background-bolder: var(--palettes-neutral-background-bolder);
--palette-background-boldest: var(--palettes-neutral-background-boldest);
--palette-foreground-lightest: var(--palettes-neutral-foreground-lightest);
--palette-foreground-lighter: var(--palettes-neutral-foreground-lighter);
--palette-foreground-light: var(--palettes-neutral-foreground-light);
--palette-foreground-normal: var(--palettes-neutral-foreground-normal);
--palette-foreground-bold: var(--palettes-neutral-foreground-bold);
--palette-foreground-bolder: var(--palettes-neutral-foreground-bolder);
--palette-foreground-boldest: var(--palettes-neutral-foreground-boldest);
--sizing-font-size-inline: var(--radio-font-size);
appearance: none;
display: inline-flex;
align-items: center;
justify-content: center;
position: relative;
padding: calc(var(--radio-padding-y) * 1em) calc(var(--radio-padding-x) * 1em);
outline: none !important;
font-size: calc(var(--sizing-font-size-inline) * 1rem);
cursor: pointer;
user-select: none;
vertical-align: middle;
white-space: nowrap;
transform: scale(1);
transition:
background-color var(--animations-visual-duration) var(--animations-visual-function),
opacity var(--animations-visual-duration) var(--animations-visual-function),
color var(--animations-visual-duration) var(--animations-visual-function),
transform var(--animations-movement-duration) var(--animations-movement-function);
border-radius: 100%;
}
.radio:disabled {
cursor: not-allowed;
opacity: var(--radio-disabled-opacity);
}
.radio:is(:enabled:active, [aria-pressed=true]) {
transform: scale(var(--radio-active-scale-x), var(--radio-active-scale-y));
}
.radio::before {
content: "";
width: 0.5em;
height: 0.5em;
background: currentColor;
border-radius: inherit;
transform: scale(0);
transition: transform var(--animations-movement-duration) var(--animations-movement-function);
}
.radio:enabled:is(:active, :focus, :hover)::before,
.radio:is(:checked, [aria-pressed=true])::before {
transform: scale(1);
}
.radio:is(:not([data-variation]), [data-variation~=block]):not(:checked) {
background-color: hsla(var(--palette-background-bolder), var(--radio-block-unchecked-background-opacity));
color: hsla(var(--palette-background-bolder), var(--radio-block-unchecked-font-opacity));
}
.radio:is(:not([data-variation]), [data-variation~=block]):not(:checked):enabled:is(:focus, :hover) {
background-color: hsla(var(--palette-background-bolder), var(--radio-block-unchecked-focus-background-opacity));
color: hsla(var(--palette-background-bolder), var(--radio-block-unchecked-focus-font-opacity));
}
.radio:is(:not([data-variation]), [data-variation~=block]):not(:checked):is(:enabled:active, [aria-pressed=true]) {
background-color: hsla(var(--palette-background-bolder), var(--radio-block-unchecked-active-background-opacity));
color: hsla(var(--palette-foreground-normal), var(--radio-block-unchecked-active-font-opacity));
}
.radio:is(:not([data-variation]), [data-variation~=block]):checked {
background-color: hsla(var(--palette-background-bolder), var(--radio-block-checked-background-opacity));
color: hsla(var(--palette-foreground-normal), var(--radio-block-checked-font-opacity));
}
.radio:is(:not([data-variation]), [data-variation~=block]):checked:enabled:is(:focus, :hover) {
background-color: hsla(var(--palette-background-bolder), var(--radio-block-checked-focus-background-opacity));
color: hsla(var(--palette-foreground-normal), var(--radio-block-checked-focus-font-opacity));
}
.radio:is(:not([data-variation]), [data-variation~=block]):checked:is(:enabled:active, [aria-pressed=true]) {
background-color: hsla(var(--palette-background-bolder), var(--radio-block-checked-active-background-opacity));
color: hsla(var(--palette-background-bolder), var(--radio-block-checked-active-font-opacity));
}
.radio[data-variation~=flush]:not(:checked) {
color: hsla(var(--palette-background-bolder), var(--radio-flush-unchecked-font-opacity));
}
.radio[data-variation~=flush]:not(:checked):enabled:is(:focus, :hover) {
color: hsla(var(--palette-background-bolder), var(--radio-flush-unchecked-focus-font-opacity));
}
.radio[data-variation~=flush]:not(:checked):is(:enabled:active, [aria-pressed=true]) {
color: hsla(var(--palette-background-bolder), var(--radio-flush-unchecked-active-font-opacity));
}
.radio[data-variation~=flush]:checked {
color: hsla(var(--palette-background-bolder), var(--radio-flush-checked-font-opacity));
}
.radio[data-variation~=flush]:checked:enabled:is(:focus, :hover) {
color: hsla(var(--palette-background-bolder), var(--radio-flush-checked-focus-font-opacity));
}
.radio[data-variation~=flush]:checked:is(:enabled:active, [aria-pressed=true]) {
color: hsla(var(--palette-background-bolder), var(--radio-flush-checked-active-font-opacity));
}
.switch {
--palette-background-lightest: var(--palettes-neutral-background-lightest);
--palette-background-lighter: var(--palettes-neutral-background-lighter);
--palette-background-light: var(--palettes-neutral-background-light);
--palette-background-normal: var(--palettes-neutral-background-normal);
--palette-background-bold: var(--palettes-neutral-background-bold);
--palette-background-bolder: var(--palettes-neutral-background-bolder);
--palette-background-boldest: var(--palettes-neutral-background-boldest);
--palette-foreground-lightest: var(--palettes-neutral-foreground-lightest);
--palette-foreground-lighter: var(--palettes-neutral-foreground-lighter);
--palette-foreground-light: var(--palettes-neutral-foreground-light);
--palette-foreground-normal: var(--palettes-neutral-foreground-normal);
--palette-foreground-bold: var(--palettes-neutral-foreground-bold);
--palette-foreground-bolder: var(--palettes-neutral-foreground-bolder);
--palette-foreground-boldest: var(--palettes-neutral-foreground-boldest);
--sizing-font-size-inline: var(--switch-font-size);
appearance: none;
display: inline-flex;
align-items: center;
justify-content: center;
position: relative;
padding: calc(var(--switch-padding-y) * 1em) calc(var(--switch-padding-x) * 1em);
outline: none !important;
font-size: calc(var(--sizing-font-size-inline) * 1rem);
cursor: pointer;
user-select: none;
vertical-align: middle;
white-space: nowrap;
transform: scale(1);
transition:
background-color var(--animations-visual-duration) var(--animations-visual-function),
opacity var(--animations-visual-duration) var(--animations-visual-function),
color var(--animations-visual-duration) var(--animations-visual-function),
transform var(--animations-movement-duration) var(--animations-movement-function);
border-radius: var(--shapes-pill);
}
.switch:disabled {
cursor: not-allowed;
opacity: var(--switch-disabled-opacity);
}
.switch:is(:enabled:active, [aria-pressed=true]) {
transform: scale(var(--switch-active-scale-x), var(--switch-active-scale-y));
}
.switch::before {
content: "";
width: 0.5em;
height: 0.5em;
background: currentColor;
border-radius: inherit;
transform: translateX(-50%);
transition: transform var(--animations-movement-duration) var(--animations-movement-function);
}
.switch:checked::before {
transform: translateX(50%);
}
.switch:is(:enabled:active, [aria-pressed=true])::before {
transform: translateX(0%);
}
.switch:not(:checked) {
background-color: hsla(var(--palette-background-bolder), var(--switch-unchecked-background-opacity));
color: hsla(var(--palette-background-bolder), var(--switch-unchecked-font-opacity));
}
.switch:not(:checked):enabled:is(:focus, :hover) {
background-color: hsla(var(--palette-background-bolder), var(--switch-unchecked-focus-background-opacity));
color: hsla(var(--palette-background-bolder), var(--switch-unchecked-focus-font-opacity));
}
.switch:not(:checked):is(:enabled:active, [aria-pressed=true]) {
background-color: hsla(var(--palette-background-bolder), var(--switch-unchecked-active-background-opacity));
color: hsla(var(--palette-foreground-normal), var(--switch-unchecked-active-font-opacity));
}
.switch:checked {
background-color: hsla(var(--palette-background-bolder), var(--switch-checked-background-opacity));
color: hsla(var(--palette-foreground-normal), var(--switch-checked-font-opacity));
}
.switch:checked:enabled:is(:focus, :hover) {
background-color: hsla(var(--palette-background-bolder), var(--switch-checked-focus-background-opacity));
color: hsla(var(--palette-foreground-normal), var(--switch-checked-focus-font-opacity));
}
.switch:checked:is(:enabled:active, [aria-pressed=true]) {
background-color: hsla(var(--palette-background-bolder), var(--switch-checked-active-background-opacity));
color: hsla(var(--palette-background-bolder), var(--switch-checked-active-font-opacity));
}
.text-input {
--alignment-text: initial;
--palette-background-lightest: var(--palettes-neutral-background-lightest);
--palette-background-lighter: var(--palettes-neutral-background-lighter);
--palette-background-light: var(--palettes-neutral-background-light);
--palette-background-normal: var(--palettes-neutral-background-normal);
--palette-background-bold: var(--palettes-neutral-background-bold);
--palette-background-bolder: var(--palettes-neutral-background-bolder);
--palette-background-boldest: var(--palettes-neutral-background-boldest);
--palette-foreground-lightest: var(--palettes-neutral-foreground-lightest);
--palette-foreground-lighter: var(--palettes-neutral-foreground-lighter);
--palette-foreground-light: var(--palettes-neutral-foreground-light);
--palette-foreground-normal: var(--palettes-neutral-foreground-normal);
--palette-foreground-bold: var(--palettes-neutral-foreground-bold);
--palette-foreground-bolder: var(--palettes-neutral-foreground-bolder);
--palette-foreground-boldest: var(--palettes-neutral-foreground-boldest);
--shape-radius: var(--text-input-border-radius);
--sizing-font-size-inline: var(--text-input-font-size);
--transform-text: inherit;
appearance: none;
position: relative;
padding: calc(var(--text-input-padding-y) * 1em) calc(var(--text-input-padding-x) * 1em);
outline: none !important;
background: transparent;
border-radius: calc(var(--shape-radius) * 1rem);
border-style: var(--text-input-border-style);
border-width: var(--text-input-border-width);
font-size: calc(var(--sizing-font-size-inline) * 1rem);
text-align: var(--alignment-text);
text-transform: var(--transform-text);
vertical-align: middle;
transition:
border-color var(--animations-visual-duration) var(--animations-visual-function),
background-color var(--animations-visual-duration) var(--animations-visual-function),
opacity var(--animations-visual-duration) var(--animations-visual-function),
color var(--animations-visual-duration) var(--animations-visual-function);
}
.text-input:disabled {
cursor: not-allowed;
opacity: var(--text-input-disabled-opacity);
}
.text-input::placeholder {
color: currentColor;
opacity: var(--text-input-placeholder-opacity);
}
.text-input:not([data-variation]) {
border-color: hsla(var(--palette-background-bolder), var(--text-input-outline-border-opacity));
}
.text-input:not([data-variation]):enabled:hover {
border-color: hsla(var(--palette-background-bolder), var(--text-input-outline-hover-border-opacity));
}
.text-input:not([data-variation]):enabled:is(:active, :focus) {
border-color: hsla(var(--palette-background-bolder), var(--text-input-outline-active-border-opacity));
}
.text-input[data-variation=block] {
border-color: hsla(var(--palette-background-bolder), var(--text-input-block-border-opacity));
background-color: hsla(var(--palette-background-bolder), var(--text-input-block-background-opacity));
}
.text-input[data-variation=block]:enabled:hover {
border-color: hsla(var(--palette-background-bolder), var(--text-input-block-hover-border-opacity));
background-color: hsla(var(--palette-background-bolder), var(--text-input-block-hover-background-opacity));
}
.text-input[data-variation=block]:enabled:is(:active, :focus) {
border-color: hsla(var(--palette-background-bolder), var(--text-input-block-active-border-opacity));
background-color: hsla(var(--palette-background-bolder), var(--text-input-block-active-background-opacity));
}
.text-input[data-variation=flush] {
padding: 0;
border: none;
border-radius: none;
font-size: inherit;
line-height: inherit;
text-align: inherit;
text-transform: inherit;
vertical-align: top;
}
.text-input[data-variation=flush][data-palette] {
color: hsla(var(--palette-background-boldest), var(--text-input-flush-font-opacity));
}
.text-input[data-variation=flush]:enabled:is(:active, :hover, :focus) {
text-decoration: underline;
}
.text-input:not([cols], [size]) {
width: 100%;
}
textarea.text-input {
max-width: 100%;
max-height: 100%;
resize: none;
}
.form--control {
display: flex;
flex-direction: column;
gap: calc(var(--form-control-gap-y) * 1em) calc(var(--form-control-gap-x) * 1em);
width: 100%;
}
.form--field-set {
padding: calc(var(--form-field-set-padding-y) * 1rem) calc(var(--form-field-set-padding-x) * 1rem);
border: var(--form-field-set-border-width) var(--form-field-set-border-style) hsla(var(--palette-foreground-normal), var(--form-field-set-border-opacity));
transition: border-color var(--animations-visual-duration) var(--animations-visual-function);
}
.form--field-set[data-palette] {
border-color: hsla(var(--palette-background-bolder), var(--form-field-set-border-opacity));
}
.form--help-text {
font-