466 lines
12 KiB
CSS
466 lines
12 KiB
CSS
@import "tailwindcss";
|
|
@import "@cloudflare/kumo/styles";
|
|
|
|
@source "../node_modules/@cloudflare/kumo/dist";
|
|
|
|
@custom-variant dark (&:is(.dark *));
|
|
|
|
@theme inline {
|
|
--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-destructive-foreground: var(--destructive-foreground);
|
|
--color-border: var(--border);
|
|
--color-input: var(--input);
|
|
--color-ring: var(--ring);
|
|
--radius-sm: calc(var(--radius) - 4px);
|
|
--radius-md: calc(var(--radius) - 2px);
|
|
--radius-lg: var(--radius);
|
|
--radius-xl: calc(var(--radius) + 4px);
|
|
}
|
|
|
|
:root {
|
|
--radius: 0.5rem;
|
|
--background: oklch(0.986 0.008 151);
|
|
--foreground: oklch(0.215 0.025 157);
|
|
--card: oklch(1 0 0);
|
|
--card-foreground: oklch(0.215 0.025 157);
|
|
--popover: oklch(1 0 0);
|
|
--popover-foreground: oklch(0.215 0.025 157);
|
|
--primary: oklch(0.48 0.11 155);
|
|
--primary-foreground: oklch(0.985 0.01 150);
|
|
--secondary: oklch(0.945 0.026 152);
|
|
--secondary-foreground: oklch(0.28 0.058 156);
|
|
--muted: oklch(0.95 0.012 151);
|
|
--muted-foreground: oklch(0.47 0.025 157);
|
|
--accent: oklch(0.88 0.06 150);
|
|
--accent-foreground: oklch(0.25 0.055 155);
|
|
--destructive: oklch(0.58 0.19 25);
|
|
--destructive-foreground: oklch(0.985 0.01 150);
|
|
--border: oklch(0.89 0.016 151);
|
|
--input: oklch(0.89 0.016 151);
|
|
--ring: oklch(0.54 0.11 155);
|
|
--color-kumo-brand: var(--primary);
|
|
--color-kumo-brand-hover: oklch(0.42 0.12 155);
|
|
--color-kumo-focus: var(--ring);
|
|
--color-kumo-link: var(--primary);
|
|
--text-color-kumo-brand: var(--primary);
|
|
--text-color-kumo-link: var(--primary);
|
|
--color-kumo-success: oklch(0.52 0.13 155);
|
|
--color-kumo-success-tint: oklch(0.93 0.045 152);
|
|
--color-kumo-badge-green: oklch(0.48 0.11 155);
|
|
}
|
|
|
|
* {
|
|
border-color: var(--border);
|
|
}
|
|
|
|
html {
|
|
background: var(--background);
|
|
color: var(--foreground);
|
|
}
|
|
|
|
body {
|
|
min-height: 100svh;
|
|
background:
|
|
radial-gradient(circle at 12% 8%, color-mix(in oklch, var(--accent) 36%, transparent), transparent 30%),
|
|
linear-gradient(180deg, color-mix(in oklch, var(--background) 90%, white), var(--background));
|
|
color: var(--foreground);
|
|
font-family: Arial, Helvetica, sans-serif;
|
|
letter-spacing: 0;
|
|
}
|
|
|
|
button,
|
|
a,
|
|
[role="button"] {
|
|
-webkit-tap-highlight-color: transparent;
|
|
}
|
|
|
|
::selection {
|
|
background: color-mix(in oklch, var(--primary) 22%, transparent);
|
|
}
|
|
|
|
@keyframes page-enter {
|
|
from {
|
|
opacity: 0;
|
|
}
|
|
to {
|
|
opacity: 1;
|
|
}
|
|
}
|
|
|
|
@keyframes route-transition {
|
|
from {
|
|
opacity: 0;
|
|
transform: translateY(0.375rem);
|
|
}
|
|
to {
|
|
opacity: 1;
|
|
transform: translateY(0);
|
|
}
|
|
}
|
|
|
|
@keyframes loading-progress {
|
|
0% {
|
|
transform: translateX(-100%);
|
|
}
|
|
55% {
|
|
transform: translateX(-18%);
|
|
}
|
|
100% {
|
|
transform: translateX(100%);
|
|
}
|
|
}
|
|
|
|
.page-enter {
|
|
animation: page-enter 180ms ease-out both;
|
|
}
|
|
|
|
.route-transition {
|
|
animation: route-transition 180ms ease-out both;
|
|
}
|
|
|
|
.table-row-enter {
|
|
animation: page-enter 160ms ease-out both;
|
|
}
|
|
|
|
:where([role="presentation"].fixed.inset-0.bg-kumo-recessed) {
|
|
z-index: 40;
|
|
}
|
|
|
|
.teatea-button {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
gap: 0.375rem;
|
|
min-height: 2.5rem;
|
|
border-radius: var(--radius-md);
|
|
font-weight: 600;
|
|
line-height: 1.25;
|
|
white-space: nowrap;
|
|
transition:
|
|
background-color 140ms ease,
|
|
border-color 140ms ease,
|
|
color 140ms ease,
|
|
box-shadow 140ms ease,
|
|
opacity 140ms ease;
|
|
}
|
|
|
|
.teatea-button :where(svg) {
|
|
flex-shrink: 0;
|
|
}
|
|
|
|
.teatea-button:focus-visible,
|
|
.teatea-control:focus-visible,
|
|
.teatea-select-trigger:focus-visible,
|
|
:where([data-kumo-component="Select"][data-kumo-part="trigger"]):focus-visible {
|
|
outline: none;
|
|
box-shadow: 0 0 0 3px color-mix(in oklch, var(--ring) 24%, transparent);
|
|
}
|
|
|
|
.teatea-button-default {
|
|
border: 1px solid var(--primary);
|
|
background: var(--primary);
|
|
color: var(--primary-foreground);
|
|
}
|
|
|
|
.teatea-button-default:hover {
|
|
background: color-mix(in oklch, var(--primary) 88%, black);
|
|
border-color: color-mix(in oklch, var(--primary) 88%, black);
|
|
}
|
|
|
|
.teatea-button-outline,
|
|
.teatea-button-secondary {
|
|
border: 1px solid var(--border);
|
|
background: var(--card);
|
|
color: var(--foreground);
|
|
}
|
|
|
|
.teatea-button-outline:hover,
|
|
.teatea-button-secondary:hover,
|
|
.teatea-button-ghost:hover {
|
|
border-color: color-mix(in oklch, var(--primary) 45%, var(--border));
|
|
background: color-mix(in oklch, var(--secondary) 72%, white);
|
|
color: var(--accent-foreground);
|
|
}
|
|
|
|
.teatea-button-ghost {
|
|
border: 1px solid transparent;
|
|
background: transparent;
|
|
color: var(--foreground);
|
|
}
|
|
|
|
.teatea-button-destructive {
|
|
border: 1px solid var(--destructive);
|
|
background: var(--destructive);
|
|
color: var(--destructive-foreground);
|
|
}
|
|
|
|
.teatea-control,
|
|
.teatea-select-trigger,
|
|
:where([data-kumo-component="Select"][data-kumo-part="trigger"]) {
|
|
min-height: 2.5rem;
|
|
width: 100%;
|
|
border: 1px solid var(--input);
|
|
border-radius: var(--radius-md);
|
|
background: var(--card);
|
|
color: var(--foreground);
|
|
font-size: 0.875rem;
|
|
font-weight: 500;
|
|
line-height: 1.35;
|
|
box-shadow: 0 1px 2px color-mix(in oklch, var(--foreground) 7%, transparent);
|
|
transition:
|
|
background-color 140ms ease,
|
|
border-color 140ms ease,
|
|
box-shadow 140ms ease;
|
|
}
|
|
|
|
.teatea-control {
|
|
padding: 0.5rem 0.75rem;
|
|
}
|
|
|
|
.teatea-select-trigger,
|
|
:where([data-kumo-component="Select"][data-kumo-part="trigger"]) {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
gap: 0.5rem;
|
|
appearance: none;
|
|
outline: none;
|
|
padding: 0.5rem 0.75rem;
|
|
text-align: left;
|
|
}
|
|
|
|
.teatea-control:hover,
|
|
.teatea-select-trigger:hover,
|
|
:where([data-kumo-component="Select"][data-kumo-part="trigger"]):hover {
|
|
border-color: color-mix(in oklch, var(--primary) 45%, var(--input));
|
|
background: color-mix(in oklch, var(--secondary) 34%, white);
|
|
}
|
|
|
|
.teatea-select-trigger[data-open="true"] {
|
|
border-color: color-mix(in oklch, var(--primary) 58%, var(--input));
|
|
background: var(--card);
|
|
}
|
|
|
|
.teatea-control::placeholder {
|
|
color: var(--muted-foreground);
|
|
}
|
|
|
|
.teatea-control:disabled,
|
|
.teatea-button:disabled,
|
|
.teatea-select-trigger:disabled,
|
|
:where([data-kumo-component="Select"][data-kumo-part="trigger"][data-disabled]) {
|
|
cursor: not-allowed;
|
|
opacity: 0.55;
|
|
}
|
|
|
|
.teatea-select-trigger :where(svg),
|
|
.teatea-select :where(svg),
|
|
:where([data-kumo-component="Select"][data-kumo-part="trigger"]) :where(svg) {
|
|
color: var(--primary);
|
|
}
|
|
|
|
.teatea-select-panel {
|
|
position: fixed;
|
|
z-index: 60;
|
|
overflow-y: auto;
|
|
overscroll-behavior: contain;
|
|
border: 1px solid var(--border);
|
|
border-radius: var(--radius-md);
|
|
background: var(--card);
|
|
color: var(--foreground);
|
|
padding: 0.375rem;
|
|
box-shadow:
|
|
0 18px 44px color-mix(in oklch, var(--foreground) 14%, transparent),
|
|
0 0 0 1px color-mix(in oklch, var(--primary) 10%, transparent);
|
|
animation: page-enter 120ms ease-out both;
|
|
}
|
|
|
|
.teatea-select-option {
|
|
display: flex;
|
|
min-height: 2.25rem;
|
|
width: 100%;
|
|
cursor: pointer;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
gap: 0.625rem;
|
|
border: 0;
|
|
border-radius: calc(var(--radius-md) - 2px);
|
|
background: transparent;
|
|
color: var(--foreground);
|
|
padding: 0.5rem 0.625rem;
|
|
text-align: left;
|
|
font-size: 0.875rem;
|
|
outline: none;
|
|
}
|
|
|
|
.teatea-select-option[data-highlighted="true"],
|
|
.teatea-select-option:hover {
|
|
background: var(--secondary);
|
|
color: var(--secondary-foreground);
|
|
}
|
|
|
|
.teatea-select-option:focus-visible {
|
|
box-shadow: inset 0 0 0 2px color-mix(in oklch, var(--ring) 36%, transparent);
|
|
}
|
|
|
|
.teatea-select-option[data-selected="true"] {
|
|
color: var(--primary);
|
|
font-weight: 600;
|
|
}
|
|
|
|
.teatea-select-option:disabled {
|
|
cursor: not-allowed;
|
|
opacity: 0.5;
|
|
}
|
|
|
|
:where([role="listbox"]:has([data-kumo-component="Select"][data-kumo-part="option"])) {
|
|
z-index: 60;
|
|
outline: none;
|
|
max-height: min(18rem, var(--available-height, 18rem));
|
|
min-width: var(--anchor-width, 12rem);
|
|
overflow-y: auto;
|
|
overscroll-behavior: contain;
|
|
border: 1px solid var(--border);
|
|
border-radius: var(--radius-md);
|
|
background: var(--card);
|
|
color: var(--foreground);
|
|
padding: 0.375rem;
|
|
box-shadow:
|
|
0 18px 44px color-mix(in oklch, var(--foreground) 14%, transparent),
|
|
0 0 0 1px color-mix(in oklch, var(--primary) 10%, transparent);
|
|
}
|
|
|
|
:where([data-kumo-component="Select"][data-kumo-part="option"]) {
|
|
min-height: 2.25rem;
|
|
cursor: pointer;
|
|
outline: none;
|
|
border-radius: calc(var(--radius-md) - 2px);
|
|
padding: 0.5rem 0.625rem;
|
|
color: var(--foreground);
|
|
font-size: 0.875rem;
|
|
}
|
|
|
|
:where([data-kumo-component="Select"][data-kumo-part="option"][data-highlighted]),
|
|
:where([data-kumo-component="Select"][data-kumo-part="option"]):hover {
|
|
background: var(--secondary);
|
|
color: var(--secondary-foreground);
|
|
}
|
|
|
|
:where([data-kumo-component="Select"][data-kumo-part="option"][data-selected]) {
|
|
color: var(--primary);
|
|
font-weight: 600;
|
|
}
|
|
|
|
.teatea-checkbox {
|
|
display: inline-flex;
|
|
width: 100%;
|
|
align-items: flex-start;
|
|
gap: 0.75rem;
|
|
}
|
|
|
|
.teatea-checkbox :where([data-kumo-component="Checkbox"]),
|
|
.teatea-checkbox-control {
|
|
width: 1.25rem;
|
|
height: 1.25rem;
|
|
min-width: 1.25rem;
|
|
min-height: 1.25rem;
|
|
flex-shrink: 0;
|
|
}
|
|
|
|
.teatea-checkbox :where([data-kumo-component="Checkbox"]) {
|
|
border: 1px solid var(--input);
|
|
border-radius: var(--radius-sm);
|
|
background: var(--card);
|
|
color: var(--primary-foreground);
|
|
}
|
|
|
|
.teatea-checkbox :where([data-kumo-component="Checkbox"][data-checked]),
|
|
.teatea-checkbox :where([data-kumo-component="Checkbox"][aria-checked="true"]) {
|
|
border-color: var(--primary);
|
|
background: var(--primary);
|
|
}
|
|
|
|
.teatea-badge {
|
|
border-radius: var(--radius-sm);
|
|
font-weight: 600;
|
|
}
|
|
|
|
.teatea-card {
|
|
border: 1px solid var(--border);
|
|
border-radius: var(--radius-lg);
|
|
background: var(--card);
|
|
color: var(--card-foreground);
|
|
box-shadow:
|
|
0 1px 2px color-mix(in oklch, var(--foreground) 6%, transparent),
|
|
0 0 0 1px color-mix(in oklch, var(--primary) 4%, transparent);
|
|
}
|
|
|
|
.teatea-card-header {
|
|
background: color-mix(in oklch, var(--secondary) 18%, var(--card));
|
|
}
|
|
|
|
.teatea-table {
|
|
width: 100%;
|
|
border-collapse: collapse;
|
|
color: var(--foreground);
|
|
}
|
|
|
|
.teatea-table :where(thead) {
|
|
border-bottom: 1px solid var(--border);
|
|
background: var(--secondary);
|
|
}
|
|
|
|
.teatea-table :where(th) {
|
|
color: var(--muted-foreground);
|
|
font-weight: 600;
|
|
}
|
|
|
|
.teatea-table :where(tbody tr:hover) {
|
|
background: color-mix(in oklch, var(--secondary) 42%, transparent);
|
|
}
|
|
|
|
.teatea-dialog {
|
|
inset: 0 !important;
|
|
height: fit-content;
|
|
margin: auto !important;
|
|
min-width: 0 !important;
|
|
transform: none !important;
|
|
translate: 0 0 !important;
|
|
border: 1px solid var(--border);
|
|
border-radius: var(--radius-lg);
|
|
background: var(--card);
|
|
color: var(--foreground);
|
|
box-shadow:
|
|
0 26px 80px color-mix(in oklch, var(--foreground) 16%, transparent),
|
|
0 0 0 1px color-mix(in oklch, var(--primary) 10%, transparent);
|
|
}
|
|
|
|
.loading-progress {
|
|
width: 55%;
|
|
animation: loading-progress 900ms ease-in-out infinite;
|
|
}
|
|
|
|
@media (prefers-reduced-motion: reduce) {
|
|
.page-enter,
|
|
.route-transition,
|
|
.table-row-enter,
|
|
.teatea-select-panel,
|
|
.loading-progress {
|
|
animation: none;
|
|
}
|
|
}
|