tyrell-components 1.0.0-TC42 → 1.0.0-TC44

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/css/tyrell.css CHANGED
@@ -124,51 +124,10 @@ CSS VARIABLES - DESIGN TOKENS
124
124
 
125
125
  /* Default theme (light) */
126
126
  html {
127
- /* =================================================================
128
- 5-VARIANT COLOR SYSTEM
129
- Simplified from 7 variants to 5 practical variants:
130
- -strong = Strong emphasis - active states, strong borders
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 already declared above as a color token used by
276
- <ty-input> shadow DOM; .ty-input utility reuses it. Width/style still here. */
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
  ================================================================= */
@@ -636,11 +458,6 @@ DARK THEME OVERRIDES
636
458
 
637
459
  html.dark,
638
460
  html[data-theme="dark"] {
639
- /* =================================================================
640
- 5-VARIANT COLOR SYSTEM - DARK THEME
641
- Emphasis logic inverts: lighter = more emphasis
642
- ================================================================= */
643
-
644
461
  /* Weight dials flip with the mode — light-on-dark text blooms, so dark
645
462
  mode runs genuinely lighter. See the :root definitions. */
646
463
  --ty-weight-action: var(--ty-font-normal);
@@ -656,42 +473,6 @@ Emphasis logic inverts: lighter = more emphasis
656
473
  --ty-button-border-l: 0;
657
474
  --ty-button-border-l-neutral: 0.5;
658
475
 
659
- /* Primary */
660
- --ty-color-primary-strong: #9cbde5;
661
- --ty-color-primary-bold: #6c9bd5;
662
- --ty-color-primary: #4976ae;
663
- --ty-color-primary-soft: #4b698b;
664
- --ty-color-primary-faint: #445b77;
665
-
666
- /* Success */
667
- --ty-color-success-strong: #c2f0df;
668
- --ty-color-success-bold: #6ee7b7;
669
- --ty-color-success: #3aba8b;
670
- --ty-color-success-soft: #459679;
671
- --ty-color-success-faint: #1b795c;
672
-
673
- /* Danger */
674
- --ty-color-danger-strong: #ffabab;
675
- --ty-color-danger-bold: #e58787;
676
- --ty-color-danger: #d06f6f;
677
- --ty-color-danger-soft: #b06666;
678
- --ty-color-danger-faint: #aa6e6e;
679
-
680
- /* Warning */
681
- --ty-color-warning-strong: #fde68a;
682
- --ty-color-warning-bold: #fcd34d;
683
- --ty-color-warning: #fbbf24;
684
- --ty-color-warning-soft: #f59e0b;
685
- --ty-color-warning-faint: #a06726;
686
-
687
- /* Neutral */
688
- --ty-color-neutral-strong: #ffffff;
689
- --ty-color-neutral-bold: #f9fafb;
690
- --ty-color-neutral: #d6d6d6;
691
- --ty-color-neutral-soft: #696969;
692
- --ty-color-neutral-faint: #474747;
693
-
694
-
695
476
  /* Backgrounds for dark mode */
696
477
  --ty-bg-faint: #0f1419;
697
478
  --ty-bg-soft: #111827;
@@ -702,36 +483,6 @@ Emphasis logic inverts: lighter = more emphasis
702
483
  /* Focus ring gap */
703
484
  --ty-focus-ring-gap: #1f2937;
704
485
 
705
- /* Semantic backgrounds - much darker in dark mode */
706
- --ty-bg-primary-bold: #43517a;
707
- --ty-bg-primary: #394159;
708
- --ty-bg-primary-soft: #323a4f;
709
-
710
-
711
- --ty-bg-success: #3a4442;
712
- --ty-bg-success-bold: #405752;
713
- --ty-bg-success-soft: #2f3b38;
714
-
715
- --ty-bg-danger-bold: #853535;
716
- --ty-bg-danger: #522828;
717
- --ty-bg-danger-soft: #483c3c;
718
-
719
- --ty-bg-warning-bold: #743953;
720
- --ty-bg-warning: #694555;
721
- --ty-bg-warning-soft: #45333b;
722
-
723
- --ty-bg-neutral-bold: #414141;
724
- --ty-bg-neutral: #323232;
725
- --ty-bg-neutral-soft: #242424;
726
-
727
-
728
- /* Borders for dark mode */
729
- --ty-border-strong: #8c8c8c;
730
- --ty-border-bold: #666666;
731
- --ty-border: #535353;
732
- --ty-border-soft: #1f2937;
733
- --ty-border-faint: #030712;
734
-
735
486
  /* Scrollbar - dark mode */
736
487
  --ty-scrollbar-thumb: rgba(255, 255, 255, 0.13);
737
488
  --ty-scrollbar-thumb-hover: rgba(255, 255, 255, 0.22);
@@ -739,23 +490,6 @@ Emphasis logic inverts: lighter = more emphasis
739
490
  --ty-scrollbar-track: transparent;
740
491
  --ty-scrollbar-track-hover: rgba(255, 255, 255, 0.04);
741
492
 
742
- --ty-surface-canvas: black;
743
- --ty-surface-content: #1a1a1a;
744
- --ty-surface-elevated: #282828;
745
- --ty-surface-floating: #343434;
746
- --ty-surface-input: #1f2937;
747
-
748
- --ty-content-border: #030712;
749
- --ty-elevated-border: #414141;
750
- --ty-border: #3e3e3e;
751
- --ty-floating-border: #494949;
752
-
753
- --ty-text-bold: #f9fafb;
754
- --ty-text-strong: #ffffff;
755
- --ty-text: #d6d6d6;
756
- --ty-text-soft: #7f8590;
757
- --ty-text-faint: #555a63;
758
-
759
493
  /* Shadows need to be darker/more prominent in dark mode */
760
494
  --ty-shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.2);
761
495
  --ty-shadow-base:
@@ -768,73 +502,7 @@ Emphasis logic inverts: lighter = more emphasis
768
502
  0 20px 25px -5px rgba(0, 0, 0, 0.3), 0 8px 10px -6px rgba(0, 0, 0, 0.3);
769
503
  --ty-shadow-2xl: 0 25px 50px -12px rgba(0, 0, 0, 0.5);
770
504
 
771
- /* Solid button fills — plain dark defaults. hover/active alias -strong;
772
- theme engines override with smart per-state derivation. */
773
- --ty-solid-primary: #3e536c;
774
- --ty-solid-primary-strong: #426084;
775
- --ty-solid-primary-soft: #343f4c;
776
- --ty-solid-primary-hover: var(--ty-solid-primary-strong);
777
- --ty-solid-primary-active: var(--ty-solid-primary-strong);
778
- /* Hand-picked per-fill fg — see the light-mode comment above. Dark-mode
779
- lightness ordering differs from light (soft/strong swap direction),
780
- so these are independently verified, not mirrored. */
781
- --ty-solid-primary-fg: white;
782
- --ty-solid-primary-strong-fg: white;
783
- --ty-solid-primary-soft-fg: white;
784
-
785
-
786
- --ty-solid-success: #3bb68d;
787
- --ty-solid-success-strong: #459679;
788
- --ty-solid-success-soft: #285748;
789
- --ty-solid-success-hover: var(--ty-solid-success-strong);
790
- --ty-solid-success-active: var(--ty-solid-success-strong);
791
- --ty-solid-success-fg: black;
792
- --ty-solid-success-strong-fg: black;
793
- --ty-solid-success-soft-fg: white;
794
-
795
- --ty-solid-danger: #df5b5b;
796
- --ty-solid-danger-strong: #cc3e3e;
797
- --ty-solid-danger-soft: #875656;
798
- --ty-solid-danger-hover: var(--ty-solid-danger-strong);
799
- --ty-solid-danger-active: var(--ty-solid-danger-strong);
800
- --ty-solid-danger-fg: black;
801
- --ty-solid-danger-strong-fg: white;
802
- --ty-solid-danger-soft-fg: white;
803
-
804
- --ty-solid-warning: #e1a644;
805
- --ty-solid-warning-strong: #f59e0b;
806
- --ty-solid-warning-soft: #8b6334;
807
- --ty-solid-warning-hover: var(--ty-solid-warning-strong);
808
- --ty-solid-warning-active: var(--ty-solid-warning-strong);
809
- --ty-solid-warning-fg: black;
810
- --ty-solid-warning-strong-fg: black;
811
- --ty-solid-warning-soft-fg: white;
812
-
813
- --ty-solid-neutral: #414141;
814
- /* neutral+ = inverted ink (white button, black text) — the dark-mode
815
- mirror of light's #000. Max-emphasis monochrome CTA (Geist-style).
816
- hover/active are pinned to the OLD strong literal, not the alias:
817
- aliasing var(--ty-solid-neutral-strong) would flash the BASE button
818
- white on hover. */
819
- --ty-solid-neutral-strong: #f5f5f5;
820
- --ty-solid-neutral-soft: #2a2a2a;
821
- --ty-solid-neutral-hover: #4c4c4c;
822
- --ty-solid-neutral-active: #4c4c4c;
823
- --ty-solid-neutral-fg: white;
824
- --ty-solid-neutral-strong-fg: black;
825
- --ty-solid-neutral-soft-fg: white;
826
-
827
505
  /* Input component tokens - dark mode */
828
- --ty-input-bg: #1b1b1b;
829
- --ty-input-color: #f9fafb;
830
- --ty-input-border: #3a3a3a;
831
- --ty-input-border-hover: #505050;
832
- --ty-input-border-focus: var(--ty-color-primary);
833
- --ty-input-shadow-focus: rgba(96, 165, 250, 0.1);
834
- --ty-input-placeholder: #717171;
835
- --ty-input-disabled-bg: #282828;
836
- --ty-input-disabled-border: #2e2e2e;
837
- --ty-input-disabled-color: #717171;
838
506
  --ty-label-color: #d1d5db;
839
507
 
840
508
  /* Modal - dark mode */