tyrell-components 1.0.0-TC41 → 1.0.0-TC43
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/README.md +1 -0
- package/css/tyrell-colors-static.css +316 -0
- package/css/tyrell-theme.css +116 -76
- package/css/tyrell.css +54 -333
- package/dist/tyrell-colors-static.css +316 -0
- package/dist/tyrell-theme.css +116 -76
- package/dist/tyrell.css +54 -333
- package/dist/tyrell.js +1 -1
- package/lib/styles/button.d.ts +35 -5
- package/lib/styles/button.d.ts.map +1 -1
- package/lib/styles/button.js +170 -38
- package/lib/styles/button.js.map +1 -1
- package/lib/styles/select-base.d.ts.map +1 -1
- package/lib/styles/select-base.js +18 -4
- package/lib/styles/select-base.js.map +1 -1
- package/lib/styles/select.d.ts +1 -1
- package/lib/styles/select.d.ts.map +1 -1
- package/lib/styles/select.js +1 -0
- package/lib/styles/select.js.map +1 -1
- package/lib/styles/tag.d.ts.map +1 -1
- package/lib/styles/tag.js +4 -1
- package/lib/styles/tag.js.map +1 -1
- package/lib/version.d.ts +1 -1
- package/lib/version.js +1 -1
- package/package.json +3 -3
package/css/tyrell.css
CHANGED
|
@@ -124,51 +124,10 @@ CSS VARIABLES - DESIGN TOKENS
|
|
|
124
124
|
|
|
125
125
|
/* Default theme (light) */
|
|
126
126
|
html {
|
|
127
|
-
/*
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
-bold = Moderate emphasis - hover states, focus rings
|
|
132
|
-
= Base color - default appearance
|
|
133
|
-
-soft = Reduced emphasis - muted backgrounds, de-emphasis
|
|
134
|
-
-faint = Minimal emphasis - subtle hints, disabled states
|
|
135
|
-
================================================================= */
|
|
136
|
-
|
|
137
|
-
/* Primary */
|
|
138
|
-
--ty-color-primary-strong: #163793;
|
|
139
|
-
--ty-color-primary-bold: #304c9f;
|
|
140
|
-
--ty-color-primary: #466bce;
|
|
141
|
-
--ty-color-primary-soft: #60a5fa;
|
|
142
|
-
--ty-color-primary-faint: #93c5fd;
|
|
143
|
-
|
|
144
|
-
/* Success */
|
|
145
|
-
--ty-color-success-strong: #177858;
|
|
146
|
-
--ty-color-success-bold: #3e9779;
|
|
147
|
-
--ty-color-success: #3eaa86;
|
|
148
|
-
--ty-color-success-soft: #64b399;
|
|
149
|
-
--ty-color-success-faint: #7fd4b2;
|
|
150
|
-
|
|
151
|
-
/* Danger */
|
|
152
|
-
--ty-color-danger-strong: #b91c1c;
|
|
153
|
-
--ty-color-danger-bold: #dc2626;
|
|
154
|
-
--ty-color-danger: #ef4444;
|
|
155
|
-
--ty-color-danger-soft: #f87171;
|
|
156
|
-
--ty-color-danger-faint: #fca5a5;
|
|
157
|
-
|
|
158
|
-
/* Warning */
|
|
159
|
-
--ty-color-warning-strong: #e86400;
|
|
160
|
-
--ty-color-warning-bold: #ee7f00;
|
|
161
|
-
--ty-color-warning: #f59e0b;
|
|
162
|
-
--ty-color-warning-soft: #fbbf24;
|
|
163
|
-
--ty-color-warning-faint: #fcd34d;
|
|
164
|
-
|
|
165
|
-
/* Neutral */
|
|
166
|
-
--ty-color-neutral-strong: #000000;
|
|
167
|
-
--ty-color-neutral-bold: #000000;
|
|
168
|
-
--ty-color-neutral: #111827;
|
|
169
|
-
--ty-color-neutral-soft: #374151;
|
|
170
|
-
--ty-color-neutral-faint: #9ca3af;
|
|
171
|
-
|
|
127
|
+
/* Color tokens (--ty-color-*, --ty-bg-{flavor}-*, --ty-border-*,
|
|
128
|
+
--ty-surface-*, --ty-text-*, --ty-input-{color}-*, --ty-solid-*) live
|
|
129
|
+
in tyrell-colors-static.css or tyrell-theme.css — load one of those
|
|
130
|
+
alongside this file. See CSS_GUIDE.md. */
|
|
172
131
|
|
|
173
132
|
/* =================================================================
|
|
174
133
|
BACKGROUND COLORS
|
|
@@ -188,52 +147,13 @@ BACKGROUND COLORS
|
|
|
188
147
|
/* Focus ring gap - matches page background for button focus ring effect */
|
|
189
148
|
--ty-focus-ring-gap: #ffffff;
|
|
190
149
|
|
|
191
|
-
/* Primary backgrounds */
|
|
192
|
-
--ty-bg-primary: #e3eefc;
|
|
193
|
-
--ty-bg-primary-bold: #d5e4f8;
|
|
194
|
-
--ty-bg-primary-soft: #eff6ff;
|
|
195
|
-
|
|
196
|
-
/* Success backgrounds */
|
|
197
|
-
--ty-bg-success: #d1fae5;
|
|
198
|
-
--ty-bg-success-bold: #a7f3d0;
|
|
199
|
-
--ty-bg-success-soft: #ecfdf5;
|
|
200
|
-
|
|
201
|
-
/* Danger backgrounds */
|
|
202
|
-
--ty-bg-danger: #fee2e2;
|
|
203
|
-
--ty-bg-danger-bold: #fecaca;
|
|
204
|
-
--ty-bg-danger-soft: #fef2f2;
|
|
205
|
-
|
|
206
|
-
/* Warning backgrounds */
|
|
207
|
-
--ty-bg-warning: #fef3c7;
|
|
208
|
-
--ty-bg-warning-bold: #fde68a;
|
|
209
|
-
--ty-bg-warning-soft: #fffbeb;
|
|
210
|
-
|
|
211
|
-
/* Neutral backgrounds */
|
|
212
|
-
--ty-bg-neutral: #e0e0e0;
|
|
213
|
-
--ty-bg-neutral-bold: #cecece;
|
|
214
|
-
--ty-bg-neutral-soft: #ededed;
|
|
215
|
-
|
|
216
|
-
|
|
217
150
|
/* =================================================================
|
|
218
151
|
BORDER COLORS
|
|
219
152
|
================================================================= */
|
|
220
153
|
|
|
221
|
-
--ty-border: #e5e7eb;
|
|
222
|
-
--ty-border-bold: #d1d5db;
|
|
223
|
-
--ty-border-strong: #6b7280;
|
|
224
|
-
--ty-border-soft: #f3f4f6;
|
|
225
|
-
--ty-border-faint: #fafafa;
|
|
226
|
-
|
|
227
154
|
/* Border width — used as fallback by surface utilities (--ty-{surface}-border-width) */
|
|
228
155
|
--ty-border-width: 1px;
|
|
229
156
|
|
|
230
|
-
/* Semantic borders */
|
|
231
|
-
--ty-border-primary: var(--ty-color-primary);
|
|
232
|
-
--ty-border-success: var(--ty-color-success);
|
|
233
|
-
--ty-border-danger: var(--ty-color-danger);
|
|
234
|
-
--ty-border-warning: var(--ty-color-warning);
|
|
235
|
-
--ty-border-neutral: var(--ty-color-neutral);
|
|
236
|
-
|
|
237
157
|
/* =================================================================
|
|
238
158
|
SCROLLBAR
|
|
239
159
|
================================================================= */
|
|
@@ -248,19 +168,11 @@ SCROLLBAR
|
|
|
248
168
|
SURFACE SYSTEM
|
|
249
169
|
================================================================= */
|
|
250
170
|
|
|
251
|
-
--ty-surface-canvas: #fcfcfc;
|
|
252
|
-
--ty-surface-content: #ffffff;
|
|
253
|
-
--ty-surface-elevated: #ffffff;
|
|
254
|
-
--ty-surface-floating: #ffffff;
|
|
255
|
-
--ty-surface-input: #ffffff;
|
|
256
|
-
|
|
257
171
|
/* Surface borders — opt-in. Set color to make a surface's border visible.
|
|
258
172
|
Width and style fall back to --ty-border-width and `solid` if unset. */
|
|
259
|
-
--ty-elevated-border: #e5e7eb;
|
|
260
173
|
--ty-elevated-border-width: var(--ty-border-width);
|
|
261
174
|
--ty-elevated-border-style: solid;
|
|
262
175
|
|
|
263
|
-
--ty-floating-border: #e5e7eb;
|
|
264
176
|
--ty-floating-border-width: var(--ty-border-width);
|
|
265
177
|
--ty-floating-border-style: solid;
|
|
266
178
|
|
|
@@ -268,12 +180,12 @@ SURFACE SYSTEM
|
|
|
268
180
|
--ty-canvas-border-width: var(--ty-border-width);
|
|
269
181
|
--ty-canvas-border-style: solid;
|
|
270
182
|
|
|
271
|
-
--ty-content-border: #e5e7eb;
|
|
272
183
|
--ty-content-border-width: var(--ty-border-width);
|
|
273
184
|
--ty-content-border-style: solid;
|
|
274
185
|
|
|
275
|
-
/* --ty-input-border is
|
|
276
|
-
<ty-input> shadow DOM
|
|
186
|
+
/* --ty-input-border is a color token (tyrell-colors-static.css /
|
|
187
|
+
tyrell-theme.css) used by <ty-input> shadow DOM and .ty-input utility.
|
|
188
|
+
Width/style live here. */
|
|
277
189
|
--ty-input-border-width: var(--ty-border-width);
|
|
278
190
|
--ty-input-border-style: solid;
|
|
279
191
|
|
|
@@ -284,17 +196,6 @@ SURFACE SYSTEM
|
|
|
284
196
|
--ty-divide-color: var(--ty-border);
|
|
285
197
|
--ty-divide-width: var(--ty-border-width);
|
|
286
198
|
|
|
287
|
-
/* =================================================================
|
|
288
|
-
TEXT HIERARCHY
|
|
289
|
-
================================================================= */
|
|
290
|
-
|
|
291
|
-
/* Text hierarchy - emphasis based, not semantic */
|
|
292
|
-
--ty-text: #111827;
|
|
293
|
-
--ty-text-bold: #000000;
|
|
294
|
-
--ty-text-strong: #000000;
|
|
295
|
-
--ty-text-soft: #374151;
|
|
296
|
-
--ty-text-faint: #9ca3af;
|
|
297
|
-
|
|
298
199
|
/* =================================================================
|
|
299
200
|
COMPONENT TOKENS
|
|
300
201
|
================================================================= */
|
|
@@ -319,87 +220,8 @@ COMPONENT TOKENS
|
|
|
319
220
|
--ty-modal-full-height: 95vh;
|
|
320
221
|
|
|
321
222
|
/* Input component tokens */
|
|
322
|
-
--ty-input-bg: #ffffff;
|
|
323
|
-
--ty-input-color: #111827;
|
|
324
|
-
--ty-input-border: #e5e7eb;
|
|
325
|
-
--ty-input-border-hover: #d1d5db;
|
|
326
|
-
--ty-input-border-focus: var(--ty-color-primary);
|
|
327
|
-
--ty-input-shadow-focus: rgba(59, 130, 246, 0.1);
|
|
328
|
-
--ty-input-placeholder: #9ca3af;
|
|
329
|
-
--ty-input-disabled-bg: #f9fafb;
|
|
330
|
-
--ty-input-disabled-border: #e5e7eb;
|
|
331
|
-
--ty-input-disabled-color: #9ca3af;
|
|
332
223
|
--ty-label-color: #374151;
|
|
333
224
|
|
|
334
|
-
/* Input semantic states — RESTING border for a flavored field. Soft on
|
|
335
|
-
purpose: the full-strength color is reserved for hover/focus, so the
|
|
336
|
-
emphasis ladder (rest → hover → focus+ring) reads like neutral's. */
|
|
337
|
-
--ty-input-success-border: var(--ty-color-success-soft);
|
|
338
|
-
--ty-input-danger-border: var(--ty-color-danger-soft);
|
|
339
|
-
--ty-input-warning-border: var(--ty-color-warning-soft);
|
|
340
|
-
|
|
341
|
-
/* =================================================================
|
|
342
|
-
SOLID BUTTON FILLS — plain default values (the contract). The smart
|
|
343
|
-
per-state derivation (hover/active/tone via OKLCH) lives in the theme
|
|
344
|
-
engine (tyrell-theme.css), not here. hover/active alias to -strong as
|
|
345
|
-
a simple default; a theme overrides them.
|
|
346
|
-
================================================================= */
|
|
347
|
-
|
|
348
|
-
/* Primary */
|
|
349
|
-
--ty-solid-primary: #4076b9;
|
|
350
|
-
--ty-solid-primary-strong: var(--ty-color-primary-bold);
|
|
351
|
-
--ty-solid-primary-soft: #7ea7d9;
|
|
352
|
-
--ty-solid-primary-hover: var(--ty-solid-primary-strong);
|
|
353
|
-
--ty-solid-primary-active: var(--ty-solid-primary-strong);
|
|
354
|
-
/* Per-fill fg, hand-picked (max contrast, tie→white) — this file has no
|
|
355
|
-
computed auto-contrast (that needs tyrell-theme.css's relative color
|
|
356
|
-
support), so each fill's correct fg is a literal, verified value.
|
|
357
|
-
Do NOT collapse back to one --ty-solid-X-fg per flavor: soft/strong
|
|
358
|
-
sit at different lightness and several fail WCAG AA against white. */
|
|
359
|
-
--ty-solid-primary-fg: white;
|
|
360
|
-
--ty-solid-primary-strong-fg: white;
|
|
361
|
-
--ty-solid-primary-soft-fg: black;
|
|
362
|
-
|
|
363
|
-
/* Success */
|
|
364
|
-
--ty-solid-success: #3bb68d;
|
|
365
|
-
--ty-solid-success-strong: #27956e;
|
|
366
|
-
--ty-solid-success-soft: #69b99e;
|
|
367
|
-
--ty-solid-success-hover: var(--ty-solid-success-strong);
|
|
368
|
-
--ty-solid-success-active: var(--ty-solid-success-strong);
|
|
369
|
-
--ty-solid-success-fg: black;
|
|
370
|
-
--ty-solid-success-strong-fg: black;
|
|
371
|
-
--ty-solid-success-soft-fg: black;
|
|
372
|
-
|
|
373
|
-
/* Danger */
|
|
374
|
-
--ty-solid-danger: #df5b5b;
|
|
375
|
-
--ty-solid-danger-strong: #cc3e3e;
|
|
376
|
-
--ty-solid-danger-soft: #d57a7a;
|
|
377
|
-
--ty-solid-danger-hover: var(--ty-solid-danger-strong);
|
|
378
|
-
--ty-solid-danger-active: var(--ty-solid-danger-strong);
|
|
379
|
-
--ty-solid-danger-fg: black;
|
|
380
|
-
--ty-solid-danger-strong-fg: white;
|
|
381
|
-
--ty-solid-danger-soft-fg: black;
|
|
382
|
-
|
|
383
|
-
/* Warning */
|
|
384
|
-
--ty-solid-warning: #e1a644;
|
|
385
|
-
--ty-solid-warning-strong: #f59e0b;
|
|
386
|
-
--ty-solid-warning-soft: #fbc56d;
|
|
387
|
-
--ty-solid-warning-hover: var(--ty-solid-warning-strong);
|
|
388
|
-
--ty-solid-warning-active: var(--ty-solid-warning-strong);
|
|
389
|
-
--ty-solid-warning-fg: black;
|
|
390
|
-
--ty-solid-warning-strong-fg: black;
|
|
391
|
-
--ty-solid-warning-soft-fg: black;
|
|
392
|
-
|
|
393
|
-
/* Neutral */
|
|
394
|
-
--ty-solid-neutral: #414141;
|
|
395
|
-
--ty-solid-neutral-strong: #000000;
|
|
396
|
-
--ty-solid-neutral-soft: #6e6e6e;
|
|
397
|
-
--ty-solid-neutral-hover: var(--ty-solid-neutral-strong);
|
|
398
|
-
--ty-solid-neutral-active: var(--ty-solid-neutral-strong);
|
|
399
|
-
--ty-solid-neutral-fg: white;
|
|
400
|
-
--ty-solid-neutral-strong-fg: white;
|
|
401
|
-
--ty-solid-neutral-soft-fg: white;
|
|
402
|
-
|
|
403
225
|
/* =================================================================
|
|
404
226
|
DESIGN SYSTEM TOKENS
|
|
405
227
|
================================================================= */
|
|
@@ -499,6 +321,39 @@ DESIGN SYSTEM TOKENS
|
|
|
499
321
|
--ty-font-bold: 680;
|
|
500
322
|
--ty-font-extrabold: 800;
|
|
501
323
|
|
|
324
|
+
/* Semantic weight dials — MODE-FLIPPED (see the html.dark block).
|
|
325
|
+
Light text on dark surfaces optically blooms (halation), so dark mode
|
|
326
|
+
wants genuinely lighter weights than light mode; a single fixed weight
|
|
327
|
+
can't be right in both. Components consume these instead of the raw
|
|
328
|
+
scale above:
|
|
329
|
+
--ty-weight-action buttons, interactive chrome
|
|
330
|
+
--ty-weight-label tags, chips, badges
|
|
331
|
+
Theme these like any other token — per :root, html.dark, a named theme
|
|
332
|
+
pack, or one element. The theme layer registers them as typed numbers,
|
|
333
|
+
so with a variable font, weight crossfades during theme transitions
|
|
334
|
+
along with the colors. */
|
|
335
|
+
--ty-weight-action: var(--ty-font-medium);
|
|
336
|
+
--ty-weight-label: 440;
|
|
337
|
+
|
|
338
|
+
/* Solid-button depth chrome (consumed in button.ts):
|
|
339
|
+
--ty-button-depth master intensity 0–1. 0 = pixel-flat (the old
|
|
340
|
+
look), 1 = full tactile gloss. Scales the
|
|
341
|
+
derived border offset, top sheen and drop
|
|
342
|
+
shadow together. Themable per mode / theme
|
|
343
|
+
pack / element like any other dial.
|
|
344
|
+
--ty-button-border-l L-offset of the fill-derived 1px border,
|
|
345
|
+
mode-flipped below: dark mode needs a LIGHTER-
|
|
346
|
+
than-fill hairline (solids wash out against
|
|
347
|
+
dark surfaces without a lit edge), light mode
|
|
348
|
+
a slightly darker one. */
|
|
349
|
+
--ty-button-depth: 0.35;
|
|
350
|
+
--ty-button-border-l: -0.08;
|
|
351
|
+
/* Neutral (ink) gets its own, stronger edge: it has no hue separating it
|
|
352
|
+
from the canvas, so the same offset that reads fine on colored fills
|
|
353
|
+
nearly vanishes on it — especially in dark mode, where the ink fill
|
|
354
|
+
sits close to the page. */
|
|
355
|
+
--ty-button-border-l-neutral: -0.25;
|
|
356
|
+
|
|
502
357
|
--ty-line-height-none: 1;
|
|
503
358
|
--ty-line-height-tight: 1.25;
|
|
504
359
|
--ty-line-height-snug: 1.375;
|
|
@@ -603,46 +458,20 @@ DARK THEME OVERRIDES
|
|
|
603
458
|
|
|
604
459
|
html.dark,
|
|
605
460
|
html[data-theme="dark"] {
|
|
606
|
-
/*
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
/*
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
--ty-
|
|
620
|
-
--ty-color-success-bold: #6ee7b7;
|
|
621
|
-
--ty-color-success: #3aba8b;
|
|
622
|
-
--ty-color-success-soft: #459679;
|
|
623
|
-
--ty-color-success-faint: #1b795c;
|
|
624
|
-
|
|
625
|
-
/* Danger */
|
|
626
|
-
--ty-color-danger-strong: #ffabab;
|
|
627
|
-
--ty-color-danger-bold: #e58787;
|
|
628
|
-
--ty-color-danger: #d06f6f;
|
|
629
|
-
--ty-color-danger-soft: #b06666;
|
|
630
|
-
--ty-color-danger-faint: #aa6e6e;
|
|
631
|
-
|
|
632
|
-
/* Warning */
|
|
633
|
-
--ty-color-warning-strong: #fde68a;
|
|
634
|
-
--ty-color-warning-bold: #fcd34d;
|
|
635
|
-
--ty-color-warning: #fbbf24;
|
|
636
|
-
--ty-color-warning-soft: #f59e0b;
|
|
637
|
-
--ty-color-warning-faint: #a06726;
|
|
638
|
-
|
|
639
|
-
/* Neutral */
|
|
640
|
-
--ty-color-neutral-strong: #ffffff;
|
|
641
|
-
--ty-color-neutral-bold: #f9fafb;
|
|
642
|
-
--ty-color-neutral: #d6d6d6;
|
|
643
|
-
--ty-color-neutral-soft: #696969;
|
|
644
|
-
--ty-color-neutral-faint: #474747;
|
|
645
|
-
|
|
461
|
+
/* Weight dials flip with the mode — light-on-dark text blooms, so dark
|
|
462
|
+
mode runs genuinely lighter. See the :root definitions. */
|
|
463
|
+
--ty-weight-action: var(--ty-font-normal);
|
|
464
|
+
--ty-weight-label: var(--ty-font-normal);
|
|
465
|
+
|
|
466
|
+
/* Colored solid buttons: no border in dark mode — border color equals
|
|
467
|
+
the fill exactly, so it's geometrically present (depth 0 keeps
|
|
468
|
+
geometry stable) but invisible. Neutral keeps its own separate,
|
|
469
|
+
stronger dial (below) since its dark ink fill needs the lit edge to
|
|
470
|
+
read as a shape at all against a near-black canvas; colored fills
|
|
471
|
+
don't have that problem (their own hue/saturation already separates
|
|
472
|
+
them from the page), so no border reads as cleaner. */
|
|
473
|
+
--ty-button-border-l: 0;
|
|
474
|
+
--ty-button-border-l-neutral: 0.5;
|
|
646
475
|
|
|
647
476
|
/* Backgrounds for dark mode */
|
|
648
477
|
--ty-bg-faint: #0f1419;
|
|
@@ -654,36 +483,6 @@ Emphasis logic inverts: lighter = more emphasis
|
|
|
654
483
|
/* Focus ring gap */
|
|
655
484
|
--ty-focus-ring-gap: #1f2937;
|
|
656
485
|
|
|
657
|
-
/* Semantic backgrounds - much darker in dark mode */
|
|
658
|
-
--ty-bg-primary-bold: #43517a;
|
|
659
|
-
--ty-bg-primary: #394159;
|
|
660
|
-
--ty-bg-primary-soft: #323a4f;
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
--ty-bg-success: #3a4442;
|
|
664
|
-
--ty-bg-success-bold: #405752;
|
|
665
|
-
--ty-bg-success-soft: #2f3b38;
|
|
666
|
-
|
|
667
|
-
--ty-bg-danger-bold: #853535;
|
|
668
|
-
--ty-bg-danger: #522828;
|
|
669
|
-
--ty-bg-danger-soft: #483c3c;
|
|
670
|
-
|
|
671
|
-
--ty-bg-warning-bold: #743953;
|
|
672
|
-
--ty-bg-warning: #694555;
|
|
673
|
-
--ty-bg-warning-soft: #45333b;
|
|
674
|
-
|
|
675
|
-
--ty-bg-neutral-bold: #414141;
|
|
676
|
-
--ty-bg-neutral: #323232;
|
|
677
|
-
--ty-bg-neutral-soft: #242424;
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
/* Borders for dark mode */
|
|
681
|
-
--ty-border-strong: #8c8c8c;
|
|
682
|
-
--ty-border-bold: #666666;
|
|
683
|
-
--ty-border: #535353;
|
|
684
|
-
--ty-border-soft: #1f2937;
|
|
685
|
-
--ty-border-faint: #030712;
|
|
686
|
-
|
|
687
486
|
/* Scrollbar - dark mode */
|
|
688
487
|
--ty-scrollbar-thumb: rgba(255, 255, 255, 0.13);
|
|
689
488
|
--ty-scrollbar-thumb-hover: rgba(255, 255, 255, 0.22);
|
|
@@ -691,23 +490,6 @@ Emphasis logic inverts: lighter = more emphasis
|
|
|
691
490
|
--ty-scrollbar-track: transparent;
|
|
692
491
|
--ty-scrollbar-track-hover: rgba(255, 255, 255, 0.04);
|
|
693
492
|
|
|
694
|
-
--ty-surface-canvas: black;
|
|
695
|
-
--ty-surface-content: #1a1a1a;
|
|
696
|
-
--ty-surface-elevated: #282828;
|
|
697
|
-
--ty-surface-floating: #343434;
|
|
698
|
-
--ty-surface-input: #1f2937;
|
|
699
|
-
|
|
700
|
-
--ty-content-border: #030712;
|
|
701
|
-
--ty-elevated-border: #414141;
|
|
702
|
-
--ty-border: #3e3e3e;
|
|
703
|
-
--ty-floating-border: #494949;
|
|
704
|
-
|
|
705
|
-
--ty-text-bold: #f9fafb;
|
|
706
|
-
--ty-text-strong: #ffffff;
|
|
707
|
-
--ty-text: #d6d6d6;
|
|
708
|
-
--ty-text-soft: #7f8590;
|
|
709
|
-
--ty-text-faint: #555a63;
|
|
710
|
-
|
|
711
493
|
/* Shadows need to be darker/more prominent in dark mode */
|
|
712
494
|
--ty-shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.2);
|
|
713
495
|
--ty-shadow-base:
|
|
@@ -720,68 +502,7 @@ Emphasis logic inverts: lighter = more emphasis
|
|
|
720
502
|
0 20px 25px -5px rgba(0, 0, 0, 0.3), 0 8px 10px -6px rgba(0, 0, 0, 0.3);
|
|
721
503
|
--ty-shadow-2xl: 0 25px 50px -12px rgba(0, 0, 0, 0.5);
|
|
722
504
|
|
|
723
|
-
/* Solid button fills — plain dark defaults. hover/active alias -strong;
|
|
724
|
-
theme engines override with smart per-state derivation. */
|
|
725
|
-
--ty-solid-primary: #3e536c;
|
|
726
|
-
--ty-solid-primary-strong: #426084;
|
|
727
|
-
--ty-solid-primary-soft: #343f4c;
|
|
728
|
-
--ty-solid-primary-hover: var(--ty-solid-primary-strong);
|
|
729
|
-
--ty-solid-primary-active: var(--ty-solid-primary-strong);
|
|
730
|
-
/* Hand-picked per-fill fg — see the light-mode comment above. Dark-mode
|
|
731
|
-
lightness ordering differs from light (soft/strong swap direction),
|
|
732
|
-
so these are independently verified, not mirrored. */
|
|
733
|
-
--ty-solid-primary-fg: white;
|
|
734
|
-
--ty-solid-primary-strong-fg: white;
|
|
735
|
-
--ty-solid-primary-soft-fg: white;
|
|
736
|
-
|
|
737
|
-
|
|
738
|
-
--ty-solid-success: #3bb68d;
|
|
739
|
-
--ty-solid-success-strong: #459679;
|
|
740
|
-
--ty-solid-success-soft: #285748;
|
|
741
|
-
--ty-solid-success-hover: var(--ty-solid-success-strong);
|
|
742
|
-
--ty-solid-success-active: var(--ty-solid-success-strong);
|
|
743
|
-
--ty-solid-success-fg: black;
|
|
744
|
-
--ty-solid-success-strong-fg: black;
|
|
745
|
-
--ty-solid-success-soft-fg: white;
|
|
746
|
-
|
|
747
|
-
--ty-solid-danger: #df5b5b;
|
|
748
|
-
--ty-solid-danger-strong: #cc3e3e;
|
|
749
|
-
--ty-solid-danger-soft: #875656;
|
|
750
|
-
--ty-solid-danger-hover: var(--ty-solid-danger-strong);
|
|
751
|
-
--ty-solid-danger-active: var(--ty-solid-danger-strong);
|
|
752
|
-
--ty-solid-danger-fg: black;
|
|
753
|
-
--ty-solid-danger-strong-fg: white;
|
|
754
|
-
--ty-solid-danger-soft-fg: white;
|
|
755
|
-
|
|
756
|
-
--ty-solid-warning: #e1a644;
|
|
757
|
-
--ty-solid-warning-strong: #f59e0b;
|
|
758
|
-
--ty-solid-warning-soft: #8b6334;
|
|
759
|
-
--ty-solid-warning-hover: var(--ty-solid-warning-strong);
|
|
760
|
-
--ty-solid-warning-active: var(--ty-solid-warning-strong);
|
|
761
|
-
--ty-solid-warning-fg: black;
|
|
762
|
-
--ty-solid-warning-strong-fg: black;
|
|
763
|
-
--ty-solid-warning-soft-fg: white;
|
|
764
|
-
|
|
765
|
-
--ty-solid-neutral: #414141;
|
|
766
|
-
--ty-solid-neutral-strong: #4c4c4c;
|
|
767
|
-
--ty-solid-neutral-soft: #2a2a2a;
|
|
768
|
-
--ty-solid-neutral-hover: var(--ty-solid-neutral-strong);
|
|
769
|
-
--ty-solid-neutral-active: var(--ty-solid-neutral-strong);
|
|
770
|
-
--ty-solid-neutral-fg: white;
|
|
771
|
-
--ty-solid-neutral-strong-fg: white;
|
|
772
|
-
--ty-solid-neutral-soft-fg: white;
|
|
773
|
-
|
|
774
505
|
/* Input component tokens - dark mode */
|
|
775
|
-
--ty-input-bg: #1b1b1b;
|
|
776
|
-
--ty-input-color: #f9fafb;
|
|
777
|
-
--ty-input-border: #3a3a3a;
|
|
778
|
-
--ty-input-border-hover: #505050;
|
|
779
|
-
--ty-input-border-focus: var(--ty-color-primary);
|
|
780
|
-
--ty-input-shadow-focus: rgba(96, 165, 250, 0.1);
|
|
781
|
-
--ty-input-placeholder: #717171;
|
|
782
|
-
--ty-input-disabled-bg: #282828;
|
|
783
|
-
--ty-input-disabled-border: #2e2e2e;
|
|
784
|
-
--ty-input-disabled-color: #717171;
|
|
785
506
|
--ty-label-color: #d1d5db;
|
|
786
507
|
|
|
787
508
|
/* Modal - dark mode */
|