@justanarthur/modo-ui 0.0.0-stage → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/LICENSE.beui +21 -0
- package/LICENSE.fluid-functionalism +21 -0
- package/LICENSE.motion-primitives +21 -0
- package/LICENSE.sileo +21 -0
- package/README.md +608 -2
- package/dist/base.css +994 -0
- package/dist/blocks/sidebar-app/index.d.ts +34 -0
- package/dist/blocks/sidebar-app/index.js +34 -0
- package/dist/components/badge/index.d.ts +59 -0
- package/dist/components/badge/index.js +18 -0
- package/dist/components/button/index.d.ts +59 -0
- package/dist/components/button/index.js +16 -0
- package/dist/components/card/index.d.ts +141 -0
- package/dist/components/card/index.js +44 -0
- package/dist/components/inputs/checkbox-group/index.d.ts +50 -0
- package/dist/components/inputs/checkbox-group/index.js +23 -0
- package/dist/components/inputs/color-picker/index.d.ts +137 -0
- package/dist/components/inputs/color-picker/index.js +37 -0
- package/dist/components/inputs/combobox/index.d.ts +161 -0
- package/dist/components/inputs/combobox/index.js +41 -0
- package/dist/components/inputs/date-time/calendar/index.d.ts +45 -0
- package/dist/components/inputs/date-time/calendar/index.js +20 -0
- package/dist/components/inputs/date-time/date-picker/index.d.ts +82 -0
- package/dist/components/inputs/date-time/date-picker/index.js +34 -0
- package/dist/components/inputs/date-time/date-range-picker/index.d.ts +64 -0
- package/dist/components/inputs/date-time/date-range-picker/index.js +33 -0
- package/dist/components/inputs/date-time/duration-picker/index.d.ts +57 -0
- package/dist/components/inputs/date-time/duration-picker/index.js +33 -0
- package/dist/components/inputs/date-time/month-picker/index.d.ts +57 -0
- package/dist/components/inputs/date-time/month-picker/index.js +32 -0
- package/dist/components/inputs/date-time/time-picker/index.d.ts +59 -0
- package/dist/components/inputs/date-time/time-picker/index.js +33 -0
- package/dist/components/inputs/input/index.d.ts +84 -0
- package/dist/components/inputs/input/index.js +20 -0
- package/dist/components/inputs/input-copy/index.d.ts +44 -0
- package/dist/components/inputs/input-copy/index.js +18 -0
- package/dist/components/inputs/input-message/index.d.ts +125 -0
- package/dist/components/inputs/input-message/index.js +27 -0
- package/dist/components/inputs/radio-group/index.d.ts +58 -0
- package/dist/components/inputs/radio-group/index.js +22 -0
- package/dist/components/inputs/search/index.d.ts +83 -0
- package/dist/components/inputs/search/index.js +28 -0
- package/dist/components/inputs/select/index.d.ts +105 -0
- package/dist/components/inputs/select/index.js +37 -0
- package/dist/components/inputs/slider/index.d.ts +108 -0
- package/dist/components/inputs/slider/index.js +16 -0
- package/dist/components/inputs/switch/index.d.ts +43 -0
- package/dist/components/inputs/switch/index.js +16 -0
- package/dist/components/navigation/accordion/index.d.ts +117 -0
- package/dist/components/navigation/accordion/index.js +30 -0
- package/dist/components/navigation/sidebar/index.d.ts +388 -0
- package/dist/components/navigation/sidebar/index.js +101 -0
- package/dist/components/navigation/tabs/index.d.ts +70 -0
- package/dist/components/navigation/tabs/index.js +25 -0
- package/dist/components/navigation/tabs-subtle/index.d.ts +73 -0
- package/dist/components/navigation/tabs-subtle/index.js +23 -0
- package/dist/components/overlays/alert-dialog/index.d.ts +67 -0
- package/dist/components/overlays/alert-dialog/index.js +24 -0
- package/dist/components/overlays/command/index.d.ts +121 -0
- package/dist/components/overlays/command/index.js +39 -0
- package/dist/components/overlays/context-menu/index.d.ts +97 -0
- package/dist/components/overlays/context-menu/index.js +32 -0
- package/dist/components/overlays/dialog/index.d.ts +130 -0
- package/dist/components/overlays/dialog/index.js +39 -0
- package/dist/components/overlays/dropdown/index.d.ts +222 -0
- package/dist/components/overlays/dropdown/index.js +47 -0
- package/dist/components/overlays/popover/index.d.ts +87 -0
- package/dist/components/overlays/popover/index.js +28 -0
- package/dist/components/overlays/preview-card/index.d.ts +75 -0
- package/dist/components/overlays/preview-card/index.js +21 -0
- package/dist/components/overlays/sheet/index.d.ts +67 -0
- package/dist/components/overlays/sheet/index.js +26 -0
- package/dist/components/overlays/toast/index.d.ts +107 -0
- package/dist/components/overlays/toast/index.js +23 -0
- package/dist/components/overlays/tooltip/index.d.ts +75 -0
- package/dist/components/overlays/tooltip/index.js +19 -0
- package/dist/components/table/index.d.ts +44 -0
- package/dist/components/table/index.js +28 -0
- package/dist/components/thinking-indicator/index.d.ts +32 -0
- package/dist/components/thinking-indicator/index.js +15 -0
- package/dist/index.d.ts +3926 -0
- package/dist/index.js +513 -0
- package/dist/preset.d.ts +104 -0
- package/dist/preset.js +124 -0
- package/dist/primitives/code/index.d.ts +23 -0
- package/dist/primitives/code/index.js +12 -0
- package/dist/primitives/craft/index.d.ts +31 -0
- package/dist/primitives/craft/index.js +13 -0
- package/dist/primitives/fluid-hover/index.d.ts +233 -0
- package/dist/primitives/fluid-hover/index.js +27 -0
- package/dist/primitives/morph/index.d.ts +127 -0
- package/dist/primitives/morph/index.js +21 -0
- package/dist/primitives/motion/index.d.ts +115 -0
- package/dist/primitives/motion/index.js +20 -0
- package/dist/primitives/scroll-area/index.d.ts +41 -0
- package/dist/primitives/scroll-area/index.js +13 -0
- package/dist/primitives/sizes/index.d.ts +128 -0
- package/dist/primitives/sizes/index.js +22 -0
- package/dist/primitives/surface/index.d.ts +69 -0
- package/dist/primitives/surface/index.js +18 -0
- package/dist/shared/components-0f0as45n.js +17 -0
- package/dist/shared/components-40j34hdb.js +986 -0
- package/dist/shared/components-4hh0gm0v.js +292 -0
- package/dist/shared/components-4xxddc44.js +15 -0
- package/dist/shared/components-4xxtggzp.js +110 -0
- package/dist/shared/components-54nf2x99.js +293 -0
- package/dist/shared/components-5pkcfprd.js +232 -0
- package/dist/shared/components-5vxtcp88.js +9 -0
- package/dist/shared/components-5zry9te1.js +152 -0
- package/dist/shared/components-61ckf42z.js +220 -0
- package/dist/shared/components-6hzwfmfd.js +58 -0
- package/dist/shared/components-6phwsry6.js +361 -0
- package/dist/shared/components-6t6nr33r.js +86 -0
- package/dist/shared/components-6y1th6k4.js +111 -0
- package/dist/shared/components-74c20v2f.js +32 -0
- package/dist/shared/components-7cqq1sqy.js +193 -0
- package/dist/shared/components-7gv95yfy.js +496 -0
- package/dist/shared/components-7nww01w4.js +375 -0
- package/dist/shared/components-7zp99w5d.js +62 -0
- package/dist/shared/components-8hk9ve3r.js +1200 -0
- package/dist/shared/components-8hzbsfbd.js +123 -0
- package/dist/shared/components-9p8s8n5q.js +171 -0
- package/dist/shared/components-aaq3yk4f.js +304 -0
- package/dist/shared/components-bf2d9k02.js +484 -0
- package/dist/shared/components-bkvb6nem.js +63 -0
- package/dist/shared/components-brnzrp2t.js +262 -0
- package/dist/shared/components-csxz9f52.js +42 -0
- package/dist/shared/components-de8xsm9y.js +22 -0
- package/dist/shared/components-dg0w8g5p.js +26 -0
- package/dist/shared/components-dphg9gjr.js +42 -0
- package/dist/shared/components-e46kf6cp.js +298 -0
- package/dist/shared/components-ed7cmssr.js +105 -0
- package/dist/shared/components-ess3ch6w.js +137 -0
- package/dist/shared/components-gjfrycb5.js +984 -0
- package/dist/shared/components-gndm6am4.js +128 -0
- package/dist/shared/components-hjkrv00c.js +191 -0
- package/dist/shared/components-hzfp4tjb.js +270 -0
- package/dist/shared/components-j65qt1mq.js +719 -0
- package/dist/shared/components-jw16snbn.js +19 -0
- package/dist/shared/components-jxgznftn.js +146 -0
- package/dist/shared/components-kf2ehztc.js +216 -0
- package/dist/shared/components-kpbcms10.js +9 -0
- package/dist/shared/components-m5br529r.js +141 -0
- package/dist/shared/components-nn6xezy2.js +1828 -0
- package/dist/shared/components-nnnd2xef.js +9 -0
- package/dist/shared/components-p2vmyfe1.js +345 -0
- package/dist/shared/components-peg09pzs.js +79 -0
- package/dist/shared/components-r22vtgqc.js +45 -0
- package/dist/shared/components-r2gke5p6.js +1759 -0
- package/dist/shared/components-r43mqnd6.js +160 -0
- package/dist/shared/components-r4jt6hgd.js +58 -0
- package/dist/shared/components-rc63qsy6.js +159 -0
- package/dist/shared/components-s3yfvfkr.js +149 -0
- package/dist/shared/components-s5pkbjx1.js +445 -0
- package/dist/shared/components-tad5h7ta.js +346 -0
- package/dist/shared/components-taxmgbnh.js +120 -0
- package/dist/shared/components-tm88ghva.js +215 -0
- package/dist/shared/components-v7es8aan.js +144 -0
- package/dist/shared/components-vb033rns.js +28 -0
- package/dist/shared/components-vc1k7yv2.js +30 -0
- package/dist/shared/components-vktws5r6.js +667 -0
- package/dist/shared/components-x2xyckd5.js +198 -0
- package/dist/shared/components-x3rz4cyn.js +61 -0
- package/dist/shared/components-xszag63d.js +141 -0
- package/dist/shared/components-y3cqdrgy.js +291 -0
- package/dist/shared/components-zvb11ker.js +288 -0
- package/dist/shared/components-zx2hr57f.js +124 -0
- package/dist/styles.css +1949 -0
- package/dist/tailwind.css +219 -0
- package/dist/tokens.css +345 -0
- package/package.json +102 -3
package/dist/styles.css
ADDED
|
@@ -0,0 +1,1949 @@
|
|
|
1
|
+
@import "@fontsource-variable/inter/opsz.css";
|
|
2
|
+
@layer properties, theme, base, shortcuts, default;
|
|
3
|
+
/* layer: properties */
|
|
4
|
+
@layer properties{
|
|
5
|
+
@supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))){*, ::before, ::after, ::backdrop{--un-bg-opacity:100%;--un-border-opacity:100%;--un-border-top-opacity:100%;--un-ease:initial;--un-fill-opacity:100%;--un-leading:initial;--un-line-opacity:100%;--un-ring-offset-opacity:100%;--un-ring-opacity:100%;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-stroke-opacity:100%;--un-text-opacity:100%;--un-translate-x:initial;--un-translate-y:initial;--un-translate-z:initial;}}
|
|
6
|
+
@property --un-text-opacity{syntax:"<percentage>";inherits:false;initial-value:100%;}
|
|
7
|
+
@property --un-leading{syntax:"*";inherits:false;}
|
|
8
|
+
@property --un-outline-style{syntax:"*";inherits:false;initial-value:solid;}
|
|
9
|
+
@property --un-border-opacity{syntax:"<percentage>";inherits:false;initial-value:100%;}
|
|
10
|
+
@property --un-border-top-opacity{syntax:"<percentage>";inherits:false;initial-value:100%;}
|
|
11
|
+
@property --un-bg-opacity{syntax:"<percentage>";inherits:false;initial-value:100%;}
|
|
12
|
+
@property --un-line-opacity{syntax:"<percentage>";inherits:false;initial-value:100%;}
|
|
13
|
+
@property --un-ring-opacity{syntax:"<percentage>";inherits:false;initial-value:100%;}
|
|
14
|
+
@property --un-ring-offset-opacity{syntax:"<percentage>";inherits:false;initial-value:100%;}
|
|
15
|
+
@property --un-inset-ring-color{syntax:"*";inherits:false;}
|
|
16
|
+
@property --un-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000;}
|
|
17
|
+
@property --un-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000;}
|
|
18
|
+
@property --un-inset-shadow-color{syntax:"*";inherits:false;}
|
|
19
|
+
@property --un-ring-color{syntax:"*";inherits:false;}
|
|
20
|
+
@property --un-ring-inset{syntax:"*";inherits:false;}
|
|
21
|
+
@property --un-ring-offset-color{syntax:"*";inherits:false;}
|
|
22
|
+
@property --un-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000;}
|
|
23
|
+
@property --un-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0px;}
|
|
24
|
+
@property --un-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000;}
|
|
25
|
+
@property --un-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000;}
|
|
26
|
+
@property --un-shadow-color{syntax:"*";inherits:false;}
|
|
27
|
+
@property --un-translate-x{syntax:"*";inherits:false;initial-value:0;}
|
|
28
|
+
@property --un-translate-y{syntax:"*";inherits:false;initial-value:0;}
|
|
29
|
+
@property --un-translate-z{syntax:"*";inherits:false;initial-value:0;}
|
|
30
|
+
@property --un-scale-x{syntax:"*";inherits:false;initial-value:1;}
|
|
31
|
+
@property --un-scale-y{syntax:"*";inherits:false;initial-value:1;}
|
|
32
|
+
@property --un-scale-z{syntax:"*";inherits:false;initial-value:1;}
|
|
33
|
+
@property --un-ease{syntax:"*";inherits:false;}
|
|
34
|
+
@property --un-fill-opacity{syntax:"<percentage>";inherits:false;initial-value:100%;}
|
|
35
|
+
@property --un-stroke-opacity{syntax:"<percentage>";inherits:false;initial-value:100%;}
|
|
36
|
+
@property --un-backdrop-blur{syntax:"*";inherits:false;}
|
|
37
|
+
@property --un-backdrop-brightness{syntax:"*";inherits:false;}
|
|
38
|
+
@property --un-backdrop-contrast{syntax:"*";inherits:false;}
|
|
39
|
+
@property --un-backdrop-grayscale{syntax:"*";inherits:false;}
|
|
40
|
+
@property --un-backdrop-hue-rotate{syntax:"*";inherits:false;}
|
|
41
|
+
@property --un-backdrop-invert{syntax:"*";inherits:false;}
|
|
42
|
+
@property --un-backdrop-opacity{syntax:"*";inherits:false;}
|
|
43
|
+
@property --un-backdrop-saturate{syntax:"*";inherits:false;}
|
|
44
|
+
@property --un-backdrop-sepia{syntax:"*";inherits:false;}
|
|
45
|
+
@property --un-blur{syntax:"*";inherits:false;}
|
|
46
|
+
@property --un-brightness{syntax:"*";inherits:false;}
|
|
47
|
+
@property --un-contrast{syntax:"*";inherits:false;}
|
|
48
|
+
@property --un-drop-shadow{syntax:"*";inherits:false;}
|
|
49
|
+
@property --un-grayscale{syntax:"*";inherits:false;}
|
|
50
|
+
@property --un-hue-rotate{syntax:"*";inherits:false;}
|
|
51
|
+
@property --un-invert{syntax:"*";inherits:false;}
|
|
52
|
+
@property --un-saturate{syntax:"*";inherits:false;}
|
|
53
|
+
@property --un-sepia{syntax:"*";inherits:false;}
|
|
54
|
+
@property --un-numeric-figure{syntax:"*";inherits:false;}
|
|
55
|
+
@property --un-numeric-fraction{syntax:"*";inherits:false;}
|
|
56
|
+
@property --un-numeric-spacing{syntax:"*";inherits:false;}
|
|
57
|
+
@property --un-ordinal{syntax:"*";inherits:false;}
|
|
58
|
+
@property --un-slashed-zero{syntax:"*";inherits:false;}
|
|
59
|
+
}
|
|
60
|
+
/* layer: theme */
|
|
61
|
+
@layer theme{
|
|
62
|
+
:root, :host { --radius-DEFAULT: 0.25rem; --spacing: 0.25rem; --default-transition-timingFunction: cubic-bezier(0.4, 0, 0.2, 1); --default-transition-duration: 150ms; --radius-none: 0; --ease-DEFAULT: cubic-bezier(0.4, 0, 0.2, 1); --font-sans: 'Inter Variable', ui-sans-serif, system-ui, sans-serif; --ease-in-out: cubic-bezier(0.4, 0, 0.2, 1); --leading-tight: 1.25; --radius-2xl: 1rem; --radius-3xl: 1.5rem; --radius-lg: 0.5rem; --radius-xl: 0.75rem; --leading-none: 1; --leading-snug: 1.375; --leading-normal: 1.5; --radius-xs: 0.125rem; --tracking-wide: 0.025em; --leading-relaxed: 1.625; --font-mono: ui-monospace, 'SF Mono', SFMono-Regular, Menlo, Consolas, monospace; --radius-md: 0.375rem; --ease-out: cubic-bezier(0, 0, 0.2, 1); --radius-sm: 0.25rem; --default-font-family: var(--font-sans); --default-monoFont-family: var(--font-mono); }
|
|
63
|
+
}
|
|
64
|
+
/* layer: base */
|
|
65
|
+
@layer base{
|
|
66
|
+
*, ::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, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', 'Noto Sans', Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji' ); font-feature-settings: var(--default-font-featureSettings, normal); font-variation-settings: var(--default-font-variationSettings, 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-monoFont-family, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace ); font-feature-settings: var(--default-monoFont-featureSettings, normal); font-variation-settings: var(--default-monoFont-variationSettings, 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:where(:not(iframe)) { 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: 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; } ::-webkit-calendar-picker-indicator { line-height: 1; } :-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; }
|
|
67
|
+
}
|
|
68
|
+
/* layer: shortcuts */
|
|
69
|
+
@layer shortcuts{
|
|
70
|
+
.container{width:100%;}
|
|
71
|
+
@media (min-width: 40rem){
|
|
72
|
+
.container{max-width:40rem;}
|
|
73
|
+
}
|
|
74
|
+
@media (min-width: 48rem){
|
|
75
|
+
.container{max-width:48rem;}
|
|
76
|
+
}
|
|
77
|
+
@media (min-width: 64rem){
|
|
78
|
+
.container{max-width:64rem;}
|
|
79
|
+
}
|
|
80
|
+
@media (min-width: 80rem){
|
|
81
|
+
.container{max-width:80rem;}
|
|
82
|
+
}
|
|
83
|
+
@media (min-width: 96rem){
|
|
84
|
+
.container{max-width:96rem;}
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
/* layer: default */
|
|
88
|
+
@layer default{
|
|
89
|
+
.data-\[placeholder\]\:text-muted-foreground[data-placeholder],
|
|
90
|
+
.text-muted-foreground{color:color-mix(in srgb, var(--muted-foreground) var(--un-text-opacity), transparent);}
|
|
91
|
+
.group\/row.is-active .group-\[\.is-active\]\/row\:text-foreground,
|
|
92
|
+
.text-foreground,
|
|
93
|
+
.group\/field:focus-within .group-focus-within\/field\:text-foreground,
|
|
94
|
+
.group\/search:focus-within .group-focus-within\/search\:text-foreground,
|
|
95
|
+
.group:hover .group-hover\:text-foreground,
|
|
96
|
+
.group\/field:hover .group-hover\/field\:text-foreground,
|
|
97
|
+
.group\/search:hover .group-hover\/search\:text-foreground{color:color-mix(in srgb, var(--foreground) var(--un-text-opacity), transparent);}
|
|
98
|
+
.text-background{color:color-mix(in srgb, var(--background) var(--un-text-opacity), transparent);}
|
|
99
|
+
.text-background\/80{color:color-mix(in srgb, var(--background) 80%, transparent);}
|
|
100
|
+
.text-destructive{color:color-mix(in srgb, var(--destructive) var(--un-text-opacity), transparent);}
|
|
101
|
+
.text-foreground\/85{color:color-mix(in srgb, var(--foreground) 85%, transparent);}
|
|
102
|
+
.text-muted-foreground\/50{color:color-mix(in srgb, var(--muted-foreground) 50%, transparent);}
|
|
103
|
+
.text-muted-foreground\/70{color:color-mix(in srgb, var(--muted-foreground) 70%, transparent);}
|
|
104
|
+
.text-status-action{color:color-mix(in srgb, var(--status-action) var(--un-text-opacity), transparent);}
|
|
105
|
+
.text-status-error{color:color-mix(in srgb, var(--status-error) var(--un-text-opacity), transparent);}
|
|
106
|
+
.text-status-info{color:color-mix(in srgb, var(--status-info) var(--un-text-opacity), transparent);}
|
|
107
|
+
.text-status-loading{color:color-mix(in srgb, var(--status-loading) var(--un-text-opacity), transparent);}
|
|
108
|
+
.text-status-success{color:color-mix(in srgb, var(--status-success) var(--un-text-opacity), transparent);}
|
|
109
|
+
.text-status-warning{color:color-mix(in srgb, var(--status-warning) var(--un-text-opacity), transparent);}
|
|
110
|
+
.text-syntax-class{color:color-mix(in srgb, var(--syntax-class) var(--un-text-opacity), transparent);}
|
|
111
|
+
.text-syntax-comment{color:color-mix(in srgb, var(--syntax-comment) var(--un-text-opacity), transparent);}
|
|
112
|
+
.text-syntax-entity{color:color-mix(in srgb, var(--syntax-entity) var(--un-text-opacity), transparent);}
|
|
113
|
+
.text-syntax-identifier{color:color-mix(in srgb, var(--syntax-identifier) var(--un-text-opacity), transparent);}
|
|
114
|
+
.text-syntax-jsx{color:color-mix(in srgb, var(--syntax-jsx) var(--un-text-opacity), transparent);}
|
|
115
|
+
.text-syntax-keyword{color:color-mix(in srgb, var(--syntax-keyword) var(--un-text-opacity), transparent);}
|
|
116
|
+
.text-syntax-property{color:color-mix(in srgb, var(--syntax-property) var(--un-text-opacity), transparent);}
|
|
117
|
+
.text-syntax-sign{color:color-mix(in srgb, var(--syntax-sign) var(--un-text-opacity), transparent);}
|
|
118
|
+
.text-syntax-string{color:color-mix(in srgb, var(--syntax-string) var(--un-text-opacity), transparent);}
|
|
119
|
+
.text-transparent{color:transparent;}
|
|
120
|
+
.hover\:text-foreground:hover{color:color-mix(in srgb, var(--foreground) var(--un-text-opacity), transparent);}
|
|
121
|
+
.hover\:text-muted-foreground:hover{color:color-mix(in srgb, var(--muted-foreground) var(--un-text-opacity), transparent);}
|
|
122
|
+
.placeholder\:text-muted-foreground::placeholder{color:color-mix(in srgb, var(--muted-foreground) var(--un-text-opacity), transparent);}
|
|
123
|
+
.leading-4\.5{--un-leading:calc(var(--spacing) * 4.5);line-height:calc(var(--spacing) * 4.5);}
|
|
124
|
+
.leading-5{--un-leading:calc(var(--spacing) * 5);line-height:calc(var(--spacing) * 5);}
|
|
125
|
+
.leading-6{--un-leading:calc(var(--spacing) * 6);line-height:calc(var(--spacing) * 6);}
|
|
126
|
+
.leading-none{--un-leading:var(--leading-none);line-height:var(--leading-none);}
|
|
127
|
+
.leading-normal{--un-leading:var(--leading-normal);line-height:var(--leading-normal);}
|
|
128
|
+
.leading-relaxed{--un-leading:var(--leading-relaxed);line-height:var(--leading-relaxed);}
|
|
129
|
+
.leading-snug{--un-leading:var(--leading-snug);line-height:var(--leading-snug);}
|
|
130
|
+
.leading-tight{--un-leading:var(--leading-tight);line-height:var(--leading-tight);}
|
|
131
|
+
.tracking-wide{--un-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide);}
|
|
132
|
+
.font-\[inherit\]{font-family:inherit;}
|
|
133
|
+
.font-mono{font-family:var(--font-mono);}
|
|
134
|
+
.font-sans{font-family:var(--font-sans);}
|
|
135
|
+
.tab{-moz-tab-size:4;-o-tab-size:4;tab-size:4;}
|
|
136
|
+
.m-0{margin:calc(var(--spacing) * 0);}
|
|
137
|
+
.m\[1\]{margin:1;}
|
|
138
|
+
.-mx-1{margin-inline:calc(var(--spacing) * -1);}
|
|
139
|
+
.-mx-2{margin-inline:calc(var(--spacing) * -2);}
|
|
140
|
+
.-my-1{margin-block:calc(var(--spacing) * -1);}
|
|
141
|
+
.mx{margin-inline:calc(var(--spacing) * 4);}
|
|
142
|
+
.mx-1{margin-inline:calc(var(--spacing) * 1);}
|
|
143
|
+
.mx-2{margin-inline:calc(var(--spacing) * 2);}
|
|
144
|
+
.mx-auto{margin-inline:auto;}
|
|
145
|
+
.my-1{margin-block:calc(var(--spacing) * 1);}
|
|
146
|
+
.my-auto{margin-block:auto;}
|
|
147
|
+
.-mb-\[0\.25em\]{margin-bottom:-0.25em;}
|
|
148
|
+
.-ml-0\.5{margin-left:calc(var(--spacing) * -0.5);}
|
|
149
|
+
.-ml-1{margin-left:calc(var(--spacing) * -1);}
|
|
150
|
+
.-mr-0\.5{margin-right:calc(var(--spacing) * -0.5);}
|
|
151
|
+
.-mt-\[0\.25em\]{margin-top:-0.25em;}
|
|
152
|
+
.-mt-1{margin-top:calc(var(--spacing) * -1);}
|
|
153
|
+
.\[\&\>\*\]\:mb-0>*{margin-bottom:calc(var(--spacing) * 0);}
|
|
154
|
+
.\[\&\>\*\+\*\]\:-mt-px>*+*{margin-top:-1px;}
|
|
155
|
+
.mb-0\.5{margin-bottom:calc(var(--spacing) * 0.5);}
|
|
156
|
+
.mb-2{margin-bottom:calc(var(--spacing) * 2);}
|
|
157
|
+
.mb-4{margin-bottom:calc(var(--spacing) * 4);}
|
|
158
|
+
.me{margin-inline-end:calc(var(--spacing) * 4);}
|
|
159
|
+
.ml-\[15px\]{margin-left:15px;}
|
|
160
|
+
.ml-1{margin-left:calc(var(--spacing) * 1);}
|
|
161
|
+
.ml-auto{margin-left:auto;}
|
|
162
|
+
.mr-1{margin-right:calc(var(--spacing) * 1);}
|
|
163
|
+
.mt-0\.5{margin-top:calc(var(--spacing) * 0.5);}
|
|
164
|
+
.mt-2{margin-top:calc(var(--spacing) * 2);}
|
|
165
|
+
.mt-3{margin-top:calc(var(--spacing) * 3);}
|
|
166
|
+
.mt-6{margin-top:calc(var(--spacing) * 6);}
|
|
167
|
+
.mt-auto{margin-top:auto;}
|
|
168
|
+
.data-\[empty\]\:p-0[data-empty],
|
|
169
|
+
.p-0{padding:calc(var(--spacing) * 0);}
|
|
170
|
+
.p-0\.5{padding:calc(var(--spacing) * 0.5);}
|
|
171
|
+
.p-1{padding:calc(var(--spacing) * 1);}
|
|
172
|
+
.p-2{padding:calc(var(--spacing) * 2);}
|
|
173
|
+
.p-3{padding:calc(var(--spacing) * 3);}
|
|
174
|
+
.p-4{padding:calc(var(--spacing) * 4);}
|
|
175
|
+
.p-6{padding:calc(var(--spacing) * 6);}
|
|
176
|
+
.\!px-0{padding-inline:calc(var(--spacing) * 0) !important;}
|
|
177
|
+
.\[\&\:not\(\:empty\)\]\:py-6:not(:empty),
|
|
178
|
+
.py-6{padding-block:calc(var(--spacing) * 6);}
|
|
179
|
+
.px,
|
|
180
|
+
.px-4{padding-inline:calc(var(--spacing) * 4);}
|
|
181
|
+
.px-0\.5{padding-inline:calc(var(--spacing) * 0.5);}
|
|
182
|
+
.px-1,
|
|
183
|
+
.px1{padding-inline:calc(var(--spacing) * 1);}
|
|
184
|
+
.px-1\.5{padding-inline:calc(var(--spacing) * 1.5);}
|
|
185
|
+
.px-2{padding-inline:calc(var(--spacing) * 2);}
|
|
186
|
+
.px-2\.5{padding-inline:calc(var(--spacing) * 2.5);}
|
|
187
|
+
.px-3{padding-inline:calc(var(--spacing) * 3);}
|
|
188
|
+
.px0{padding-inline:calc(var(--spacing) * 0);}
|
|
189
|
+
.py-\[5px\]{padding-block:5px;}
|
|
190
|
+
.py-1{padding-block:calc(var(--spacing) * 1);}
|
|
191
|
+
.py-1\.5{padding-block:calc(var(--spacing) * 1.5);}
|
|
192
|
+
.py-2{padding-block:calc(var(--spacing) * 2);}
|
|
193
|
+
.py-2\.5{padding-block:calc(var(--spacing) * 2.5);}
|
|
194
|
+
.py-3{padding-block:calc(var(--spacing) * 3);}
|
|
195
|
+
.py-3\.5{padding-block:calc(var(--spacing) * 3.5);}
|
|
196
|
+
.\[\&_\[data-slot\=card-header\]\]\:pr-10 [data-slot=card-header],
|
|
197
|
+
.\[\&\:focus-within_\[data-slot\=card-header\]\]\:pr-10:focus-within [data-slot=card-header],
|
|
198
|
+
.\[\&\:hover_\[data-slot\=card-header\]\]\:pr-10:hover [data-slot=card-header]{padding-right:calc(var(--spacing) * 10);}
|
|
199
|
+
.\[\&_\[role\=menuitem\]\]\:pl-2 [role=menuitem],
|
|
200
|
+
.\[\&_\[role\=menuitemradio\]\]\:pl-2 [role=menuitemradio],
|
|
201
|
+
.pl-2{padding-left:calc(var(--spacing) * 2);}
|
|
202
|
+
.\[\&_\[role\=menuitem\]\]\:pr-1\.5 [role=menuitem],
|
|
203
|
+
.\[\&_\[role\=menuitemradio\]\]\:pr-1\.5 [role=menuitemradio],
|
|
204
|
+
.pr-1\.5{padding-right:calc(var(--spacing) * 1.5);}
|
|
205
|
+
.group\/menu-item:has([data-sidebar=menu-action]:is([data-state=open],[data-popup-open],[aria-expanded=true])) .group-has-\[\[data-sidebar\=menu-action\]\:is\(\[data-state\=open\]\,\[data-popup-open\]\,\[aria-expanded\=true\]\)\]\/menu-item\:pr-\[var\(--row-gutter-hover\)\],
|
|
206
|
+
.group\/menu-sub-item:has([data-sidebar=menu-action]:is([data-state=open],[data-popup-open],[aria-expanded=true])) .group-has-\[\[data-sidebar\=menu-action\]\:is\(\[data-state\=open\]\,\[data-popup-open\]\,\[aria-expanded\=true\]\)\]\/menu-sub-item\:pr-\[var\(--row-gutter-hover\)\],
|
|
207
|
+
.group\/menu-item:focus-within .group-focus-within\/menu-item\:pr-\[var\(--row-gutter-hover\)\],
|
|
208
|
+
.group\/menu-sub-item:focus-within .group-focus-within\/menu-sub-item\:pr-\[var\(--row-gutter-hover\)\],
|
|
209
|
+
.group\/menu-item:hover .group-hover\/menu-item\:pr-\[var\(--row-gutter-hover\)\],
|
|
210
|
+
.group\/menu-sub-item:hover .group-hover\/menu-sub-item\:pr-\[var\(--row-gutter-hover\)\]{padding-right:var(--row-gutter-hover);}
|
|
211
|
+
.pb-\[0\.25em\]{padding-bottom:0.25em;}
|
|
212
|
+
.pb-1{padding-bottom:calc(var(--spacing) * 1);}
|
|
213
|
+
.pb-2{padding-bottom:calc(var(--spacing) * 2);}
|
|
214
|
+
.pb-2\.5{padding-bottom:calc(var(--spacing) * 2.5);}
|
|
215
|
+
.pb-3{padding-bottom:calc(var(--spacing) * 3);}
|
|
216
|
+
.pb-4{padding-bottom:calc(var(--spacing) * 4);}
|
|
217
|
+
.pb-6{padding-bottom:calc(var(--spacing) * 6);}
|
|
218
|
+
.pl-\[7px\]{padding-left:7px;}
|
|
219
|
+
.pl-0{padding-left:calc(var(--spacing) * 0);}
|
|
220
|
+
.pl-1{padding-left:calc(var(--spacing) * 1);}
|
|
221
|
+
.pl-1\.5{padding-left:calc(var(--spacing) * 1.5);}
|
|
222
|
+
.pl-2\.5{padding-left:calc(var(--spacing) * 2.5);}
|
|
223
|
+
.pl-3{padding-left:calc(var(--spacing) * 3);}
|
|
224
|
+
.pl-4{padding-left:calc(var(--spacing) * 4);}
|
|
225
|
+
.pl-8{padding-left:calc(var(--spacing) * 8);}
|
|
226
|
+
.pr-\[var\(--group-actions-pad\)\]{padding-right:var(--group-actions-pad);}
|
|
227
|
+
.pr-\[var\(--row-gutter\)\]{padding-right:var(--row-gutter);}
|
|
228
|
+
.pr-0\.5{padding-right:calc(var(--spacing) * 0.5);}
|
|
229
|
+
.pr-12{padding-right:calc(var(--spacing) * 12);}
|
|
230
|
+
.pr-2{padding-right:calc(var(--spacing) * 2);}
|
|
231
|
+
.pr-2\.5{padding-right:calc(var(--spacing) * 2.5);}
|
|
232
|
+
.pr-3{padding-right:calc(var(--spacing) * 3);}
|
|
233
|
+
.pr-4{padding-right:calc(var(--spacing) * 4);}
|
|
234
|
+
.pt-\[0\.25em\]{padding-top:0.25em;}
|
|
235
|
+
.pt-1{padding-top:calc(var(--spacing) * 1);}
|
|
236
|
+
.pt-1\.5{padding-top:calc(var(--spacing) * 1.5);}
|
|
237
|
+
.pt-2{padding-top:calc(var(--spacing) * 2);}
|
|
238
|
+
.pt-2\.5{padding-top:calc(var(--spacing) * 2.5);}
|
|
239
|
+
.pt-3{padding-top:calc(var(--spacing) * 3);}
|
|
240
|
+
.pt-4{padding-top:calc(var(--spacing) * 4);}
|
|
241
|
+
.pt-6{padding-top:calc(var(--spacing) * 6);}
|
|
242
|
+
.text-center{text-align:center;}
|
|
243
|
+
.text-left{text-align:left;}
|
|
244
|
+
.text-right{text-align:right;}
|
|
245
|
+
.align-middle{vertical-align:middle;}
|
|
246
|
+
.appearance-none{-webkit-appearance:none;appearance:none;}
|
|
247
|
+
.outline-offset-2{outline-offset:2px;}
|
|
248
|
+
.outline{outline-style:var(--un-outline-style);outline-width:1px;}
|
|
249
|
+
.outline-none{--un-outline-style:none;outline-style:none;}
|
|
250
|
+
.focus\:outline-none:focus{--un-outline-style:none;outline-style:none;}
|
|
251
|
+
.b,
|
|
252
|
+
.border{border-width:1px;}
|
|
253
|
+
.\[\&\>\*\]\:border-b>*,
|
|
254
|
+
.border-b{border-bottom-width:1px;}
|
|
255
|
+
.\[\&\>\*\+\*\]\:border-s>*+*,
|
|
256
|
+
.border-s{border-inline-start-width:1px;}
|
|
257
|
+
.border-e{border-inline-end-width:1px;}
|
|
258
|
+
.border-l{border-left-width:1px;}
|
|
259
|
+
.border-r{border-right-width:1px;}
|
|
260
|
+
.border-t{border-top-width:1px;}
|
|
261
|
+
.\[\&\>\*\]\:border-border>*,
|
|
262
|
+
.border-border{border-color:color-mix(in srgb, var(--border) var(--un-border-opacity), transparent);}
|
|
263
|
+
.border-\[1\.5px\]{border-width:1.5px;}
|
|
264
|
+
.border-0{border-width:0px;}
|
|
265
|
+
.border-2{border-width:2px;}
|
|
266
|
+
.border-accent\/40{border-color:color-mix(in srgb, var(--accent) 40%, transparent);}
|
|
267
|
+
.border-background\/30{border-color:color-mix(in srgb, var(--background) 30%, transparent);}
|
|
268
|
+
.border-border\/60{border-color:color-mix(in srgb, var(--border) 60%, transparent);}
|
|
269
|
+
.border-control{border-color:color-mix(in srgb, var(--control-border) var(--un-border-opacity), transparent);}
|
|
270
|
+
.border-destructive\/50{border-color:color-mix(in srgb, var(--destructive) 50%, transparent);}
|
|
271
|
+
.border-focus-ring{border-color:color-mix(in srgb, var(--focus-ring) var(--un-border-opacity), transparent);}
|
|
272
|
+
.border-foreground\/60{border-color:color-mix(in srgb, var(--foreground) 60%, transparent);}
|
|
273
|
+
.border-muted-foreground\/50{border-color:color-mix(in srgb, var(--muted-foreground) 50%, transparent);}
|
|
274
|
+
.border-picker-ring{border-color:color-mix(in srgb, var(--picker-ring) var(--un-border-opacity), transparent);}
|
|
275
|
+
.border-thumb{border-color:color-mix(in srgb, var(--thumb) var(--un-border-opacity), transparent);}
|
|
276
|
+
.border-transparent{border-color:transparent;}
|
|
277
|
+
.hover\:border-destructive\/50:hover{border-color:color-mix(in srgb, var(--destructive) 50%, transparent);}
|
|
278
|
+
.border-t-muted-foreground{border-top-color:color-mix(in srgb, var(--muted-foreground) var(--un-border-top-opacity), transparent);--un-border-top-opacity:var(--un-border-opacity);}
|
|
279
|
+
.data-\[active\]\:rounded-3xl[data-active],
|
|
280
|
+
.rounded-3xl{border-radius:var(--radius-3xl);}
|
|
281
|
+
.data-\[active\]\:rounded-xl[data-active],
|
|
282
|
+
.rounded-xl{border-radius:var(--radius-xl);}
|
|
283
|
+
.rounded{border-radius:var(--radius-DEFAULT);}
|
|
284
|
+
.rounded-\[10px\]{border-radius:10px;}
|
|
285
|
+
.rounded-\[20px\]{border-radius:20px;}
|
|
286
|
+
.rounded-\[22px\]{border-radius:22px;}
|
|
287
|
+
.rounded-\[inherit\]{border-radius:inherit;}
|
|
288
|
+
.rounded-2xl{border-radius:var(--radius-2xl);}
|
|
289
|
+
.rounded-full{border-radius:calc(infinity * 1px);}
|
|
290
|
+
.rounded-lg{border-radius:var(--radius-lg);}
|
|
291
|
+
.rounded-md{border-radius:var(--radius-md);}
|
|
292
|
+
.rounded-none{border-radius:var(--radius-none);}
|
|
293
|
+
.rounded-sm{border-radius:var(--radius-sm);}
|
|
294
|
+
.rounded-xs{border-radius:var(--radius-xs);}
|
|
295
|
+
.after\:rounded-full::after{border-radius:calc(infinity * 1px);}
|
|
296
|
+
.rounded-b-lg{border-bottom-left-radius:var(--radius-lg);border-bottom-right-radius:var(--radius-lg);}
|
|
297
|
+
.rounded-e-lg{border-start-end-radius:var(--radius-lg);border-end-end-radius:var(--radius-lg);}
|
|
298
|
+
.rounded-s-lg{border-end-start-radius:var(--radius-lg);border-start-start-radius:var(--radius-lg);}
|
|
299
|
+
.rounded-t-lg{border-top-left-radius:var(--radius-lg);border-top-right-radius:var(--radius-lg);}
|
|
300
|
+
.border-none{--un-border-style:none;border-style:none;}
|
|
301
|
+
.border-solid{--un-border-style:solid;border-style:solid;}
|
|
302
|
+
.bg-\[var\(--btn-bg\)\]{background-color:color-mix(in oklab, var(--btn-bg) var(--un-bg-opacity), transparent);}
|
|
303
|
+
.bg-accent{background-color:color-mix(in srgb, var(--accent) var(--un-bg-opacity), transparent);}
|
|
304
|
+
.bg-accent-hover{background-color:color-mix(in srgb, var(--accent-hover) var(--un-bg-opacity), transparent);}
|
|
305
|
+
.bg-accent\/20{background-color:color-mix(in srgb, var(--accent) 20%, transparent);}
|
|
306
|
+
.bg-accent\/40,
|
|
307
|
+
.dark .dark\:bg-accent\/40{background-color:color-mix(in srgb, var(--accent) 40%, transparent);}
|
|
308
|
+
.bg-active,
|
|
309
|
+
.group:active .group-active\:bg-active{background-color:color-mix(in srgb, var(--active) var(--un-bg-opacity), transparent);}
|
|
310
|
+
.bg-background{background-color:color-mix(in srgb, var(--background) var(--un-bg-opacity), transparent);}
|
|
311
|
+
.bg-border{background-color:color-mix(in srgb, var(--border) var(--un-bg-opacity), transparent);}
|
|
312
|
+
.bg-border\/60{background-color:color-mix(in srgb, var(--border) 60%, transparent);}
|
|
313
|
+
.bg-brand{background-color:color-mix(in srgb, var(--brand) var(--un-bg-opacity), transparent);}
|
|
314
|
+
.bg-brand-hover{background-color:color-mix(in srgb, var(--brand-hover) var(--un-bg-opacity), transparent);}
|
|
315
|
+
.bg-card\/70{background-color:color-mix(in srgb, var(--card) 70%, transparent);}
|
|
316
|
+
.bg-current{background-color:currentColor;}
|
|
317
|
+
.bg-foreground{background-color:color-mix(in srgb, var(--foreground) var(--un-bg-opacity), transparent);}
|
|
318
|
+
.bg-foreground\/60{background-color:color-mix(in srgb, var(--foreground) 60%, transparent);}
|
|
319
|
+
.bg-hover,
|
|
320
|
+
.group:hover .group-hover\:bg-hover{background-color:color-mix(in srgb, var(--hover) var(--un-bg-opacity), transparent);}
|
|
321
|
+
.bg-muted{background-color:color-mix(in srgb, var(--muted) var(--un-bg-opacity), transparent);}
|
|
322
|
+
.bg-muted-foreground{background-color:color-mix(in srgb, var(--muted-foreground) var(--un-bg-opacity), transparent);}
|
|
323
|
+
.bg-muted-foreground\/50{background-color:color-mix(in srgb, var(--muted-foreground) 50%, transparent);}
|
|
324
|
+
.bg-overlay\/16{background-color:color-mix(in srgb, rgb(var(--overlay)) 16%, transparent);}
|
|
325
|
+
.bg-overlay\/8{background-color:color-mix(in srgb, rgb(var(--overlay)) 8%, transparent);}
|
|
326
|
+
.bg-scrim{background-color:color-mix(in srgb, var(--scrim) var(--un-bg-opacity), transparent);}
|
|
327
|
+
.bg-selected\/50{background-color:color-mix(in srgb, var(--selected) 50%, transparent);}
|
|
328
|
+
.bg-status-action\/16{background-color:color-mix(in srgb, var(--status-action) 16%, transparent);}
|
|
329
|
+
.bg-status-error{background-color:color-mix(in srgb, var(--status-error) var(--un-bg-opacity), transparent);}
|
|
330
|
+
.bg-status-error\/16{background-color:color-mix(in srgb, var(--status-error) 16%, transparent);}
|
|
331
|
+
.bg-status-info\/16{background-color:color-mix(in srgb, var(--status-info) 16%, transparent);}
|
|
332
|
+
.bg-status-loading\/16{background-color:color-mix(in srgb, var(--status-loading) 16%, transparent);}
|
|
333
|
+
.bg-status-success{background-color:color-mix(in srgb, var(--status-success) var(--un-bg-opacity), transparent);}
|
|
334
|
+
.bg-status-success\/16{background-color:color-mix(in srgb, var(--status-success) 16%, transparent);}
|
|
335
|
+
.bg-status-warning\/16{background-color:color-mix(in srgb, var(--status-warning) 16%, transparent);}
|
|
336
|
+
.bg-surface-1{background-color:color-mix(in srgb, var(--surface-1) var(--un-bg-opacity), transparent);}
|
|
337
|
+
.bg-surface-2{background-color:color-mix(in srgb, var(--surface-2) var(--un-bg-opacity), transparent);}
|
|
338
|
+
.bg-surface-3{background-color:color-mix(in srgb, var(--surface-3) var(--un-bg-opacity), transparent);}
|
|
339
|
+
.bg-surface-4{background-color:color-mix(in srgb, var(--surface-4) var(--un-bg-opacity), transparent);}
|
|
340
|
+
.bg-surface-5{background-color:color-mix(in srgb, var(--surface-5) var(--un-bg-opacity), transparent);}
|
|
341
|
+
.bg-surface-6{background-color:color-mix(in srgb, var(--surface-6) var(--un-bg-opacity), transparent);}
|
|
342
|
+
.bg-surface-7{background-color:color-mix(in srgb, var(--surface-7) var(--un-bg-opacity), transparent);}
|
|
343
|
+
.bg-surface-8{background-color:color-mix(in srgb, var(--surface-8) var(--un-bg-opacity), transparent);}
|
|
344
|
+
.bg-thumb{background-color:color-mix(in srgb, var(--thumb) var(--un-bg-opacity), transparent);}
|
|
345
|
+
.bg-transparent{background-color:transparent;}
|
|
346
|
+
.dark .dark\:bg-accent\/12{background-color:color-mix(in srgb, var(--accent) 12%, transparent);}
|
|
347
|
+
.data-\[active\]\:bg-muted\/50[data-active],
|
|
348
|
+
.group\/search:hover .group-hover\/search\:bg-muted\/50{background-color:color-mix(in srgb, var(--muted) 50%, transparent);}
|
|
349
|
+
.data-\[invalid\]\:data-\[active\]\:bg-destructive-light\/60[data-active][data-invalid]{background-color:color-mix(in srgb, var(--destructive-light) 60%, transparent);}
|
|
350
|
+
.focus-within\:\!bg-card:focus-within{background-color:color-mix(in srgb, var(--card) var(--un-bg-opacity), transparent) !important;}
|
|
351
|
+
.data-\[invalid\]\:hover\:bg-destructive-light\/60:hover[data-invalid]{background-color:color-mix(in srgb, var(--destructive-light) 60%, transparent);}
|
|
352
|
+
.group:hover .group-hover\:bg-brand\/20{background-color:color-mix(in srgb, var(--brand) 20%, transparent);}
|
|
353
|
+
.group\/scrollbar:hover .group-hover\/scrollbar\:bg-overlay\/12{background-color:color-mix(in srgb, rgb(var(--overlay)) 12%, transparent);}
|
|
354
|
+
.hover\:after\:bg-foreground\/25:hover::after{background-color:color-mix(in srgb, var(--foreground) 25%, transparent);}
|
|
355
|
+
.hover\:bg-accent\/80:hover{background-color:color-mix(in srgb, var(--accent) 80%, transparent);}
|
|
356
|
+
.hover\:bg-active:hover{background-color:color-mix(in srgb, var(--active) var(--un-bg-opacity), transparent);}
|
|
357
|
+
.hover\:bg-card:hover{background-color:color-mix(in srgb, var(--card) var(--un-bg-opacity), transparent);}
|
|
358
|
+
.hover\:bg-foreground\/90:hover{background-color:color-mix(in srgb, var(--foreground) 90%, transparent);}
|
|
359
|
+
.hover\:bg-hover:hover{background-color:color-mix(in srgb, var(--hover) var(--un-bg-opacity), transparent);}
|
|
360
|
+
.hover\:bg-muted\/50:hover{background-color:color-mix(in srgb, var(--muted) 50%, transparent);}
|
|
361
|
+
.active\:\!bg-overlay\/16:active{background-color:color-mix(in srgb, rgb(var(--overlay)) 16%, transparent) !important;}
|
|
362
|
+
.active\:bg-accent:active{background-color:color-mix(in srgb, var(--accent) var(--un-bg-opacity), transparent);}
|
|
363
|
+
.active\:bg-active:active{background-color:color-mix(in srgb, var(--active) var(--un-bg-opacity), transparent);}
|
|
364
|
+
.active\:bg-foreground\/80:active{background-color:color-mix(in srgb, var(--foreground) 80%, transparent);}
|
|
365
|
+
.enabled\:hover\:bg-hover:hover:enabled{background-color:color-mix(in srgb, var(--hover) var(--un-bg-opacity), transparent);}
|
|
366
|
+
.before\:bg-active::before{background-color:color-mix(in srgb, var(--active) var(--un-bg-opacity), transparent);}
|
|
367
|
+
.after\:bg-current::after{background-color:currentColor;}
|
|
368
|
+
.after\:bg-foreground\/25::after{background-color:color-mix(in srgb, var(--foreground) 25%, transparent);}
|
|
369
|
+
.after\:bg-transparent::after{background-color:transparent;}
|
|
370
|
+
.aria-expanded\:opacity-100[aria-expanded="true"],
|
|
371
|
+
.data-\[hovering\]\:opacity-100[data-hovering],
|
|
372
|
+
.data-\[scrolling\]\:opacity-100[data-scrolling],
|
|
373
|
+
.data-\[state\=open\]\:opacity-100[data-state=open],
|
|
374
|
+
.group\/group-header:has([data-sidebar=group-action]:is([data-state=open],[data-popup-open],[aria-expanded=true])) .group-has-\[\[data-sidebar\=group-action\]\:is\(\[data-state\=open\]\,\[data-popup-open\]\,\[aria-expanded\=true\]\)\]\/group-header\:opacity-100,
|
|
375
|
+
.has-\[\[data-popup-open\]\]\:opacity-100:has([data-popup-open]),
|
|
376
|
+
.has-\[\[data-state\=open\]\]\:opacity-100:has([data-state=open]),
|
|
377
|
+
.opacity-100,
|
|
378
|
+
.group\/card:focus-within .group-focus-within\/card\:opacity-100,
|
|
379
|
+
.group\/group-header:focus-within .group-focus-within\/group-header\:opacity-100,
|
|
380
|
+
.group\/menu-item:focus-within .group-focus-within\/menu-item\:opacity-100,
|
|
381
|
+
.group\/menu-sub-item:focus-within .group-focus-within\/menu-sub-item\:opacity-100,
|
|
382
|
+
.group\/parent-row:focus-within .group-focus-within\/parent-row\:opacity-100,
|
|
383
|
+
.group\/search:focus-within .group-focus-within\/search\:opacity-100,
|
|
384
|
+
.group\/card:hover .group-hover\/card\:opacity-100,
|
|
385
|
+
.group\/group-header:hover .group-hover\/group-header\:opacity-100,
|
|
386
|
+
.group\/menu-item:hover .group-hover\/menu-item\:opacity-100,
|
|
387
|
+
.group\/menu-sub-item:hover .group-hover\/menu-sub-item\:opacity-100,
|
|
388
|
+
.group\/parent-row:hover .group-hover\/parent-row\:opacity-100,
|
|
389
|
+
.group\/qrow:hover .group-hover\/qrow\:opacity-100,
|
|
390
|
+
.group\/search:hover .group-hover\/search\:opacity-100,
|
|
391
|
+
.group\/tile:hover .group-hover\/tile\:opacity-100,
|
|
392
|
+
.peer\/menu-button:hover~.peer-hover\/menu-button\:opacity-100,
|
|
393
|
+
.peer\/menu-button:focus-visible~.peer-focus-visible\/menu-button\:opacity-100{opacity:100%;}
|
|
394
|
+
.dark .dark\:opacity-12{opacity:12%;}
|
|
395
|
+
.data-\[disabled\]\:opacity-50[data-disabled],
|
|
396
|
+
.opacity-50{opacity:50%;}
|
|
397
|
+
.opacity-0{opacity:0%;}
|
|
398
|
+
.opacity-16{opacity:16%;}
|
|
399
|
+
.opacity-20{opacity:20%;}
|
|
400
|
+
.opacity-30{opacity:30%;}
|
|
401
|
+
.opacity-55{opacity:55%;}
|
|
402
|
+
.focus-within\:opacity-100:focus-within{opacity:100%;}
|
|
403
|
+
.hover\:opacity-100:hover{opacity:100%;}
|
|
404
|
+
.focus-visible\:opacity-100:focus-visible{opacity:100%;}
|
|
405
|
+
.disabled\:opacity-50:disabled{opacity:50%;}
|
|
406
|
+
.\@container{container-type:inline-size;}
|
|
407
|
+
.underline{text-decoration-line:underline;}
|
|
408
|
+
.hover\:underline:hover{text-decoration-line:underline;}
|
|
409
|
+
.decoration-border{text-decoration-color:color-mix(in srgb, var(--border) var(--un-line-opacity), transparent);-webkit-text-decoration-color:color-mix(in srgb, var(--border) var(--un-line-opacity), transparent);}
|
|
410
|
+
.hover\:decoration-foreground:hover{text-decoration-color:color-mix(in srgb, var(--foreground) var(--un-line-opacity), transparent);-webkit-text-decoration-color:color-mix(in srgb, var(--foreground) var(--un-line-opacity), transparent);}
|
|
411
|
+
.underline-offset-4{text-underline-offset:4px;}
|
|
412
|
+
.flex{display:flex;}
|
|
413
|
+
.inline-flex{display:inline-flex;}
|
|
414
|
+
.flex-1{flex:1 1 0%;}
|
|
415
|
+
.flex-auto{flex:1 1 auto;}
|
|
416
|
+
.\[\&_svg\]\:shrink-0 svg,
|
|
417
|
+
.flex-shrink-0,
|
|
418
|
+
.shrink-0{flex-shrink:0;}
|
|
419
|
+
.flex-row{flex-direction:row;}
|
|
420
|
+
.flex-col{flex-direction:column;}
|
|
421
|
+
.flex-col-reverse{flex-direction:column-reverse;}
|
|
422
|
+
.flex-wrap{flex-wrap:wrap;}
|
|
423
|
+
.\[\&_\[role\=menuitem\]\]\:gap-2 [role=menuitem],
|
|
424
|
+
.\[\&_\[role\=menuitemradio\]\]\:gap-2 [role=menuitemradio],
|
|
425
|
+
.gap-2{gap:calc(var(--spacing) * 2);}
|
|
426
|
+
.gap-\[inherit\]{gap:inherit;}
|
|
427
|
+
.gap-0{gap:calc(var(--spacing) * 0);}
|
|
428
|
+
.gap-0\.5{gap:calc(var(--spacing) * 0.5);}
|
|
429
|
+
.gap-1{gap:calc(var(--spacing) * 1);}
|
|
430
|
+
.gap-1\.5{gap:calc(var(--spacing) * 1.5);}
|
|
431
|
+
.gap-2\.5{gap:calc(var(--spacing) * 2.5);}
|
|
432
|
+
.gap-3{gap:calc(var(--spacing) * 3);}
|
|
433
|
+
.gap-4{gap:calc(var(--spacing) * 4);}
|
|
434
|
+
.gap-x-2{column-gap:calc(var(--spacing) * 2);}
|
|
435
|
+
.gap-y-1{row-gap:calc(var(--spacing) * 1);}
|
|
436
|
+
.grid{display:grid;}
|
|
437
|
+
.inline-grid{display:inline-grid;}
|
|
438
|
+
.row-span-2{grid-row:span 2/span 2;}
|
|
439
|
+
.col-start-1{grid-column-start:1;}
|
|
440
|
+
.col-start-2{grid-column-start:2;}
|
|
441
|
+
.row-start-1{grid-row-start:1;}
|
|
442
|
+
.auto-rows-min{grid-auto-rows:min-content;}
|
|
443
|
+
.grid-cols-\[minmax\(0\,1fr\)\]{grid-template-columns:minmax(0,1fr);}
|
|
444
|
+
.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr));}
|
|
445
|
+
.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr));}
|
|
446
|
+
.grid-rows-subgrid{grid-template-rows:subgrid;}
|
|
447
|
+
.\[\&_svg\]\:size-\[var\(--icon-size\)\] svg{width:var(--icon-size);height:var(--icon-size);}
|
|
448
|
+
.size-\[5px\]{width:5px;height:5px;}
|
|
449
|
+
.size-0{width:calc(var(--spacing) * 0);height:calc(var(--spacing) * 0);}
|
|
450
|
+
.size-1{width:calc(var(--spacing) * 1);height:calc(var(--spacing) * 1);}
|
|
451
|
+
.size-1\.5{width:calc(var(--spacing) * 1.5);height:calc(var(--spacing) * 1.5);}
|
|
452
|
+
.size-2{width:calc(var(--spacing) * 2);height:calc(var(--spacing) * 2);}
|
|
453
|
+
.size-3\.5{width:calc(var(--spacing) * 3.5);height:calc(var(--spacing) * 3.5);}
|
|
454
|
+
.size-4{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4);}
|
|
455
|
+
.size-40{width:calc(var(--spacing) * 40);height:calc(var(--spacing) * 40);}
|
|
456
|
+
.size-5{width:calc(var(--spacing) * 5);height:calc(var(--spacing) * 5);}
|
|
457
|
+
.size-6{width:calc(var(--spacing) * 6);height:calc(var(--spacing) * 6);}
|
|
458
|
+
.size-7{width:calc(var(--spacing) * 7);height:calc(var(--spacing) * 7);}
|
|
459
|
+
.size-8{width:calc(var(--spacing) * 8);height:calc(var(--spacing) * 8);}
|
|
460
|
+
.size-9{width:calc(var(--spacing) * 9);height:calc(var(--spacing) * 9);}
|
|
461
|
+
.size-full{width:100%;height:100%;}
|
|
462
|
+
.after\:size-1::after{width:calc(var(--spacing) * 1);height:calc(var(--spacing) * 1);}
|
|
463
|
+
.\!h-\[15px\]{height:15px !important;}
|
|
464
|
+
.\!h-\[19px\]{height:19px !important;}
|
|
465
|
+
.\!h-auto{height:auto !important;}
|
|
466
|
+
.\!w-\[15px\]{width:15px !important;}
|
|
467
|
+
.\!w-\[19px\]{width:19px !important;}
|
|
468
|
+
.\[\&_button\.w-7\]\:w-6 button.w-7,
|
|
469
|
+
.group\/group-header:has([data-sidebar=group-action]:is([data-state=open],[data-popup-open],[aria-expanded=true])) .group-has-\[\[data-sidebar\=group-action\]\:is\(\[data-state\=open\]\,\[data-popup-open\]\,\[aria-expanded\=true\]\)\]\/group-header\:w-6,
|
|
470
|
+
.w-6,
|
|
471
|
+
.group\/group-header:focus-within .group-focus-within\/group-header\:w-6,
|
|
472
|
+
.group\/group-header:hover .group-hover\/group-header\:w-6{width:calc(var(--spacing) * 6);}
|
|
473
|
+
.\[\&_button\]\:h-6 button,
|
|
474
|
+
.h-6{height:calc(var(--spacing) * 6);}
|
|
475
|
+
.\[\&_svg\]\:h-3\.5 svg,
|
|
476
|
+
.h-3\.5{height:calc(var(--spacing) * 3.5);}
|
|
477
|
+
.\[\&_svg\]\:h-4 svg,
|
|
478
|
+
.h-4{height:calc(var(--spacing) * 4);}
|
|
479
|
+
.\[\&_svg\]\:w-3\.5 svg,
|
|
480
|
+
.w-3\.5{width:calc(var(--spacing) * 3.5);}
|
|
481
|
+
.\[\&_svg\]\:w-4 svg,
|
|
482
|
+
.w-4{width:calc(var(--spacing) * 4);}
|
|
483
|
+
.\[\&\>div\[style\]\]\:\!min-w-0>div[style],
|
|
484
|
+
.\[\&\>div\]\:\!min-w-0>div{min-width:calc(var(--spacing) * 0) !important;}
|
|
485
|
+
.h-\[14px\]{height:14px;}
|
|
486
|
+
.h-\[16px\]{height:16px;}
|
|
487
|
+
.h-\[18px\]{height:18px;}
|
|
488
|
+
.h-\[7px\]{height:7px;}
|
|
489
|
+
.h-\[8px\]{height:8px;}
|
|
490
|
+
.h-\[min\(30rem\,65dvh\)\]{height:min(30rem,65dvh);}
|
|
491
|
+
.h-\[var\(--scroll-area-thumb-height\)\]{height:var(--scroll-area-thumb-height);}
|
|
492
|
+
.h-0{height:calc(var(--spacing) * 0);}
|
|
493
|
+
.h-1{height:calc(var(--spacing) * 1);}
|
|
494
|
+
.h-12,
|
|
495
|
+
.h12{height:calc(var(--spacing) * 12);}
|
|
496
|
+
.h-2\.5{height:calc(var(--spacing) * 2.5);}
|
|
497
|
+
.h-3{height:calc(var(--spacing) * 3);}
|
|
498
|
+
.h-5{height:calc(var(--spacing) * 5);}
|
|
499
|
+
.h-56{height:calc(var(--spacing) * 56);}
|
|
500
|
+
.h-7{height:calc(var(--spacing) * 7);}
|
|
501
|
+
.h-8{height:calc(var(--spacing) * 8);}
|
|
502
|
+
.h-80{height:calc(var(--spacing) * 80);}
|
|
503
|
+
.h-9{height:calc(var(--spacing) * 9);}
|
|
504
|
+
.h-full{height:100%;}
|
|
505
|
+
.h-px{height:1px;}
|
|
506
|
+
.h11{height:calc(var(--spacing) * 11);}
|
|
507
|
+
.h2{height:calc(var(--spacing) * 2);}
|
|
508
|
+
.h23{height:calc(var(--spacing) * 23);}
|
|
509
|
+
.max-h-\[calc\(100dvh-4rem\)\]{max-height:calc(100dvh - 4rem);}
|
|
510
|
+
.max-h-\[inherit\]{max-height:inherit;}
|
|
511
|
+
.max-h-\[min\(300px\,var\(--available-height\)\)\]{max-height:min(300px,var(--available-height));}
|
|
512
|
+
.max-h-\[min\(480px\,var\(--available-height\)\)\]{max-height:min(480px,var(--available-height));}
|
|
513
|
+
.max-h-80{max-height:calc(var(--spacing) * 80);}
|
|
514
|
+
.max-w-\[360px\]{max-width:360px;}
|
|
515
|
+
.max-w-\[36rem\]{max-width:36rem;}
|
|
516
|
+
.max-w-\[400px\]{max-width:400px;}
|
|
517
|
+
.max-w-\[480px\]{max-width:480px;}
|
|
518
|
+
.max-w-\[540px\]{max-width:540px;}
|
|
519
|
+
.max-w-\[800px\]{max-width:800px;}
|
|
520
|
+
.max-w-\[880px\]{max-width:880px;}
|
|
521
|
+
.max-w-\[calc\(100\%_\+_8px\)\]{max-width:calc(100% + 8px);}
|
|
522
|
+
.max-w-\[calc\(100vw-1rem\)\]{max-width:calc(100vw - 1rem);}
|
|
523
|
+
.max-w-\[min\(92vw\,20rem\)\]{max-width:min(92vw,20rem);}
|
|
524
|
+
.max-w-full{max-width:100%;}
|
|
525
|
+
.min-h-\[60px\]{min-height:60px;}
|
|
526
|
+
.min-h-0{min-height:calc(var(--spacing) * 0);}
|
|
527
|
+
.min-h-20{min-height:calc(var(--spacing) * 20);}
|
|
528
|
+
.min-h-40{min-height:calc(var(--spacing) * 40);}
|
|
529
|
+
.min-h-7{min-height:calc(var(--spacing) * 7);}
|
|
530
|
+
.min-h-9{min-height:calc(var(--spacing) * 9);}
|
|
531
|
+
.min-w-\[128px\]{min-width:128px;}
|
|
532
|
+
.min-w-\[160px\]{min-width:160px;}
|
|
533
|
+
.min-w-\[240px\]{min-width:240px;}
|
|
534
|
+
.min-w-\[var\(--anchor-width\)\]{min-width:var(--anchor-width);}
|
|
535
|
+
.min-w-0{min-width:calc(var(--spacing) * 0);}
|
|
536
|
+
.min-w-4{min-width:calc(var(--spacing) * 4);}
|
|
537
|
+
.min-w-5{min-width:calc(var(--spacing) * 5);}
|
|
538
|
+
.min-w-6{min-width:calc(var(--spacing) * 6);}
|
|
539
|
+
.min-w-full{min-width:100%;}
|
|
540
|
+
.w-\[14px\]{width:14px;}
|
|
541
|
+
.w-\[16px\]{width:16px;}
|
|
542
|
+
.w-\[23px\]{width:23px;}
|
|
543
|
+
.w-\[240px\]{width:240px;}
|
|
544
|
+
.w-\[26px\]{width:26px;}
|
|
545
|
+
.w-\[5ch\]{width:5ch;}
|
|
546
|
+
.w-\[7px\]{width:7px;}
|
|
547
|
+
.w-\[8px\]{width:8px;}
|
|
548
|
+
.w-\[calc\(100\%-2rem\)\]{width:calc(100% - 2rem);}
|
|
549
|
+
.w-\[calc\(var\(--anchor-width\)_\+_10px\)\]{width:calc(var(--anchor-width) + 10px);}
|
|
550
|
+
.w-\[max\(var\(--anchor-width\,0px\)\,14rem\)\]{width:max(var(--anchor-width,0px),14rem);}
|
|
551
|
+
.w-\[min\(22rem\,calc\(100vw-2rem\)\)\]{width:min(22rem,calc(100vw - 2rem));}
|
|
552
|
+
.w-\[min\(24rem\,calc\(100\%-1rem\)\)\]{width:min(24rem,calc(100% - 1rem));}
|
|
553
|
+
.w-\[var\(--anchor-width\)\]{width:var(--anchor-width);}
|
|
554
|
+
.w-\[var\(--scroll-area-thumb-width\)\]{width:var(--scroll-area-thumb-width);}
|
|
555
|
+
.w-0{width:calc(var(--spacing) * 0);}
|
|
556
|
+
.w-1{width:calc(var(--spacing) * 1);}
|
|
557
|
+
.w-10{width:calc(var(--spacing) * 10);}
|
|
558
|
+
.w-12{width:calc(var(--spacing) * 12);}
|
|
559
|
+
.w-15{width:calc(var(--spacing) * 15);}
|
|
560
|
+
.w-16{width:calc(var(--spacing) * 16);}
|
|
561
|
+
.w-2{width:calc(var(--spacing) * 2);}
|
|
562
|
+
.w-2\.5{width:calc(var(--spacing) * 2.5);}
|
|
563
|
+
.w-28{width:calc(var(--spacing) * 28);}
|
|
564
|
+
.w-3{width:calc(var(--spacing) * 3);}
|
|
565
|
+
.w-5{width:calc(var(--spacing) * 5);}
|
|
566
|
+
.w-56{width:calc(var(--spacing) * 56);}
|
|
567
|
+
.w-7{width:calc(var(--spacing) * 7);}
|
|
568
|
+
.w-72{width:calc(var(--spacing) * 72);}
|
|
569
|
+
.w-9{width:calc(var(--spacing) * 9);}
|
|
570
|
+
.w-full{width:100%;}
|
|
571
|
+
.w-max{width:max-content;}
|
|
572
|
+
.w-px{width:1px;}
|
|
573
|
+
.group\/scrollbar:hover .group-hover\/scrollbar\:h-1\.5{height:calc(var(--spacing) * 1.5);}
|
|
574
|
+
.group\/scrollbar:hover .group-hover\/scrollbar\:w-1\.5{width:calc(var(--spacing) * 1.5);}
|
|
575
|
+
.after\:w-px::after{width:1px;}
|
|
576
|
+
.aspect-\[16\/9\]{aspect-ratio:16/9;}
|
|
577
|
+
.inline{display:inline;}
|
|
578
|
+
.\[\&\>div\[style\]\]\:\!block>div[style],
|
|
579
|
+
.\[\&\>div\]\:\!block>div{display:block !important;}
|
|
580
|
+
.block{display:block;}
|
|
581
|
+
.inline-block{display:inline-block;}
|
|
582
|
+
.contents{display:contents;}
|
|
583
|
+
.\[\&\:\:-webkit-search-cancel-button\]\:hidden::-webkit-search-cancel-button,
|
|
584
|
+
.hidden{display:none;}
|
|
585
|
+
.empty\:hidden:empty{display:none;}
|
|
586
|
+
.visible{visibility:visible;}
|
|
587
|
+
.invisible{visibility:hidden;}
|
|
588
|
+
.collapse{visibility:collapse;}
|
|
589
|
+
.cursor-default{cursor:default;}
|
|
590
|
+
.disabled\:cursor-default:disabled{cursor:default;}
|
|
591
|
+
.cursor-none{cursor:none;}
|
|
592
|
+
.cursor-pointer{cursor:pointer;}
|
|
593
|
+
.cursor-text{cursor:text;}
|
|
594
|
+
.cursor-grab{cursor:grab;}
|
|
595
|
+
.active\:cursor-grabbing:active{cursor:grabbing;}
|
|
596
|
+
.cursor-col-resize{cursor:col-resize;}
|
|
597
|
+
.cursor-ew-resize{cursor:ew-resize;}
|
|
598
|
+
.group\/card:focus-within .group-focus-within\/card\:pointer-events-auto,
|
|
599
|
+
.group\/card:hover .group-hover\/card\:pointer-events-auto{pointer-events:auto;}
|
|
600
|
+
.focus-visible\:pointer-events-auto:focus-visible{pointer-events:auto;}
|
|
601
|
+
.\[\&_\*\]\:pointer-events-none *,
|
|
602
|
+
.data-\[disabled\]\:pointer-events-none[data-disabled],
|
|
603
|
+
.pointer-events-none{pointer-events:none;}
|
|
604
|
+
.disabled\:pointer-events-none:disabled{pointer-events:none;}
|
|
605
|
+
.resize{resize:both;}
|
|
606
|
+
.resize-none{resize:none;}
|
|
607
|
+
.select-none{-webkit-user-select:none;user-select:none;}
|
|
608
|
+
.whitespace-nowrap{white-space:nowrap;}
|
|
609
|
+
.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
|
|
610
|
+
.text-ellipsis{text-overflow:ellipsis;}
|
|
611
|
+
.uppercase{text-transform:uppercase;}
|
|
612
|
+
.italic{font-style:italic;}
|
|
613
|
+
.ring,
|
|
614
|
+
.ring-1{--un-ring-shadow:var(--un-ring-inset,) 0 0 0 calc(1px + var(--un-ring-offset-width)) var(--un-ring-color, currentColor);box-shadow:var(--un-inset-shadow), var(--un-inset-ring-shadow), var(--un-ring-offset-shadow), var(--un-ring-shadow), var(--un-shadow);}
|
|
615
|
+
.ring-2{--un-ring-shadow:var(--un-ring-inset,) 0 0 0 calc(2px + var(--un-ring-offset-width)) var(--un-ring-color, currentColor);box-shadow:var(--un-inset-shadow), var(--un-inset-ring-shadow), var(--un-ring-offset-shadow), var(--un-ring-shadow), var(--un-shadow);}
|
|
616
|
+
.focus-within\:ring-1:focus-within{--un-ring-shadow:var(--un-ring-inset,) 0 0 0 calc(1px + var(--un-ring-offset-width)) var(--un-ring-color, currentColor);box-shadow:var(--un-inset-shadow), var(--un-inset-ring-shadow), var(--un-ring-offset-shadow), var(--un-ring-shadow), var(--un-shadow);}
|
|
617
|
+
.focus-visible\:ring-1:focus-visible{--un-ring-shadow:var(--un-ring-inset,) 0 0 0 calc(1px + var(--un-ring-offset-width)) var(--un-ring-color, currentColor);box-shadow:var(--un-inset-shadow), var(--un-inset-ring-shadow), var(--un-ring-offset-shadow), var(--un-ring-shadow), var(--un-shadow);}
|
|
618
|
+
.data-\[active\]\:ring-border[data-active],
|
|
619
|
+
.data-\[disabled\]\:ring-border[data-disabled],
|
|
620
|
+
.ring-border{--un-ring-color:color-mix(in srgb, var(--border) var(--un-ring-opacity), transparent);}
|
|
621
|
+
.data-\[active\]\:ring-transparent[data-active],
|
|
622
|
+
.ring-transparent{--un-ring-color:transparent;}
|
|
623
|
+
.data-\[invalid\]\:\!ring-destructive\/50[data-invalid]{--un-ring-color:color-mix(in srgb, var(--destructive) 50%, transparent) !important;}
|
|
624
|
+
.ring-focus-ring{--un-ring-color:color-mix(in srgb, var(--focus-ring) var(--un-ring-opacity), transparent);}
|
|
625
|
+
.focus-within\:ring-border:focus-within{--un-ring-color:color-mix(in srgb, var(--border) var(--un-ring-opacity), transparent);}
|
|
626
|
+
.focus-within\:ring-focus-ring:focus-within{--un-ring-color:color-mix(in srgb, var(--focus-ring) var(--un-ring-opacity), transparent);}
|
|
627
|
+
.focus-within\:ring-transparent:focus-within{--un-ring-color:transparent;}
|
|
628
|
+
.hover\:ring-border:hover{--un-ring-color:color-mix(in srgb, var(--border) var(--un-ring-opacity), transparent);}
|
|
629
|
+
.hover\:ring-transparent:hover{--un-ring-color:transparent;}
|
|
630
|
+
.focus-visible\:ring-focus-ring:focus-visible{--un-ring-color:color-mix(in srgb, var(--focus-ring) var(--un-ring-opacity), transparent);}
|
|
631
|
+
.focus-visible\:ring-offset-0:focus-visible{--un-ring-offset-width:0px;--un-ring-offset-shadow:var(--un-ring-inset,) 0 0 0 var(--un-ring-offset-width) var(--un-ring-offset-color);}
|
|
632
|
+
.focus-visible\:ring-offset-2:focus-visible{--un-ring-offset-width:2px;--un-ring-offset-shadow:var(--un-ring-inset,) 0 0 0 var(--un-ring-offset-width) var(--un-ring-offset-color);}
|
|
633
|
+
.focus-visible\:ring-offset-background:focus-visible{--un-ring-offset-color:color-mix(in srgb, var(--background) var(--un-ring-offset-opacity), transparent);}
|
|
634
|
+
.shadow,
|
|
635
|
+
.shadow\)\,,
|
|
636
|
+
.shadowLevel\)\)\){--un-shadow:0 1px 3px 0 var(--un-shadow-color, rgb(0 0 0 / 0.1)),0 1px 2px -1px var(--un-shadow-color, rgb(0 0 0 / 0.1));box-shadow:var(--un-inset-shadow), var(--un-inset-ring-shadow), var(--un-ring-offset-shadow), var(--un-ring-shadow), var(--un-shadow);}
|
|
637
|
+
.shadow-\[0_0_0_1px_transparent\]{--un-shadow:0 0 0 1px transparent var(--un-shadow-color, );box-shadow:var(--un-inset-shadow), var(--un-inset-ring-shadow), var(--un-ring-offset-shadow), var(--un-ring-shadow), var(--un-shadow);}
|
|
638
|
+
.shadow-\[0_0_0_1px_var\(--active\)\]{--un-shadow:0 0 0 1px var(--un-shadow-color, var(--active));box-shadow:var(--un-inset-shadow), var(--un-inset-ring-shadow), var(--un-ring-offset-shadow), var(--un-ring-shadow), var(--un-shadow);}
|
|
639
|
+
.shadow-\[0_0_0_1px_var\(--border\)\,inset_0_0_0_0px_var\(--border\)\]{--un-shadow:0 0 0 1px var(--border),inset 0 0 0 0px var(--border);box-shadow:var(--un-inset-shadow), var(--un-inset-ring-shadow), var(--un-ring-offset-shadow), var(--un-ring-shadow), var(--un-shadow);}
|
|
640
|
+
.shadow-\[0_0_0_1px_var\(--btn-bg\)\]{--un-shadow:0 0 0 1px var(--un-shadow-color, var(--btn-bg));box-shadow:var(--un-inset-shadow), var(--un-inset-ring-shadow), var(--un-ring-offset-shadow), var(--un-ring-shadow), var(--un-shadow);}
|
|
641
|
+
.shadow-picker-cursor{--un-shadow:var(--shadow-picker-cursor);box-shadow:var(--un-inset-shadow), var(--un-inset-ring-shadow), var(--un-ring-offset-shadow), var(--un-ring-shadow), var(--un-shadow);}
|
|
642
|
+
.shadow-picker-thumb{--un-shadow:var(--shadow-picker-thumb);box-shadow:var(--un-inset-shadow), var(--un-inset-ring-shadow), var(--un-ring-offset-shadow), var(--un-ring-shadow), var(--un-shadow);}
|
|
643
|
+
.shadow-surface-1{--un-shadow:var(--shadow-1);box-shadow:var(--un-inset-shadow), var(--un-inset-ring-shadow), var(--un-ring-offset-shadow), var(--un-ring-shadow), var(--un-shadow);}
|
|
644
|
+
.shadow-surface-2{--un-shadow:var(--shadow-2);box-shadow:var(--un-inset-shadow), var(--un-inset-ring-shadow), var(--un-ring-offset-shadow), var(--un-ring-shadow), var(--un-shadow);}
|
|
645
|
+
.shadow-surface-3{--un-shadow:var(--shadow-3);box-shadow:var(--un-inset-shadow), var(--un-inset-ring-shadow), var(--un-ring-offset-shadow), var(--un-ring-shadow), var(--un-shadow);}
|
|
646
|
+
.shadow-surface-4{--un-shadow:var(--shadow-4);box-shadow:var(--un-inset-shadow), var(--un-inset-ring-shadow), var(--un-ring-offset-shadow), var(--un-ring-shadow), var(--un-shadow);}
|
|
647
|
+
.shadow-surface-5{--un-shadow:var(--shadow-5);box-shadow:var(--un-inset-shadow), var(--un-inset-ring-shadow), var(--un-ring-offset-shadow), var(--un-ring-shadow), var(--un-shadow);}
|
|
648
|
+
.shadow-surface-6{--un-shadow:var(--shadow-6);box-shadow:var(--un-inset-shadow), var(--un-inset-ring-shadow), var(--un-ring-offset-shadow), var(--un-ring-shadow), var(--un-shadow);}
|
|
649
|
+
.shadow-surface-7{--un-shadow:var(--shadow-7);box-shadow:var(--un-inset-shadow), var(--un-inset-ring-shadow), var(--un-ring-offset-shadow), var(--un-ring-shadow), var(--un-shadow);}
|
|
650
|
+
.shadow-surface-8{--un-shadow:var(--shadow-8);box-shadow:var(--un-inset-shadow), var(--un-inset-ring-shadow), var(--un-ring-offset-shadow), var(--un-ring-shadow), var(--un-shadow);}
|
|
651
|
+
.shadow-swatch{--un-shadow:var(--shadow-swatch);box-shadow:var(--un-inset-shadow), var(--un-inset-ring-shadow), var(--un-ring-offset-shadow), var(--un-ring-shadow), var(--un-shadow);}
|
|
652
|
+
.shadow-swatch-hover{--un-shadow:var(--shadow-swatch-hover);box-shadow:var(--un-inset-shadow), var(--un-inset-ring-shadow), var(--un-ring-offset-shadow), var(--un-ring-shadow), var(--un-shadow);}
|
|
653
|
+
.shadow-swatch-selected{--un-shadow:var(--shadow-swatch-selected);box-shadow:var(--un-inset-shadow), var(--un-inset-ring-shadow), var(--un-ring-offset-shadow), var(--un-ring-shadow), var(--un-shadow);}
|
|
654
|
+
.shadow-thumb{--un-shadow:var(--shadow-thumb);box-shadow:var(--un-inset-shadow), var(--un-inset-ring-shadow), var(--un-ring-offset-shadow), var(--un-ring-shadow), var(--un-shadow);}
|
|
655
|
+
.group:hover .group-hover\:shadow-\[0_0_0_1px_var\(--hover\)\]{--un-shadow:0 0 0 1px var(--un-shadow-color, var(--hover));box-shadow:var(--un-inset-shadow), var(--un-inset-ring-shadow), var(--un-ring-offset-shadow), var(--un-ring-shadow), var(--un-shadow);}
|
|
656
|
+
.group:active .group-active\:shadow-\[0_0_0_0px_var\(--active\)\]{--un-shadow:0 0 0 0px var(--un-shadow-color, var(--active));box-shadow:var(--un-inset-shadow), var(--un-inset-ring-shadow), var(--un-ring-offset-shadow), var(--un-ring-shadow), var(--un-shadow);}
|
|
657
|
+
.group:active .group-active\:shadow-\[0_0_0_0px_var\(--border\)\,inset_0_0_0_1px_var\(--border\)\]{--un-shadow:0 0 0 0px var(--border),inset 0 0 0 1px var(--border);box-shadow:var(--un-inset-shadow), var(--un-inset-ring-shadow), var(--un-ring-offset-shadow), var(--un-ring-shadow), var(--un-shadow);}
|
|
658
|
+
.group:active .group-active\:shadow-\[0_0_0_0px_var\(--btn-bg\)\]{--un-shadow:0 0 0 0px var(--un-shadow-color, var(--btn-bg));box-shadow:var(--un-inset-shadow), var(--un-inset-ring-shadow), var(--un-ring-offset-shadow), var(--un-ring-shadow), var(--un-shadow);}
|
|
659
|
+
.origin-top{transform-origin:top;}
|
|
660
|
+
.-translate-x-0\.5{--un-translate-x:calc(var(--spacing) * -0.5);translate:var(--un-translate-x) var(--un-translate-y);}
|
|
661
|
+
.-translate-x-1\/2{--un-translate-x:-50%;translate:var(--un-translate-x) var(--un-translate-y);}
|
|
662
|
+
.-translate-y-0\.5{--un-translate-y:calc(var(--spacing) * -0.5);translate:var(--un-translate-x) var(--un-translate-y);}
|
|
663
|
+
.-translate-y-1\/2{--un-translate-y:-50%;translate:var(--un-translate-x) var(--un-translate-y);}
|
|
664
|
+
.-translate-y-px{--un-translate-y:-1px;translate:var(--un-translate-x) var(--un-translate-y);}
|
|
665
|
+
.after\:-translate-x-1\/2::after{--un-translate-x:-50%;translate:var(--un-translate-x) var(--un-translate-y);}
|
|
666
|
+
.-rotate-45{rotate:-45deg;}
|
|
667
|
+
.rotate-180{rotate:180deg;}
|
|
668
|
+
.data-\[active\]\:scale-\[0\.96\][data-active]{--un-scale-x:0.96;--un-scale-y:0.96;scale:var(--un-scale-x) var(--un-scale-y);}
|
|
669
|
+
.transform{transform:var(--un-rotate-x) var(--un-rotate-y) var(--un-rotate-z) var(--un-skew-x) var(--un-skew-y);}
|
|
670
|
+
.\[\&_svg\]\:transition-\[stroke-width\] svg,
|
|
671
|
+
.transition-\[stroke-width\]{transition-property:stroke-width;transition-timing-function:var(--un-ease, var(--default-transition-timingFunction));transition-duration:var(--un-duration, var(--default-transition-duration));}
|
|
672
|
+
.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,--un-gradient-from,--un-gradient-via,--un-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter;transition-timing-function:var(--un-ease, var(--default-transition-timingFunction));transition-duration:var(--un-duration, var(--default-transition-duration));}
|
|
673
|
+
.transition-\[background-color\,box-shadow\,opacity\]{transition-property:background-color,box-shadow,opacity;transition-timing-function:var(--un-ease, var(--default-transition-timingFunction));transition-duration:var(--un-duration, var(--default-transition-duration));}
|
|
674
|
+
.transition-\[background-color\,width\,height\]{transition-property:background-color,width,height;transition-timing-function:var(--un-ease, var(--default-transition-timingFunction));transition-duration:var(--un-duration, var(--default-transition-duration));}
|
|
675
|
+
.transition-\[background-color\]{transition-property:background-color;transition-timing-function:var(--un-ease, var(--default-transition-timingFunction));transition-duration:var(--un-duration, var(--default-transition-duration));}
|
|
676
|
+
.transition-\[border-color\]{transition-property:border-color;transition-timing-function:var(--un-ease, var(--default-transition-timingFunction));transition-duration:var(--un-duration, var(--default-transition-duration));}
|
|
677
|
+
.transition-\[box-shadow\,background-color\]{transition-property:box-shadow,background-color;transition-timing-function:var(--un-ease, var(--default-transition-timingFunction));transition-duration:var(--un-duration, var(--default-transition-duration));}
|
|
678
|
+
.transition-\[box-shadow\,color\]{transition-property:box-shadow,color;transition-timing-function:var(--un-ease, var(--default-transition-timingFunction));transition-duration:var(--un-duration, var(--default-transition-duration));}
|
|
679
|
+
.transition-\[box-shadow\],
|
|
680
|
+
.transition-shadow{transition-property:box-shadow;transition-timing-function:var(--un-ease, var(--default-transition-timingFunction));transition-duration:var(--un-duration, var(--default-transition-duration));}
|
|
681
|
+
.transition-\[color\,background-color\,border-radius\,box-shadow\,opacity\]{transition-property:color,background-color,border-radius,box-shadow,opacity;transition-timing-function:var(--un-ease, var(--default-transition-timingFunction));transition-duration:var(--un-duration, var(--default-transition-duration));}
|
|
682
|
+
.transition-\[color\,background-color\,opacity\]{transition-property:color,background-color,opacity;transition-timing-function:var(--un-ease, var(--default-transition-timingFunction));transition-duration:var(--un-duration, var(--default-transition-duration));}
|
|
683
|
+
.transition-\[color\,background-color\]{transition-property:color,background-color;transition-timing-function:var(--un-ease, var(--default-transition-timingFunction));transition-duration:var(--un-duration, var(--default-transition-duration));}
|
|
684
|
+
.transition-\[color\,font-variation-settings\]{transition-property:color,font-variation-settings;transition-timing-function:var(--un-ease, var(--default-transition-timingFunction));transition-duration:var(--un-duration, var(--default-transition-duration));}
|
|
685
|
+
.transition-\[color\,opacity\]{transition-property:color,opacity;transition-timing-function:var(--un-ease, var(--default-transition-timingFunction));transition-duration:var(--un-duration, var(--default-transition-duration));}
|
|
686
|
+
.transition-\[color\,stroke-width\]{transition-property:color,stroke-width;transition-timing-function:var(--un-ease, var(--default-transition-timingFunction));transition-duration:var(--un-duration, var(--default-transition-duration));}
|
|
687
|
+
.transition-\[color\]{transition-property:color;transition-timing-function:var(--un-ease, var(--default-transition-timingFunction));transition-duration:var(--un-duration, var(--default-transition-duration));}
|
|
688
|
+
.transition-\[font-variation-settings\]{transition-property:font-variation-settings;transition-timing-function:var(--un-ease, var(--default-transition-timingFunction));transition-duration:var(--un-duration, var(--default-transition-duration));}
|
|
689
|
+
.transition-\[margin\]{transition-property:margin;transition-timing-function:var(--un-ease, var(--default-transition-timingFunction));transition-duration:var(--un-duration, var(--default-transition-duration));}
|
|
690
|
+
.transition-\[padding\]{transition-property:padding;transition-timing-function:var(--un-ease, var(--default-transition-timingFunction));transition-duration:var(--un-duration, var(--default-transition-duration));}
|
|
691
|
+
.transition-\[transform\],
|
|
692
|
+
.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--un-ease, var(--default-transition-timingFunction));transition-duration:var(--un-duration, var(--default-transition-duration));}
|
|
693
|
+
.transition-all{transition-property:all;transition-timing-function:var(--un-ease, var(--default-transition-timingFunction));transition-duration:var(--un-duration, var(--default-transition-duration));}
|
|
694
|
+
.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,--un-gradient-from,--un-gradient-via,--un-gradient-to;transition-timing-function:var(--un-ease, var(--default-transition-timingFunction));transition-duration:var(--un-duration, var(--default-transition-duration));}
|
|
695
|
+
.transition-opacity{transition-property:opacity;transition-timing-function:var(--un-ease, var(--default-transition-timingFunction));transition-duration:var(--un-duration, var(--default-transition-duration));}
|
|
696
|
+
.after\:transition-colors::after{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,--un-gradient-from,--un-gradient-via,--un-gradient-to;transition-timing-function:var(--un-ease, var(--default-transition-timingFunction));transition-duration:var(--un-duration, var(--default-transition-duration));}
|
|
697
|
+
.duration-100{--un-duration:100ms;transition-duration:100ms;}
|
|
698
|
+
.duration-150{--un-duration:150ms;transition-duration:150ms;}
|
|
699
|
+
.data-\[hovering\]\:delay-0[data-hovering],
|
|
700
|
+
.data-\[scrolling\]\:delay-0[data-scrolling]{transition-delay:0s;}
|
|
701
|
+
.ease{--un-ease:var(--ease-DEFAULT);transition-timing-function:var(--ease-DEFAULT);}
|
|
702
|
+
.ease-in-out{--un-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out);}
|
|
703
|
+
.ease-out{--un-ease:var(--ease-out);transition-timing-function:var(--ease-out);}
|
|
704
|
+
.\[--btn-bg\:color-mix\(in_oklab\,var\(--foreground\)_80\%\,var\(--background\)\)\],
|
|
705
|
+
.group:active .group-active\:\[--btn-bg\:color-mix\(in_oklab\,var\(--foreground\)_80\%\,var\(--background\)\)\]{--btn-bg:color-mix(in oklab,var(--foreground) 80%,var(--background));}
|
|
706
|
+
.\[--btn-bg\:var\(--accent\)\],
|
|
707
|
+
.group:active .group-active\:\[--btn-bg\:var\(--accent\)\]{--btn-bg:var(--accent);}
|
|
708
|
+
.\[--btn-bg\:var\(--foreground\)\]{--btn-bg:var(--foreground);}
|
|
709
|
+
.\[--scroll-divider-inset\:8px\]{--scroll-divider-inset:8px;}
|
|
710
|
+
.\[--scroll-fade-size\:16px\]{--scroll-fade-size:16px;}
|
|
711
|
+
.\[--scroll-fade-size\:24px\]{--scroll-fade-size:24px;}
|
|
712
|
+
.\[--scroll-fade-size\:32px\]{--scroll-fade-size:32px;}
|
|
713
|
+
.\[flood-color\:var\(--shadow-color\)\]{flood-color:var(--shadow-color);}
|
|
714
|
+
.\[overflow-anchor\:none\]{overflow-anchor:none;}
|
|
715
|
+
.\[text-box\:trim-both_cap_alphabetic\]{text-box:trim-both cap alphabetic;}
|
|
716
|
+
.\[transform\:translate\(var\(--drawer-swipe-movement-x\)\,calc\(var\(--drawer-snap-point-offset\)_\+_var\(--drawer-swipe-movement-y\)\)\)\]{transform:translate(var(--drawer-swipe-movement-x),calc(var(--drawer-snap-point-offset) + var(--drawer-swipe-movement-y)));}
|
|
717
|
+
.\[transition-behavior\:allow-discrete\]{transition-behavior:allow-discrete;}
|
|
718
|
+
.\[transition-duration\:180ms\,80ms\]{transition-duration:180ms,80ms;}
|
|
719
|
+
.\[transition-timing-function\:cubic-bezier\(0\.23\,1\,0\.32\,1\)\,ease\]{transition-timing-function:cubic-bezier(0.23,1,0.32,1),ease;}
|
|
720
|
+
.\[translate\:var\(--toast-swipe-movement-x\)_var\(--toast-swipe-movement-y\)\]{translate:var(--toast-swipe-movement-x) var(--toast-swipe-movement-y);}
|
|
721
|
+
.group:hover .group-hover\:\[--btn-bg\:color-mix\(in_oklab\,var\(--accent\)_80\%\,var\(--background\)\)\]{--btn-bg:color-mix(in oklab,var(--accent) 80%,var(--background));}
|
|
722
|
+
.group:hover .group-hover\:\[--btn-bg\:color-mix\(in_oklab\,var\(--foreground\)_90\%\,var\(--background\)\)\]{--btn-bg:color-mix(in oklab,var(--foreground) 90%,var(--background));}
|
|
723
|
+
.group:active .group-active\:\[transition-duration\:80ms\,80ms\]{transition-duration:80ms,80ms;}
|
|
724
|
+
.after\:\[mask-image\:linear-gradient\(to_bottom\,transparent_var\(--rail-fade-start\)\,black_var\(--rail-fade-end\)\,black_calc\(100\%-var\(--rail-fade-end\)\)\,transparent_calc\(100\%-var\(--rail-fade-start\)\)\)\]::after{mask-image:linear-gradient(to bottom,transparent var(--rail-fade-start),black var(--rail-fade-end),black calc(100% - var(--rail-fade-end)),transparent calc(100% - var(--rail-fade-start)));}
|
|
725
|
+
.\!items-start{align-items:flex-start !important;}
|
|
726
|
+
.items-start{align-items:flex-start;}
|
|
727
|
+
.items-end{align-items:flex-end;}
|
|
728
|
+
.items-center{align-items:center;}
|
|
729
|
+
.self-start{align-self:flex-start;}
|
|
730
|
+
.self-center{align-self:center;}
|
|
731
|
+
.self-stretch{align-self:stretch;}
|
|
732
|
+
.inset-0{inset:calc(var(--spacing) * 0);}
|
|
733
|
+
.inset-px{inset:1px;}
|
|
734
|
+
.start-1{inset-inline-start:calc(var(--spacing) * 1);}
|
|
735
|
+
.before\:end-0::before{inset-inline-end:calc(var(--spacing) * 0);}
|
|
736
|
+
.before\:end-1\/2::before{inset-inline-end:50%;}
|
|
737
|
+
.before\:start-0::before{inset-inline-start:calc(var(--spacing) * 0);}
|
|
738
|
+
.before\:start-1\/2::before{inset-inline-start:50%;}
|
|
739
|
+
.inset-x-0{inset-inline:calc(var(--spacing) * 0);}
|
|
740
|
+
.inset-x-2{inset-inline:calc(var(--spacing) * 2);}
|
|
741
|
+
.inset-y-0{inset-block:calc(var(--spacing) * 0);}
|
|
742
|
+
.inset-y-2{inset-block:calc(var(--spacing) * 2);}
|
|
743
|
+
.before\:inset-y-0::before{inset-block:calc(var(--spacing) * 0);}
|
|
744
|
+
.after\:inset-y-0::after{inset-block:calc(var(--spacing) * 0);}
|
|
745
|
+
.after\:inset-y-2::after{inset-block:calc(var(--spacing) * 2);}
|
|
746
|
+
.bottom-0{bottom:calc(var(--spacing) * 0);}
|
|
747
|
+
.bottom-2{bottom:calc(var(--spacing) * 2);}
|
|
748
|
+
.bottom-4{bottom:calc(var(--spacing) * 4);}
|
|
749
|
+
.bottom-px{bottom:1px;}
|
|
750
|
+
.group\/menu-item:has(>[data-sidebar=menu-badge]) .group-has-\[\>\[data-sidebar\=menu-badge\]\]\/menu-item\:right-8\.5,
|
|
751
|
+
.group\/menu-sub-item:has(>[data-sidebar=menu-badge]) .group-has-\[\>\[data-sidebar\=menu-badge\]\]\/menu-sub-item\:right-8\.5{right:calc(var(--spacing) * 8.5);}
|
|
752
|
+
.left-0{left:calc(var(--spacing) * 0);}
|
|
753
|
+
.left-1{left:calc(var(--spacing) * 1);}
|
|
754
|
+
.left-1\.5{left:calc(var(--spacing) * 1.5);}
|
|
755
|
+
.left-1\/2{left:50%;}
|
|
756
|
+
.left-2{left:calc(var(--spacing) * 2);}
|
|
757
|
+
.left-4{left:calc(var(--spacing) * 4);}
|
|
758
|
+
.right-0{right:calc(var(--spacing) * 0);}
|
|
759
|
+
.right-1{right:calc(var(--spacing) * 1);}
|
|
760
|
+
.right-1\.5{right:calc(var(--spacing) * 1.5);}
|
|
761
|
+
.right-2{right:calc(var(--spacing) * 2);}
|
|
762
|
+
.right-3{right:calc(var(--spacing) * 3);}
|
|
763
|
+
.right-3\.5{right:calc(var(--spacing) * 3.5);}
|
|
764
|
+
.right-4{right:calc(var(--spacing) * 4);}
|
|
765
|
+
.top-\[12dvh\]{top:12dvh;}
|
|
766
|
+
.top-0{top:calc(var(--spacing) * 0);}
|
|
767
|
+
.top-0\.5{top:calc(var(--spacing) * 0.5);}
|
|
768
|
+
.top-1{top:calc(var(--spacing) * 1);}
|
|
769
|
+
.top-1\.5{top:calc(var(--spacing) * 1.5);}
|
|
770
|
+
.top-1\/2{top:50%;}
|
|
771
|
+
.top-2{top:calc(var(--spacing) * 2);}
|
|
772
|
+
.top-3{top:calc(var(--spacing) * 3);}
|
|
773
|
+
.top-4{top:calc(var(--spacing) * 4);}
|
|
774
|
+
.top-full{top:100%;}
|
|
775
|
+
.after\:bottom-1::after{bottom:calc(var(--spacing) * 1);}
|
|
776
|
+
.after\:left-\[3\.5px\]::after{left:3.5px;}
|
|
777
|
+
.after\:left-0::after{left:calc(var(--spacing) * 0);}
|
|
778
|
+
.after\:left-1\/2::after{left:50%;}
|
|
779
|
+
.after\:right-\[3\.5px\]::after{right:3.5px;}
|
|
780
|
+
.after\:right-0::after{right:calc(var(--spacing) * 0);}
|
|
781
|
+
.justify-end{justify-content:flex-end;}
|
|
782
|
+
.justify-center{justify-content:center;}
|
|
783
|
+
.justify-between{justify-content:space-between;}
|
|
784
|
+
.justify-self-end{justify-self:end;}
|
|
785
|
+
.order-first{order:calc(-infinity);}
|
|
786
|
+
.order-last{order:calc(infinity);}
|
|
787
|
+
.absolute{position:absolute;}
|
|
788
|
+
.fixed{position:fixed;}
|
|
789
|
+
.relative{position:relative;}
|
|
790
|
+
.sticky{position:sticky;}
|
|
791
|
+
.before\:absolute::before{position:absolute;}
|
|
792
|
+
.after\:absolute::after{position:absolute;}
|
|
793
|
+
.-z-10{z-index:-10;}
|
|
794
|
+
.z-\[1\],
|
|
795
|
+
.z-1{z-index:1;}
|
|
796
|
+
.z-\[2\]{z-index:2;}
|
|
797
|
+
.z-\[3\]{z-index:3;}
|
|
798
|
+
.z-\[4\]{z-index:4;}
|
|
799
|
+
.z-\[60\]{z-index:60;}
|
|
800
|
+
.z-0{z-index:0;}
|
|
801
|
+
.z-10{z-index:10;}
|
|
802
|
+
.z-20{z-index:20;}
|
|
803
|
+
.z-30{z-index:30;}
|
|
804
|
+
.z-50{z-index:50;}
|
|
805
|
+
.data-\[active\]\:overflow-hidden[data-active],
|
|
806
|
+
.overflow-hidden{overflow:hidden;}
|
|
807
|
+
.overflow-auto{overflow:auto;}
|
|
808
|
+
.overflow-visible{overflow:visible;}
|
|
809
|
+
.overflow-x-auto{overflow-x:auto;}
|
|
810
|
+
.overflow-x-clip{overflow-x:clip;}
|
|
811
|
+
.overflow-x-hidden{overflow-x:hidden;}
|
|
812
|
+
.overflow-y-auto{overflow-y:auto;}
|
|
813
|
+
.overflow-y-hidden{overflow-y:hidden;}
|
|
814
|
+
.fill-picker-edge{fill:color-mix(in srgb, var(--picker-edge) var(--un-fill-opacity), transparent);}
|
|
815
|
+
.\[\&_svg\]\:stroke-\[1\.5\] svg{stroke-width:1.5;}
|
|
816
|
+
.\[\&_svg\]\:stroke-\[2\] svg,
|
|
817
|
+
.group\/field:focus-within .group-focus-within\/field\:stroke-\[2\],
|
|
818
|
+
.group\/search:focus-within .group-focus-within\/search\:stroke-\[2\],
|
|
819
|
+
.group:hover .group-hover\:\[\&_svg\]\:stroke-\[2\] svg,
|
|
820
|
+
.group:hover .group-hover\:stroke-\[2\],
|
|
821
|
+
.group\/action:hover .group-hover\/action\:stroke-\[2\],
|
|
822
|
+
.group\/field:hover .group-hover\/field\:stroke-\[2\]{stroke-width:2;}
|
|
823
|
+
.stroke-thumb{stroke:color-mix(in srgb, var(--thumb) var(--un-stroke-opacity), transparent);}
|
|
824
|
+
.hover\:\[\&_svg\]\:stroke-\[2\] svg:hover{stroke-width:2;}
|
|
825
|
+
@keyframes pulse{0%, 100% {opacity:1} 50% {opacity:.5}}
|
|
826
|
+
@keyframes spin{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}
|
|
827
|
+
.animate-pulse{animation:pulse 2s cubic-bezier(0.4,0,.6,1) infinite;}
|
|
828
|
+
.animate-spin{animation:spin 1s linear infinite;}
|
|
829
|
+
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0;}
|
|
830
|
+
.isolate{isolation:isolate;}
|
|
831
|
+
.object-cover{object-fit:cover;}
|
|
832
|
+
.object-contain{object-fit:contain;}
|
|
833
|
+
.min-h-svh{min-height:100svh;}
|
|
834
|
+
.h-svh{height:100svh;}
|
|
835
|
+
.backdrop-blur-sm{--un-backdrop-blur:blur(8px);-webkit-backdrop-filter:var(--un-backdrop-blur,) var(--un-backdrop-brightness,) var(--un-backdrop-contrast,) var(--un-backdrop-grayscale,) var(--un-backdrop-hue-rotate,) var(--un-backdrop-invert,) var(--un-backdrop-opacity,) var(--un-backdrop-saturate,) var(--un-backdrop-sepia,);backdrop-filter:var(--un-backdrop-blur,) var(--un-backdrop-brightness,) var(--un-backdrop-contrast,) var(--un-backdrop-grayscale,) var(--un-backdrop-hue-rotate,) var(--un-backdrop-invert,) var(--un-backdrop-opacity,) var(--un-backdrop-saturate,) var(--un-backdrop-sepia,);}
|
|
836
|
+
.blur{--un-blur:blur(8px);filter:var(--un-blur,) var(--un-brightness,) var(--un-contrast,) var(--un-grayscale,) var(--un-hue-rotate,) var(--un-invert,) var(--un-saturate,) var(--un-sepia,) var(--un-drop-shadow,);}
|
|
837
|
+
.drop-shadow-picker-cursor{--un-drop-shadow:drop-shadow(var(--drop-shadow-picker-cursor));filter:var(--un-blur,) var(--un-brightness,) var(--un-contrast,) var(--un-grayscale,) var(--un-hue-rotate,) var(--un-invert,) var(--un-saturate,) var(--un-sepia,) var(--un-drop-shadow,);}
|
|
838
|
+
.filter{filter:var(--un-blur,) var(--un-brightness,) var(--un-contrast,) var(--un-grayscale,) var(--un-hue-rotate,) var(--un-invert,) var(--un-saturate,) var(--un-sepia,) var(--un-drop-shadow,);}
|
|
839
|
+
.table{display:table;}
|
|
840
|
+
.border-collapse{border-collapse:collapse;}
|
|
841
|
+
.touch-none{touch-action:none;}
|
|
842
|
+
.tabular-nums{--un-numeric-spacing:tabular-nums;font-variant-numeric:var(--un-ordinal,) var(--un-slashed-zero,) var(--un-numeric-figure,) var(--un-numeric-spacing,) var(--un-numeric-fraction,);}
|
|
843
|
+
.text-title{font-size:var(--text-title);line-height:var(--leading-title);}
|
|
844
|
+
.text-title-compact{font-size:var(--text-title-compact);line-height:var(--leading-title);}
|
|
845
|
+
.text-subtitle{font-size:var(--text-subtitle);line-height:var(--leading-subtitle);}
|
|
846
|
+
.text-subtitle-compact{font-size:var(--text-subtitle-compact);line-height:var(--leading-subtitle);}
|
|
847
|
+
.text-body{font-size:var(--text-body);line-height:var(--leading-body);}
|
|
848
|
+
.text-body-compact{font-size:var(--text-body-compact);line-height:var(--leading-body);}
|
|
849
|
+
.text-caption{font-size:var(--text-caption);line-height:var(--leading-caption);}
|
|
850
|
+
.\[\&_button\]\:text-caption-compact button,
|
|
851
|
+
.text-caption-compact{font-size:var(--text-caption-compact);line-height:var(--leading-caption);}
|
|
852
|
+
.text-micro{font-size:var(--text-micro);line-height:var(--leading-micro);}
|
|
853
|
+
.text-micro-compact{font-size:var(--text-micro-compact);line-height:var(--leading-micro);}
|
|
854
|
+
.weight-normal{font-variation-settings:var(--weight-normal);}
|
|
855
|
+
.weight-medium{font-variation-settings:var(--weight-medium);}
|
|
856
|
+
.weight-semibold{font-variation-settings:var(--weight-semibold);}
|
|
857
|
+
.weight-bold{font-variation-settings:var(--weight-bold);}
|
|
858
|
+
.\[\&_svg\]\:duration-fast svg,
|
|
859
|
+
.duration-fast{--un-duration:var(--duration-fast);transition-duration:var(--duration-fast);}
|
|
860
|
+
.after\:duration-fast::after{--un-duration:var(--duration-fast);transition-duration:var(--duration-fast);}
|
|
861
|
+
.data-\[hovering\]\:duration-moderate[data-hovering],
|
|
862
|
+
.data-\[scrolling\]\:duration-moderate[data-scrolling],
|
|
863
|
+
.duration-moderate{--un-duration:var(--duration-moderate);transition-duration:var(--duration-moderate);}
|
|
864
|
+
.delay-moderate{transition-delay:var(--duration-moderate);}
|
|
865
|
+
.duration-moderate-exit{--un-duration:var(--duration-moderate-exit);transition-duration:var(--duration-moderate-exit);}
|
|
866
|
+
.duration-slow{--un-duration:var(--duration-slow);transition-duration:var(--duration-slow);}
|
|
867
|
+
.rounded-box{border-radius:var(--radius-box);}
|
|
868
|
+
.rounded-glyph{border-radius:var(--radius-glyph);}
|
|
869
|
+
.group-data-\[active\]\/field\:stroke-\[2\]{
|
|
870
|
+
&:is(:where(.group\/field)[data-active] *){stroke-width:2;}
|
|
871
|
+
}
|
|
872
|
+
.group-data-\[active\]\/field\:text-foreground{
|
|
873
|
+
&:is(:where(.group\/field)[data-active] *){color:color-mix(in srgb, var(--foreground) var(--un-text-opacity), transparent);}
|
|
874
|
+
}
|
|
875
|
+
.has-data-\[slot\=card-action\]\:grid-cols-\[1fr_auto\]{
|
|
876
|
+
&:has(*[data-slot=card-action]){grid-template-columns:1fr auto;}
|
|
877
|
+
}
|
|
878
|
+
.peer-data-\[variant\=inset\]\:bg-surface-2{
|
|
879
|
+
&:is(:where(.peer)[data-variant=inset] ~ *){background-color:color-mix(in srgb, var(--surface-2) var(--un-bg-opacity), transparent);}
|
|
880
|
+
}
|
|
881
|
+
.peer-data-\[variant\=inset\]\:m-2{
|
|
882
|
+
&:is(:where(.peer)[data-variant=inset] ~ *){margin:calc(var(--spacing) * 2);}
|
|
883
|
+
}
|
|
884
|
+
.peer-data-\[variant\=inset\]\:peer-data-\[side\=left\]\:ml-0{&:is(:where(.peer)[data-side=left] ~ *){
|
|
885
|
+
&:is(:where(.peer)[data-variant=inset] ~ *){margin-left:calc(var(--spacing) * 0);}
|
|
886
|
+
}}
|
|
887
|
+
.peer-data-\[variant\=inset\]\:peer-data-\[side\=right\]\:mr-0{&:is(:where(.peer)[data-side=right] ~ *){
|
|
888
|
+
&:is(:where(.peer)[data-variant=inset] ~ *){margin-right:calc(var(--spacing) * 0);}
|
|
889
|
+
}}
|
|
890
|
+
.peer-data-\[variant\=inset\]\:peer-data-\[state\=collapsed\]\:peer-data-\[side\=left\]\:ml-2{&:is(:where(.peer)[data-side=left] ~ *){&:is(:where(.peer)[data-state=collapsed] ~ *){
|
|
891
|
+
&:is(:where(.peer)[data-variant=inset] ~ *){margin-left:calc(var(--spacing) * 2);}
|
|
892
|
+
}}}
|
|
893
|
+
.peer-data-\[variant\=inset\]\:peer-data-\[state\=collapsed\]\:peer-data-\[side\=right\]\:mr-2{&:is(:where(.peer)[data-side=right] ~ *){&:is(:where(.peer)[data-state=collapsed] ~ *){
|
|
894
|
+
&:is(:where(.peer)[data-variant=inset] ~ *){margin-right:calc(var(--spacing) * 2);}
|
|
895
|
+
}}}
|
|
896
|
+
.peer-data-\[variant\=inset\]\:rounded-3xl{
|
|
897
|
+
&:is(:where(.peer)[data-variant=inset] ~ *){border-radius:var(--radius-3xl);}
|
|
898
|
+
}
|
|
899
|
+
.peer-data-\[variant\=inset\]\:rounded-xl{
|
|
900
|
+
&:is(:where(.peer)[data-variant=inset] ~ *){border-radius:var(--radius-xl);}
|
|
901
|
+
}
|
|
902
|
+
.peer-data-\[variant\=inset\]\:shadow-surface-2{
|
|
903
|
+
&:is(:where(.peer)[data-variant=inset] ~ *){--un-shadow:var(--shadow-2);box-shadow:var(--un-inset-shadow), var(--un-inset-ring-shadow), var(--un-ring-offset-shadow), var(--un-ring-shadow), var(--un-shadow);}
|
|
904
|
+
}
|
|
905
|
+
@media (prefers-reduced-motion: reduce){
|
|
906
|
+
.motion-reduce\:transition-none{transition:none;}
|
|
907
|
+
}
|
|
908
|
+
@supports (text-box:trim-both){
|
|
909
|
+
.supports-\[text-box\:trim-both\]\:py-2{padding-block:calc(var(--spacing) * 2);}
|
|
910
|
+
}
|
|
911
|
+
@media (max-width: calc(80rem - 0.1px)){
|
|
912
|
+
.max-xl\:opacity-0{opacity:0%;}
|
|
913
|
+
.max-xl\:hidden{display:none;}
|
|
914
|
+
.max-xl\:duration-moderate{--un-duration:var(--duration-moderate);transition-duration:var(--duration-moderate);}
|
|
915
|
+
}
|
|
916
|
+
@media (max-width: calc(64rem - 0.1px)){
|
|
917
|
+
.max-lg\:opacity-0{opacity:0%;}
|
|
918
|
+
.max-lg\:hidden{display:none;}
|
|
919
|
+
.max-lg\:duration-moderate{--un-duration:var(--duration-moderate);transition-duration:var(--duration-moderate);}
|
|
920
|
+
}
|
|
921
|
+
@media (max-width: calc(48rem - 0.1px)){
|
|
922
|
+
.max-md\:opacity-0{opacity:0%;}
|
|
923
|
+
.max-md\:hidden{display:none;}
|
|
924
|
+
.max-md\:duration-moderate{--un-duration:var(--duration-moderate);transition-duration:var(--duration-moderate);}
|
|
925
|
+
}
|
|
926
|
+
@media (max-width: calc(40rem - 0.1px)){
|
|
927
|
+
.max-sm\:opacity-0{opacity:0%;}
|
|
928
|
+
.max-sm\:hidden{display:none;}
|
|
929
|
+
.max-sm\:duration-moderate{--un-duration:var(--duration-moderate);transition-duration:var(--duration-moderate);}
|
|
930
|
+
}
|
|
931
|
+
@media (min-width: 40rem){
|
|
932
|
+
.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr));}
|
|
933
|
+
.sm\:duration-slow{--un-duration:var(--duration-slow);transition-duration:var(--duration-slow);}
|
|
934
|
+
}
|
|
935
|
+
@starting-style{@media (min-width: 40rem){
|
|
936
|
+
.sm\:starting\:opacity-0{opacity:0%;}
|
|
937
|
+
}}
|
|
938
|
+
@media (min-width: 48rem){
|
|
939
|
+
.md\:duration-slow{--un-duration:var(--duration-slow);transition-duration:var(--duration-slow);}
|
|
940
|
+
}
|
|
941
|
+
@starting-style{@media (min-width: 48rem){
|
|
942
|
+
.md\:starting\:opacity-0{opacity:0%;}
|
|
943
|
+
}}
|
|
944
|
+
@media (min-width: 64rem){
|
|
945
|
+
.lg\:duration-slow{--un-duration:var(--duration-slow);transition-duration:var(--duration-slow);}
|
|
946
|
+
}
|
|
947
|
+
@starting-style{@media (min-width: 64rem){
|
|
948
|
+
.lg\:starting\:opacity-0{opacity:0%;}
|
|
949
|
+
}}
|
|
950
|
+
@media (min-width: 80rem){
|
|
951
|
+
.xl\:duration-slow{--un-duration:var(--duration-slow);transition-duration:var(--duration-slow);}
|
|
952
|
+
}
|
|
953
|
+
@starting-style{@media (min-width: 80rem){
|
|
954
|
+
.xl\:starting\:opacity-0{opacity:0%;}
|
|
955
|
+
}}
|
|
956
|
+
}
|
|
957
|
+
/*
|
|
958
|
+
* Fluid Functionalism color tokens.
|
|
959
|
+
*
|
|
960
|
+
* Source: mickadesign/fluid-functionalism `app/globals.css` §1 (DESIGN TOKENS)
|
|
961
|
+
* at commit b3587bdbd83fc66c2a6aae3817ffb856cb09260b — MIT License
|
|
962
|
+
* © 2026 Micka Touillaud — fluidfunctionalism.com.
|
|
963
|
+
*
|
|
964
|
+
* Migration from upstream: every HEX literal was converted to its exact oklch
|
|
965
|
+
* equivalent (sRGB → OKLab, round-trip verified to the original hex). The
|
|
966
|
+
* rgb()/rgba() alpha overlays (--overlay, --hover, --active, --shadow-color,
|
|
967
|
+
* --dm-*) are kept as-is — they are alpha contracts, not palette colors.
|
|
968
|
+
*
|
|
969
|
+
* Every color token is written ONCE, as light-dark(light, dark). Which side
|
|
970
|
+
* renders is driven by `color-scheme` (set in base.css): :root follows the
|
|
971
|
+
* OS, and a `.light` or `.dark` class pins it. The block is declared on
|
|
972
|
+
* `:root, .light, .dark` — not just `:root` — because light-dark() inside a
|
|
973
|
+
* custom property resolves against the color-scheme of the element the
|
|
974
|
+
* property is declared on, so a forced-scope subtree becomes its own
|
|
975
|
+
* resolution point.
|
|
976
|
+
*
|
|
977
|
+
* The surface ladder and its shadow recipes live with their primitive in
|
|
978
|
+
* primitives/surface/surface.css. The one token that cannot ride
|
|
979
|
+
* light-dark() here — the --overlay RGB triplet (consumed as
|
|
980
|
+
* rgb(var(--overlay) / α), an alpha contract) — is re-pointed per scheme in
|
|
981
|
+
* base.css.
|
|
982
|
+
*/
|
|
983
|
+
|
|
984
|
+
:root,
|
|
985
|
+
.light,
|
|
986
|
+
.dark {
|
|
987
|
+
/* The surface ladder (--surface-1..8) and the shadow recipes pair with it
|
|
988
|
+
in primitives/surface/surface.css. */
|
|
989
|
+
|
|
990
|
+
/* ── Semantic tokens ── */
|
|
991
|
+
/* Same color as --surface-1, inlined so the global token set never
|
|
992
|
+
depends on the surface primitive's CSS being loaded. */
|
|
993
|
+
--background: light-dark(oklch(0.985 0 0), oklch(0.205 0 0));
|
|
994
|
+
--foreground: light-dark(oklch(0.205 0 0), oklch(0.97 0 0));
|
|
995
|
+
/* Same color as --surface-3, inlined for the same reason. */
|
|
996
|
+
--card: light-dark(oklch(1 0 0), oklch(0.264 0 0));
|
|
997
|
+
--card-foreground: light-dark(oklch(0.205 0 0), oklch(0.97 0 0));
|
|
998
|
+
/* Light `muted` decouples from surface-2: the light surface ladder is so
|
|
999
|
+
compressed that a ladder value would read as near-white, making anything
|
|
1000
|
+
sitting on it blend together. A slightly greyer value gives muted real
|
|
1001
|
+
semantic presence. Dark keeps the ladder value (= surface-2). */
|
|
1002
|
+
--muted: light-dark(oklch(0.967 0.001 286.375), oklch(0.235 0 0));
|
|
1003
|
+
--muted-foreground: light-dark(oklch(0.556 0 0), oklch(0.7155 0 0));
|
|
1004
|
+
|
|
1005
|
+
/* ── Interactive states ── */
|
|
1006
|
+
--accent: light-dark(oklch(0.922 0 0), oklch(0.439 0 0));
|
|
1007
|
+
--accent-foreground: light-dark(oklch(0.205 0 0), oklch(0.97 0 0));
|
|
1008
|
+
/* --accent nudged toward the overlay direction (the switch track's hover). */
|
|
1009
|
+
--accent-hover: color-mix(in oklab, var(--accent), rgb(var(--overlay)) 10%);
|
|
1010
|
+
--selected: light-dark(oklch(0.87 0 0), oklch(0.439 0 0));
|
|
1011
|
+
|
|
1012
|
+
/* ── Borders ──
|
|
1013
|
+
--border mixes from --foreground, so it tracks the theme automatically —
|
|
1014
|
+
including inside nested forced scopes, where light-dark() re-resolves
|
|
1015
|
+
--foreground before the mix happens. */
|
|
1016
|
+
--border: color-mix(in oklab, var(--foreground) 12%, transparent);
|
|
1017
|
+
--ring: light-dark(oklch(0.922 0 0), oklch(0.371 0 0));
|
|
1018
|
+
--input: light-dark(oklch(0.922 0 0), oklch(0.371 0 0));
|
|
1019
|
+
|
|
1020
|
+
/* ── Error / Destructive ── */
|
|
1021
|
+
--destructive: light-dark(oklch(0.6368 0.2078 25.33), oklch(0.7106 0.1661 22.22));
|
|
1022
|
+
--destructive-light: light-dark(oklch(0.971 0.013 17.38), oklch(0.2575 0.0886 26.04));
|
|
1023
|
+
|
|
1024
|
+
/* ── Brand blue ──
|
|
1025
|
+
FF's one chromatic accent: the switch's on-track, the copy field's hover
|
|
1026
|
+
highlight, drop-target and selected-swatch rings. */
|
|
1027
|
+
--brand: oklch(0.693 0.16 265);
|
|
1028
|
+
--brand-hover: oklch(0.649 0.164 264.76);
|
|
1029
|
+
|
|
1030
|
+
/* ── Focus indicator ──
|
|
1031
|
+
Every component focus ring reads it (`ring-focus-ring`,
|
|
1032
|
+
`border-focus-ring`), so this is the single theming point. */
|
|
1033
|
+
--focus-ring: var(--brand);
|
|
1034
|
+
|
|
1035
|
+
/* ── Alpha checkerboard (color-picker swatches) ── */
|
|
1036
|
+
--checker-a: light-dark(oklch(0.792 0 0), oklch(0.239 0 0));
|
|
1037
|
+
--checker-b: light-dark(oklch(1 0 0), oklch(0.285 0 0));
|
|
1038
|
+
/* Swatch edges: a mid-grey hairline that reads on any swatch color in
|
|
1039
|
+
either scheme, plus the hover / selected rings, set off by a
|
|
1040
|
+
--background gap. */
|
|
1041
|
+
--swatch-edge: rgb(127 127 127 / 0.25);
|
|
1042
|
+
--swatch-edge-hover: rgb(127 127 127 / 0.4);
|
|
1043
|
+
--shadow-swatch: inset 0 0 0 1px var(--swatch-edge);
|
|
1044
|
+
--shadow-swatch-hover: var(--shadow-swatch), 0 0 0 2px var(--background), 0 0 0 4px var(--swatch-edge-hover);
|
|
1045
|
+
--shadow-swatch-selected: var(--shadow-swatch), 0 0 0 2px var(--background), 0 0 0 4px var(--brand);
|
|
1046
|
+
|
|
1047
|
+
/* ── Thumbs (switch, slider) ──
|
|
1048
|
+
White in both schemes, set off by a soft drop. */
|
|
1049
|
+
--thumb: oklch(1 0 0);
|
|
1050
|
+
--shadow-thumb: 0 1px 2px rgb(0 0 0 / 0.1);
|
|
1051
|
+
|
|
1052
|
+
/* ── Color picker affordances ──
|
|
1053
|
+
Drawn over any user color, so fixed white and black rather than theme
|
|
1054
|
+
colors: they have to read on every fill, in either scheme. */
|
|
1055
|
+
--picker-edge: oklch(0 0 0);
|
|
1056
|
+
--picker-ring: oklch(1 0 0 / 0.55);
|
|
1057
|
+
--picker-thumb-border: oklch(1 0 0 / 0.9);
|
|
1058
|
+
--shadow-picker-thumb: 0 0 0 1px var(--picker-edge);
|
|
1059
|
+
--shadow-picker-cursor: 0 0 0 1px oklch(0 0 0 / 0.2);
|
|
1060
|
+
--drop-shadow-picker-cursor: 0 1px 1px oklch(0 0 0 / 0.4);
|
|
1061
|
+
|
|
1062
|
+
/* ── Controls ──
|
|
1063
|
+
An unchecked checkbox or radio takes a stronger edge than --border;
|
|
1064
|
+
a modal dialog dims the page behind it with the scrim. */
|
|
1065
|
+
--control-border: light-dark(oklch(0.708 0 0), oklch(0.556 0 0));
|
|
1066
|
+
--scrim: light-dark(oklch(0 0 0 / 0.4), oklch(0 0 0 / 0.8));
|
|
1067
|
+
|
|
1068
|
+
/* ── Surface-relative interactive overlays (work on any elevation) ──
|
|
1069
|
+
--overlay is the tint-direction triplet — black for light surfaces,
|
|
1070
|
+
white for dark. Components consume it as rgb(var(--overlay) / α), so it
|
|
1071
|
+
stays an RGB triplet and switches per theme in base.css. --hover and
|
|
1072
|
+
--active are the pre-mixed conveniences. */
|
|
1073
|
+
--overlay: 0 0 0;
|
|
1074
|
+
--hover: light-dark(rgb(0 0 0 / 0.04), rgb(255 255 255 / 0.06));
|
|
1075
|
+
--active: light-dark(rgb(0 0 0 / 0.07), rgb(255 255 255 / 0.1));
|
|
1076
|
+
|
|
1077
|
+
/* ── Syntax (primitives/code) ──
|
|
1078
|
+
Low-chroma hues so code reads as text first; identifiers, JSX text and
|
|
1079
|
+
punctuation ride the existing foreground pair. */
|
|
1080
|
+
--syntax-keyword: light-dark(oklch(0.52 0.16 300), oklch(0.76 0.12 300));
|
|
1081
|
+
--syntax-string: light-dark(oklch(0.52 0.12 150), oklch(0.79 0.11 150));
|
|
1082
|
+
--syntax-class: light-dark(oklch(0.56 0.12 65), oklch(0.81 0.1 75));
|
|
1083
|
+
--syntax-entity: light-dark(oklch(0.52 0.15 255), oklch(0.77 0.11 250));
|
|
1084
|
+
--syntax-property: light-dark(oklch(0.52 0.1 205), oklch(0.79 0.08 200));
|
|
1085
|
+
--syntax-comment: light-dark(oklch(0.62 0 0), oklch(0.56 0 0));
|
|
1086
|
+
--syntax-identifier: var(--foreground);
|
|
1087
|
+
--syntax-jsx: var(--foreground);
|
|
1088
|
+
--syntax-sign: var(--muted-foreground);
|
|
1089
|
+
}
|
|
1090
|
+
|
|
1091
|
+
/* ── Badge palette ──
|
|
1092
|
+
Badge's `color` hues (upstream hex, as exact oklch). Constant across
|
|
1093
|
+
schemes; the solid variant mixes each 15% into --background. */
|
|
1094
|
+
:root {
|
|
1095
|
+
--badge-gray: oklch(0.715 0 0);
|
|
1096
|
+
--badge-red: oklch(0.637 0.208 25.33);
|
|
1097
|
+
--badge-orange: oklch(0.7049 0.1867 47.6);
|
|
1098
|
+
--badge-amber: oklch(0.7686 0.1647 70.08);
|
|
1099
|
+
--badge-yellow: oklch(0.7952 0.1617 86.05);
|
|
1100
|
+
--badge-lime: oklch(0.7681 0.2044 130.85);
|
|
1101
|
+
--badge-green: oklch(0.723 0.192 149.58);
|
|
1102
|
+
--badge-emerald: oklch(0.6959 0.1491 162.48);
|
|
1103
|
+
--badge-teal: oklch(0.704 0.123 182.5);
|
|
1104
|
+
--badge-cyan: oklch(0.7148 0.1257 215.22);
|
|
1105
|
+
--badge-blue: oklch(0.623 0.188 259.81);
|
|
1106
|
+
--badge-indigo: oklch(0.585 0.204 277.12);
|
|
1107
|
+
--badge-violet: oklch(0.606 0.219 292.72);
|
|
1108
|
+
--badge-purple: oklch(0.627 0.233 303.9);
|
|
1109
|
+
--badge-fuchsia: oklch(0.667 0.259 322.15);
|
|
1110
|
+
--badge-pink: oklch(0.656 0.212 354.31);
|
|
1111
|
+
--badge-rose: oklch(0.645 0.215 16.44);
|
|
1112
|
+
}
|
|
1113
|
+
|
|
1114
|
+
/* ── Status roles ──
|
|
1115
|
+
The toast states, picked from the badge palette (and --destructive /
|
|
1116
|
+
--brand) by reference, so a status reads the same wherever it shows. */
|
|
1117
|
+
:root {
|
|
1118
|
+
--status-success: var(--badge-green);
|
|
1119
|
+
--status-loading: var(--badge-gray);
|
|
1120
|
+
--status-error: var(--destructive);
|
|
1121
|
+
--status-warning: var(--badge-amber);
|
|
1122
|
+
--status-info: var(--badge-blue);
|
|
1123
|
+
--status-action: var(--brand);
|
|
1124
|
+
}
|
|
1125
|
+
|
|
1126
|
+
/*
|
|
1127
|
+
* Fluid Functionalism motion tokens.
|
|
1128
|
+
*
|
|
1129
|
+
* Source: mickadesign/fluid-functionalism `registry/default/lib/springs.ts`
|
|
1130
|
+
* at commit b3587bdbd83fc66c2a6aae3817ffb856cb09260b — MIT License © 2026
|
|
1131
|
+
* Micka Touillaud — fluidfunctionalism.com.
|
|
1132
|
+
*
|
|
1133
|
+
* FF's motion is JS: the `spring` tiers in lib/springs.ts feed
|
|
1134
|
+
* `motion/react`, and components always reach for a tier rather than a
|
|
1135
|
+
* hand-written duration. These properties mirror those tiers for CSS
|
|
1136
|
+
* consumers and for the tokens page — keep the two in sync.
|
|
1137
|
+
*
|
|
1138
|
+
* Each tier's enter transition is a spring of the given duration; its exit is
|
|
1139
|
+
* a plain tween one step quicker, so a dismissal reads as crisp and final.
|
|
1140
|
+
* fast 80ms enter, 60ms exit — critically damped (bounce 0)
|
|
1141
|
+
* moderate 160ms enter, 120ms exit — critically damped (bounce 0): panels,
|
|
1142
|
+
* dropdowns, tabs, merged selection backgrounds
|
|
1143
|
+
* slow 240ms enter, 160ms exit — the one tier with a little bounce
|
|
1144
|
+
* (bounce 0.12)
|
|
1145
|
+
* The bigger the thing that moves, the slower the tier.
|
|
1146
|
+
*
|
|
1147
|
+
* Local addition: `goo`, the morph engine's tier for the goo effect — 250ms
|
|
1148
|
+
* to land (bounce 0.15), a 200ms spring back — so the liquid neck reads.
|
|
1149
|
+
*/
|
|
1150
|
+
|
|
1151
|
+
:root {
|
|
1152
|
+
--duration-fast: 80ms;
|
|
1153
|
+
--duration-fast-exit: 60ms;
|
|
1154
|
+
--duration-moderate: 160ms;
|
|
1155
|
+
--duration-moderate-exit: 120ms;
|
|
1156
|
+
--duration-slow: 240ms;
|
|
1157
|
+
--duration-slow-exit: 160ms;
|
|
1158
|
+
--duration-goo: 250ms;
|
|
1159
|
+
--duration-goo-exit: 200ms;
|
|
1160
|
+
}
|
|
1161
|
+
|
|
1162
|
+
:root {
|
|
1163
|
+
/* Fluid Functionalism's corner token (upstream tokens/radius.css). */
|
|
1164
|
+
--radius: 0.625rem;
|
|
1165
|
+
|
|
1166
|
+
/* Small-box corners between wind4's xs (2px) and md (6px) steps, read by
|
|
1167
|
+
the `rounded-box|glyph` utility in preset.ts: checkbox squares and
|
|
1168
|
+
keycaps, and the composer's stop glyph. */
|
|
1169
|
+
--radius-box: 5px;
|
|
1170
|
+
--radius-glyph: 3px;
|
|
1171
|
+
}
|
|
1172
|
+
|
|
1173
|
+
:root {
|
|
1174
|
+
/* The docs chrome's spacing rhythm (AGENTS.md generic tokens). */
|
|
1175
|
+
--space-1: 4px;
|
|
1176
|
+
--space-2: 8px;
|
|
1177
|
+
--space-3: 12px;
|
|
1178
|
+
--space-4: 16px;
|
|
1179
|
+
--space-5: 24px;
|
|
1180
|
+
--space-6: 32px;
|
|
1181
|
+
}
|
|
1182
|
+
|
|
1183
|
+
/*
|
|
1184
|
+
* Fluid Functionalism type tokens.
|
|
1185
|
+
*
|
|
1186
|
+
* Source: mickadesign/fluid-functionalism `app/globals.css` §3–4 (`--font-sans`,
|
|
1187
|
+
* the `--fs-*` type-scale roles and their `@utility text-*` classes) at commit
|
|
1188
|
+
* b3587bdbd83fc66c2a6aae3817ffb856cb09260b — MIT License © 2026 Micka
|
|
1189
|
+
* Touillaud — fluidfunctionalism.com.
|
|
1190
|
+
*
|
|
1191
|
+
* Local changes:
|
|
1192
|
+
* - The family is Inter Variable from @fontsource-variable/inter/opsz
|
|
1193
|
+
* (imported in base.css) instead of upstream's self-hosted
|
|
1194
|
+
* InterVariable.ttf. The opsz build matters: the `--weight-*` ladder sets
|
|
1195
|
+
* both the wght and opsz axes.
|
|
1196
|
+
* - The role sizes are renamed `--fs-*` → `--text-*` and read by the
|
|
1197
|
+
* `text-<role>[-compact]` utility in preset.ts. They hold both columns of
|
|
1198
|
+
* `typeScale` in lib/size-context.tsx (keep the two in sync), so a
|
|
1199
|
+
* component's `compact ? … : …` picks a token on either side. Upstream's
|
|
1200
|
+
* site-chrome extras — the 22px mobile display step and the
|
|
1201
|
+
* `html[data-size="compact"]` override set by the docs site's
|
|
1202
|
+
* SizeAttribute — are not carried over.
|
|
1203
|
+
* - `micro` (keycaps, one notch below caption) is a local role.
|
|
1204
|
+
* - Each role's line-height (FF's typography page: 28/34, 16/22, 14/20,
|
|
1205
|
+
* 13/20, 12/16) is a `--leading-*` token, emitted by the same
|
|
1206
|
+
* `text-<role>` rule; the compact step keeps its role's leading.
|
|
1207
|
+
* - The docs chrome's element roles (`--font-size-<el>`, `--line-height-<el>`,
|
|
1208
|
+
* `--font-weight-<el>`, `--color-<el>`) reference these, following FF's
|
|
1209
|
+
* rules: headings in foreground, text muted.
|
|
1210
|
+
* - Upstream's `fontWeights` (lib/font-weight.ts, fontVariationSettings
|
|
1211
|
+
* strings) become the `--weight-*` variation settings, read by the
|
|
1212
|
+
* `weight-*` utility in preset.ts. Each derives its wght from
|
|
1213
|
+
* `--font-weight-*`, the plain font-weight form the docs chrome reads.
|
|
1214
|
+
*/
|
|
1215
|
+
|
|
1216
|
+
:root {
|
|
1217
|
+
--font-sans: "Inter Variable", ui-sans-serif, system-ui, sans-serif;
|
|
1218
|
+
--font-mono: ui-monospace, "SF Mono", SFMono-Regular, Menlo, Consolas, monospace;
|
|
1219
|
+
|
|
1220
|
+
/* Page titles. */
|
|
1221
|
+
--text-display: 28px;
|
|
1222
|
+
/* Section headings, dialog titles. */
|
|
1223
|
+
--text-title: 16px;
|
|
1224
|
+
/* Card titles, emphasized rows. */
|
|
1225
|
+
--text-subtitle: 14px;
|
|
1226
|
+
/* Control labels and body copy. */
|
|
1227
|
+
--text-body: 13px;
|
|
1228
|
+
/* Secondary text: descriptions, meta rows, errors, group labels. */
|
|
1229
|
+
--text-caption: 12px;
|
|
1230
|
+
/* Keycaps and chips. */
|
|
1231
|
+
--text-micro: 11px;
|
|
1232
|
+
|
|
1233
|
+
/* Each role's paired line-height. */
|
|
1234
|
+
--leading-display: 34px;
|
|
1235
|
+
--leading-title: 22px;
|
|
1236
|
+
--leading-subtitle: 20px;
|
|
1237
|
+
--leading-body: 20px;
|
|
1238
|
+
--leading-caption: 16px;
|
|
1239
|
+
--leading-micro: 14px;
|
|
1240
|
+
|
|
1241
|
+
/* The compact step: each role one notch down. */
|
|
1242
|
+
--text-display-compact: 24px;
|
|
1243
|
+
--text-title-compact: 15px;
|
|
1244
|
+
--text-subtitle-compact: 13px;
|
|
1245
|
+
--text-body-compact: 12px;
|
|
1246
|
+
--text-caption-compact: 11px;
|
|
1247
|
+
--text-micro-compact: 10px;
|
|
1248
|
+
|
|
1249
|
+
/* Inter variable weights, each paired with the opsz that keeps a label's
|
|
1250
|
+
advance width steady as it changes weight. */
|
|
1251
|
+
--font-weight-normal: 400;
|
|
1252
|
+
--font-weight-medium: 450;
|
|
1253
|
+
--font-weight-semibold: 550;
|
|
1254
|
+
--font-weight-bold: 700;
|
|
1255
|
+
--weight-normal: "wght" var(--font-weight-normal), "opsz" 14;
|
|
1256
|
+
--weight-medium: "wght" var(--font-weight-medium), "opsz" 15;
|
|
1257
|
+
--weight-semibold: "wght" var(--font-weight-semibold), "opsz" 18;
|
|
1258
|
+
--weight-bold: "wght" var(--font-weight-bold), "opsz" 25;
|
|
1259
|
+
|
|
1260
|
+
/* The docs chrome's elements (modo's type contract), on the roles above. */
|
|
1261
|
+
--font-size-h1: var(--text-display);
|
|
1262
|
+
--line-height-h1: var(--leading-display);
|
|
1263
|
+
--font-weight-h1: var(--font-weight-bold);
|
|
1264
|
+
--color-h1: var(--foreground);
|
|
1265
|
+
|
|
1266
|
+
--font-size-h2: var(--text-title);
|
|
1267
|
+
--line-height-h2: var(--leading-title);
|
|
1268
|
+
--font-weight-h2: var(--font-weight-semibold);
|
|
1269
|
+
--color-h2: var(--foreground);
|
|
1270
|
+
|
|
1271
|
+
--font-size-h3: var(--text-subtitle);
|
|
1272
|
+
--line-height-h3: var(--leading-subtitle);
|
|
1273
|
+
--font-weight-h3: var(--font-weight-semibold);
|
|
1274
|
+
--color-h3: var(--foreground);
|
|
1275
|
+
|
|
1276
|
+
--font-size-h4: var(--text-body);
|
|
1277
|
+
--line-height-h4: var(--leading-body);
|
|
1278
|
+
--font-weight-h4: var(--font-weight-semibold);
|
|
1279
|
+
--color-h4: var(--foreground);
|
|
1280
|
+
|
|
1281
|
+
--font-size-p: var(--text-body);
|
|
1282
|
+
--line-height-p: var(--leading-body);
|
|
1283
|
+
--font-weight-p: var(--font-weight-normal);
|
|
1284
|
+
--color-p: var(--muted-foreground);
|
|
1285
|
+
|
|
1286
|
+
--font-size-lead: var(--text-body);
|
|
1287
|
+
--line-height-lead: var(--leading-body);
|
|
1288
|
+
--font-weight-lead: var(--font-weight-normal);
|
|
1289
|
+
--color-lead: var(--muted-foreground);
|
|
1290
|
+
|
|
1291
|
+
--font-size-eyebrow: var(--text-caption);
|
|
1292
|
+
--line-height-eyebrow: var(--leading-caption);
|
|
1293
|
+
--font-weight-eyebrow: var(--font-weight-medium);
|
|
1294
|
+
--color-eyebrow: var(--muted-foreground);
|
|
1295
|
+
|
|
1296
|
+
--font-size-sm: var(--text-caption);
|
|
1297
|
+
--line-height-sm: var(--leading-caption);
|
|
1298
|
+
|
|
1299
|
+
--font-size-xs: var(--text-micro);
|
|
1300
|
+
--line-height-xs: var(--leading-micro);
|
|
1301
|
+
}
|
|
1302
|
+
|
|
1303
|
+
/* biome-ignore-all lint: vendored upstream code keeps its own values (see the header) */
|
|
1304
|
+
/*
|
|
1305
|
+
* UI theme plumbing and base styles.
|
|
1306
|
+
*
|
|
1307
|
+
* Source: mickadesign/fluid-functionalism `app/globals.css` at commit
|
|
1308
|
+
* b3587bdbd83fc66c2a6aae3817ffb856cb09260b — MIT License © 2026 Micka
|
|
1309
|
+
* Touillaud — fluidfunctionalism.com. Translated from Tailwind v4 CSS to
|
|
1310
|
+
* plain CSS for UnoCSS (uno.config.ts); vite.ts injects the UnoCSS
|
|
1311
|
+
* stylesheet ahead of this file. The docs site imports it from global.css;
|
|
1312
|
+
* the package ships it inside dist/base.css and dist/styles.css.
|
|
1313
|
+
*
|
|
1314
|
+
* Where upstream's sections went:
|
|
1315
|
+
* - §1 design tokens → tokens/colors.css; the surface ladder and shadow
|
|
1316
|
+
* recipes → primitives/surface/surface.css. All HEX migrated to oklch.
|
|
1317
|
+
* - §2 theme switching → the color-scheme / --overlay block below (the
|
|
1318
|
+
* shadow re-pointing lives in surface.css).
|
|
1319
|
+
* - §3 `@theme inline` → preset.ts `theme`; the `--fs-*` roles and
|
|
1320
|
+
* `@utility text-*` → tokens/typography.css (`--text-*`) + preset.ts
|
|
1321
|
+
* `utilities`.
|
|
1322
|
+
* - §4–6 → below: html/body base, `@layer base` (text wrap, inline code chip,
|
|
1323
|
+
* :focus-visible fallback), html.transitioning, native scrollbars,
|
|
1324
|
+
* .scrollbar-hide, shimmer + spinner keyframes, .scroll-fade(-x).
|
|
1325
|
+
*
|
|
1326
|
+
* Local value changes: the inline code chip and the shimmer stops read color
|
|
1327
|
+
* tokens instead of upstream's hex (light code chip `--muted`, dark
|
|
1328
|
+
* `--surface-4`; shimmer dim → bright runs `--muted-foreground` →
|
|
1329
|
+
* `--foreground` in light and `--accent` → `--muted-foreground` in dark).
|
|
1330
|
+
*
|
|
1331
|
+
* Dropped: the Tailwind directives (`@import "tailwindcss"`,
|
|
1332
|
+
* `@custom-variant`), the self-hosted Inter @font-face (replaced by
|
|
1333
|
+
* @fontsource-variable/inter/opsz), the Radix-only scroll-lock margin fix
|
|
1334
|
+
* (`body[data-scroll-locked]`), the reserved shadcn-compare colors, and the
|
|
1335
|
+
* docs-site-only CSS (.xl-fade-*, .inview-fade-block, .scroll-divider — only
|
|
1336
|
+
* the omitted Sidebar uses it — .bento-*, .shiki).
|
|
1337
|
+
*
|
|
1338
|
+
* Layers: UnoCSS (`outputToCssLayers`) declares `@layer properties, theme,
|
|
1339
|
+
* base, default` first, and its reset lives in `base`. The `@layer base`
|
|
1340
|
+
* rules here join that layer after the reset, so the reset loses to them and
|
|
1341
|
+
* every utility (`default`) still wins — the same arrangement as Tailwind's
|
|
1342
|
+
* base/utilities layers upstream.
|
|
1343
|
+
*
|
|
1344
|
+
* The switch blocks double their class selector (.light.light / .dark.dark)
|
|
1345
|
+
* because user CSS is injected BEFORE tokens/*.css and item CSS — the
|
|
1346
|
+
* doubled selector (0,2,0) must out-specify the shared `:root, .light,
|
|
1347
|
+
* .dark` token blocks (0,1,0) so the re-pointed values win regardless of
|
|
1348
|
+
* stylesheet order.
|
|
1349
|
+
*/
|
|
1350
|
+
|
|
1351
|
+
|
|
1352
|
+
/* ── Theme switching (upstream §2) ──
|
|
1353
|
+
`color-scheme` is what flips every light-dark() token; the classes work on
|
|
1354
|
+
<html> (vite.ts puts the stored preference there, or the OS one under
|
|
1355
|
+
'system') and on any subtree (forced-theme previews). The only value that can't ride light-dark() here
|
|
1356
|
+
is the --overlay RGB triplet, consumed as rgb(var(--overlay) / α). */
|
|
1357
|
+
|
|
1358
|
+
:root {
|
|
1359
|
+
color-scheme: light dark;
|
|
1360
|
+
}
|
|
1361
|
+
|
|
1362
|
+
@media (prefers-color-scheme: dark) {
|
|
1363
|
+
:root:not(.light) {
|
|
1364
|
+
--overlay: 255 255 255;
|
|
1365
|
+
}
|
|
1366
|
+
}
|
|
1367
|
+
|
|
1368
|
+
.light.light {
|
|
1369
|
+
color-scheme: light;
|
|
1370
|
+
--overlay: 0 0 0;
|
|
1371
|
+
}
|
|
1372
|
+
|
|
1373
|
+
.dark.dark {
|
|
1374
|
+
color-scheme: dark;
|
|
1375
|
+
--overlay: 255 255 255;
|
|
1376
|
+
}
|
|
1377
|
+
|
|
1378
|
+
/* ── Base styles (upstream §4) ── */
|
|
1379
|
+
|
|
1380
|
+
/* No explicit overflow here: scrollbar-gutter applies to the viewport when
|
|
1381
|
+
set on the root, and an explicit `overflow-y: auto` would stop dialog
|
|
1382
|
+
scroll locks (`body { overflow: hidden }`) from propagating to the
|
|
1383
|
+
viewport. */
|
|
1384
|
+
html {
|
|
1385
|
+
scrollbar-gutter: stable;
|
|
1386
|
+
}
|
|
1387
|
+
|
|
1388
|
+
html,
|
|
1389
|
+
body {
|
|
1390
|
+
margin: 0;
|
|
1391
|
+
min-height: 100vh;
|
|
1392
|
+
overscroll-behavior-y: none;
|
|
1393
|
+
background-color: var(--background);
|
|
1394
|
+
/* Explicit text color so unstyled text follows the theme (and so the UA's
|
|
1395
|
+
color-scheme-driven canvastext default never shows through). */
|
|
1396
|
+
color: var(--foreground);
|
|
1397
|
+
font-family: var(--font-sans);
|
|
1398
|
+
/* Inherited by everything (portals included) — a `subpixel-antialiased`
|
|
1399
|
+
utility on a subtree is the only way to opt back out. */
|
|
1400
|
+
-webkit-font-smoothing: antialiased;
|
|
1401
|
+
-moz-osx-font-smoothing: grayscale;
|
|
1402
|
+
}
|
|
1403
|
+
|
|
1404
|
+
/* @layer base so a utility can still win: unlayered, these outrank
|
|
1405
|
+
`truncate` on the text-wrap-mode longhand (white-space is a shorthand for
|
|
1406
|
+
white-space-collapse + text-wrap-mode), which silently un-truncates every
|
|
1407
|
+
<p> that asks for it. */
|
|
1408
|
+
@layer base {
|
|
1409
|
+
h1,
|
|
1410
|
+
h2,
|
|
1411
|
+
h3 {
|
|
1412
|
+
text-wrap: balance;
|
|
1413
|
+
}
|
|
1414
|
+
|
|
1415
|
+
p {
|
|
1416
|
+
text-wrap: pretty;
|
|
1417
|
+
}
|
|
1418
|
+
|
|
1419
|
+
/* Inline code chips: bare <code> in prose gets its own ground. Excludes
|
|
1420
|
+
code inside <pre>. Base layer, so a page can still override with
|
|
1421
|
+
utilities. */
|
|
1422
|
+
code:not(pre code) {
|
|
1423
|
+
background: light-dark(var(--muted), var(--surface-4));
|
|
1424
|
+
border-radius: 4px;
|
|
1425
|
+
padding: 1px 4px;
|
|
1426
|
+
font-size: var(--text-caption, 12px);
|
|
1427
|
+
color: var(--foreground, inherit);
|
|
1428
|
+
}
|
|
1429
|
+
}
|
|
1430
|
+
|
|
1431
|
+
/* Theme-toggle cross-fade: ShapeProvider (and any theme switcher) adds
|
|
1432
|
+
`.transitioning` around a class swap so colors and corners tween instead of
|
|
1433
|
+
snapping. */
|
|
1434
|
+
html.transitioning *,
|
|
1435
|
+
html.transitioning *::before,
|
|
1436
|
+
html.transitioning *::after {
|
|
1437
|
+
transition:
|
|
1438
|
+
border-radius 180ms ease-in-out,
|
|
1439
|
+
background-color 180ms ease-in-out,
|
|
1440
|
+
color 180ms ease-in-out,
|
|
1441
|
+
border-color 180ms ease-in-out,
|
|
1442
|
+
fill 180ms ease-in-out,
|
|
1443
|
+
stroke 180ms ease-in-out !important;
|
|
1444
|
+
}
|
|
1445
|
+
|
|
1446
|
+
/* Focus fallback — natively focusable elements no component styles (scroll
|
|
1447
|
+
containers Chrome makes tabbable, prose links, demo boxes) get the same
|
|
1448
|
+
token ring as the components instead of the UA default. Lives in
|
|
1449
|
+
@layer base so `outline-none` (a utility) still wins — components that
|
|
1450
|
+
draw their own ring aren't double-ringed. The radius rides
|
|
1451
|
+
--shape-input-radius (published by ShapeProvider); 8px = the rounded-mode
|
|
1452
|
+
default. */
|
|
1453
|
+
@layer base {
|
|
1454
|
+
:focus-visible {
|
|
1455
|
+
outline: 1px solid var(--focus-ring);
|
|
1456
|
+
outline-offset: 2px;
|
|
1457
|
+
border-radius: var(--shape-input-radius, 8px);
|
|
1458
|
+
}
|
|
1459
|
+
|
|
1460
|
+
/* Prose links are inline text boxes — the shape-system radius reads
|
|
1461
|
+
pill-ish at text height, so their ring takes a tight 2px corner. */
|
|
1462
|
+
a:focus-visible {
|
|
1463
|
+
border-radius: 2px;
|
|
1464
|
+
}
|
|
1465
|
+
}
|
|
1466
|
+
|
|
1467
|
+
/* ── Native scrollbar theme (upstream §5) ──
|
|
1468
|
+
Matches the ScrollArea thumb language (narrow, low-contrast, darkens on
|
|
1469
|
+
hover) so surfaces that fall back to native scrollbars stay consistent
|
|
1470
|
+
with the custom scrollbar. Rides the surface-relative overlay ramp (rest
|
|
1471
|
+
8%, hover 12%, drag 16%) — adapts to dark mode through --overlay. Only on
|
|
1472
|
+
fine pointers; touch devices keep their overlay momentum bars. Chromium
|
|
1473
|
+
121+ renders scrollbar-color and ignores the ::-webkit-* block, so both
|
|
1474
|
+
ramps must stay in sync. */
|
|
1475
|
+
|
|
1476
|
+
@media (pointer: fine) {
|
|
1477
|
+
* {
|
|
1478
|
+
scrollbar-width: thin;
|
|
1479
|
+
scrollbar-color: rgb(var(--overlay) / 0.08) transparent;
|
|
1480
|
+
}
|
|
1481
|
+
|
|
1482
|
+
::-webkit-scrollbar {
|
|
1483
|
+
width: 10px;
|
|
1484
|
+
height: 10px;
|
|
1485
|
+
}
|
|
1486
|
+
|
|
1487
|
+
::-webkit-scrollbar-track,
|
|
1488
|
+
::-webkit-scrollbar-corner {
|
|
1489
|
+
background: transparent;
|
|
1490
|
+
}
|
|
1491
|
+
|
|
1492
|
+
::-webkit-scrollbar-thumb {
|
|
1493
|
+
/* Transparent borders + content-box clip leave a ~4px visible thumb
|
|
1494
|
+
inside the 10px hit area; the asymmetric edge-side border slides it
|
|
1495
|
+
2px away from the edge, matching the ScrollArea thumb's nudge. */
|
|
1496
|
+
background-color: rgb(var(--overlay) / 0.08);
|
|
1497
|
+
border: 3px solid transparent;
|
|
1498
|
+
background-clip: content-box;
|
|
1499
|
+
border-radius: 9999px;
|
|
1500
|
+
}
|
|
1501
|
+
|
|
1502
|
+
::-webkit-scrollbar-thumb:vertical {
|
|
1503
|
+
border-left-width: 1px;
|
|
1504
|
+
border-right-width: 5px;
|
|
1505
|
+
}
|
|
1506
|
+
|
|
1507
|
+
::-webkit-scrollbar-thumb:horizontal {
|
|
1508
|
+
border-top-width: 1px;
|
|
1509
|
+
border-bottom-width: 5px;
|
|
1510
|
+
}
|
|
1511
|
+
|
|
1512
|
+
::-webkit-scrollbar-thumb:hover {
|
|
1513
|
+
background-color: rgb(var(--overlay) / 0.12);
|
|
1514
|
+
}
|
|
1515
|
+
|
|
1516
|
+
::-webkit-scrollbar-thumb:active {
|
|
1517
|
+
background-color: rgb(var(--overlay) / 0.16);
|
|
1518
|
+
}
|
|
1519
|
+
}
|
|
1520
|
+
|
|
1521
|
+
.scrollbar-hide {
|
|
1522
|
+
-ms-overflow-style: none;
|
|
1523
|
+
scrollbar-width: none;
|
|
1524
|
+
}
|
|
1525
|
+
|
|
1526
|
+
.scrollbar-hide::-webkit-scrollbar {
|
|
1527
|
+
display: none;
|
|
1528
|
+
}
|
|
1529
|
+
|
|
1530
|
+
/* ── Utilities (upstream §6) ── */
|
|
1531
|
+
|
|
1532
|
+
/* shimmer-text (thinking-indicator) */
|
|
1533
|
+
|
|
1534
|
+
@keyframes shimmer {
|
|
1535
|
+
0% {
|
|
1536
|
+
background-position: 0% 0;
|
|
1537
|
+
}
|
|
1538
|
+
100% {
|
|
1539
|
+
background-position: 100% 0;
|
|
1540
|
+
}
|
|
1541
|
+
}
|
|
1542
|
+
|
|
1543
|
+
.shimmer-text {
|
|
1544
|
+
color: transparent;
|
|
1545
|
+
background: linear-gradient(
|
|
1546
|
+
90deg,
|
|
1547
|
+
light-dark(var(--muted-foreground), var(--accent)) 0%,
|
|
1548
|
+
light-dark(var(--muted-foreground), var(--accent)) 35%,
|
|
1549
|
+
light-dark(var(--foreground), var(--muted-foreground)) 50%,
|
|
1550
|
+
light-dark(var(--muted-foreground), var(--accent)) 65%,
|
|
1551
|
+
light-dark(var(--muted-foreground), var(--accent)) 100%
|
|
1552
|
+
);
|
|
1553
|
+
background-size: 300% 100%;
|
|
1554
|
+
background-clip: text;
|
|
1555
|
+
-webkit-background-clip: text;
|
|
1556
|
+
animation: shimmer 1.5s ease-in-out infinite;
|
|
1557
|
+
}
|
|
1558
|
+
|
|
1559
|
+
/* Spinner keyframes (Button's loading state). */
|
|
1560
|
+
|
|
1561
|
+
@keyframes spinner-move {
|
|
1562
|
+
to {
|
|
1563
|
+
stroke-dashoffset: -100;
|
|
1564
|
+
}
|
|
1565
|
+
}
|
|
1566
|
+
|
|
1567
|
+
@keyframes spinner-dash {
|
|
1568
|
+
0%,
|
|
1569
|
+
100% {
|
|
1570
|
+
stroke-dasharray: 15 85;
|
|
1571
|
+
}
|
|
1572
|
+
50% {
|
|
1573
|
+
stroke-dasharray: 40 60;
|
|
1574
|
+
}
|
|
1575
|
+
}
|
|
1576
|
+
|
|
1577
|
+
/* scroll-fade — vendored equivalent of shadcn's scroll-fade utility. A
|
|
1578
|
+
mask-image dissolves the content toward the edges that have more to
|
|
1579
|
+
scroll. CSS scroll-driven animations make it scroll-aware: the true
|
|
1580
|
+
start/end edge stays crisp until you scroll past it. Browsers without
|
|
1581
|
+
scroll-driven animations fall back to a static fade on both edges. Apply
|
|
1582
|
+
to a scroll container, or to a ScrollArea via `viewportClassName`. */
|
|
1583
|
+
|
|
1584
|
+
@property --sf-start {
|
|
1585
|
+
syntax: "<number>";
|
|
1586
|
+
inherits: false;
|
|
1587
|
+
initial-value: 1;
|
|
1588
|
+
}
|
|
1589
|
+
@property --sf-end {
|
|
1590
|
+
syntax: "<number>";
|
|
1591
|
+
inherits: false;
|
|
1592
|
+
initial-value: 1;
|
|
1593
|
+
}
|
|
1594
|
+
|
|
1595
|
+
@keyframes sf-reveal-start {
|
|
1596
|
+
from {
|
|
1597
|
+
--sf-start: 1;
|
|
1598
|
+
}
|
|
1599
|
+
to {
|
|
1600
|
+
--sf-start: 0;
|
|
1601
|
+
}
|
|
1602
|
+
}
|
|
1603
|
+
@keyframes sf-reveal-end {
|
|
1604
|
+
from {
|
|
1605
|
+
--sf-end: 0;
|
|
1606
|
+
}
|
|
1607
|
+
to {
|
|
1608
|
+
--sf-end: 1;
|
|
1609
|
+
}
|
|
1610
|
+
}
|
|
1611
|
+
|
|
1612
|
+
.scroll-fade,
|
|
1613
|
+
.scroll-fade-x {
|
|
1614
|
+
--scroll-fade-size: 48px;
|
|
1615
|
+
}
|
|
1616
|
+
|
|
1617
|
+
/* Static fallback: fade both edges. */
|
|
1618
|
+
.scroll-fade {
|
|
1619
|
+
-webkit-mask-image: linear-gradient(
|
|
1620
|
+
to bottom,
|
|
1621
|
+
transparent 0,
|
|
1622
|
+
#000 var(--scroll-fade-size),
|
|
1623
|
+
#000 calc(100% - var(--scroll-fade-size)),
|
|
1624
|
+
transparent 100%
|
|
1625
|
+
);
|
|
1626
|
+
mask-image: linear-gradient(
|
|
1627
|
+
to bottom,
|
|
1628
|
+
transparent 0,
|
|
1629
|
+
#000 var(--scroll-fade-size),
|
|
1630
|
+
#000 calc(100% - var(--scroll-fade-size)),
|
|
1631
|
+
transparent 100%
|
|
1632
|
+
);
|
|
1633
|
+
}
|
|
1634
|
+
.scroll-fade-x {
|
|
1635
|
+
-webkit-mask-image: linear-gradient(
|
|
1636
|
+
to right,
|
|
1637
|
+
transparent 0,
|
|
1638
|
+
#000 var(--scroll-fade-size),
|
|
1639
|
+
#000 calc(100% - var(--scroll-fade-size)),
|
|
1640
|
+
transparent 100%
|
|
1641
|
+
);
|
|
1642
|
+
mask-image: linear-gradient(
|
|
1643
|
+
to right,
|
|
1644
|
+
transparent 0,
|
|
1645
|
+
#000 var(--scroll-fade-size),
|
|
1646
|
+
#000 calc(100% - var(--scroll-fade-size)),
|
|
1647
|
+
transparent 100%
|
|
1648
|
+
);
|
|
1649
|
+
}
|
|
1650
|
+
|
|
1651
|
+
/* Scroll-aware: the start/end edge stays solid until there's content past it. */
|
|
1652
|
+
@supports (animation-timeline: scroll()) {
|
|
1653
|
+
.scroll-fade {
|
|
1654
|
+
mask-image: linear-gradient(
|
|
1655
|
+
to bottom,
|
|
1656
|
+
rgba(0, 0, 0, var(--sf-start)) 0,
|
|
1657
|
+
#000 var(--scroll-fade-size),
|
|
1658
|
+
#000 calc(100% - var(--scroll-fade-size)),
|
|
1659
|
+
rgba(0, 0, 0, var(--sf-end)) 100%
|
|
1660
|
+
);
|
|
1661
|
+
-webkit-mask-image: linear-gradient(
|
|
1662
|
+
to bottom,
|
|
1663
|
+
rgba(0, 0, 0, var(--sf-start)) 0,
|
|
1664
|
+
#000 var(--scroll-fade-size),
|
|
1665
|
+
#000 calc(100% - var(--scroll-fade-size)),
|
|
1666
|
+
rgba(0, 0, 0, var(--sf-end)) 100%
|
|
1667
|
+
);
|
|
1668
|
+
animation:
|
|
1669
|
+
sf-reveal-start both linear,
|
|
1670
|
+
sf-reveal-end both linear;
|
|
1671
|
+
animation-timeline: scroll(self), scroll(self);
|
|
1672
|
+
animation-range-start: 0, calc(100% - var(--scroll-fade-size));
|
|
1673
|
+
animation-range-end: var(--scroll-fade-size), 100%;
|
|
1674
|
+
}
|
|
1675
|
+
.scroll-fade-x {
|
|
1676
|
+
mask-image: linear-gradient(
|
|
1677
|
+
to right,
|
|
1678
|
+
rgba(0, 0, 0, var(--sf-start)) 0,
|
|
1679
|
+
#000 var(--scroll-fade-size),
|
|
1680
|
+
#000 calc(100% - var(--scroll-fade-size)),
|
|
1681
|
+
rgba(0, 0, 0, var(--sf-end)) 100%
|
|
1682
|
+
);
|
|
1683
|
+
-webkit-mask-image: linear-gradient(
|
|
1684
|
+
to right,
|
|
1685
|
+
rgba(0, 0, 0, var(--sf-start)) 0,
|
|
1686
|
+
#000 var(--scroll-fade-size),
|
|
1687
|
+
#000 calc(100% - var(--scroll-fade-size)),
|
|
1688
|
+
rgba(0, 0, 0, var(--sf-end)) 100%
|
|
1689
|
+
);
|
|
1690
|
+
animation:
|
|
1691
|
+
sf-reveal-start both linear,
|
|
1692
|
+
sf-reveal-end both linear;
|
|
1693
|
+
animation-timeline: scroll(self inline), scroll(self inline);
|
|
1694
|
+
animation-range-start: 0, calc(100% - var(--scroll-fade-size));
|
|
1695
|
+
animation-range-end: var(--scroll-fade-size), 100%;
|
|
1696
|
+
}
|
|
1697
|
+
}
|
|
1698
|
+
|
|
1699
|
+
/*
|
|
1700
|
+
* Ported from Fluid Functionalism — github.com/mickadesign/fluid-functionalism
|
|
1701
|
+
* `app/globals.css` (`.scroll-divider`) @ b3587bdbd83fc66c2a6aae3817ffb856cb09260b
|
|
1702
|
+
* MIT License © 2026 Micka Touillaud — fluidfunctionalism.com (notice: LICENSE.fluid-functionalism)
|
|
1703
|
+
* Local modifications: none (modo injects this file beside the Sidebar).
|
|
1704
|
+
*/
|
|
1705
|
+
|
|
1706
|
+
/* ── scroll-divider — a hairline marking a scroll edge ──────────────────────
|
|
1707
|
+
Pairs with .scroll-fade on a descendant viewport: where the fade dissolves
|
|
1708
|
+
content, this draws the line that says "the region continues". The line
|
|
1709
|
+
can't live inside the scroller — the fade's own mask would erase it at
|
|
1710
|
+
exactly the edge it belongs on — so it rides the parent's pseudo-elements
|
|
1711
|
+
and borrows the scroller's timeline by name. Browsers without scroll-driven
|
|
1712
|
+
timelines simply get the fade, as before. */
|
|
1713
|
+
@keyframes sf-divider-start {
|
|
1714
|
+
from {
|
|
1715
|
+
opacity: 0;
|
|
1716
|
+
}
|
|
1717
|
+
to {
|
|
1718
|
+
opacity: 1;
|
|
1719
|
+
}
|
|
1720
|
+
}
|
|
1721
|
+
@keyframes sf-divider-end {
|
|
1722
|
+
from {
|
|
1723
|
+
opacity: 1;
|
|
1724
|
+
}
|
|
1725
|
+
to {
|
|
1726
|
+
opacity: 0;
|
|
1727
|
+
}
|
|
1728
|
+
}
|
|
1729
|
+
|
|
1730
|
+
@supports (timeline-scope: --sf) {
|
|
1731
|
+
.scroll-divider {
|
|
1732
|
+
position: relative;
|
|
1733
|
+
timeline-scope: --sf-scroller;
|
|
1734
|
+
--scroll-divider-size: 48px;
|
|
1735
|
+
}
|
|
1736
|
+
.scroll-divider .scroll-fade {
|
|
1737
|
+
scroll-timeline-name: --sf-scroller;
|
|
1738
|
+
}
|
|
1739
|
+
.scroll-divider::before,
|
|
1740
|
+
.scroll-divider::after {
|
|
1741
|
+
content: "";
|
|
1742
|
+
position: absolute;
|
|
1743
|
+
/* Inset so the line can hug the content's own gutter rather than the
|
|
1744
|
+
panel edge — the sidebar's inset variant sets this to 8px. */
|
|
1745
|
+
left: var(--scroll-divider-inset, 0px);
|
|
1746
|
+
right: var(--scroll-divider-inset, 0px);
|
|
1747
|
+
height: 1px;
|
|
1748
|
+
background-color: var(--border);
|
|
1749
|
+
pointer-events: none;
|
|
1750
|
+
z-index: 1;
|
|
1751
|
+
opacity: 0;
|
|
1752
|
+
}
|
|
1753
|
+
/* Top edge: absent at rest, fading in as content passes above. */
|
|
1754
|
+
.scroll-divider::before {
|
|
1755
|
+
top: 0;
|
|
1756
|
+
animation: sf-divider-start both linear;
|
|
1757
|
+
animation-timeline: --sf-scroller;
|
|
1758
|
+
animation-range: 0 var(--scroll-divider-size);
|
|
1759
|
+
}
|
|
1760
|
+
/* A region flush with the panel's own top edge has nothing above for
|
|
1761
|
+
content to pass under, so the start line would read as a stray border. */
|
|
1762
|
+
.scroll-divider:first-child::before {
|
|
1763
|
+
content: none;
|
|
1764
|
+
}
|
|
1765
|
+
/* Bottom edge: present while content continues below, gone at the end. */
|
|
1766
|
+
.scroll-divider::after {
|
|
1767
|
+
bottom: 0;
|
|
1768
|
+
animation: sf-divider-end both linear;
|
|
1769
|
+
animation-timeline: --sf-scroller;
|
|
1770
|
+
animation-range: calc(100% - var(--scroll-divider-size)) 100%;
|
|
1771
|
+
}
|
|
1772
|
+
}
|
|
1773
|
+
|
|
1774
|
+
/* biome-ignore-all lint: vendored upstream code keeps its own values (see the header) */
|
|
1775
|
+
/*
|
|
1776
|
+
* Surface elevation module: the 8-level surface ladder and its 1:1 shadow
|
|
1777
|
+
* recipes, plus the per-scheme selection of the active --shadow-N alias.
|
|
1778
|
+
*
|
|
1779
|
+
* Extracted from tokens/colors.css and base.css — the elevation system
|
|
1780
|
+
* belongs to this primitive, not the global token set.
|
|
1781
|
+
* Source: mickadesign/fluid-functionalism `app/globals.css` §1–2 at commit
|
|
1782
|
+
* b3587bdbd83fc66c2a6aae3817ffb856cb09260b — MIT License
|
|
1783
|
+
* © 2026 Micka Touillaud — fluidfunctionalism.com. All HEX migrated to
|
|
1784
|
+
* exact oklch (see tokens/colors.css for the note).
|
|
1785
|
+
*
|
|
1786
|
+
* Like tokens/colors.css, the token block is declared on
|
|
1787
|
+
* `:root, .light, .dark` so light-dark() re-resolves per forced scope. The
|
|
1788
|
+
* switch blocks double their class selector (.light.light / .dark.dark) to
|
|
1789
|
+
* out-specify the shared (0,1,0) token block regardless of stylesheet
|
|
1790
|
+
* order.
|
|
1791
|
+
*/
|
|
1792
|
+
|
|
1793
|
+
:root,
|
|
1794
|
+
.light,
|
|
1795
|
+
.dark {
|
|
1796
|
+
/* ── Surfaces (8-level ladder) ──
|
|
1797
|
+
Light: 2 color steps (floor, sunken) then flat white; shadow does the
|
|
1798
|
+
work. Dark: additive white-opacity ladder over near-black. Each surface
|
|
1799
|
+
pairs 1:1 with a shadow recipe (--shadow-1 .. --shadow-8). */
|
|
1800
|
+
--surface-1: light-dark(oklch(0.985 0 0), oklch(0.205 0 0));
|
|
1801
|
+
--surface-2: light-dark(oklch(0.991 0 0), oklch(0.235 0 0));
|
|
1802
|
+
--surface-3: light-dark(oklch(1 0 0), oklch(0.264 0 0));
|
|
1803
|
+
--surface-4: light-dark(oklch(1 0 0), oklch(0.293 0 0));
|
|
1804
|
+
--surface-5: light-dark(oklch(1 0 0), oklch(0.321 0 0));
|
|
1805
|
+
--surface-6: light-dark(oklch(1 0 0), oklch(0.349 0 0));
|
|
1806
|
+
--surface-7: light-dark(oklch(1 0 0), oklch(0.375 0 0));
|
|
1807
|
+
--surface-8: light-dark(oklch(1 0 0), oklch(0.402 0 0));
|
|
1808
|
+
|
|
1809
|
+
/* ── Shadow recipes ──
|
|
1810
|
+
Light: additive stacked drops, halving offsets (1/3/6/12/24/48/96 px).
|
|
1811
|
+
Dark: inset highlight + inset ring + stacked drops.
|
|
1812
|
+
Structurally different, so each ladder is written out once here and the
|
|
1813
|
+
active --shadow-N is selected per scheme below.
|
|
1814
|
+
--shadow-color is intentionally static: it is also consumed directly by
|
|
1815
|
+
components and has never varied by theme. */
|
|
1816
|
+
--shadow-color: rgb(0 0 0 / 0.06);
|
|
1817
|
+
--shadow-light-1: 0 0 0 1px var(--shadow-color);
|
|
1818
|
+
--shadow-light-2: 0 0 0 1px var(--shadow-color), 0 1px 1px -0.5px var(--shadow-color);
|
|
1819
|
+
--shadow-light-3:
|
|
1820
|
+
0 0 0 1px var(--shadow-color), 0 1px 1px -0.5px var(--shadow-color), 0 3px 3px -1.5px var(--shadow-color);
|
|
1821
|
+
--shadow-light-4:
|
|
1822
|
+
0 0 0 1px var(--shadow-color), 0 1px 1px -0.5px var(--shadow-color), 0 3px 3px -1.5px var(--shadow-color), 0 6px 6px -3px var(
|
|
1823
|
+
--shadow-color
|
|
1824
|
+
);
|
|
1825
|
+
--shadow-light-5:
|
|
1826
|
+
0 0 0 1px var(--shadow-color), 0 1px 1px -0.5px var(--shadow-color), 0 3px 3px -1.5px var(--shadow-color), 0 6px 6px -3px var(
|
|
1827
|
+
--shadow-color
|
|
1828
|
+
), 0 12px 12px -6px var(--shadow-color);
|
|
1829
|
+
--shadow-light-6:
|
|
1830
|
+
0 0 0 1px var(--shadow-color), 0 1px 1px -0.5px var(--shadow-color), 0 3px 3px -1.5px var(--shadow-color), 0 6px 6px -3px var(
|
|
1831
|
+
--shadow-color
|
|
1832
|
+
), 0 12px 12px -6px var(--shadow-color), 0 24px 24px -12px var(--shadow-color);
|
|
1833
|
+
--shadow-light-7:
|
|
1834
|
+
0 0 0 1px var(--shadow-color), 0 1px 1px -0.5px var(--shadow-color), 0 3px 3px -1.5px var(--shadow-color), 0 6px 6px -3px var(
|
|
1835
|
+
--shadow-color
|
|
1836
|
+
), 0 12px 12px -6px var(--shadow-color), 0 24px 24px -12px var(--shadow-color), 0 48px 48px -24px var(
|
|
1837
|
+
--shadow-color
|
|
1838
|
+
);
|
|
1839
|
+
--shadow-light-8:
|
|
1840
|
+
0 0 0 1px var(--shadow-color), 0 1px 1px -0.5px var(--shadow-color), 0 3px 3px -1.5px var(--shadow-color), 0 6px 6px -3px var(
|
|
1841
|
+
--shadow-color
|
|
1842
|
+
), 0 12px 12px -6px var(--shadow-color), 0 24px 24px -12px var(--shadow-color), 0 48px 48px -24px var(
|
|
1843
|
+
--shadow-color
|
|
1844
|
+
), 0 96px 96px -48px var(--shadow-color);
|
|
1845
|
+
/* Surface-2/3 with the hairline moved INSIDE the box — for cards whose
|
|
1846
|
+
border must stay within their own edge. Dark's recipes already draw
|
|
1847
|
+
their ring inset, so dark scopes alias --shadow-dark-2/3 directly. */
|
|
1848
|
+
--shadow-light-2-inset: inset 0 0 0 1px var(--shadow-color), 0 1px 1px -0.5px var(--shadow-color);
|
|
1849
|
+
--shadow-light-3-inset:
|
|
1850
|
+
inset 0 0 0 1px var(--shadow-color), 0 1px 1px -0.5px var(--shadow-color), 0 3px 3px -1.5px var(--shadow-color);
|
|
1851
|
+
|
|
1852
|
+
--dm-hi-base: rgba(255, 255, 255, 0.01);
|
|
1853
|
+
--dm-hi-mid: rgba(255, 255, 255, 0.02);
|
|
1854
|
+
--dm-hi-high: rgba(255, 255, 255, 0.04);
|
|
1855
|
+
--dm-hi-peak: rgba(255, 255, 255, 0.06);
|
|
1856
|
+
--dm-ring-base: rgba(255, 255, 255, 0.02);
|
|
1857
|
+
--dm-ring-mid: rgba(255, 255, 255, 0.04);
|
|
1858
|
+
--dm-ring-high: rgba(255, 255, 255, 0.06);
|
|
1859
|
+
--dm-drop: rgba(0, 0, 0, 0.18);
|
|
1860
|
+
--shadow-dark-1: inset 0 0 0 1px var(--dm-ring-base);
|
|
1861
|
+
--shadow-dark-2:
|
|
1862
|
+
inset 0 1px 0 0 var(--dm-hi-base), inset 0 0 0 1px var(--dm-ring-base), 0 1px 1px -0.5px var(--dm-drop);
|
|
1863
|
+
--shadow-dark-3:
|
|
1864
|
+
inset 0 1px 0 0 var(--dm-hi-mid), inset 0 0 0 1px var(--dm-ring-base), 0 0 0 1px rgba(0, 0, 0, 0.12), 0 1px 1px -0.5px var(
|
|
1865
|
+
--dm-drop
|
|
1866
|
+
), 0 3px 3px -1.5px var(--dm-drop);
|
|
1867
|
+
--shadow-dark-4:
|
|
1868
|
+
inset 0 1px 0 0 var(--dm-hi-mid), inset 0 0 0 1px var(--dm-ring-mid), 0 0 0 1px rgba(0, 0, 0, 0.14), 0 1px 1px -0.5px var(
|
|
1869
|
+
--dm-drop
|
|
1870
|
+
), 0 3px 3px -1.5px var(--dm-drop), 0 6px 6px -3px var(--dm-drop);
|
|
1871
|
+
--shadow-dark-5:
|
|
1872
|
+
inset 0 1px 0 0 var(--dm-hi-high), inset 0 0 0 1px var(--dm-ring-mid), 0 0 0 1px rgba(0, 0, 0, 0.16), 0 1px 1px -0.5px var(
|
|
1873
|
+
--dm-drop
|
|
1874
|
+
), 0 3px 3px -1.5px var(--dm-drop), 0 6px 6px -3px var(--dm-drop), 0 12px 12px -6px var(--dm-drop);
|
|
1875
|
+
--shadow-dark-6:
|
|
1876
|
+
inset 0 1px 0 0 var(--dm-hi-high), inset 0 0 0 1px var(--dm-ring-high), 0 0 0 1px rgba(0, 0, 0, 0.18), 0 1px 1px -0.5px var(
|
|
1877
|
+
--dm-drop
|
|
1878
|
+
), 0 3px 3px -1.5px var(--dm-drop), 0 6px 6px -3px var(--dm-drop), 0 12px 12px -6px var(--dm-drop), 0 24px 24px -12px var(
|
|
1879
|
+
--dm-drop
|
|
1880
|
+
);
|
|
1881
|
+
--shadow-dark-7:
|
|
1882
|
+
inset 0 1px 0 0 var(--dm-hi-peak), inset 0 0 0 1px var(--dm-ring-high), 0 0 0 1px rgba(0, 0, 0, 0.2), 0 1px 1px -0.5px var(
|
|
1883
|
+
--dm-drop
|
|
1884
|
+
), 0 3px 3px -1.5px var(--dm-drop), 0 6px 6px -3px var(--dm-drop), 0 12px 12px -6px var(--dm-drop), 0 24px 24px -12px var(
|
|
1885
|
+
--dm-drop
|
|
1886
|
+
), 0 48px 48px -24px var(--dm-drop);
|
|
1887
|
+
--shadow-dark-8:
|
|
1888
|
+
inset 0 1px 0 0 var(--dm-hi-peak), inset 0 0 0 1px var(--dm-ring-high), 0 0 0 1px rgba(0, 0, 0, 0.22), 0 1px 1px -0.5px var(
|
|
1889
|
+
--dm-drop
|
|
1890
|
+
), 0 3px 3px -1.5px var(--dm-drop), 0 6px 6px -3px var(--dm-drop), 0 12px 12px -6px var(--dm-drop), 0 24px 24px -12px var(
|
|
1891
|
+
--dm-drop
|
|
1892
|
+
), 0 48px 48px -24px var(--dm-drop), 0 96px 96px -48px var(--dm-drop);
|
|
1893
|
+
|
|
1894
|
+
--shadow-1: var(--shadow-light-1);
|
|
1895
|
+
--shadow-2: var(--shadow-light-2);
|
|
1896
|
+
--shadow-3: var(--shadow-light-3);
|
|
1897
|
+
--shadow-4: var(--shadow-light-4);
|
|
1898
|
+
--shadow-5: var(--shadow-light-5);
|
|
1899
|
+
--shadow-6: var(--shadow-light-6);
|
|
1900
|
+
--shadow-7: var(--shadow-light-7);
|
|
1901
|
+
--shadow-8: var(--shadow-light-8);
|
|
1902
|
+
--shadow-2-inset: var(--shadow-light-2-inset);
|
|
1903
|
+
--shadow-3-inset: var(--shadow-light-3-inset);
|
|
1904
|
+
}
|
|
1905
|
+
|
|
1906
|
+
/* ── Per-scheme shadow selection ──
|
|
1907
|
+
The light/dark recipes are structurally different, so they cannot ride
|
|
1908
|
+
light-dark(); the active --shadow-N alias is re-pointed per scheme here. */
|
|
1909
|
+
|
|
1910
|
+
@media (prefers-color-scheme: dark) {
|
|
1911
|
+
:root:not(.light) {
|
|
1912
|
+
--shadow-1: var(--shadow-dark-1);
|
|
1913
|
+
--shadow-2: var(--shadow-dark-2);
|
|
1914
|
+
--shadow-3: var(--shadow-dark-3);
|
|
1915
|
+
--shadow-4: var(--shadow-dark-4);
|
|
1916
|
+
--shadow-5: var(--shadow-dark-5);
|
|
1917
|
+
--shadow-6: var(--shadow-dark-6);
|
|
1918
|
+
--shadow-7: var(--shadow-dark-7);
|
|
1919
|
+
--shadow-8: var(--shadow-dark-8);
|
|
1920
|
+
--shadow-2-inset: var(--shadow-dark-2);
|
|
1921
|
+
--shadow-3-inset: var(--shadow-dark-3);
|
|
1922
|
+
}
|
|
1923
|
+
}
|
|
1924
|
+
|
|
1925
|
+
.light.light {
|
|
1926
|
+
--shadow-1: var(--shadow-light-1);
|
|
1927
|
+
--shadow-2: var(--shadow-light-2);
|
|
1928
|
+
--shadow-3: var(--shadow-light-3);
|
|
1929
|
+
--shadow-4: var(--shadow-light-4);
|
|
1930
|
+
--shadow-5: var(--shadow-light-5);
|
|
1931
|
+
--shadow-6: var(--shadow-light-6);
|
|
1932
|
+
--shadow-7: var(--shadow-light-7);
|
|
1933
|
+
--shadow-8: var(--shadow-light-8);
|
|
1934
|
+
--shadow-2-inset: var(--shadow-light-2-inset);
|
|
1935
|
+
--shadow-3-inset: var(--shadow-light-3-inset);
|
|
1936
|
+
}
|
|
1937
|
+
|
|
1938
|
+
.dark.dark {
|
|
1939
|
+
--shadow-1: var(--shadow-dark-1);
|
|
1940
|
+
--shadow-2: var(--shadow-dark-2);
|
|
1941
|
+
--shadow-3: var(--shadow-dark-3);
|
|
1942
|
+
--shadow-4: var(--shadow-dark-4);
|
|
1943
|
+
--shadow-5: var(--shadow-dark-5);
|
|
1944
|
+
--shadow-6: var(--shadow-dark-6);
|
|
1945
|
+
--shadow-7: var(--shadow-dark-7);
|
|
1946
|
+
--shadow-8: var(--shadow-dark-8);
|
|
1947
|
+
--shadow-2-inset: var(--shadow-dark-2);
|
|
1948
|
+
--shadow-3-inset: var(--shadow-dark-3);
|
|
1949
|
+
}
|