@makigas/genshi
Version:
An atomic design system
940 lines (892 loc) • 27.3 kB
CSS
:where(:root) {
--genshi-font-family:
system-ui, -apple-system, blinkmacsystemfont, "Segoe UI", roboto, oxygen, ubuntu, cantarell,
"Open Sans", "Helvetica Neue", sans-serif;
--genshi-mono-family:
ui-monospace, menlo, monaco, "Cascadia Mono", "Segoe UI Mono", "Roboto Mono", "Oxygen Mono",
"Ubuntu Mono", "Source Code Pro", "Fira Mono", "Droid Sans Mono", "Consolas", "Courier New",
monospace;
--genshi-title-family:
"Montserrat", system-ui, -apple-system, blinkmacsystemfont, "Segoe UI", roboto, oxygen, ubuntu,
cantarell, "Open Sans", "Helvetica Neue", sans-serif;
--genshi-font-size: 100%;
--genshi-black: #202020;
--genshi-white: #fcf7f7;
--genshi-makigas-100: #ABB8D1;
--genshi-makigas-200: #90A1C2;
--genshi-makigas-300: #768BB3;
--genshi-makigas-400: #5D75A3;
--genshi-makigas-500: #4d6699;
--genshi-makigas-600: #425884;
--genshi-makigas-700: #324367;
--genshi-makigas-800: #222F4A;
--genshi-makigas-900: #141D30;
--genshi-makigas-contrast: white;
--genshi-edu-100: #E9D0A7;
--genshi-edu-200: #E1C08A;
--genshi-edu-300: #D9B16A;
--genshi-edu-400: #D1A147;
--genshi-edu-500: #cc9629;
--genshi-edu-600: #B18222;
--genshi-edu-700: #8A6418;
--genshi-edu-800: #65490F;
--genshi-edu-900: #422E07;
--genshi-edu-contrast: black;
--genshi-ngl-100: #B5D9AE;
--genshi-ngl-200: #9DCD93;
--genshi-ngl-300: #84C078;
--genshi-ngl-400: #6BB35C;
--genshi-ngl-500: #59aa48;
--genshi-ngl-600: #4C933D;
--genshi-ngl-700: #3A722E;
--genshi-ngl-800: #28531F;
--genshi-ngl-900: #183612;
--genshi-ngl-contrast: black;
--genshi-red-100: #EBBBB2;
--genshi-red-200: #E3A598;
--genshi-red-300: #DA8E80;
--genshi-red-400: #D07767;
--genshi-red-500: #c96857;
--genshi-red-600: #AE594B;
--genshi-red-700: #884438;
--genshi-red-800: #643027;
--genshi-red-900: #411D17;
--genshi-red-contrast: black;
--genshi-orange-100: #E6D0B9;
--genshi-orange-200: #DDC0A1;
--genshi-orange-300: #D4B18A;
--genshi-orange-400: #CBA173;
--genshi-orange-500: #c59763;
--genshi-orange-600: #AB8355;
--genshi-orange-700: #856541;
--genshi-orange-800: #61492E;
--genshi-orange-900: #402F1C;
--genshi-orange-contrast: black;
--genshi-yellow-100: #E4E6BC;
--genshi-yellow-200: #DBDEA5;
--genshi-yellow-300: #D3D58E;
--genshi-yellow-400: #CACD75;
--genshi-yellow-500: #c5c763;
--genshi-yellow-600: #ABAD55;
--genshi-yellow-700: #858741;
--genshi-yellow-800: #61622E;
--genshi-yellow-900: #40401C;
--genshi-yellow-contrast: black;
--genshi-green-100: #CADEB6;
--genshi-green-200: #B8D49E;
--genshi-green-300: #A7C985;
--genshi-green-400: #96BD6C;
--genshi-green-500: #8bb65a;
--genshi-green-600: #789E4D;
--genshi-green-700: #5D7B3B;
--genshi-green-800: #435929;
--genshi-green-900: #2A3A18;
--genshi-green-contrast: black;
--genshi-cyan-100: #B7DBE7;
--genshi-cyan-200: #9FCFDF;
--genshi-cyan-300: #86C3D7;
--genshi-cyan-400: #6BB7CF;
--genshi-cyan-500: #58afc9;
--genshi-cyan-600: #4B98AE;
--genshi-cyan-700: #397688;
--genshi-cyan-800: #285664;
--genshi-cyan-900: #183841;
--genshi-cyan-contrast: black;
--genshi-blue-100: #9CBCCE;
--genshi-blue-200: #7BA6BE;
--genshi-blue-300: #5B90AD;
--genshi-blue-400: #377B9D;
--genshi-blue-500: #186d92;
--genshi-blue-600: #135E7E;
--genshi-blue-700: #0D4862;
--genshi-blue-800: #073346;
--genshi-blue-900: #031F2D;
--genshi-blue-contrast: white;
--genshi-purple-100: #B6ACCE;
--genshi-purple-200: #9F92BE;
--genshi-purple-300: #8878AD;
--genshi-purple-400: #735E9C;
--genshi-purple-500: #654d91;
--genshi-purple-600: #57427D;
--genshi-purple-700: #423261;
--genshi-purple-800: #2F2246;
--genshi-purple-900: #1C142D;
--genshi-purple-contrast: white;
--genshi-gray-100: #D6D8DA;
--genshi-gray-200: #C9CBCE;
--genshi-gray-300: #BCBFC2;
--genshi-gray-400: #AFB2B7;
--genshi-gray-500: #a6aaaf;
--genshi-gray-600: #909398;
--genshi-gray-700: #707276;
--genshi-gray-800: #515356;
--genshi-gray-900: #343638;
--genshi-gray-contrast: black;
--genshi-teal-100: #C9CAC7;
--genshi-teal-200: #B7B9B5;
--genshi-teal-300: #A6A8A3;
--genshi-teal-400: #959891;
--genshi-teal-500: #8a8d86;
--genshi-teal-600: #777A74;
--genshi-teal-700: #5C5E59;
--genshi-teal-800: #424440;
--genshi-teal-900: #2A2B29;
--genshi-teal-contrast: black;
--genshi-icon-select-chev: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20width%3D%2224%22%20height%3D%2224%22%20stroke%3D%22%238a8d86%22%20stroke-width%3D%222%22%20fill%3D%22none%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22m6%209%206%206%206-6%22%2F%3E%3C%2Fsvg%3E");
color-scheme: light;
--genshi-background-color: var(--genshi-white);
--genshi-foreground-color: var(--genshi-black);
--genshi-accent-color: var(--genshi-blue-500);
--genshi-link-color: var(--genshi-blue-500);
--genshi-link-color-hover: oklch(from var(--genshi-link-color) l calc(c + 0.1) h);
--genshi-mark-color: var(--genshi-black);
--genshi-mark-bg-color: var(--genshi-yellow-100);
--genshi-ins-color: var(--genshi-green-800);
--genshi-ins-bg-color: var(--genshi-green-100);
--genshi-del-color: var(--genshi-red-900);
--genshi-del-bg-color: var(--genshi-red-100);
--genshi-kbd-color: var(--genshi-white);
--genshi-kbd-bg-color: var(--genshi-gray-900);
--genshi-pre-code-bg-color: var(--genshi-blue-100);
--genshi-button-accent: var(--genshi-teal-800);
--genshi-bold-button-accent: var(--genshi-teal-700);
--genshi-button-suggested-accent: var(--genshi-blue-600);
--genshi-button-destructive-accent: var(--genshi-red-700);
--genshi-form-valid-accent: var(--genshi-green-800);
--genshi-form-invalid-accent: var(--genshi-red-700);
--genshi-form-checkbox-accent: var(--genshi-blue-600);
}
@media screen and (prefers-color-scheme: dark) {
:where(:root) {
color-scheme: dark;
--genshi-background-color: var(--genshi-black);
--genshi-foreground-color: var(--genshi-white);
--genshi-link-color: var(--genshi-cyan-200);
--genshi-mark-color: white;
--genshi-mark-bg-color: var(--genshi-orange-700);
--genshi-kbd-bg-color: var(--genshi-gray-800);
--genshi-pre-code-bg-color: var(--genshi-cyan-900);
--genshi-button-accent: var(--genshi-foreground-color);
--genshi-bold-button-accent: var(--genshi-teal-800);
--genshi-button-suggested-accent: var(--genshi-cyan-200);
--genshi-bold-button-suggested-accent: var(--genshi-cyan-800);
--genshi-button-destructive-accent: var(--genshi-red-200);
--genshi-bold-button-destructive-accent: var(--genshi-red-600);
--genshi-form-valid-accent: var(--genshi-green-200);
--genshi-form-invalid-accent: var(--genshi-red-200);
--genshi-form-checkbox-accent: var(--genshi-blue-300);
}
}
@media screen and (min-width: 768px) {
:where(:root) {
--genshi-font-size: 106.25%;
}
}
@media screen and (min-width: 1024px) {
:where(:root) {
--genshi-font-size: 112.5%;
}
}
@media screen and (min-width: 1280px) {
:where(:root) {
--genshi-font-size: 118.75%;
}
}
@media screen and (min-width: 1600px) {
:where(:root) {
--genshi-font-size: 125%;
}
}
*,
*::before,
*::after {
box-sizing: border-box;
}
:where(body) {
margin: 0;
padding: 0;
background: var(--genshi-background-color);
color: var(--genshi-foreground-color);
}
:where(h1),
:where(h2),
:where(h3),
:where(h4),
:where(h5),
:where(h6) {
margin-top: 0;
margin-bottom: 0.75rem;
}
:where(p),
:where(ul),
:where(ol),
:where(dl) {
margin-top: 0;
margin-bottom: 1rem;
}
:where(li) {
margin-top: 0;
margin-bottom: 0.25rem;
}
:where(hr) {
height: 0;
margin-bottom: 1rem;
border: 0;
border-top: 1px solid oklch(from var(--genshi-foreground-color) l c h/50%);
}
:where(pre) {
margin-top: 1rem;
margin-bottom: 1rem;
}
:where(:root) {
font-family: var(--genshi-font-family);
font-size: var(--genshi-font-size);
line-height: 1.4;
}
:where(h1),
:where(h2),
:where(h3),
:where(h4),
:where(h5),
:where(h6) {
font-family: var(--genshi-title-family);
}
:where(h1) {
font-size: calc(2 * var(--genshi-font-size));
}
:where(h2) {
font-size: calc(1.75 * var(--genshi-font-size));
}
:where(h3) {
font-size: calc(1.5 * var(--genshi-font-size));
}
:where(h4) {
font-size: calc(1.25 * var(--genshi-font-size));
}
:where(h5) {
font-size: var(--genshi-font-size);
}
:where(h6) {
font-size: calc(0.75 * var(--genshi-font-size));
}
:where(a) {
color: var(--genshi-link-color);
}
:where(a):hover {
color: var(--genshi-link-color-hover);
}
:where(b),
:where(strong),
:where(h1),
:where(h2),
:where(h3),
:where(h4),
:where(h5),
:where(h6) {
font-weight: 700;
}
:where(em),
:where(i),
:where(cite) {
font-style: italic;
}
:where(mark),
:where(ins),
:where(del) {
padding: 0.08rem 0.24rem;
}
:where(mark) {
background-color: var(--genshi-mark-bg-color);
color: var(--genshi-mark-color);
}
:where(ins) {
background-color: var(--genshi-ins-bg-color);
color: var(--genshi-ins-color);
}
:where(del) {
background-color: var(--genshi-del-bg-color);
color: var(--genshi-del-color);
}
:where(kbd) {
padding: 0.12rem 0.36rem;
background-color: var(--genshi-kbd-bg-color);
color: var(--genshi-kbd-color);
font-weight: 600;
}
:where(kbd),
:where(code),
:where(pre) {
font-family: var(--genshi-mono-family);
font-size: 0.9rem;
}
:where(pre).code {
padding: 1.5rem;
overflow: hidden;
overflow-x: auto;
border-radius: 10px;
background-color: var(--genshi-pre-code-bg-color);
}
:where(small) {
font-size: 0.9rem;
}
:where(blockquote) {
margin: 1rem 2rem;
padding-left: 1rem;
border-left: 3px solid oklch(from var(--genshi-accent-color) l c h/25%);
}
:where(ul),
:where(ol) {
padding-left: 1.75rem;
}
:where(dt) {
font-weight: 700;
}
:where(dd) {
margin-left: 0;
}
:where(dt) + :where(dd) {
margin-top: 0.25rem;
}
:where(dd) + :where(dt) {
margin-top: 1rem;
}
.GenshiCols {
--genshi-cols-direction: column;
display: flex;
flex-direction: var(--genshi-cols-direction);
width: 100%;
margin-bottom: 1rem;
}
.GenshiCols > * {
flex: 1;
}
.GenshiCols--xsflow {
--genshi-cols-direction: row;
}
@media screen and (min-width: 768px) {
.GenshiCols--smflow, .GenshiCols:not(.GenshiCols--xsflow, .GenshiCols--mdflow, .GenshiCols--lgflow, .GenshiCols--xlflow) {
--genshi-cols-direction: row;
}
}
@media screen and (min-width: 1024px) {
.GenshiCols--mdflow {
--genshi-cols-direction: row;
}
}
@media screen and (min-width: 1280px) {
.GenshiCols--lgflow {
--genshi-cols-direction: row;
}
}
@media screen and (min-width: 1600px) {
.GenshiCols--xlflow {
--genshi-cols-direction: row;
}
}
.GenshiCols {
--genshi-density-gap: 1rem;
gap: var(--genshi-density-gap);
}
.GenshiCols--gapless {
--genshi-density-gap: 0;
}
.GenshiCols--compact {
--genshi-density-gap: 0.5rem;
}
.GenshiCols--cozy {
--genshi-density-gap: 1.5rem;
}
.GenshiStack {
display: flex;
flex-flow: wrap row;
gap: 1rem;
align-items: start;
margin-bottom: 1rem;
}
.GenshiStack {
--genshi-density-gap: 1rem;
gap: var(--genshi-density-gap);
}
.GenshiStack--gapless {
--genshi-density-gap: 0;
}
.GenshiStack--compact {
--genshi-density-gap: 0.5rem;
}
.GenshiStack--cozy {
--genshi-density-gap: 1.5rem;
}
.GenshiStack--end {
justify-content: end;
}
.GenshiStack--between {
justify-content: space-between;
}
.GenshiStack--center {
justify-content: space-evenly;
}
.GenshiStack--v {
flex-direction: column;
}
.GenshiStack--hr {
flex-direction: row-reverse;
}
.GenshiStack--vr {
flex-direction: column-reverse;
}
.GenshiWrapper {
margin-right: 1rem;
margin-left: 1rem;
}
@media screen and (min-width: 768px) {
.GenshiWrapper {
margin-right: 1rem;
margin-left: 1rem;
}
}
@media screen and (min-width: 1024px) {
.GenshiWrapper {
width: 988px;
margin-right: auto;
margin-left: auto;
}
}
@media screen and (min-width: 1280px) {
.GenshiWrapper {
width: 1242px;
margin-right: auto;
margin-left: auto;
}
}
@media screen and (min-width: 1600px) {
.GenshiWrapper {
width: 1560px;
margin-right: auto;
margin-left: auto;
}
}
.GenshiWrapper--breath {
margin-top: 1rem;
margin-bottom: 1rem;
}
.GenshiWrapper--fluid {
width: initial;
margin-right: 1rem;
margin-left: 1rem;
}
.GenshiButton {
--genshi-button-foreground: var(--genshi-button-accent);
--genshi-button-background: oklch(from var(--genshi-button-accent) l c h / 2%);
--genshi-button-hover-background: oklch(from var(--genshi-button-accent) l c h / 8%);
--genshi-button-active-background: oklch(from var(--genshi-button-accent) l c h / 24%);
--genshi-button-border-color: oklch(from var(--genshi-button-foreground) l c h / 50%);
--genshi-button-hover-border-color: oklch(from var(--genshi-button-foreground) l c h / 70%);
--genshi-button-focus-border-color: oklch(from var(--genshi-button-foreground) l c h / 90%);
--genshi-button-focus-outline-color: oklch(from var(--genshi-button-border-color) l c h / 33%);
display: inline-flex;
padding: 0.5em 1em;
transition: outline-color 0.25s ease-in-out, background-color 0.125s ease-in-out, border-color 0.25s ease-in-out;
border: 1px solid var(--genshi-button-border-color);
border-radius: 5px;
outline: 0.2em solid transparent;
background-color: var(--genshi-button-background);
color: var(--genshi-button-foreground);
font-family: inherit;
font-size: inherit;
line-height: 1.2;
text-align: center;
text-decoration: inherit;
vertical-align: middle;
cursor: pointer;
gap: 0.5rem;
}
.GenshiButton--xs {
font-size: 0.65rem;
}
.GenshiButton--sm {
font-size: 0.8rem;
}
.GenshiButton--md {
font-size: 1rem;
}
.GenshiButton--lg {
font-size: 1.2rem;
}
.GenshiButton--xl {
font-size: 1.35rem;
}
.GenshiButton__icon {
width: 1.2rem;
height: 1.2em;
}
.GenshiButton:hover {
border-color: var(--genshi-button-hover-border-color);
background-color: var(--genshi-button-hover-background);
}
.GenshiButton:active {
background-color: var(--genshi-button-active-background);
}
.GenshiButton:active, .GenshiButton:focus {
border-color: var(--genshi-button-focus-border-color);
}
.GenshiButton:focus {
outline-color: var(--genshi-button-focus-outline-color);
}
.GenshiButton--suggested {
--genshi-button-accent: var(--genshi-button-suggested-accent);
--genshi-bold-button-accent: var(
--genshi-bold-button-suggested-accent,
var(--genshi-button-accent)
);
}
.GenshiButton--destructive {
--genshi-button-accent: var(--genshi-button-destructive-accent);
--genshi-bold-button-accent: var(
--genshi-bold-button-destructive-accent,
var(--genshi-button-accent)
);
}
.GenshiButton--bold {
--genshi-button-foreground: white;
--genshi-button-background: var(--genshi-bold-button-accent);
--genshi-button-hover-background: color-mix(
in oklch,
var(--genshi-bold-button-accent),
var(--genshi-button-foreground) 8%
);
--genshi-button-active-background: color-mix(
in oklch,
var(--genshi-bold-button-accent),
var(--genshi-button-background) 4%
);
--genshi-button-border-color: color-mix(
in oklch,
var(--genshi-foreground-color),
var(--genshi-button-background) 75%
);
--genshi-button-hover-border-color: color-mix(
in oklch,
var(--genshi-foreground-color),
var(--genshi-button-background) 50%
);
--genshi-button-focus-border-color: color-mix(
in oklch,
var(--genshi-foreground-color),
var(--genshi-button-background) 50%
);
--genshi-button-focus-outline-color: oklch(
from color-mix(in oklch, var(--genshi-bold-button-accent), var(--genshi-foreground-color) 60%)
l c h / 40%
);
}
.GenshiButton[disabled] {
opacity: 0.5;
cursor: not-allowed;
pointer-events: none;
}
a.GenshiButton {
display: inline-block;
}
a.GenshiButton:hover {
color: var(--genshi-button-foreground);
}
.GenshiInput {
--genshi-input-accent: var(--genshi-radiogroup-validation-accent, var(--genshi-foreground-color));
--genshi-input-foreground: var(--genshi-foreground-color);
--genshi-input-background-color: oklch(from var(--genshi-input-accent) l c h / 3%);
--genshi-input-border-color: oklch(from var(--genshi-input-accent) l c h / 20%);
--genshi-input-hover-border-color: oklch(from var(--genshi-accent-color) l c h / 40%);
--genshi-input-focus-border-color: oklch(from var(--genshi-accent-color) l c h / 60%);
--genshi-input-focus-outline-color: oklch(from var(--genshi-accent-color) l c h / 30%);
--genshi-input-font-family: inherit;
--genshi-file-field-button-background: oklch(from var(--genshi-input-accent) l c h / 4%);
--genshi-file-field-button-hover-background: oklch(from var(--genshi-input-accent) l c h / 16%);
--genshi-file-field-button-active-background: oklch(from var(--genshi-input-accent) l c h / 24%);
--genshi-input-label-color: var(--genshi-radiogroup-validation-accent, var(--genshi-foreground));
--genshi-checkbox-background: var(
--genshi-radiogroup-validation-accent,
var(--genshi-form-checkbox-accent)
);
display: block;
margin-bottom: 1rem;
}
.GenshiInput:has(.GenshiInput__control[aria-invalid=true]) {
--genshi-input-accent: var(--genshi-form-invalid-accent);
}
.GenshiInput:has(.GenshiInput__control[aria-invalid=false]) {
--genshi-input-accent: var(--genshi-form-valid-accent);
}
.GenshiInput:has(.GenshiInput__control[aria-invalid=true]), .GenshiInput:has(.GenshiInput__control[aria-invalid=false]) {
--genshi-accent-color: var(--genshi-input-accent);
--genshi-input-label-color: var(--genshi-input-accent);
--genshi-input-helper-color: var(--genshi-input-accent);
--genshi-checkbox-background: var(--genshi-input-accent);
}
.GenshiInput__control[type=checkbox][aria-invalid=true], .GenshiInput__control[type=checkbox][aria-invalid=false], .GenshiInput__control[type=radio][aria-invalid=true], .GenshiInput__control[type=radio][aria-invalid=false] {
--genshi-input-border-color: var(--genshi-checkbox-background);
}
.GenshiInput__label {
color: var(--genshi-input-label-color);
}
.GenshiInput__label:has(input[type=checkbox]), .GenshiInput__label:has(input[type=radio]) {
display: flex;
align-items: center;
gap: 0.5em;
}
.GenshiInput__helper {
display: inline-block;
color: var(--genshi-input-helper-color, var(--genshi-foreground));
font-size: 0.875em;
}
.GenshiInput__label:has(input[type=checkbox]) + .GenshiInput__helper, .GenshiInput__label:has(input[type=radio]) + .GenshiInput__helper {
margin-left: 2.1em;
}
.GenshiInput__label:has(input[type=checkbox][disabled]), .GenshiInput__label:has(input[type=radio][disabled]) {
cursor: not-allowed;
}
.GenshiInput__field {
display: grid;
position: relative;
}
.GenshiInput__control {
display: block;
box-sizing: border-box;
width: 100%;
margin-top: 0.25em;
margin-bottom: 0.25em;
padding: 0.7em;
transition: outline-color 0.25s ease-in-out, background-color 0.125s ease-in-out, border-color 0.25s ease-in-out;
border: 1px solid var(--genshi-input-border-color);
border-radius: 4px;
outline: 2px solid transparent;
background-color: var(--genshi-input-background-color);
color: var(--genshi-input-foreground);
font-family: var(--genshi-input-font-family);
font-size: 1em;
}
input[type=color].GenshiInput__control {
padding: 0.3em;
}
input[type=checkbox].GenshiInput__control {
width: 1.25em;
height: 1.25em;
appearance: none;
margin: 0;
padding: 0;
border: 1px solid var(--genshi-input-border-color);
}
input[type=checkbox].GenshiInput__control:checked {
background-color: oklch(from var(--genshi-checkbox-background) l c h/80%);
background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22white%22%20stroke-width%3D%224%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20class%3D%22css-i6dzq1%22%3E%3Cpath%20d%3D%22M20%206%209%2017l-5-5%22%2F%3E%3C%2Fsvg%3E");
background-repeat: no-repeat;
background-position: center;
background-size: 1em 1em;
}
input[type=radio].GenshiInput__control {
width: 1.25em;
height: 1.25em;
appearance: none;
margin: 0;
padding: 0;
border: 1px solid var(--genshi-input-border-color);
border-radius: 100%;
}
input[type=radio].GenshiInput__control:checked {
background-color: oklch(from var(--genshi-checkbox-background) l c h/80%);
background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20width%3D%2224%22%20height%3D%2224%22%20fill%3D%22%23fff%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20class%3D%22css-i6dzq1%22%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2212%22%20r%3D%226%22%2F%3E%3C%2Fsvg%3E");
background-repeat: no-repeat;
background-position: center;
background-size: 1em 1em;
}
input:not([type=file]):not([type=checkbox]):not([type=radio]):not([type=range]).GenshiInput__control {
height: calc(2.4em + 2px);
}
input[type=file].GenshiInput__control {
display: flex;
align-content: center;
padding: 0;
}
input[type=file].GenshiInput__control::file-selector-button {
margin-right: 1em;
padding: 0.5em 1em;
border: none;
border-right: 1px solid var(--genshi-input-border-color);
background-color: var(--genshi-file-field-button-background);
}
input[type=file].GenshiInput__control::file-selector-button:hover {
background-color: var(--genshi-file-field-button-hover-background);
}
input[type=file].GenshiInput__control::file-selector-button:focus, input[type=file].GenshiInput__control::file-selector-button:active {
background-color: var(--genshi-file-field-button-active-background);
}
textarea.GenshiInput__control {
resize: vertical;
}
.GenshiInput--mono .GenshiInput__control {
font-size: 0.9rem;
}
.GenshiInput__control:hover {
border-color: var(--genshi-input-hover-border-color);
}
.GenshiInput__control:focus {
border-color: var(--genshi-input-focus-border-color);
outline-color: var(--genshi-input-focus-outline-color);
}
.GenshiInput__control[readonly] {
--genshi-input-focus-outline-color: transparent;
}
.GenshiInput__control[disabled] {
opacity: 0.5;
cursor: not-allowed;
}
.GenshiInput__icon {
position: absolute;
top: 50%;
left: 0.5em;
width: 1.25em;
height: 1.25em;
transform: translateY(-50%);
stroke: var(--genshi-input-accent);
}
.GenshiInput__control + .GenshiInput__icon {
right: 0.5em;
left: unset;
}
.GenshiInput__field:has(textarea) .GenshiInput__icon {
top: 1.125em;
transform: unset;
}
.GenshiInput__field:has(.GenshiInput__icon + .GenshiInput__control) .GenshiInput__control {
padding-left: 2.25em;
}
.GenshiInput__field:has(.GenshiInput__control + .GenshiInput__icon) .GenshiInput__control {
padding-right: 2.25em;
}
.GenshiInput--xs {
font-size: 0.7em;
}
.GenshiInput--sm {
font-size: 0.85em;
}
.GenshiInput--lg {
font-size: 1.15em;
}
.GenshiInput--xl {
font-size: 1.3em;
}
.GenshiInput--mono {
--genshi-input-font-family: var(--genshi-mono-family);
}
.GenshiRadioGroup {
margin-bottom: 1rem;
padding: 0;
border: none;
}
.GenshiRadioGroup[aria-invalid=true] {
--genshi-radiogroup-accent: var(--genshi-form-invalid-accent);
}
.GenshiRadioGroup[aria-invalid=false] {
--genshi-radiogroup-accent: var(--genshi-form-valid-accent);
}
.GenshiRadioGroup[aria-invalid=true], .GenshiRadioGroup[aria-invalid=false] {
--genshi-radiogroup-validation-accent: var(--genshi-radiogroup-accent);
--genshi-radiogroup-legend-color: var(--genshi-radiogroup-accent);
--genshi-radiogroup-helper-color: var(--genshi-radiogroup-accent);
}
.GenshiRadioGroup legend {
margin-bottom: 0.5rem;
padding-left: 0;
color: var(--genshi-radiogroup-legend-color, var(--genshi-foreground));
}
.GenshiRadioGroup .GenshiInput {
margin-bottom: 0.5rem;
}
.GenshiRadioGroup__helper {
display: inline-block;
color: var(--genshi-radiogroup-helper-color, var(--genshi-foreground));
font-size: 0.875em;
}
.GenshiRadioGroup--inline {
display: inline-flex;
flex-flow: row wrap;
column-gap: 1rem;
}
.GenshiRadioGroup--inline .GenshiInput {
display: inline-grid;
}
.GenshiSelect {
--genshi-select-accent: var(--genshi-foreground-color);
--genshi-select-foreground: var(--genshi-foreground-color);
--genshi-select-background-color: oklch(from var(--genshi-select-accent) l c h / 3%);
--genshi-select-border-color: oklch(from var(--genshi-select-accent) l c h / 20%);
--genshi-select-hover-border-color: oklch(from var(--genshi-select-accent) l c h / 40%);
--genshi-select-focus-border-color: oklch(from var(--genshi-select-accent) l c h / 60%);
--genshi-select-focus-outline-color: oklch(from var(--genshi-select-accent) l c h / 30%);
--genshi-select-font-family: inherit;
display: block;
margin-bottom: 1rem;
}
.GenshiSelect:has([aria-invalid=true]) {
--genshi-select-accent: var(--genshi-form-invalid-accent);
}
.GenshiSelect:has([aria-invalid=false]) {
--genshi-select-accent: var(--genshi-form-valid-accent);
}
.GenshiSelect__helper {
display: inline-block;
color: var(--genshi-input-helper-color, var(--genshi-foreground));
font-size: 0.875em;
}
.GenshiSelect:has([aria-invalid=true]) .GenshiSelect__label, .GenshiSelect:has([aria-invalid=true]) .GenshiSelect__helper, .GenshiSelect:has([aria-invalid=false]) .GenshiSelect__label, .GenshiSelect:has([aria-invalid=false]) .GenshiSelect__helper {
color: var(--genshi-select-accent);
}
.GenshiSelect__control {
display: block;
width: 100%;
margin-top: 0.25em;
margin-bottom: 0.25em;
padding: 0.7em;
transition: outline-color 0.25s ease-in-out, background-color 0.125s ease-in-out, border-color 0.25s ease-in-out;
appearance: none;
border: 1px solid var(--genshi-select-border-color);
border-radius: 4px;
outline: 2px solid transparent;
background-color: var(--genshi-select-background-color);
color: var(--genshi-select-foreground);
font-family: var(--genshi-select-font-family);
font-size: 1em;
}
.GenshiSelect__control:not([multiple]) {
background-image: var(--genshi-icon-select-chev);
background-repeat: no-repeat;
background-position: calc(100% - 0.75em) center;
background-size: 1.5em 1.5em;
}
.GenshiSelect__control:hover {
border-color: var(--genshi-select-hover-border-color);
}
.GenshiSelect__control:focus {
border-color: var(--genshi-select-focus-border-color);
outline-color: var(--genshi-select-focus-outline-color);
}
.GenshiSelect__control[disabled] {
--genshi-select-background-color: oklch(from var(--genshi-select-accent) l c h / 1%);
--genshi-select-border-color: oklch(from var(--genshi-select-accent) l c h / 10%);
--genshi-select-foreground: oklch(from var(--genshi-foreground-color) l c h / 80%);
--genshi-select-hover-border-color: var(--genshi-select-border-color);
--genshi-select-focus-border-color: var(--genshi-select-border-color);
cursor: not-allowed;
}
.GenshiSelect--xs {
font-size: 0.7em;
}
.GenshiSelect--sm {
font-size: 0.85em;
}
.GenshiSelect--lg {
font-size: 1.15em;
}
.GenshiSelect--xl {
font-size: 1.3em;
}
/*# sourceMappingURL=genshi.css.map */