tyrell-components 1.0.0-TC36 → 1.0.0-TC38

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
@@ -130,7 +130,7 @@ Simplified from 7 variants to 5 practical variants:
130
130
  -strong = Strong emphasis - active states, strong borders
131
131
  -bold = Moderate emphasis - hover states, focus rings
132
132
  = Base color - default appearance
133
- -soft = Reduced emphasis - muted backgrounds, secondary
133
+ -soft = Reduced emphasis - muted backgrounds, de-emphasis
134
134
  -faint = Minimal emphasis - subtle hints, disabled states
135
135
  ================================================================= */
136
136
 
@@ -141,13 +141,6 @@ Simplified from 7 variants to 5 practical variants:
141
141
  --ty-color-primary-soft: #60a5fa;
142
142
  --ty-color-primary-faint: #93c5fd;
143
143
 
144
- /* Secondary */
145
- --ty-color-secondary-strong: #7442c2;
146
- --ty-color-secondary-bold: #8153cf;
147
- --ty-color-secondary: #9774e7;
148
- --ty-color-secondary-soft: #a78bfa;
149
- --ty-color-secondary-faint: #c4b5fd;
150
-
151
144
  /* Success */
152
145
  --ty-color-success-strong: #177858;
153
146
  --ty-color-success-bold: #3e9779;
@@ -200,11 +193,6 @@ BACKGROUND COLORS
200
193
  --ty-bg-primary-bold: #d5e4f8;
201
194
  --ty-bg-primary-soft: #eff6ff;
202
195
 
203
- /* Secondary backgrounds */
204
- --ty-bg-secondary: #e9d5ff;
205
- --ty-bg-secondary-bold: #ddd6fe;
206
- --ty-bg-secondary-soft: #f3e8ff;
207
-
208
196
  /* Success backgrounds */
209
197
  --ty-bg-success: #d1fae5;
210
198
  --ty-bg-success-bold: #a7f3d0;
@@ -241,7 +229,6 @@ BORDER COLORS
241
229
 
242
230
  /* Semantic borders */
243
231
  --ty-border-primary: var(--ty-color-primary);
244
- --ty-border-secondary: var(--ty-color-secondary);
245
232
  --ty-border-success: var(--ty-color-success);
246
233
  --ty-border-danger: var(--ty-color-danger);
247
234
  --ty-border-warning: var(--ty-color-warning);
@@ -354,8 +341,8 @@ COMPONENT TOKENS
354
341
  /* =================================================================
355
342
  SOLID BUTTON FILLS — plain default values (the contract). The smart
356
343
  per-state derivation (hover/active/tone via OKLCH) lives in the theme
357
- engines (tyrell-brand.css / tyrell-simple.css), not here. hover/active
358
- alias to -strong as a simple default; a theme overrides them.
344
+ engine (tyrell-theme.css), not here. hover/active alias to -strong as
345
+ a simple default; a theme overrides them.
359
346
  ================================================================= */
360
347
 
361
348
  /* Primary */
@@ -364,15 +351,14 @@ COMPONENT TOKENS
364
351
  --ty-solid-primary-soft: #7ea7d9;
365
352
  --ty-solid-primary-hover: var(--ty-solid-primary-strong);
366
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. */
367
359
  --ty-solid-primary-fg: white;
368
-
369
- /* Secondary */
370
- --ty-solid-secondary: #7e67b4;
371
- --ty-solid-secondary-strong: #7d58d1;
372
- --ty-solid-secondary-soft: #9f8ec5;
373
- --ty-solid-secondary-hover: var(--ty-solid-secondary-strong);
374
- --ty-solid-secondary-active: var(--ty-solid-secondary-strong);
375
- --ty-solid-secondary-fg: white;
360
+ --ty-solid-primary-strong-fg: white;
361
+ --ty-solid-primary-soft-fg: black;
376
362
 
377
363
  /* Success */
378
364
  --ty-solid-success: #3bb68d;
@@ -380,7 +366,9 @@ COMPONENT TOKENS
380
366
  --ty-solid-success-soft: #69b99e;
381
367
  --ty-solid-success-hover: var(--ty-solid-success-strong);
382
368
  --ty-solid-success-active: var(--ty-solid-success-strong);
