@owodesign/owoui 0.1.7-beta → 0.1.7

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.
@@ -1,597 +0,0 @@
1
- @import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Manrope:wght@600;700;800&display=swap');
2
- /* ================================================================== */
3
- /* tokens.css — Standard CSS Variables (ref -> sys -> cmp) */
4
- /* */
5
- /* This file has TWO responsibilities: */
6
- /* 1. :root: Raw/ref CSS variables as foundational primitives */
7
- /* 2. :root: Shared ref -> sys -> cmp mapping chains */
8
- /* */
9
- /* Theme-specific values live in theme-light.css / theme-dark.css. */
10
- /* Do NOT add theme-specific colors here. */
11
- /* ================================================================== */
12
- :root {
13
- /* Neutral scale — initial values (light); overridden per-theme */
14
- --owo-ref-color-neutral-900: #1a1a1a;
15
- --owo-ref-color-neutral-800: #2d2d2d;
16
- --owo-ref-color-neutral-700: #4a4a4a;
17
- --owo-ref-color-neutral-600: #71717a;
18
- --owo-ref-color-neutral-500: #a1a1aa;
19
- --owo-ref-color-neutral-400: #d4d4d8;
20
- --owo-ref-color-neutral-300: #e4e4e7;
21
- --owo-ref-color-neutral-200: #f0f0f2;
22
- --owo-ref-color-neutral-100: #f8f8f9;
23
-
24
- /* Brand — initial values (light); overridden per-theme */
25
- --owo-ref-color-brand-primary: #1a1a1a;
26
- --owo-ref-color-brand-primary-hover: #000000;
27
- --owo-ref-color-brand-accent: #4a4a4a;
28
-
29
- /* Surface — initial values (light); overridden per-theme */
30
- --owo-ref-color-surface-canvas: #ffffff;
31
- --owo-ref-color-surface-base: #ffffff;
32
- --owo-ref-color-surface-subtle: #fafaf9;
33
- --owo-ref-color-surface-raised: #ffffff;
34
- --owo-ref-color-surface-inset: #f5f5f4;
35
- --owo-ref-color-surface-border: #e5e7eb;
36
- --owo-ref-color-surface-ring: #d6d3d1;
37
- --owo-ref-color-surface-overlay: rgba(0, 0, 0, 0.4);
38
- --owo-ref-color-overlay-soft: rgba(244, 238, 230, 0.56);
39
- --owo-ref-color-overlay-strong: rgba(15, 23, 42, 0.18);
40
- --owo-ref-color-highlight-soft: rgba(255, 255, 255, 0.56);
41
- --owo-ref-color-highlight-sheen: rgba(255, 255, 255, 0.34);
42
- --owo-ref-color-text-on-brand: #ffffff;
43
- --owo-ref-color-code-block-bg: #f4f4f5;
44
- --owo-ref-color-code-block-border: #e4e4e7;
45
- --owo-ref-color-code-block-divider: #ececed;
46
- --owo-ref-color-code-inline-bg: #f4f4f5;
47
- --owo-ref-shadow-raised: 0 10px 20px rgba(15, 23, 42, 0.08);
48
- --owo-ref-shadow-popover: 0 18px 40px rgba(15, 23, 42, 0.10);
49
-
50
- /* Status — initial values (light); overridden per-theme */
51
- --owo-ref-color-status-success-bg: rgba(16, 185, 129, 0.10);
52
- --owo-ref-color-status-success-border: rgba(16, 185, 129, 0.20);
53
- --owo-ref-color-status-success-text: #047857;
54
- --owo-ref-color-status-warning-bg: rgba(245, 158, 11, 0.10);
55
- --owo-ref-color-status-warning-border: rgba(245, 158, 11, 0.20);
56
- --owo-ref-color-status-warning-text: #b45309;
57
- --owo-ref-color-status-danger-bg: rgba(239, 68, 68, 0.10);
58
- --owo-ref-color-status-danger-border: rgba(239, 68, 68, 0.20);
59
- --owo-ref-color-status-danger-text: #b91c1c;
60
- --owo-ref-color-status-info-bg: rgba(14, 165, 233, 0.10);
61
- --owo-ref-color-status-info-border: rgba(14, 165, 233, 0.20);
62
- --owo-ref-color-status-info-text: #0369a1;
63
-
64
- /* Typography — shared across all themes */
65
- --owo-ref-font-sans: system-ui, -apple-system, BlinkMacSystemFont, "PingFang SC", "Microsoft YaHei", Roboto, sans-serif;
66
- --owo-ref-font-heading: "Source Serif 4", Georgia, "Times New Roman", serif;
67
- --owo-ref-font-mono: "JetBrains Mono", "Fira Code", ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;
68
-
69
- /* Radius — shared across all themes */
70
- --owo-ref-radius-0: 0px;
71
- --owo-ref-radius-xs: 0.375rem;
72
- --owo-ref-radius-sm: 0.5rem;
73
- --owo-ref-radius-md: 0.75rem;
74
- --owo-ref-radius-lg: 1rem;
75
- --owo-ref-radius-xl: 1.5rem;
76
- --owo-ref-radius-2xl: 2rem;
77
- --owo-ref-radius-full: 9999px;
78
-
79
- /* Motion — shared across all themes */
80
- --owo-ref-motion-ease-standard: cubic-bezier(0.2, 0, 0, 1);
81
- --owo-ref-motion-ease-decelerate: cubic-bezier(0, 0, 0, 1);
82
- --owo-ref-motion-ease-accelerate: cubic-bezier(0.4, 0, 1, 1);
83
- --owo-ref-motion-ease-exit: cubic-bezier(0.4, 0, 1, 1);
84
-
85
- /* ================================================================ */
86
- /* Shared mapping chains: ref -> sys -> cmp */
87
- /* Theme files set --owo-sys-theme-*, presets set */
88
- /* --owo-sys-preset-* and this layer exposes the final */
89
- /* --owo-cmp-* component contracts. */
90
- /* ================================================================ */
91
-
92
- /* Preset defaults — theme -> preset (overridden by preset-*.css) */
93
- --owo-sys-preset-surface-bg: var(--owo-sys-theme-surface-base);
94
- --owo-sys-preset-surface-bg-subtle: var(--owo-sys-theme-surface-subtle);
95
- --owo-sys-preset-surface-bg-raised: var(--owo-sys-theme-surface-raised);
96
- --owo-sys-preset-surface-bg-inset: var(--owo-sys-theme-surface-inset);
97
- --owo-sys-preset-surface-border: var(--owo-sys-theme-surface-border);
98
- --owo-sys-preset-surface-border-muted: var(--owo-sys-theme-surface-border-muted);
99
- --owo-sys-preset-surface-border-strong: var(--owo-sys-theme-surface-border-strong);
100
- --owo-sys-preset-surface-shadow: var(--owo-ref-shadow-raised);
101
- --owo-sys-preset-surface-shadow-strong: var(--owo-ref-shadow-popover);
102
- --owo-sys-preset-surface-blur: 0px;
103
- --owo-sys-preset-canvas-bg: var(--owo-sys-theme-surface-canvas);
104
- --owo-sys-preset-canvas-bg-subtle: var(--owo-sys-theme-canvas-bg-subtle);
105
- --owo-sys-preset-surface-container: var(--owo-sys-theme-surface-container);
106
- --owo-sys-preset-surface-container-high: var(--owo-sys-theme-surface-container-high);
107
- --owo-sys-preset-surface-container-highest: var(--owo-sys-theme-surface-container-highest);
108
- --owo-sys-preset-control-radius-sm: var(--owo-ref-radius-sm);
109
- --owo-sys-preset-control-radius-md: var(--owo-ref-radius-md);
110
- --owo-sys-preset-control-radius-lg: var(--owo-ref-radius-lg);
111
- --owo-sys-preset-control-radius-xl: var(--owo-ref-radius-xl);
112
- --owo-sys-preset-control-radius-2xl: var(--owo-ref-radius-2xl);
113
- --owo-sys-preset-control-radius-full: var(--owo-ref-radius-full);
114
- --owo-sys-preset-control-height-xs: 1.75rem;
115
- --owo-sys-preset-control-height-sm: 2rem;
116
- --owo-sys-preset-control-height-md: 2.25rem;
117
- --owo-sys-preset-control-height-lg: 2.5rem;
118
- --owo-sys-preset-control-height-xl: 3rem;
119
- --owo-sys-preset-control-border-width: 1px;
120
-
121
- /* Final component contract layer — preset/theme -> cmp */
122
- --owo-cmp-surface-bg: var(--owo-sys-preset-surface-bg);
123
- --owo-cmp-surface-bg-subtle: var(--owo-sys-preset-surface-bg-subtle);
124
- --owo-cmp-surface-bg-raised: var(--owo-sys-preset-surface-bg-raised);
125
- --owo-cmp-surface-bg-inset: var(--owo-sys-preset-surface-bg-inset);
126
- --owo-cmp-surface-border: var(--owo-sys-preset-surface-border);
127
- --owo-cmp-surface-border-muted: var(--owo-sys-preset-surface-border-muted);
128
- --owo-cmp-surface-border-strong: var(--owo-sys-preset-surface-border-strong);
129
- --owo-cmp-surface-shadow: var(--owo-sys-preset-surface-shadow);
130
- --owo-cmp-surface-shadow-strong: var(--owo-sys-preset-surface-shadow-strong);
131
- --owo-cmp-surface-blur: var(--owo-sys-preset-surface-blur);
132
-
133
- --owo-cmp-canvas-bg: var(--owo-sys-preset-canvas-bg);
134
- --owo-cmp-canvas-bg-subtle: var(--owo-sys-preset-canvas-bg-subtle);
135
-
136
- --owo-cmp-surface-container: var(--owo-sys-preset-surface-container);
137
- --owo-cmp-surface-container-high: var(--owo-sys-preset-surface-container-high);
138
- --owo-cmp-surface-container-highest: var(--owo-sys-preset-surface-container-highest);
139
-
140
- --owo-cmp-text-primary: var(--owo-sys-theme-text-primary);
141
- --owo-cmp-text-secondary: var(--owo-sys-theme-text-secondary);
142
- --owo-cmp-text-muted: var(--owo-sys-theme-text-muted);
143
- --owo-cmp-text-on-accent: var(--owo-sys-theme-text-on-accent);
144
-
145
- --owo-cmp-accent-bg: var(--owo-sys-theme-accent-bg);
146
- --owo-cmp-accent-bg-hover: var(--owo-sys-theme-accent-bg-hover);
147
- --owo-cmp-accent-bg-muted: var(--owo-sys-theme-accent-bg-muted);
148
- --owo-cmp-accent-text: var(--owo-sys-theme-text-on-accent);
149
- --owo-cmp-accent-border: var(--owo-sys-theme-accent-border);
150
-
151
- --owo-cmp-success-bg: var(--owo-sys-theme-success-bg);
152
- --owo-cmp-success-border: var(--owo-sys-theme-success-border);
153
- --owo-cmp-success-text: var(--owo-sys-theme-success-text);
154
- --owo-cmp-warning-bg: var(--owo-sys-theme-warning-bg);
155
- --owo-cmp-warning-border: var(--owo-sys-theme-warning-border);
156
- --owo-cmp-warning-text: var(--owo-sys-theme-warning-text);
157
- --owo-cmp-danger-bg: var(--owo-sys-theme-danger-bg);
158
- --owo-cmp-danger-bg-emphasis: var(--owo-sys-theme-danger-bg-emphasis);
159
- --owo-cmp-danger-border: var(--owo-sys-theme-danger-border);
160
- --owo-cmp-danger-text: var(--owo-sys-theme-danger-text);
161
- --owo-cmp-info-bg: var(--owo-sys-theme-info-bg);
162
- --owo-cmp-info-border: var(--owo-sys-theme-info-border);
163
- --owo-cmp-info-text: var(--owo-sys-theme-info-text);
164
-
165
- --owo-cmp-control-radius-sm: var(--owo-sys-preset-control-radius-sm);
166
- --owo-cmp-control-radius-md: var(--owo-sys-preset-control-radius-md);
167
- --owo-cmp-control-radius-lg: var(--owo-sys-preset-control-radius-lg);
168
- --owo-cmp-control-radius-xl: var(--owo-sys-preset-control-radius-xl);
169
- --owo-cmp-control-radius-2xl: var(--owo-sys-preset-control-radius-2xl);
170
- --owo-cmp-control-radius-full: var(--owo-sys-preset-control-radius-full);
171
- --owo-cmp-control-height-xs: var(--owo-sys-preset-control-height-xs);
172
- --owo-cmp-control-height-sm: var(--owo-sys-preset-control-height-sm);
173
- --owo-cmp-control-height-md: var(--owo-sys-preset-control-height-md);
174
- --owo-cmp-control-height-lg: var(--owo-sys-preset-control-height-lg);
175
- --owo-cmp-control-height-xl: var(--owo-sys-preset-control-height-xl);
176
- --owo-cmp-control-border-width: var(--owo-sys-preset-control-border-width);
177
- --owo-cmp-control-focus-ring: var(--owo-sys-theme-control-focus-ring);
178
- --owo-cmp-control-focus-ring-offset: var(--owo-sys-theme-control-focus-ring-offset);
179
-
180
- --owo-cmp-font-heading: var(--owo-ref-font-heading);
181
-
182
- /* Motion & density */
183
- --owo-cmp-motion-duration-fast: 0.15s;
184
- --owo-cmp-motion-duration-default: 0.2s;
185
- --owo-cmp-motion-ease-standard: var(--owo-ref-motion-ease-standard);
186
- --owo-cmp-motion-ease-decelerate: var(--owo-ref-motion-ease-decelerate);
187
- --owo-cmp-motion-ease-accelerate: var(--owo-ref-motion-ease-accelerate);
188
- --owo-cmp-density-compact: 0.875;
189
- --owo-cmp-density-default: 1;
190
- --owo-cmp-density-comfortable: 1.125;
191
-
192
- /* Overlay & layering */
193
- --owo-cmp-overlay-bg: var(--owo-sys-theme-overlay-bg);
194
- --owo-cmp-z-dropdown: 1000;
195
- --owo-cmp-z-modal: 1100;
196
- --owo-cmp-z-toast: 1200;
197
-
198
- /* Feedback pattern — documented public contract (shared by Toast, StatusNotice) */
199
- --owo-feedback-neutral-bg: var(--owo-cmp-surface-bg-raised);
200
- --owo-feedback-neutral-border: var(--owo-cmp-surface-border);
201
- --owo-feedback-neutral-text: var(--owo-cmp-text-primary);
202
- --owo-feedback-neutral-icon: var(--owo-cmp-text-secondary);
203
- --owo-feedback-info-bg: var(--owo-cmp-info-bg);
204
- --owo-feedback-info-border: var(--owo-cmp-info-border);
205
- --owo-feedback-info-text: var(--owo-cmp-info-text);
206
- --owo-feedback-info-icon: var(--owo-cmp-info-text);
207
- --owo-feedback-success-bg: var(--owo-cmp-success-bg);
208
- --owo-feedback-success-border: var(--owo-cmp-success-border);
209
- --owo-feedback-success-text: var(--owo-cmp-success-text);
210
- --owo-feedback-success-icon: var(--owo-cmp-success-text);
211
- --owo-feedback-warning-bg: var(--owo-cmp-warning-bg);
212
- --owo-feedback-warning-border: var(--owo-cmp-warning-border);
213
- --owo-feedback-warning-text: var(--owo-cmp-warning-text);
214
- --owo-feedback-warning-icon: var(--owo-cmp-warning-text);
215
- --owo-feedback-danger-bg: var(--owo-cmp-danger-bg);
216
- --owo-feedback-danger-border: var(--owo-cmp-danger-border);
217
- --owo-feedback-danger-text: var(--owo-cmp-danger-text);
218
- --owo-feedback-danger-icon: var(--owo-cmp-danger-text);
219
- }
220
- :root[data-preset="default"],
221
- .owoui-preset-default {
222
- --owo-sys-preset-surface-bg: var(--owo-sys-theme-surface-base);
223
- --owo-sys-preset-surface-bg-subtle: var(--owo-sys-theme-surface-subtle);
224
- --owo-sys-preset-surface-bg-raised: var(--owo-sys-theme-surface-raised);
225
- --owo-sys-preset-surface-bg-inset: var(--owo-sys-theme-surface-inset);
226
- --owo-sys-preset-surface-border: var(--owo-sys-theme-surface-border);
227
- --owo-sys-preset-surface-border-muted: var(--owo-sys-theme-surface-border-muted);
228
- --owo-sys-preset-surface-border-strong: var(--owo-sys-theme-surface-border-strong);
229
- --owo-sys-preset-surface-shadow: var(--owo-ref-shadow-raised);
230
- --owo-sys-preset-surface-shadow-strong: var(--owo-ref-shadow-popover);
231
- --owo-sys-preset-surface-blur: 0px;
232
- --owo-sys-preset-canvas-bg: var(--owo-sys-theme-surface-canvas);
233
- --owo-sys-preset-canvas-bg-subtle: var(--owo-sys-theme-canvas-bg-subtle);
234
- --owo-sys-preset-surface-container: var(--owo-sys-theme-surface-container);
235
- --owo-sys-preset-surface-container-high: var(--owo-sys-theme-surface-container-high);
236
- --owo-sys-preset-surface-container-highest: var(--owo-sys-theme-surface-container-highest);
237
- --owo-sys-preset-control-radius-sm: var(--owo-ref-radius-sm);
238
- --owo-sys-preset-control-radius-md: var(--owo-ref-radius-md);
239
- --owo-sys-preset-control-radius-lg: var(--owo-ref-radius-lg);
240
- --owo-sys-preset-control-radius-xl: var(--owo-ref-radius-xl);
241
- --owo-sys-preset-control-radius-2xl: var(--owo-ref-radius-2xl);
242
- --owo-sys-preset-control-radius-full: var(--owo-ref-radius-full);
243
- --owo-sys-preset-control-height-xs: 1.75rem;
244
- --owo-sys-preset-control-height-sm: 2rem;
245
- --owo-sys-preset-control-height-md: 2.25rem;
246
- --owo-sys-preset-control-height-lg: 2.5rem;
247
- --owo-sys-preset-control-height-xl: 3rem;
248
- --owo-sys-preset-control-border-width: 1px;
249
- }
250
- /* ================================================================== */
251
- /* Light theme — all --owo-ref-* primitives + --owo-sys-theme-* maps */
252
- /* */
253
- /* :root (bare) is included so light acts as the default when no */
254
- /* explicit data-theme is set. */
255
- /* ================================================================== */
256
- :root,
257
- :root[data-theme="light"],
258
- .owoui-theme-light {
259
- /* Neutral scale */
260
- --owo-ref-color-neutral-900: #1a1a1a;
261
- --owo-ref-color-neutral-800: #2d2d2d;
262
- --owo-ref-color-neutral-700: #4a4a4a;
263
- --owo-ref-color-neutral-600: #71717a;
264
- --owo-ref-color-neutral-500: #a1a1aa;
265
- --owo-ref-color-neutral-400: #d4d4d8;
266
- --owo-ref-color-neutral-300: #e4e4e7;
267
- --owo-ref-color-neutral-200: #f0f0f2;
268
- --owo-ref-color-neutral-100: #f8f8f9;
269
-
270
- /* Brand */
271
- --owo-ref-color-brand-primary: #1a1a1a;
272
- --owo-ref-color-brand-primary-hover: #000000;
273
- --owo-ref-color-brand-accent: #4a4a4a;
274
-
275
- /* Surfaces */
276
- --owo-ref-color-surface-canvas: #ffffff;
277
- --owo-ref-color-surface-base: #ffffff;
278
- --owo-ref-color-surface-subtle: #fafaf9;
279
- --owo-ref-color-surface-raised: #ffffff;
280
- --owo-ref-color-surface-inset: #f5f5f4;
281
- --owo-ref-color-surface-border: #e5e7eb;
282
- --owo-ref-color-surface-ring: #d6d3d1;
283
- --owo-ref-color-surface-overlay: rgba(0, 0, 0, 0.4);
284
-
285
- /* Overlays & highlights */
286
- --owo-ref-color-overlay-soft: rgba(244, 238, 230, 0.56);
287
- --owo-ref-color-overlay-strong: rgba(15, 23, 42, 0.18);
288
- --owo-ref-color-highlight-soft: rgba(255, 255, 255, 0.56);
289
- --owo-ref-color-highlight-sheen: rgba(255, 255, 255, 0.34);
290
-
291
- /* Text on brand */
292
- --owo-ref-color-text-on-brand: #ffffff;
293
-
294
- /* Code blocks */
295
- --owo-ref-color-code-block-bg: #f4f4f5;
296
- --owo-ref-color-code-block-border: #e4e4e7;
297
- --owo-ref-color-code-block-divider: #ececed;
298
- --owo-ref-color-code-inline-bg: #f4f4f5;
299
-
300
- /* Status */
301
- --owo-ref-color-status-success-bg: rgba(16, 185, 129, 0.10);
302
- --owo-ref-color-status-success-border: rgba(16, 185, 129, 0.20);
303
- --owo-ref-color-status-success-text: #047857;
304
- --owo-ref-color-status-warning-bg: rgba(245, 158, 11, 0.10);
305
- --owo-ref-color-status-warning-border: rgba(245, 158, 11, 0.20);
306
- --owo-ref-color-status-warning-text: #b45309;
307
- --owo-ref-color-status-danger-bg: rgba(239, 68, 68, 0.10);
308
- --owo-ref-color-status-danger-border: rgba(239, 68, 68, 0.20);
309
- --owo-ref-color-status-danger-text: #b91c1c;
310
- --owo-ref-color-status-info-bg: rgba(14, 165, 233, 0.10);
311
- --owo-ref-color-status-info-border: rgba(14, 165, 233, 0.20);
312
- --owo-ref-color-status-info-text: #0369a1;
313
-
314
- /* ---- Theme semantic mappings (--owo-ref-* -> --owo-sys-theme-*) ---- */
315
- --owo-sys-theme-surface-canvas: var(--owo-ref-color-surface-canvas);
316
- --owo-sys-theme-surface-base: var(--owo-ref-color-surface-base);
317
- --owo-sys-theme-surface-subtle: var(--owo-ref-color-surface-subtle);
318
- --owo-sys-theme-surface-raised: var(--owo-ref-color-surface-raised);
319
- --owo-sys-theme-surface-inset: var(--owo-ref-color-surface-inset);
320
- --owo-sys-theme-surface-border: var(--owo-ref-color-surface-border);
321
- --owo-sys-theme-surface-border-muted: rgba(0, 0, 0, 0.06);
322
- --owo-sys-theme-surface-border-strong: var(--owo-ref-color-surface-ring);
323
- --owo-sys-theme-canvas-bg-subtle: #f5f5f4;
324
- --owo-sys-theme-surface-container: #f4f4f5;
325
- --owo-sys-theme-surface-container-high: #ececed;
326
- --owo-sys-theme-surface-container-highest: #e4e4e7;
327
- --owo-sys-theme-text-primary: var(--owo-ref-color-neutral-900);
328
- --owo-sys-theme-text-secondary: var(--owo-ref-color-neutral-700);
329
- --owo-sys-theme-text-muted: var(--owo-ref-color-neutral-600);
330
- --owo-sys-theme-text-on-accent: var(--owo-ref-color-text-on-brand);
331
- --owo-sys-theme-accent-bg: var(--owo-ref-color-brand-primary);
332
- --owo-sys-theme-accent-bg-hover: var(--owo-ref-color-brand-primary-hover);
333
- --owo-sys-theme-accent-bg-muted: color-mix(in srgb, var(--owo-ref-color-brand-primary) 10%, var(--owo-ref-color-surface-base));
334
- --owo-sys-theme-accent-border: color-mix(in srgb, var(--owo-ref-color-brand-primary) 40%, transparent);
335
- --owo-sys-theme-success-bg: var(--owo-ref-color-status-success-bg);
336
- --owo-sys-theme-success-border: var(--owo-ref-color-status-success-border);
337
- --owo-sys-theme-success-text: var(--owo-ref-color-status-success-text);
338
- --owo-sys-theme-warning-bg: var(--owo-ref-color-status-warning-bg);
339
- --owo-sys-theme-warning-border: var(--owo-ref-color-status-warning-border);
340
- --owo-sys-theme-warning-text: var(--owo-ref-color-status-warning-text);
341
- --owo-sys-theme-danger-bg: var(--owo-ref-color-status-danger-bg);
342
- --owo-sys-theme-danger-bg-emphasis: rgba(239, 68, 68, 0.18);
343
- --owo-sys-theme-danger-border: var(--owo-ref-color-status-danger-border);
344
- --owo-sys-theme-danger-text: var(--owo-ref-color-status-danger-text);
345
- --owo-sys-theme-info-bg: var(--owo-ref-color-status-info-bg);
346
- --owo-sys-theme-info-border: var(--owo-ref-color-status-info-border);
347
- --owo-sys-theme-info-text: var(--owo-ref-color-status-info-text);
348
- --owo-sys-theme-control-focus-ring: var(--owo-ref-color-surface-ring);
349
- --owo-sys-theme-control-focus-ring-offset: var(--owo-ref-color-surface-base);
350
- --owo-sys-theme-overlay-bg: var(--owo-ref-color-overlay-strong);
351
- }
352
- :root[data-theme="dark"],
353
- .owoui-theme-dark {
354
- --owo-ref-color-neutral-900: #fafafa;
355
- --owo-ref-color-neutral-800: #e4e4e7;
356
- --owo-ref-color-neutral-700: #d4d4d8;
357
- --owo-ref-color-neutral-600: #a1a1aa;
358
- --owo-ref-color-neutral-500: #71717a;
359
- --owo-ref-color-neutral-400: #3f3f46;
360
- --owo-ref-color-neutral-300: #27272a;
361
- --owo-ref-color-neutral-200: #1f1f22;
362
- --owo-ref-color-neutral-100: #18181a;
363
-
364
- --owo-ref-color-brand-primary: #c6c6c7;
365
- --owo-ref-color-brand-primary-hover: #d4d4d8;
366
- --owo-ref-color-brand-accent: #a1a1aa;
367
-
368
- --owo-ref-color-surface-canvas: #0e0e0e;
369
- --owo-ref-color-surface-base: #18181b;
370
- --owo-ref-color-surface-subtle: #1c1c1f;
371
- --owo-ref-color-surface-raised: #27272a;
372
- --owo-ref-color-surface-inset: #111113;
373
- --owo-ref-color-surface-border: rgba(255, 255, 255, 0.12);
374
- --owo-ref-color-surface-ring: rgba(255, 255, 255, 0.24);
375
- --owo-ref-color-surface-overlay: rgba(0, 0, 0, 0.6);
376
-
377
- --owo-ref-color-overlay-soft: rgba(0, 0, 0, 0.32);
378
- --owo-ref-color-overlay-strong: rgba(0, 0, 0, 0.56);
379
- --owo-ref-color-highlight-soft: rgba(255, 255, 255, 0.06);
380
- --owo-ref-color-highlight-sheen: rgba(255, 255, 255, 0.08);
381
-
382
- --owo-ref-color-text-on-brand: #1a1a1a;
383
-
384
- --owo-ref-color-code-block-bg: #1e1e22;
385
- --owo-ref-color-code-block-border: #2d2d32;
386
- --owo-ref-color-code-block-divider: #27272c;
387
- --owo-ref-color-code-inline-bg: #27272a;
388
-
389
- --owo-ref-color-status-success-bg: rgba(16, 185, 129, 0.15);
390
- --owo-ref-color-status-success-border: rgba(16, 185, 129, 0.3);
391
- --owo-ref-color-status-success-text: #6ee7b7;
392
- --owo-ref-color-status-warning-bg: rgba(245, 158, 11, 0.15);
393
- --owo-ref-color-status-warning-border: rgba(245, 158, 11, 0.3);
394
- --owo-ref-color-status-warning-text: #fbbf24;
395
- --owo-ref-color-status-danger-bg: rgba(239, 68, 68, 0.15);
396
- --owo-ref-color-status-danger-border: rgba(239, 68, 68, 0.3);
397
- --owo-ref-color-status-danger-text: #fca5a5;
398
- --owo-ref-color-status-info-bg: rgba(14, 165, 233, 0.15);
399
- --owo-ref-color-status-info-border: rgba(14, 165, 233, 0.3);
400
- --owo-ref-color-status-info-text: #7dd3fc;
401
-
402
- --owo-sys-theme-surface-canvas: var(--owo-ref-color-surface-canvas);
403
- --owo-sys-theme-surface-base: var(--owo-ref-color-surface-base);
404
- --owo-sys-theme-surface-subtle: var(--owo-ref-color-surface-subtle);
405
- --owo-sys-theme-surface-raised: var(--owo-ref-color-surface-raised);
406
- --owo-sys-theme-surface-inset: var(--owo-ref-color-surface-inset);
407
- --owo-sys-theme-surface-border: var(--owo-ref-color-surface-border);
408
- --owo-sys-theme-surface-border-muted: rgba(255, 255, 255, 0.06);
409
- --owo-sys-theme-surface-border-strong: var(--owo-ref-color-surface-ring);
410
- --owo-sys-theme-canvas-bg-subtle: #0f0f11;
411
- --owo-sys-theme-surface-container: #1e1e22;
412
- --owo-sys-theme-surface-container-high: #252529;
413
- --owo-sys-theme-surface-container-highest: #2d2d32;
414
- --owo-sys-theme-text-primary: var(--owo-ref-color-neutral-900);
415
- --owo-sys-theme-text-secondary: var(--owo-ref-color-neutral-700);
416
- --owo-sys-theme-text-muted: var(--owo-ref-color-neutral-600);
417
- --owo-sys-theme-text-on-accent: var(--owo-ref-color-text-on-brand);
418
- --owo-sys-theme-accent-bg: var(--owo-ref-color-brand-primary);
419
- --owo-sys-theme-accent-bg-hover: var(--owo-ref-color-brand-primary-hover);
420
- --owo-sys-theme-accent-bg-muted: color-mix(in srgb, var(--owo-ref-color-brand-primary) 14%, var(--owo-ref-color-surface-base));
421
- --owo-sys-theme-accent-border: color-mix(in srgb, var(--owo-ref-color-brand-primary) 50%, transparent);
422
- --owo-sys-theme-success-bg: var(--owo-ref-color-status-success-bg);
423
- --owo-sys-theme-success-border: var(--owo-ref-color-status-success-border);
424
- --owo-sys-theme-success-text: var(--owo-ref-color-status-success-text);
425
- --owo-sys-theme-warning-bg: var(--owo-ref-color-status-warning-bg);
426
- --owo-sys-theme-warning-border: var(--owo-ref-color-status-warning-border);
427
- --owo-sys-theme-warning-text: var(--owo-ref-color-status-warning-text);
428
- --owo-sys-theme-danger-bg: var(--owo-ref-color-status-danger-bg);
429
- --owo-sys-theme-danger-bg-emphasis: rgba(239, 68, 68, 0.24);
430
- --owo-sys-theme-danger-border: var(--owo-ref-color-status-danger-border);
431
- --owo-sys-theme-danger-text: var(--owo-ref-color-status-danger-text);
432
- --owo-sys-theme-info-bg: var(--owo-ref-color-status-info-bg);
433
- --owo-sys-theme-info-border: var(--owo-ref-color-status-info-border);
434
- --owo-sys-theme-info-text: var(--owo-ref-color-status-info-text);
435
- --owo-sys-theme-control-focus-ring: var(--owo-ref-color-surface-ring);
436
- --owo-sys-theme-control-focus-ring-offset: var(--owo-ref-color-surface-base);
437
- --owo-sys-theme-overlay-bg: var(--owo-ref-color-overlay-strong);
438
- }
439
- :root[data-preset="flat"],
440
- .owoui-preset-flat {
441
- --owo-sys-preset-surface-bg: var(--owo-sys-theme-surface-base);
442
- --owo-sys-preset-surface-bg-subtle: var(--owo-sys-theme-surface-subtle);
443
- --owo-sys-preset-surface-bg-raised: var(--owo-sys-theme-surface-base);
444
- --owo-sys-preset-surface-bg-inset: var(--owo-sys-theme-surface-inset);
445
- --owo-sys-preset-surface-border: var(--owo-sys-theme-surface-border);
446
- --owo-sys-preset-surface-border-muted: var(--owo-sys-theme-surface-border-muted);
447
- --owo-sys-preset-surface-border-strong: var(--owo-sys-theme-surface-border-strong);
448
- --owo-sys-preset-surface-shadow: none;
449
- --owo-sys-preset-surface-shadow-strong: none;
450
- --owo-sys-preset-surface-blur: 0px;
451
- --owo-sys-preset-canvas-bg: var(--owo-sys-theme-surface-canvas);
452
- --owo-sys-preset-canvas-bg-subtle: var(--owo-sys-theme-canvas-bg-subtle);
453
- --owo-sys-preset-surface-container: var(--owo-sys-theme-surface-container);
454
- --owo-sys-preset-surface-container-high: var(--owo-sys-theme-surface-container);
455
- --owo-sys-preset-surface-container-highest: var(--owo-sys-theme-surface-container-high);
456
- --owo-sys-preset-control-radius-sm: var(--owo-ref-radius-xs);
457
- --owo-sys-preset-control-radius-md: calc(var(--owo-ref-radius-sm) + 0.125rem);
458
- --owo-sys-preset-control-radius-lg: calc(var(--owo-ref-radius-md) + 0.125rem);
459
- --owo-sys-preset-control-radius-xl: calc(var(--owo-ref-radius-lg) + 0.25rem);
460
- --owo-sys-preset-control-radius-2xl: var(--owo-ref-radius-xl);
461
- --owo-sys-preset-control-radius-full: var(--owo-ref-radius-full);
462
- --owo-sys-preset-control-height-xs: 1.75rem;
463
- --owo-sys-preset-control-height-sm: 2rem;
464
- --owo-sys-preset-control-height-md: 2.25rem;
465
- --owo-sys-preset-control-height-lg: 2.5rem;
466
- --owo-sys-preset-control-height-xl: 3rem;
467
- --owo-sys-preset-control-border-width: 1px;
468
- }
469
- :root[data-preset="elevated"],
470
- .owoui-preset-elevated {
471
- --owo-sys-preset-surface-bg: color-mix(in srgb, var(--owo-sys-theme-surface-base) 96%, var(--owo-sys-theme-surface-border-strong));
472
- --owo-sys-preset-surface-bg-subtle: color-mix(in srgb, var(--owo-sys-theme-surface-subtle) 96%, var(--owo-sys-theme-surface-border-strong));
473
- --owo-sys-preset-surface-bg-raised: color-mix(in srgb, var(--owo-sys-theme-surface-raised) 94%, var(--owo-sys-theme-surface-border-strong));
474
- --owo-sys-preset-surface-bg-inset: var(--owo-sys-theme-surface-inset);
475
- --owo-sys-preset-surface-border: color-mix(in srgb, var(--owo-sys-theme-surface-border) 88%, var(--owo-sys-theme-surface-border-strong));
476
- --owo-sys-preset-surface-border-muted: var(--owo-sys-theme-surface-border-muted);
477
- --owo-sys-preset-surface-border-strong: var(--owo-sys-theme-surface-border-strong);
478
- --owo-sys-preset-surface-shadow: 0 16px 40px rgba(15, 23, 42, 0.14);
479
- --owo-sys-preset-surface-shadow-strong: 0 28px 60px rgba(15, 23, 42, 0.18);
480
- --owo-sys-preset-surface-blur: 0px;
481
- --owo-sys-preset-canvas-bg: var(--owo-sys-theme-surface-canvas);
482
- --owo-sys-preset-canvas-bg-subtle: var(--owo-sys-theme-canvas-bg-subtle);
483
- --owo-sys-preset-surface-container: color-mix(in srgb, var(--owo-sys-theme-surface-container) 94%, var(--owo-sys-theme-surface-border-strong));
484
- --owo-sys-preset-surface-container-high: color-mix(in srgb, var(--owo-sys-theme-surface-container-high) 94%, var(--owo-sys-theme-surface-border-strong));
485
- --owo-sys-preset-surface-container-highest: color-mix(in srgb, var(--owo-sys-theme-surface-container-highest) 92%, var(--owo-sys-theme-surface-border-strong));
486
- --owo-sys-preset-control-radius-sm: calc(var(--owo-ref-radius-sm) + 0.125rem);
487
- --owo-sys-preset-control-radius-md: calc(var(--owo-ref-radius-md) + 0.125rem);
488
- --owo-sys-preset-control-radius-lg: calc(var(--owo-ref-radius-lg) + 0.125rem);
489
- --owo-sys-preset-control-radius-xl: calc(var(--owo-ref-radius-xl) + 0.125rem);
490
- --owo-sys-preset-control-radius-2xl: calc(var(--owo-ref-radius-2xl) + 0.125rem);
491
- --owo-sys-preset-control-radius-full: var(--owo-ref-radius-full);
492
- --owo-sys-preset-control-height-xs: 1.75rem;
493
- --owo-sys-preset-control-height-sm: 2rem;
494
- --owo-sys-preset-control-height-md: 2.25rem;
495
- --owo-sys-preset-control-height-lg: 2.5rem;
496
- --owo-sys-preset-control-height-xl: 3rem;
497
- --owo-sys-preset-control-border-width: 1px;
498
- }
499
- :root[data-preset="glass"],
500
- .owoui-preset-glass {
501
- --owo-sys-preset-surface-bg: color-mix(in srgb, var(--owo-sys-theme-surface-base) 62%, transparent);
502
- --owo-sys-preset-surface-bg-subtle: color-mix(in srgb, var(--owo-sys-theme-surface-subtle) 48%, transparent);
503
- --owo-sys-preset-surface-bg-raised: color-mix(in srgb, var(--owo-sys-theme-surface-raised) 72%, transparent);
504
- --owo-sys-preset-surface-bg-inset: color-mix(in srgb, var(--owo-sys-theme-surface-inset) 82%, transparent);
505
- --owo-sys-preset-surface-border: color-mix(in srgb, var(--owo-sys-theme-surface-border-strong) 55%, transparent);
506
- --owo-sys-preset-surface-border-muted: color-mix(in srgb, var(--owo-sys-theme-surface-border-muted) 60%, transparent);
507
- --owo-sys-preset-surface-border-strong: color-mix(in srgb, var(--owo-sys-theme-surface-border-strong) 78%, transparent);
508
- --owo-sys-preset-surface-shadow: 0 16px 44px rgba(15, 23, 42, 0.1);
509
- --owo-sys-preset-surface-shadow-strong: 0 24px 64px rgba(15, 23, 42, 0.14);
510
- --owo-sys-preset-surface-blur: 18px;
511
- --owo-sys-preset-canvas-bg: var(--owo-sys-theme-surface-canvas);
512
- --owo-sys-preset-canvas-bg-subtle: var(--owo-sys-theme-canvas-bg-subtle);
513
- --owo-sys-preset-surface-container: color-mix(in srgb, var(--owo-sys-theme-surface-container) 70%, transparent);
514
- --owo-sys-preset-surface-container-high: color-mix(in srgb, var(--owo-sys-theme-surface-container-high) 74%, transparent);
515
- --owo-sys-preset-surface-container-highest: color-mix(in srgb, var(--owo-sys-theme-surface-container-highest) 78%, transparent);
516
- --owo-sys-preset-control-radius-sm: var(--owo-ref-radius-md);
517
- --owo-sys-preset-control-radius-md: var(--owo-ref-radius-lg);
518
- --owo-sys-preset-control-radius-lg: calc(var(--owo-ref-radius-lg) + 0.25rem);
519
- --owo-sys-preset-control-radius-xl: calc(var(--owo-ref-radius-xl) + 0.25rem);
520
- --owo-sys-preset-control-radius-2xl: calc(var(--owo-ref-radius-2xl) + 0.25rem);
521
- --owo-sys-preset-control-radius-full: var(--owo-ref-radius-full);
522
- --owo-sys-preset-control-height-xs: 1.75rem;
523
- --owo-sys-preset-control-height-sm: 2rem;
524
- --owo-sys-preset-control-height-md: 2.25rem;
525
- --owo-sys-preset-control-height-lg: 2.5rem;
526
- --owo-sys-preset-control-height-xl: 3rem;
527
- --owo-sys-preset-control-border-width: 1px;
528
- }
529
- @source "../components/**/*.ts";
530
- @source "../components/**/*.tsx";
531
- @source "../storybook/**/*.ts";
532
- @source "../storybook/**/*.tsx";
533
- @source "./**/*.ts";
534
- @source "./**/*.tsx";
535
- :root {
536
- --font-inter: 'Inter', sans-serif;
537
- --font-headline: 'Manrope', sans-serif;
538
- }
539
- @layer base {
540
- html,
541
- body,
542
- #root {
543
- min-height: 100%;
544
- }
545
-
546
- body {
547
- margin: 0;
548
- font-family: var(--owo-ref-font-sans);
549
- color: var(--owo-cmp-text-primary);
550
- background: var(--owo-cmp-canvas-bg);
551
- line-height: 1.5;
552
- -webkit-font-smoothing: antialiased;
553
- }
554
-
555
- * {
556
- box-sizing: border-box;
557
- }
558
-
559
- a {
560
- color: inherit;
561
- text-decoration: none;
562
- }
563
- }
564
- /* ------------------------------------------------------------------ */
565
- /* Storybook shell — uses owoui token system exclusively */
566
- /* ------------------------------------------------------------------ */
567
- /* Dot-grid background for preview canvases */
568
- .sb-dot-grid {
569
- background-image: radial-gradient(
570
- circle at 1px 1px,
571
- color-mix(in srgb, var(--owo-cmp-surface-border) 50%, transparent) 0.5px,
572
- transparent 0
573
- );
574
- background-size: 20px 20px;
575
- }
576
- /* Sidebar scrollbar */
577
- .sb-sidebar::-webkit-scrollbar {
578
- width: 4px;
579
- }
580
- .sb-sidebar::-webkit-scrollbar-track {
581
- background: transparent;
582
- }
583
- .sb-sidebar::-webkit-scrollbar-thumb {
584
- background: var(--owo-cmp-surface-border);
585
- border-radius: 10px;
586
- }
587
- /* Main area scrollbar */
588
- #sb-main::-webkit-scrollbar {
589
- width: 6px;
590
- }
591
- #sb-main::-webkit-scrollbar-track {
592
- background: transparent;
593
- }
594
- #sb-main::-webkit-scrollbar-thumb {
595
- background: var(--owo-cmp-surface-border);
596
- border-radius: 10px;
597
- }