basecoat-css
Version:
Tailwind CSS for Basecoat components
1,415 lines • 104 kB
CSS
/*! 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