383
- --ty-solid-success-fg: white;
369
+ --ty-solid-success-fg: black;
370
+ --ty-solid-success-strong-fg: black;
371
+ --ty-solid-success-soft-fg: black;
384
372
 
385
373
  /* Danger */
386
374
  --ty-solid-danger: #df5b5b;
@@ -388,7 +376,9 @@ COMPONENT TOKENS
388
376
  --ty-solid-danger-soft: #d57a7a;
389
377
  --ty-solid-danger-hover: var(--ty-solid-danger-strong);
390
378
  --ty-solid-danger-active: var(--ty-solid-danger-strong);
391
- --ty-solid-danger-fg: white;
379
+ --ty-solid-danger-fg: black;
380
+ --ty-solid-danger-strong-fg: white;
381
+ --ty-solid-danger-soft-fg: black;
392
382
 
393
383
  /* Warning */
394
384
  --ty-solid-warning: #e1a644;
@@ -396,7 +386,9 @@ COMPONENT TOKENS
396
386
  --ty-solid-warning-soft: #fbc56d;
397
387
  --ty-solid-warning-hover: var(--ty-solid-warning-strong);
398
388
  --ty-solid-warning-active: var(--ty-solid-warning-strong);
399
- --ty-solid-warning-fg: white;
389
+ --ty-solid-warning-fg: black;
390
+ --ty-solid-warning-strong-fg: black;
391
+ --ty-solid-warning-soft-fg: black;
400
392
 
401
393
  /* Neutral */
402
394
  --ty-solid-neutral: #414141;
@@ -405,6 +397,8 @@ COMPONENT TOKENS
405
397
  --ty-solid-neutral-hover: var(--ty-solid-neutral-strong);
406
398
  --ty-solid-neutral-active: var(--ty-solid-neutral-strong);
407
399
  --ty-solid-neutral-fg: white;
400
+ --ty-solid-neutral-strong-fg: white;
401
+ --ty-solid-neutral-soft-fg: white;
408
402
 
409
403
  /* =================================================================
410
404
  DESIGN SYSTEM TOKENS
@@ -616,13 +610,6 @@ Emphasis logic inverts: lighter = more emphasis
616
610
  --ty-color-primary-soft: #4b698b;
617
611
  --ty-color-primary-faint: #445b77;
618
612
 
619
- /* Secondary */
620
- --ty-color-secondary-strong: #ddd6fe;
621
- --ty-color-secondary-bold: #c4b5fd;
622
- --ty-color-secondary: #a78bfa;
623
- --ty-color-secondary-soft: #8269bc;
624
- --ty-color-secondary-faint: #76619f;
625
-
626
613
  /* Success */
627
614
  --ty-color-success-strong: #c2f0df;
628
615
  --ty-color-success-bold: #6ee7b7;
@@ -667,9 +654,6 @@ Emphasis logic inverts: lighter = more emphasis
667
654
  --ty-bg-primary: #394159;
668
655
  --ty-bg-primary-soft: #323a4f;
669
656
 
670
- --ty-bg-secondary-bold: #58368e;
671
- --ty-bg-secondary: #4a3c65;
672
- --ty-bg-secondary-soft: #3b3645;
673
657
 
674
658
  --ty-bg-success: #3a4442;
675
659
  --ty-bg-success-bold: #405752;
@@ -738,35 +722,40 @@ Emphasis logic inverts: lighter = more emphasis
738
722
  --ty-solid-primary-soft: #343f4c;
739
723
  --ty-solid-primary-hover: var(--ty-solid-primary-strong);
740
724
  --ty-solid-primary-active: var(--ty-solid-primary-strong);
725
+ /* Hand-picked per-fill fg — see the light-mode comment above. Dark-mode
726
+ lightness ordering differs from light (soft/strong swap direction),
727
+ so these are independently verified, not mirrored. */
741
728
  --ty-solid-primary-fg: white;
729
+ --ty-solid-primary-strong-fg: white;
730
+ --ty-solid-primary-soft-fg: white;
742
731
 
743
- --ty-solid-secondary: #7e67b4;
744
- --ty-solid-secondary-strong: #8269bc;
745
- --ty-solid-secondary-soft: #52466a;
746
- --ty-solid-secondary-hover: var(--ty-solid-secondary-strong);
747
- --ty-solid-secondary-active: var(--ty-solid-secondary-strong);
748
- --ty-solid-secondary-fg: white;
749
732
 
