UNPKG

basecoat-css

Version:

Tailwind CSS for Basecoat components

1,415 lines 104 kB
/*! tailwindcss v4.1.4 | MIT License | https://tailwindcss.com */ @layer properties; @layer theme, base, components, utilities; @layer theme { :root, :host { --font-sans: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; --color-black: #000; --color-white: #fff; --spacing: 0.25rem; --container-xs: 20rem; --container-lg: 32rem; --text-xs: 0.75rem; --text-xs--line-height: calc(1 / 0.75); --text-sm: 0.875rem; --text-sm--line-height: calc(1.25 / 0.875); --text-base: 1rem; --text-base--line-height: calc(1.5 / 1); --text-lg: 1.125rem; --text-lg--line-height: calc(1.75 / 1.125); --font-weight-medium: 500; --font-weight-semibold: 600; --tracking-tight: -0.025em; --leading-relaxed: 1.625; --radius-xs: 0.125rem; --radius-sm: calc(var(--radius) - 4px); --radius-md: calc(var(--radius) - 2px); --radius-lg: var(--radius); --radius-xl: calc(var(--radius) + 4px); --ease-in-out: cubic-bezier(0.4, 0, 0.2, 1); --default-transition-duration: 150ms; --default-transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); --default-font-family: var(--font-sans); --default-mono-font-family: var(--font-mono); --color-background: var(--background); --color-foreground: var(--foreground); --color-card: var(--card); --color-card-foreground: var(--card-foreground); --color-popover: var(--popover); --color-popover-foreground: var(--popover-foreground); --color-primary: var(--primary); --color-primary-foreground: var(--primary-foreground); --color-secondary: var(--secondary); --color-secondary-foreground: var(--secondary-foreground); --color-muted: var(--muted); --color-muted-foreground: var(--muted-foreground); --color-accent: var(--accent); --color-accent-foreground: var(--accent-foreground); --color-destructive: var(--destructive); --color-border: var(--border); --color-input: var(--input); --color-ring: var(--ring); --color-sidebar: var(--sidebar); --color-sidebar-foreground: var(--sidebar-foreground); --color-sidebar-accent: var(--sidebar-accent); --color-sidebar-accent-foreground: var(--sidebar-accent-foreground); --color-sidebar-border: var(--sidebar-border); --color-sidebar-ring: var(--sidebar-ring); } } @layer base { *, ::after, ::before, ::backdrop, ::file-selector-button { box-sizing: border-box; margin: 0; padding: 0; border: 0 solid; } html, :host { line-height: 1.5; -webkit-text-size-adjust: 100%; tab-size: 4; font-family: var(--default-font-family, ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"); font-feature-settings: var(--default-font-feature-settings, normal); font-variation-settings: var(--default-font-variation-settings, normal); -webkit-tap-highlight-color: transparent; } hr { height: 0; color: inherit; border-top-width: 1px; } abbr:where([title]) { -webkit-text-decoration: underline dotted; text-decoration: underline dotted; } h1, h2, h3, h4, h5, h6 { font-size: inherit; font-weight: inherit; } a { color: inherit; -webkit-text-decoration: inherit; text-decoration: inherit; } b, strong { font-weight: bolder; } code, kbd, samp, pre { font-family: var(--default-mono-font-family, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace); font-feature-settings: var(--default-mono-font-feature-settings, normal); font-variation-settings: var(--default-mono-font-variation-settings, normal); font-size: 1em; } 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; } :-moz-focusring { outline: auto; } progress { vertical-align: baseline; } summary { display: list-item; } ol, ul, menu { list-style: none; } img, svg, video, canvas, audio, iframe, embed, object { display: block; vertical-align: middle; } img, video { max-width: 100%; height: auto; } button, input, select, optgroup, textarea, ::file-selector-button { font: inherit; font-feature-settings: inherit; font-variation-settings: inherit; letter-spacing: inherit; color: inherit; border-radius: 0; background-color: transparent; opacity: 1; } :where(select:is([multiple], [size])) optgroup { font-weight: bolder; } :where(select:is([multiple], [size])) optgroup option { padding-inline-start: 20px; } ::file-selector-button { margin-inline-end: 4px; } ::placeholder { opacity: 1; } @supports (not (-webkit-appearance: -apple-pay-button)) or (contain-intrinsic-size: 1px) { ::placeholder { color: currentcolor; @supports (color: color-mix(in lab, red, red)) { color: color-mix(in oklab, currentcolor 50%, transparent); } } } textarea { resize: vertical; } ::-webkit-search-decoration { -webkit-appearance: none; } ::-webkit-date-and-time-value { min-height: 1lh; text-align: inherit; } ::-webkit-datetime-edit { display: inline-flex; } ::-webkit-datetime-edit-fields-wrapper { padding: 0; } ::-webkit-datetime-edit, ::-webkit-datetime-edit-year-field, ::-webkit-datetime-edit-month-field, ::-webkit-datetime-edit-day-field, ::-webkit-datetime-edit-hour-field, ::-webkit-datetime-edit-minute-field, ::-webkit-datetime-edit-second-field, ::-webkit-datetime-edit-millisecond-field, ::-webkit-datetime-edit-meridiem-field { padding-block: 0; } :-moz-ui-invalid { box-shadow: none; } button, input:where([type="button"], [type="reset"], [type="submit"]), ::file-selector-button { appearance: button; } ::-webkit-inner-spin-button, ::-webkit-outer-spin-button { height: auto; } [hidden]:where(:not([hidden="until-found"])) { display: none !important; } } @layer utilities; :root { --radius: 0.625rem; --background: oklch(1 0 0); --foreground: oklch(0.145 0 0); --card: oklch(1 0 0); --card-foreground: oklch(0.145 0 0); --popover: oklch(1 0 0); --popover-foreground: oklch(0.145 0 0); --primary: oklch(0.205 0 0); --primary-foreground: oklch(0.985 0 0); --secondary: oklch(0.97 0 0); --secondary-foreground: oklch(0.205 0 0); --muted: oklch(0.97 0 0); --muted-foreground: oklch(0.556 0 0); --accent: oklch(0.97 0 0); --accent-foreground: oklch(0.205 0 0); --destructive: oklch(0.577 0.245 27.325); --border: oklch(0.922 0 0); --input: oklch(0.922 0 0); --ring: oklch(0.708 0 0); --chart-1: oklch(0.646 0.222 41.116); --chart-2: oklch(0.6 0.118 184.704); --chart-3: oklch(0.398 0.07 227.392); --chart-4: oklch(0.828 0.189 84.429); --chart-5: oklch(0.769 0.188 70.08); --sidebar: oklch(0.985 0 0); --sidebar-foreground: oklch(0.145 0 0); --sidebar-primary: oklch(0.205 0 0); --sidebar-primary-foreground: oklch(0.985 0 0); --sidebar-accent: oklch(0.97 0 0); --sidebar-accent-foreground: oklch(0.205 0 0); --sidebar-border: oklch(0.922 0 0); --sidebar-ring: oklch(0.708 0 0); --sidebar-width: 16rem; --sidebar-mobile-width: 18rem; --scrollbar-track: transparent; --scrollbar-thumb: rgba(0, 0, 0, 0.3); --scrollbar-width: 6px; --scrollbar-radius: 6px; --chevron-down-icon: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="oklch(0.556 0 0)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down-icon lucide-chevron-down"><path d="m6 9 6 6 6-6"/></svg>'); --chevron-down-icon-50: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="oklch(0.556 0 0 / 0.5)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down-icon lucide-chevron-down"><path d="m6 9 6 6 6-6"/></svg>'); --check-icon: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="oklch(0.556 0 0)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-check-icon lucide-check"><path d="M20 6 9 17l-5-5"/></svg>'); } .dark { --background: oklch(0.145 0 0); --foreground: oklch(0.985 0 0); --card: oklch(0.205 0 0); --card-foreground: oklch(0.985 0 0); --popover: oklch(0.269 0 0); --popover-foreground: oklch(0.985 0 0); --primary: oklch(0.922 0 0); --primary-foreground: oklch(0.205 0 0); --secondary: oklch(0.269 0 0); --secondary-foreground: oklch(0.985 0 0); --muted: oklch(0.269 0 0); --muted-foreground: oklch(0.708 0 0); --accent: oklch(0.371 0 0); --accent-foreground: oklch(0.985 0 0); --destructive: oklch(0.704 0.191 22.216); --border: oklch(1 0 0 / 10%); --input: oklch(1 0 0 / 15%); --ring: oklch(0.556 0 0); --chart-1: oklch(0.488 0.243 264.376); --chart-2: oklch(0.696 0.17 162.48); --chart-3: oklch(0.769 0.188 70.08); --chart-4: oklch(0.627 0.265 303.9); --chart-5: oklch(0.645 0.246 16.439); --sidebar: oklch(0.205 0 0); --sidebar-foreground: oklch(0.985 0 0); --sidebar-primary: oklch(0.488 0.243 264.376); --sidebar-primary-foreground: oklch(0.985 0 0); --sidebar-accent: oklch(0.269 0 0); --sidebar-accent-foreground: oklch(0.985 0 0); --sidebar-border: oklch(1 0 0 / 10%); --sidebar-ring: oklch(0.439 0 0); --scrollbar-thumb: rgba(255, 255, 255, 0.3); --chevron-down-icon: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="oklch(0.708 0 0)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down-icon lucide-chevron-down"><path d="m6 9 6 6 6-6"/></svg>'); --chevron-down-icon-50: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="oklch(0.708 0 0 / 0.5)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down-icon lucide-chevron-down"><path d="m6 9 6 6 6-6"/></svg>'); --check-icon: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="oklch(0.708 0 0)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-check-icon lucide-check"><path d="M20 6 9 17l-5-5"/></svg>'); color-scheme: dark; } @layer base { * { border-color: var(--color-border); outline-color: var(--color-ring); @supports (color: color-mix(in lab, red, red)) { outline-color: color-mix(in oklab, var(--color-ring) 50%, transparent); } } html { scroll-behavior: smooth; } body { overscroll-behavior: none; background-color: var(--color-background); color: var(--color-foreground); -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } .scrollbar { scrollbar-width: thin; scrollbar-color: var(--scrollbar-thumb) var(--scrollbar-track); &::-webkit-scrollbar { width: var(--scrollbar-width); } &::-webkit-scrollbar-track { background: var(--scrollbar-track); } &::-webkit-scrollbar-thumb { background: var(--scrollbar-thumb); border-radius: var(--scrollbar-radius); } } [x-cloak] { display: none !important; } } @layer components { .alert, .alert-destructive { position: relative; display: grid; width: 100%; grid-template-columns: 0 1fr; align-items: flex-start; row-gap: calc(var(--spacing) * 0.5); border-radius: var(--radius-lg); border-style: var(--tw-border-style); border-width: 1px; padding-inline: calc(var(--spacing) * 4); padding-block: calc(var(--spacing) * 3); font-size: var(--text-sm); line-height: var(--tw-leading, var(--text-sm--line-height)); &:has(>svg) { grid-template-columns: calc(var(--spacing) * 4) 1fr; } &:has(>svg) { column-gap: calc(var(--spacing) * 3); } &>svg { width: calc(var(--spacing) * 4); height: calc(var(--spacing) * 4); } &>svg { --tw-translate-y: calc(var(--spacing) * 0.5); translate: var(--tw-translate-x) var(--tw-translate-y); } &>svg { color: currentcolor; } h2 { grid-column-start: 2; overflow: hidden; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 1; min-height: calc(var(--spacing) * 4); --tw-font-weight: var(--font-weight-medium); font-weight: var(--font-weight-medium); --tw-tracking: var(--tracking-tight); letter-spacing: var(--tracking-tight); } section { grid-column-start: 2; display: grid; justify-items: start; gap: calc(var(--spacing) * 1); font-size: var(--text-sm); line-height: var(--tw-leading, var(--text-sm--line-height)); color: var(--color-muted-foreground); & p { --tw-leading: var(--leading-relaxed); line-height: var(--leading-relaxed); } ul { list-style-position: inside; list-style-type: disc; font-size: var(--text-sm); line-height: var(--tw-leading, var(--text-sm--line-height)); } } } .alert { background-color: var(--color-card); color: var(--color-card-foreground); } .alert-destructive { background-color: var(--color-card); color: var(--color-destructive); &>svg { color: currentcolor; } section { color: var(--color-destructive); } } } @layer components { .btn, .btn-primary, .btn-secondary, .btn-outline, .btn-ghost, .btn-link, .btn-destructive, .btn-sm, .btn-sm-primary, .btn-sm-secondary, .btn-sm-outline, .btn-sm-ghost, .btn-sm-link, .btn-sm-destructive, .btn-lg, .btn-lg-primary, .btn-lg-secondary, .btn-lg-outline, .btn-lg-ghost, .btn-lg-link, .btn-lg-destructive, .btn-icon, .btn-icon-primary, .btn-icon-secondary, .btn-icon-outline, .btn-icon-ghost, .btn-icon-link, .btn-icon-destructive, .btn-sm-icon, .btn-sm-icon-primary, .btn-sm-icon-secondary, .btn-sm-icon-outline, .btn-sm-icon-ghost, .btn-sm-icon-link, .btn-sm-icon-destructive, .btn-lg-icon, .btn-lg-icon-primary, .btn-lg-icon-secondary, .btn-lg-icon-outline, .btn-lg-icon-ghost, .btn-lg-icon-link, .btn-lg-icon-destructive { display: inline-flex; flex-shrink: 0; cursor: pointer; align-items: center; justify-content: center; border-radius: var(--radius-md); font-size: var(--text-sm); line-height: var(--tw-leading, var(--text-sm--line-height)); --tw-font-weight: var(--font-weight-medium); font-weight: var(--font-weight-medium); white-space: nowrap; transition-property: all; transition-timing-function: var(--tw-ease, var(--default-transition-timing-function)); transition-duration: var(--tw-duration, var(--default-transition-duration)); --tw-outline-style: none; outline-style: none; &:focus-visible { border-color: var(--color-ring); } &:focus-visible { --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor); box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); } &:focus-visible { --tw-ring-color: var(--color-ring); @supports (color: color-mix(in lab, red, red)) { --tw-ring-color: color-mix(in oklab, var(--color-ring) 50%, transparent); } } &:disabled { pointer-events: none; } &:disabled { opacity: 50%; } &[aria-invalid="true"] { border-color: var(--color-destructive); } &[aria-invalid="true"] { --tw-ring-color: var(--color-destructive); @supports (color: color-mix(in lab, red, red)) { --tw-ring-color: color-mix(in oklab, var(--color-destructive) 20%, transparent); } } &:is(.dark *) { &[aria-invalid="true"] { --tw-ring-color: var(--color-destructive); @supports (color: color-mix(in lab, red, red)) { --tw-ring-color: color-mix(in oklab, var(--color-destructive) 40%, transparent); } } } & svg { pointer-events: none; } & svg { flex-shrink: 0; } & svg:not([class*='size-']) { width: calc(var(--spacing) * 4); height: calc(var(--spacing) * 4); } } .btn, .btn-primary, .btn-secondary, .btn-outline, .btn-ghost, .btn-link, .btn-destructive { height: calc(var(--spacing) * 9); gap: calc(var(--spacing) * 2); padding-inline: calc(var(--spacing) * 4); padding-block: calc(var(--spacing) * 2); &:has(>svg) { padding-inline: calc(var(--spacing) * 3); } } .btn-icon, .btn-icon-primary, .btn-icon-secondary, .btn-icon-outline, .btn-icon-ghost, .btn-icon-link, .btn-icon-destructive { width: calc(var(--spacing) * 9); height: calc(var(--spacing) * 9); } .btn-sm, .btn-sm-primary, .btn-sm-secondary, .btn-sm-outline, .btn-sm-ghost, .btn-sm-link, .btn-sm-destructive { height: calc(var(--spacing) * 8); gap: calc(var(--spacing) * 1.5); padding-inline: calc(var(--spacing) * 3); &:has(>svg) { padding-inline: calc(var(--spacing) * 2.5); } } .btn-sm-icon, .btn-sm-icon-primary, .btn-sm-icon-secondary, .btn-sm-icon-outline, .btn-sm-icon-ghost, .btn-sm-icon-link, .btn-sm-icon-destructive { width: calc(var(--spacing) * 8); height: calc(var(--spacing) * 8); } .btn-lg, .btn-lg-primary, .btn-lg-secondary, .btn-lg-outline, .btn-lg-ghost, .btn-lg-link, .btn-lg-destructive { height: calc(var(--spacing) * 10); gap: calc(var(--spacing) * 2); padding-inline: calc(var(--spacing) * 6); &:has(>svg) { padding-inline: calc(var(--spacing) * 4); } } .btn-lg-icon, .btn-lg-icon-primary, .btn-lg-icon-secondary, .btn-lg-icon-outline, .btn-lg-icon-ghost, .btn-lg-icon-link, .btn-lg-icon-destructive { width: calc(var(--spacing) * 10); height: calc(var(--spacing) * 10); } .btn, .btn-primary, .btn-sm, .btn-sm-primary, .btn-lg, .btn-lg-primary, .btn-icon, .btn-icon-primary, .btn-sm-icon, .btn-sm-icon-primary, .btn-lg-icon, .btn-lg-icon-primary { background-color: var(--color-primary); color: var(--color-primary-foreground); --tw-shadow: 0 1px 2px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.05)); box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); &:hover { @media (hover: hover) { background-color: var(--color-primary); @supports (color: color-mix(in lab, red, red)) { background-color: color-mix(in oklab, var(--color-primary) 90%, transparent); } } } &[aria-pressed='true'] { background-color: var(--color-primary); @supports (color: color-mix(in lab, red, red)) { background-color: color-mix(in oklab, var(--color-primary) 90%, transparent); } } } .btn-secondary, .btn-sm-secondary, .btn-lg-secondary, .btn-icon-secondary, .btn-sm-icon-secondary, .btn-lg-icon-secondary { background-color: var(--color-secondary); color: var(--color-secondary-foreground); --tw-shadow: 0 1px 2px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.05)); box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); &:hover, &[aria-pressed='true'] { background-color: var(--color-secondary); @supports (color: color-mix(in lab, red, red)) { background-color: color-mix(in oklab, var(--color-secondary) 80%, transparent); } } } .btn-outline, .btn-sm-outline, .btn-lg-outline, .btn-icon-outline, .btn-sm-icon-outline, .btn-lg-icon-outline { border-style: var(--tw-border-style); border-width: 1px; background-color: var(--color-background); --tw-shadow: 0 1px 2px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.05)); box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); &:is(.dark *) { border-color: var(--color-input); } &:is(.dark *) { background-color: var(--color-input); @supports (color: color-mix(in lab, red, red)) { background-color: color-mix(in oklab, var(--color-input) 30%, transparent); } } &:hover, &[aria-pressed='true'] { background-color: var(--color-accent); color: var(--color-accent-foreground); &:is(.dark *) { background-color: var(--color-accent); @supports (color: color-mix(in lab, red, red)) { background-color: color-mix(in oklab, var(--color-accent) 50%, transparent); } } } } .btn-ghost, .btn-sm-ghost, .btn-lg-ghost, .btn-icon-ghost, .btn-sm-icon-ghost, .btn-lg-icon-ghost { &:hover, &[aria-pressed='true'] { background-color: var(--color-accent); color: var(--color-accent-foreground); &:is(.dark *) { background-color: var(--color-accent); @supports (color: color-mix(in lab, red, red)) { background-color: color-mix(in oklab, var(--color-accent) 50%, transparent); } } } } .btn-link, .btn-sm-link, .btn-lg-link, .btn-icon-link, .btn-sm-icon-link, .btn-lg-icon-link { color: var(--color-primary); text-underline-offset: 4px; &:hover, &[aria-pressed='true'] { &:hover { @media (hover: hover) { text-decoration-line: underline; } } } } .btn-destructive, .btn-sm-destructive, .btn-lg-destructive, .btn-icon-destructive, .btn-sm-icon-destructive, .btn-lg-icon-destructive { background-color: var(--color-destructive); color: var(--color-white); --tw-shadow: 0 1px 2px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.05)); box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); &:focus-visible { --tw-ring-color: var(--color-destructive); @supports (color: color-mix(in lab, red, red)) { --tw-ring-color: color-mix(in oklab, var(--color-destructive) 20%, transparent); } } &:is(.dark *) { background-color: var(--color-destructive); @supports (color: color-mix(in lab, red, red)) { background-color: color-mix(in oklab, var(--color-destructive) 60%, transparent); } } &:is(.dark *) { &:focus-visible { --tw-ring-color: var(--color-destructive); @supports (color: color-mix(in lab, red, red)) { --tw-ring-color: color-mix(in oklab, var(--color-destructive) 40%, transparent); } } } &:hover, &[aria-pressed='true'] { background-color: var(--color-destructive); @supports (color: color-mix(in lab, red, red)) { background-color: color-mix(in oklab, var(--color-destructive) 90%, transparent); } &:is(.dark *) { background-color: var(--color-destructive); @supports (color: color-mix(in lab, red, red)) { background-color: color-mix(in oklab, var(--color-destructive) 50%, transparent); } } } } } @layer components { .badge, .badge-primary, .badge-secondary, .badge-destructive, .badge-outline { display: inline-flex; width: fit-content; flex-shrink: 0; align-items: center; justify-content: center; gap: calc(var(--spacing) * 1); overflow: hidden; border-radius: var(--radius-md); border-style: var(--tw-border-style); border-width: 1px; padding-inline: calc(var(--spacing) * 2); padding-block: calc(var(--spacing) * 0.5); font-size: var(--text-xs); line-height: var(--tw-leading, var(--text-xs--line-height)); --tw-font-weight: var(--font-weight-medium); font-weight: var(--font-weight-medium); white-space: nowrap; transition-property: color,box-shadow; transition-timing-function: var(--tw-ease, var(--default-transition-timing-function)); transition-duration: var(--tw-duration, var(--default-transition-duration)); &:focus-visible { border-color: var(--color-ring); } &:focus-visible { --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor); box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); } &:focus-visible { --tw-ring-color: var(--color-ring); @supports (color: color-mix(in lab, red, red)) { --tw-ring-color: color-mix(in oklab, var(--color-ring) 50%, transparent); } } &[aria-invalid="true"] { border-color: var(--color-destructive); } &[aria-invalid="true"] { --tw-ring-color: var(--color-destructive); @supports (color: color-mix(in lab, red, red)) { --tw-ring-color: color-mix(in oklab, var(--color-destructive) 20%, transparent); } } &:is(.dark *) { &[aria-invalid="true"] { --tw-ring-color: var(--color-destructive); @supports (color: color-mix(in lab, red, red)) { --tw-ring-color: color-mix(in oklab, var(--color-destructive) 40%, transparent); } } } &>svg { pointer-events: none; } &>svg { width: calc(var(--spacing) * 3); height: calc(var(--spacing) * 3); } } .badge, .badge-primary { border-color: transparent; background-color: var(--color-primary); color: var(--color-primary-foreground); a& { &:hover { @media (hover: hover) { background-color: var(--color-primary); @supports (color: color-mix(in lab, red, red)) { background-color: color-mix(in oklab, var(--color-primary) 90%, transparent); } } } } } .badge-secondary { border-color: transparent; background-color: var(--color-secondary); color: var(--color-secondary-foreground); a& { &:hover { @media (hover: hover) { background-color: var(--color-secondary); @supports (color: color-mix(in lab, red, red)) { background-color: color-mix(in oklab, var(--color-secondary) 90%, transparent); } } } } } .badge-destructive { border-color: transparent; background-color: var(--color-destructive); color: var(--color-white); &:focus-visible { --tw-ring-color: var(--color-destructive); @supports (color: color-mix(in lab, red, red)) { --tw-ring-color: color-mix(in oklab, var(--color-destructive) 20%, transparent); } } &:is(.dark *) { background-color: var(--color-destructive); @supports (color: color-mix(in lab, red, red)) { background-color: color-mix(in oklab, var(--color-destructive) 60%, transparent); } } &:is(.dark *) { &:focus-visible { --tw-ring-color: var(--color-destructive); @supports (color: color-mix(in lab, red, red)) { --tw-ring-color: color-mix(in oklab, var(--color-destructive) 40%, transparent); } } } a& { &:hover { @media (hover: hover) { background-color: var(--color-destructive); @supports (color: color-mix(in lab, red, red)) { background-color: color-mix(in oklab, var(--color-destructive) 90%, transparent); } } } } } .badge-outline { color: var(--color-foreground); a& { &:hover { @media (hover: hover) { background-color: var(--color-accent); } } } a& { &:hover { @media (hover: hover) { color: var(--color-accent-foreground); } } } } } @layer components { .card { display: flex; flex-direction: column; gap: calc(var(--spacing) * 6); border-radius: var(--radius-xl); border-style: var(--tw-border-style); border-width: 1px; background-color: var(--color-card); padding-block: calc(var(--spacing) * 6); color: var(--color-card-foreground); --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1)); box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); > header { container-type: inline-size; container-name: card-header; display: grid; grid-auto-rows: min-content; grid-template-rows: auto auto; align-items: flex-start; gap: calc(var(--spacing) * 1.5); padding-inline: calc(var(--spacing) * 6); &:has(*[data-slot="card-action"]) { grid-template-columns: 1fr auto; } &:is(.border-b) { padding-bottom: calc(var(--spacing) * 6); } h2 { --tw-leading: 1; line-height: 1; --tw-font-weight: var(--font-weight-semibold); font-weight: var(--font-weight-semibold); } p { font-size: var(--text-sm); line-height: var(--tw-leading, var(--text-sm--line-height)); color: var(--color-muted-foreground); } } > section { padding-inline: calc(var(--spacing) * 6); } > footer { display: flex; align-items: center; padding-inline: calc(var(--spacing) * 6); &:is(.border-t) { padding-top: calc(var(--spacing) * 6); } } } } @layer components { .form input[type='checkbox']:not([role='switch']), .input[type='checkbox']:not([role='switch']) { width: calc(var(--spacing) * 4); height: calc(var(--spacing) * 4); flex-shrink: 0; appearance: none; border-radius: 4px; border-style: var(--tw-border-style); border-width: 1px; border-color: var(--color-input); --tw-shadow: 0 1px 2px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.05)); box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); transition-property: box-shadow; transition-timing-function: var(--tw-ease, var(--default-transition-timing-function)); transition-duration: var(--tw-duration, var(--default-transition-duration)); --tw-outline-style: none; outline-style: none; &:checked { border-color: var(--color-primary); } &:checked { background-color: var(--color-primary); } &:focus-visible { border-color: var(--color-ring); } &:focus-visible { --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor); box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); } &:focus-visible { --tw-ring-color: var(--color-ring); @supports (color: color-mix(in lab, red, red)) { --tw-ring-color: color-mix(in oklab, var(--color-ring) 50%, transparent); } } &:disabled { cursor: not-allowed; } &:disabled { opacity: 50%; } &[aria-invalid="true"] { border-color: var(--color-destructive); } &[aria-invalid="true"] { --tw-ring-color: var(--color-destructive); @supports (color: color-mix(in lab, red, red)) { --tw-ring-color: color-mix(in oklab, var(--color-destructive) 20%, transparent); } } &:is(.dark *) { background-color: var(--color-input); @supports (color: color-mix(in lab, red, red)) { background-color: color-mix(in oklab, var(--color-input) 30%, transparent); } } &:is(.dark *) { &:checked { background-color: var(--color-primary); } } &:is(.dark *) { &[aria-invalid="true"] { --tw-ring-color: var(--color-destructive); @supports (color: color-mix(in lab, red, red)) { --tw-ring-color: color-mix(in oklab, var(--color-destructive) 40%, transparent); } } } &:checked:after { display: block; width: calc(var(--spacing) * 3.5); height: calc(var(--spacing) * 3.5); background-color: var(--color-primary-foreground); --tw-content: ''; content: var(--tw-content); mask-image: var(--check-icon); mask-size: 0.875rem; mask-position: center; mask-repeat: no-repeat; } } } @layer components { details { &::details-content { block-size: 0; display: block; opacity: 0%; transition-property: all; transition-timing-function: var(--tw-ease, var(--default-transition-timing-function)); transition-duration: var(--tw-duration, var(--default-transition-duration)); transition-behavior: allow-discrete; } &[open]::details-content { block-size: auto; block-size: calc-size(auto, size); opacity: 100%; } summary { display: inline-flex; cursor: pointer; align-items: center; } } details > summary::-webkit-details-marker { display: none; } } @layer components { .dialog { inset-block: calc(var(--spacing) * 0); opacity: 0%; transition-property: all; transition-timing-function: var(--tw-ease, var(--default-transition-timing-function)); transition-duration: var(--tw-duration, var(--default-transition-duration)); transition-behavior: allow-discrete; &:is([open],:popover-open) { opacity: 100%; &::backdrop { opacity: 100%; } > article { --tw-scale-x: 100%; --tw-scale-y: 100%; --tw-scale-z: 100%; scale: var(--tw-scale-x) var(--tw-scale-y); } @starting-style { opacity: 0%; &::backdrop { opacity: 0%; } > article { --tw-scale-x: 95%; --tw-scale-y: 95%; --tw-scale-z: 95%; scale: var(--tw-scale-x) var(--tw-scale-y); } } } &::backdrop { background-color: color-mix(in srgb, #000 50%, transparent); @supports (color: color-mix(in lab, red, red)) { background-color: color-mix(in oklab, var(--color-black) 50%, transparent); } opacity: 0%; transition-property: all; transition-timing-function: var(--tw-ease, var(--default-transition-timing-function)); transition-duration: var(--tw-duration, var(--default-transition-duration)); transition-behavior: allow-discrete; } > article { position: fixed; top: 50%; left: 50%; z-index: 50; display: flex; max-height: calc(100% - 2rem); width: 100%; max-width: calc(100% - 2rem); --tw-translate-x: calc(calc(1/2 * 100%) * -1); translate: var(--tw-translate-x) var(--tw-translate-y); --tw-translate-y: calc(calc(1/2 * 100%) * -1); translate: var(--tw-translate-x) var(--tw-translate-y); flex-direction: column; gap: calc(var(--spacing) * 4); border-radius: var(--radius-lg); border-style: var(--tw-border-style); border-width: 1px; background-color: var(--color-background); padding: calc(var(--spacing) * 6); --tw-shadow: 0 10px 15px -3px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 4px 6px -4px var(--tw-shadow-color, rgb(0 0 0 / 0.1)); box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); @media (width >= 40rem) { max-width: var(--container-lg); } --tw-scale-x: 95%; --tw-scale-y: 95%; --tw-scale-z: 95%; scale: var(--tw-scale-x) var(--tw-scale-y); transition-property: all; transition-timing-function: var(--tw-ease, var(--default-transition-timing-function)); transition-duration: var(--tw-duration, var(--default-transition-duration)); > header { display: flex; flex-direction: column; gap: calc(var(--spacing) * 2); text-align: center; @media (width >= 40rem) { text-align: left; } > h2 { font-size: var(--text-lg); line-height: var(--tw-leading, var(--text-lg--line-height)); --tw-leading: 1; line-height: 1; --tw-font-weight: var(--font-weight-semibold); font-weight: var(--font-weight-semibold); } > p { font-size: var(--text-sm); line-height: var(--tw-leading, var(--text-sm--line-height)); color: var(--color-muted-foreground); } } > section { margin-inline: calc(var(--spacing) * -6); flex: 1; padding-inline: calc(var(--spacing) * 6); } > footer { display: flex; flex-direction: column-reverse; gap: calc(var(--spacing) * 2); @media (width >= 40rem) { flex-direction: row; } @media (width >= 40rem) { justify-content: flex-end; } } > button, > form[method='dialog'] { position: absolute; top: calc(var(--spacing) * 4); right: calc(var(--spacing) * 4); } > button, > form[method='dialog'] > button { border-radius: var(--radius-xs); opacity: 70%; --tw-ring-offset-color: var(--color-background); transition-property: opacity; transition-timing-function: var(--tw-ease, var(--default-transition-timing-function)); transition-duration: var(--tw-duration, var(--default-transition-duration)); &:hover { @media (hover: hover) { opacity: 100%; } } &:focus { --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor); box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); } &:focus { --tw-ring-color: var(--color-ring); } &:focus { --tw-ring-offset-width: 2px; --tw-ring-offset-shadow: var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); } &:focus { --tw-outline-style: none; outline-style: none; @media (forced-colors: active) { outline: 2px solid transparent; outline-offset: 2px; } } &:disabled { pointer-events: none; } &[data-state="open"] { background-color: var(--color-accent); } &[data-state="open"] { color: var(--color-muted-foreground); } & svg { pointer-events: none; } & svg { flex-shrink: 0; } & svg:not([class*='size-']) { width: calc(var(--spacing) * 4); height: calc(var(--spacing) * 4); } } } } } @layer components { .dropdown-menu { position: relative; display: inline-flex; [data-popover] { padding: calc(var(--spacing) * 1); min-width: anchor-size(width); [role='menuitem'], [role='menuitemcheckbox'], [role='menuitemradio'] { position: relative; display: flex; width: 100%; cursor: default; align-items: center; gap: calc(var(--spacing) * 2); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; border-radius: var(--radius-sm); padding-inline: calc(var(--spacing) * 2); padding-block: calc(var(--spacing) * 1.5); font-size: var(--text-sm); line-height: var(--tw-leading, var(--text-sm--line-height)); --tw-outline-style: none; outline-style: none; @media (forced-colors: active) { outline: 2px solid transparent; outline-offset: 2px; } -webkit-user-select: none; user-select: none; &:disabled { pointer-events: none; } &:disabled { opacity: 50%; } &[aria-disabled="true"] { pointer-events: none; } &[aria-disabled="true"] { opacity: 50%; } &[aria-hidden="true"] { display: none; } & svg { width: calc(var(--spacing) * 4); height: calc(var(--spacing) * 4); } & svg { flex-shrink: 0; } & svg { color: var(--color-muted-foreground); } &:not([aria-disabled='true']) { &:focus-visible { background-color: var(--color-accent); } &:focus-visible { color: var(--color-accent-foreground); } } &.active { background-color: var(--color-accent); color: var(--color-accent-foreground); } } [role='menu'] [role='heading'] { display: flex; padding-inline: calc(var(--spacing) * 2); padding-block: calc(var(--spacing) * 1.5); font-size: var(--text-sm); line-height: var(--tw-leading, var(--text-sm--line-height)); --tw-font-weight: var(--font-weight-medium); font-weight: var(--font-weight-medium); } [role='separator'] { margin-inline: calc(var(--spacing) * -1); margin-block: calc(var(--spacing) * 1); border-color: var(--color-border); } } &:not([data-dropdown-menu-initialized]) [data-popover] { [role='menuitem'], [role='menuitemcheckbox'], [role='menuitemradio'] { &:hover { @media (hover: hover) { background-color: var(--color-accent); } } &:hover { @media (hover: hover) { color: var(--color-accent-foreground); } } } } } } @layer components { .form input[type='text'], .form input[type='email'], .form input[type='password'], .form input[type='number'], .form input[type='file'], .form input[type='tel'], .form input[type='url'], .form input[type='search'], .form input[type='date'], .form input[type='datetime-local'], .form input[type='month'], .form input[type='week'], .form input[type='time'], .input[type='text'], .input[type='email'], .input[type='password'], .input[type='number'], .input[type='file'], .input[type='tel'], .input[type='url'], .input[type='search'], .input[type='date'], .input[type='datetime-local'], .input[type='month'], .input[type='week'], .input[type='time'] { display: flex; height: calc(var(--spacing) * 9); width: 100%; min-width: calc(var(--spacing) * 0); appearance: none; border-radius: var(--radius-md); border-style: var(--tw-border-style); border-width: 1px; border-color: var(--color-input); background-color: transparent; padding-inline: calc(var(--spacing) * 3); padding-block: calc(var(--spacing) * 1); font-size: var(--text-base); line-height: var(--tw-leading, var(--text-base--line-height)); --tw-shadow: 0 1px 2px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.05)); box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); transition-property: color,box-shadow; transition-timing-function: var(--tw-ease, var(--default-transition-timing-function)); transition-duration: var(--tw-duration, var(--default-transition-duration)); --tw-outline-style: none; outline-style: none; & *::selection { background-color: var(--color-primary); } &::selection { background-color: var(--color-primary); } & *::selection { color: var(--color-primary-foreground); } &::selection { color: var(--color-primary-foreground); } &::file-selector-button { display: inline-flex; } &::file-selector-button { height: calc(var(--spacing) * 7); } &::file-selector-button { border-style: var(--tw-border-style); border-width: 0px; } &::file-selector-button { background-color: transparent; } &::file-selector-button { font-size: var(--text-sm); line-height: var(--tw-leading, var(--text-sm--line-height)); } &::file-selector-button { --tw-font-weight: var(--font-weight-medium); font-weight: var(--font-weight-medium); } &::file-selector-button { color: var(--color-foreground); } &::placeholder { color: var(--color-muted-foreground); } &:disabled { pointer-events: none; } &:disabled { cursor: not-allowed; } &:disabled { opacity: 50%; } @media (width >= 48rem) { font-size: var(--text-sm); line-height: var(--tw-leading, var(--text-sm--line-height)); } &:is(.dark *) { background-color: var(--color-input); @supports (color: color-mix(in lab, red, red)) { background-color: color-mix(in oklab, var(--color-input) 30%, transparent); } } &:focus-visible { border-color: var(--color-ring); } &:focus-visible { --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor); box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); } &:focus-visible { --tw-ring-color: var(--color-ring); @supports (color: color-mix(in lab, red, red)) { --tw-ring-color: color-mix(in oklab, var(--color-ring) 50%, transparent); } } &[aria-invalid="true"] { border-color: var(--color-destructive); } &[aria-invalid="true"] { --tw-ring-color: var(--color-destructive); @supports (color: color-mix(in lab, red, red)) { --tw-ring-color: color-mix(in oklab, var(--color-destructive) 20%, transparent); } } &:is(.dark *) { &[aria-invalid="true"] { --tw-ring-color: var(--color-destructive); @supports (color: color-mix(in lab, red, red)) { --tw-ring-color: color-mix(in oklab, var(--color-destructive) 40%, transparent); } } } } } @layer components { .form label, .label { display: flex; align-items: center; gap: calc(var(--spacing) * 2); font-size: var(--text-sm); line-height: var(--tw-leading, var(--text-sm--line-height)); --tw-leading: 1; line-height: 1; --tw-font-weight: var(--font-weight-medium); font-weight: var(--font-weight-medium); -webkit-user-select: none; user-select: none; &:is(:where(.peer):disabled ~ *) { pointer-events: none; } &:is(:where(.peer):disabled ~ *) { opacity: 50%; } &:has(>*:disabled), &:has(+*:disabled) { pointer-events: none; opacity: 50%; } } } @layer components { [data-popover] { visibility: visible; position: absolute; z-index: 50; width: max-content; min-width: 100%; --tw-scale-x: 100%; --tw-scale-y: 100%; --tw-scale-z: 100%; scale: var(--tw-scale-x) var(--tw-scale-y); overflow-x: hidden; overflow-y: auto; border-radius: var(--radius-md); border-style: var(--tw-border-style); border-width: 1px; background-color: var(--color-popover); color: var(--color-popover-foreground); opacity: 100%; --tw-shadow: 0 4px 6px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 2px 4px -2px var(--tw-shadow-color, rgb(0 0 0 / 0.1)); box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); transition-property: all; transition-timing-function: var(--tw-ease, var(--default-transition-timing-function)); transition-duration: var(--tw-duration, var(--default-transition-duration)); &[aria-hidden='true'] { visibility: hidden; --tw-scale-x: 95%; --tw-scale-y: 95%; --tw-scale-z: 95%; scale: var(--tw-scale-x) var(--tw-scale-y); opacity: 0%; &:not([data-side]), &[data-side='bottom'] { --tw-translate-y: calc(var(--spacing) * -2); translate: var(--tw-translate-x) var(--tw-translate-y); } &[data-side='top'] { --tw-translate-y: calc(var(--spacing) * 2); translate: var(--tw-translate-x) var(--tw-translate-y); } &[data-side='left'] { --tw-translate-x: calc(var(--spacing) * 2); translate: var(--tw-translate-x) var(--tw-translate-y); } &[data-side='right'] { --tw-translate-x: calc(var(--spacing) * -2); translate: var(--tw-translate-x) var(--tw-translate-y); } } &:not([data-side]), &[data-side='bottom'] { top: 100%; margin-top: calc(var(--spacing) * 1); } &[data-side='top'] { bottom: 100%; margin-bottom: calc(var(--spacing) * 1); } &[data-side='left'] { right: 100%; margin-right: calc(var(--spacing) * 1); } &[data-side='right'] { left: 100%; margin-left: calc(var(--spacing) * 1); } &:not([data-side]), &[data-side='bottom'], &[data-side='top'] { &:not([data-align]), &[data-align='start'] { left: calc(var(--spacing) * 0); } &[data-align='end'] { right: calc(var(--spacing) * 0); } &[data-align='center'] { left: calc(1/2 * 100%); --tw-tran