750
733
  --ty-solid-success: #3bb68d;
751
734
  --ty-solid-success-strong: #459679;
752
735
  --ty-solid-success-soft: #285748;
753
736
  --ty-solid-success-hover: var(--ty-solid-success-strong);
754
737
  --ty-solid-success-active: var(--ty-solid-success-strong);
755
- --ty-solid-success-fg: white;
738
+ --ty-solid-success-fg: black;
739
+ --ty-solid-success-strong-fg: black;
740
+ --ty-solid-success-soft-fg: white;
756
741
 
757
742
  --ty-solid-danger: #df5b5b;
758
743
  --ty-solid-danger-strong: #cc3e3e;
759
744
  --ty-solid-danger-soft: #875656;
760
745
  --ty-solid-danger-hover: var(--ty-solid-danger-strong);
761
746
  --ty-solid-danger-active: var(--ty-solid-danger-strong);
762
- --ty-solid-danger-fg: white;
747
+ --ty-solid-danger-fg: black;
748
+ --ty-solid-danger-strong-fg: white;
749
+ --ty-solid-danger-soft-fg: white;
763
750
 
764
751
  --ty-solid-warning: #e1a644;
765
752
  --ty-solid-warning-strong: #f59e0b;
766
753
  --ty-solid-warning-soft: #8b6334;
767
754
  --ty-solid-warning-hover: var(--ty-solid-warning-strong);
768
755
  --ty-solid-warning-active: var(--ty-solid-warning-strong);
769
- --ty-solid-warning-fg: white;
756
+ --ty-solid-warning-fg: black;
757
+ --ty-solid-warning-strong-fg: black;
758
+ --ty-solid-warning-soft-fg: white;
770
759
 
771
760
  --ty-solid-neutral: #414141;
772
761
  --ty-solid-neutral-strong: #4c4c4c;
@@ -774,6 +763,8 @@ Emphasis logic inverts: lighter = more emphasis
774
763
  --ty-solid-neutral-hover: var(--ty-solid-neutral-strong);
775
764
  --ty-solid-neutral-active: var(--ty-solid-neutral-strong);
776
765
  --ty-solid-neutral-fg: white;
766
+ --ty-solid-neutral-strong-fg: white;
767
+ --ty-solid-neutral-soft-fg: white;
777
768
 
778
769
  /* Input component tokens - dark mode */
779
770
  --ty-input-bg: #1b1b1b;
@@ -872,11 +863,6 @@ html.dark textarea::-moz-selection {
872
863
  color: var(--ty-color-primary-strong);
873
864
  }
874
865
 
875
- .ty-selection-secondary ::selection,
876
- .ty-selection-secondary::-moz-selection {
877
- background-color: var(--ty-color-secondary-soft);
878
- color: var(--ty-color-secondary-strong);
879
- }
880
866
 
881
867
  .ty-selection-success ::selection,
882
868
  .ty-selection-success::-moz-selection {
@@ -909,11 +895,6 @@ html.dark .ty-selection-primary::-moz-selection {
909
895
  color: white;
910
896
  }
911
897
 
912
- html.dark .ty-selection-secondary ::selection,
913
- html.dark .ty-selection-secondary::-moz-selection {
914
- background-color: var(--ty-color-secondary);
915
- color: white;
916
- }
917
898
 
918
899
  html.dark .ty-selection-success ::selection,
919
900
  html.dark .ty-selection-success::-moz-selection {
@@ -1070,17 +1051,8 @@ SEMANTIC BACKGROUND UTILITIES
1070
1051
  background-color: var(--ty-bg-primary-soft);
1071
1052
  }
1072
1053
 
1073
- .ty-bg-secondary {
1074
- background-color: var(--ty-bg-secondary);
1075
- }
1076
1054
 
1077
- .ty-bg-secondary\+ {
1078
- background-color: var(--ty-bg-secondary-bold);
1079
- }
1080
1055
 
1081
- .ty-bg-secondary- {
1082
- background-color: var(--ty-bg-secondary-soft);
1083
- }
1084
1056
 
1085
1057
  .ty-bg-success {
1086
1058
  background-color: var(--ty-bg-success);
@@ -1180,26 +1152,9 @@ SEMANTIC TEXT COLORS - 5-VARIANT SYSTEM
1180
1152
  color: var(--ty-color-primary-faint) !important;
1181
1153
  }
1182
1154
 
1183
- /* Secondary text colors */
1184
- .ty-text-secondary\+\+ {
1185
- color: var(--ty-color-secondary-strong) !important;
1186
- }
1187
1155
 
1188
- .ty-text-secondary\+ {
1189
- color: var(--ty-color-secondary-bold) !important;
1190
- }
1191
1156
 
1192
- .ty-text-secondary {
1193
- color: var(--ty-color-secondary) !important;
1194
- }
1195
1157
 
1196
- .ty-text-secondary- {
1197
- color: var(--ty-color-secondary-soft) !important;
1198
- }
1199
-
1200
- .ty-text-secondary-- {
1201
- color: var(--ty-color-secondary-faint) !important;
1202
- }
1203
1158
 
1204
1159
  /* Success text colors */
1205
1160
  .ty-text-success\+\+ {
@@ -1315,9 +1270,6 @@ BORDER UTILITIES
1315
1270
  border-color: var(--ty-border-primary);
1316
1271
  }
1317
1272
 
1318
- .ty-border-secondary {
1319
- border-color: var(--ty-border-secondary);
1320
- }
1321
1273
 
1322
1274
  .ty-border-success {
1323
1275
  border-color: var(--ty-border-success);
@@ -1404,13 +1356,7 @@ INTERACTIVE STATES
1404
1356
  background-color: var(--ty-bg-primary-bold) !important;
1405
1357
  }
1406
1358
 
1407
- .hover\:ty-bg-secondary:hover {
1408
- background-color: var(--ty-bg-secondary) !important;
1409
- }
1410
1359
 
1411
- .hover\:ty-bg-secondary\+:hover {
1412
- background-color: var(--ty-bg-secondary-bold) !important;
1413
- }
1414
1360
 
1415
1361
  .hover\:ty-bg-success:hover {
1416
1362
  background-color: var(--ty-bg-success) !important;
@@ -1475,26 +1421,9 @@ INTERACTIVE STATES
1475
1421
  color: var(--ty-color-primary-faint) !important;
1476
1422
  }
1477
1423
 
1478
- /* Secondary text hover states */
1479
- .hover\:ty-text-secondary\+\+:hover {
1480
- color: var(--ty-color-secondary-strong) !important;
1481
- }
1482
1424
 
1483
- .hover\:ty-text-secondary\+:hover {
1484
- color: var(--ty-color-secondary-bold) !important;
1485
- }
1486
1425
 
1487
- .hover\:ty-text-secondary:hover {
1488
- color: var(--ty-color-secondary) !important;
1489
- }
1490
-
1491
- .hover\:ty-text-secondary-:hover {
1492
- color: var(--ty-color-secondary-soft) !important;
1493
- }
1494
1426
 
1495
- .hover\:ty-text-secondary--:hover {
1496
- color: var(--ty-color-secondary-faint) !important;
1497
- }
1498
1427
 
1499
1428
  /* Success text hover states */
1500
1429
  .hover\:ty-text-success\+\+:hover {
@@ -1607,9 +1536,6 @@ INTERACTIVE STATES
1607
1536
  border-color: var(--ty-border-primary) !important;
1608
1537
  }
1609
1538
 
1610
- .hover\:ty-border-secondary:hover {
1611
- border-color: var(--ty-border-secondary) !important;
1612
- }
1613
1539
 
1614
1540
  .hover\:ty-border-success:hover {
1615
1541
  border-color: var(--ty-border-success) !important;
@@ -1652,9 +1578,6 @@ INTERACTIVE STATES
1652
1578
  border-color: var(--ty-border-primary) !important;
1653
1579
  }
1654
1580
 
1655
- .focus\:ty-border-secondary:focus {
1656
- border-color: var(--ty-border-secondary) !important;
1657
- }
1658
1581
 
1659
1582
  .focus\:ty-border-success:focus {
1660
1583
  border-color: var(--ty-border-success) !important;