@tangle-network/brand 1.10.3 → 1.13.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.
@@ -45,8 +45,14 @@
45
45
  [data-theme="aubergine-light"],
46
46
  [data-theme="arena"],
47
47
  [data-theme="arena-light"],
48
+ [data-theme="super"],
49
+ [data-theme="super-light"],
48
50
  [data-theme="tangle-dark"],
49
51
  [data-theme="tangle-light"],
52
+ [data-theme="hospitality"],
53
+ [data-theme="agents"],
54
+ [data-theme="agents-light"],
55
+ [data-theme="website"],
50
56
  .light,
51
57
  .dark {
52
58
  color-scheme: dark;
@@ -206,15 +212,73 @@
206
212
  --surface-info-bg: #2d4e67;
207
213
  --surface-info-border: #3d7292;
208
214
  --surface-info-text: #67cdff;
209
- --surface-teal-bg: #042f2e;
210
- --surface-teal-border: #134e4a;
211
- --surface-teal-text: #2dd4bf;
212
- --surface-violet-bg: #403d66;
213
- --surface-violet-border: #5f58b8;
214
- --surface-violet-text: #c9c4ff;
215
- --surface-orange-bg: #431407;
216
- --surface-orange-border: #7c2d12;
217
- --surface-orange-text: #fb923c;
215
+ /* tones:begin — generated by scripts/gen-ladders.mjs; edit its CATEGORY map, not these lines. */
216
+ --tone-violet-bg: #4e3a60;
217
+ --tone-violet-bg-hover: #583d71;
218
+ --tone-violet-bg-selected: #624080;
219
+ --tone-violet-border: #8457aa;
220
+ --tone-violet-border-selected: #d19dff;
221
+ --tone-violet-text: #ecd9fa;
222
+ --tone-violet-icon: #d19dff;
223
+ --tone-orange-bg: #583c2b;
224
+ --tone-orange-bg-hover: #664029;
225
+ --tone-orange-bg-selected: #724327;
226
+ --tone-orange-border: #a35829;
227
+ --tone-orange-border-selected: #ff801f;
228
+ --tone-orange-text: #ffe0c2;
229
+ --tone-orange-icon: #ff801f;
230
+ --tone-teal-bg: #2a4744;
231
+ --tone-teal-bg-hover: #28504b;
232
+ --tone-teal-bg-selected: #265751;
233
+ --tone-teal-border: #207e73;
234
+ --tone-teal-border-selected: #0eb39e;
235
+ --tone-teal-text: #adf0dd;
236
+ --tone-teal-icon: #0eb39e;
237
+ --tone-blue-bg: #25455e;
238
+ --tone-blue-bg-hover: #224c6c;
239
+ --tone-blue-bg-selected: #1f537b;
240
+ --tone-blue-border: #2870bd;
241
+ --tone-blue-border-selected: #70b8ff;
242
+ --tone-blue-text: #c2e6ff;
243
+ --tone-blue-icon: #70b8ff;
244
+ --tone-pink-bg: #5e344f;
245
+ --tone-pink-bg-hover: #6d3659;
246
+ --tone-pink-bg-selected: #7b3762;
247
+ --tone-pink-border: #a84885;
248
+ --tone-pink-border-selected: #ff8dcc;
249
+ --tone-pink-text: #fdd1ea;
250
+ --tone-pink-icon: #ff8dcc;
251
+ --tone-brown-bg: #494038;
252
+ --tone-brown-bg-hover: #54473c;
253
+ --tone-brown-bg-selected: #5c4c3e;
254
+ --tone-brown-border: #7c5f46;
255
+ --tone-brown-border-selected: #dbb594;
256
+ --tone-brown-text: #f2e1ca;
257
+ --tone-brown-icon: #dbb594;
258
+ --tone-cyan-bg: #27464d;
259
+ --tone-cyan-bg-hover: #234f59;
260
+ --tone-cyan-bg-selected: #205662;
261
+ --tone-cyan-border: #11809c;
262
+ --tone-cyan-border-selected: #23afd0;
263
+ --tone-cyan-text: #b6ecf7;
264
+ --tone-cyan-icon: #23afd0;
265
+ --tone-lime-bg: #404536;
266
+ --tone-lime-bg-hover: #444b37;
267
+ --tone-lime-bg-selected: #495239;
268
+ --tone-lime-border: #577538;
269
+ --tone-lime-border-selected: #bdee63;
270
+ --tone-lime-text: #e3f7ba;
271
+ --tone-lime-icon: #bdee63;
272
+ --surface-violet-bg: #4e3a60;
273
+ --surface-violet-border: #8457aa;
274
+ --surface-violet-text: #d19dff;
275
+ --surface-orange-bg: #583c2b;
276
+ --surface-orange-border: #a35829;
277
+ --surface-orange-text: #ffa057;
278
+ --surface-teal-bg: #2a4744;
279
+ --surface-teal-border: #207e73;
280
+ --surface-teal-text: #0bd8b6;
281
+ /* tones:end */
218
282
 
219
283
  /* Run-mix ramp — the fills of a proportional status bar.
220
284
  *
@@ -458,10 +522,14 @@
458
522
  * carries both `data-sandbox-ui` (dark) and `data-theme="light"`, light wins. */
459
523
  [data-sandbox-theme="vault"]:where(:not(.dark)),
460
524
  [data-sandbox-theme="dawn"]:where(:not(.dark)),
525
+ [data-theme="hospitality"]:where(:not(.dark)),
526
+ [data-theme="website"]:where(:not(.dark)),
461
527
  [data-theme="light"],
462
528
  [data-theme="aubergine-light"],
463
529
  [data-theme="arena-light"],
530
+ [data-theme="super-light"],
464
531
  [data-theme="tangle-light"],
532
+ [data-theme="agents-light"],
465
533
  .light {
466
534
  color-scheme: light;
467
535
  /* Light theme — neutral surfaces with purple accents */
@@ -588,15 +656,73 @@
588
656
  --surface-info-bg: #f0f9ff;
589
657
  --surface-info-border: #bae6fd;
590
658
  --surface-info-text: #0369a1;
591
- --surface-teal-bg: #f0fdfa;
592
- --surface-teal-border: #99f6e4;
593
- --surface-teal-text: #0f766e;
594
- --surface-violet-bg: #F0EEFF;
595
- --surface-violet-border: #C5C0F0;
596
- --surface-violet-text: #3E349E;
597
- --surface-orange-bg: #fff7ed;
598
- --surface-orange-border: #fed7aa;
599
- --surface-orange-text: #c2410c;
659
+ /* tones:begin — generated by scripts/gen-ladders.mjs; edit its CATEGORY map, not these lines. */
660
+ --tone-violet-bg: #f7edfe;
661
+ --tone-violet-bg-hover: #f2e2fc;
662
+ --tone-violet-bg-selected: #ead5f9;
663
+ --tone-violet-border: #e0c4f4;
664
+ --tone-violet-border-selected: #8e4ec6;
665
+ --tone-violet-text: #402060;
666
+ --tone-violet-icon: #8e4ec6;
667
+ --tone-orange-bg: #ffefd6;
668
+ --tone-orange-bg-hover: #ffdfb5;
669
+ --tone-orange-bg-selected: #ffd19a;
670
+ --tone-orange-border: #ffc182;
671
+ --tone-orange-border-selected: #cc4e00;
672
+ --tone-orange-text: #582d1d;
673
+ --tone-orange-icon: #cc4e00;
674
+ --tone-teal-bg: #e0f8f3;
675
+ --tone-teal-bg-hover: #ccf3ea;
676
+ --tone-teal-bg-selected: #b8eae0;
677
+ --tone-teal-border: #a1ded2;
678
+ --tone-teal-border-selected: #008573;
679
+ --tone-teal-text: #0d3d38;
680
+ --tone-teal-icon: #008573;
681
+ --tone-blue-bg: #e6f4fe;
682
+ --tone-blue-bg-hover: #d5efff;
683
+ --tone-blue-bg-selected: #c2e5ff;
684
+ --tone-blue-border: #acd8fc;
685
+ --tone-blue-border-selected: #0d74ce;
686
+ --tone-blue-text: #113264;
687
+ --tone-blue-icon: #0d74ce;
688
+ --tone-pink-bg: #fee9f5;
689
+ --tone-pink-bg-hover: #fbdcef;
690
+ --tone-pink-bg-selected: #f6cee7;
691
+ --tone-pink-border: #efbfdd;
692
+ --tone-pink-border-selected: #cf3897;
693
+ --tone-pink-text: #651249;
694
+ --tone-pink-icon: #cf3897;
695
+ --tone-brown-bg: #f6eee7;
696
+ --tone-brown-bg-hover: #f0e4d9;
697
+ --tone-brown-bg-selected: #ebdaca;
698
+ --tone-brown-border: #e4cdb7;
699
+ --tone-brown-border-selected: #815e46;
700
+ --tone-brown-text: #3e332e;
701
+ --tone-brown-icon: #815e46;
702
+ --tone-cyan-bg: #def7f9;
703
+ --tone-cyan-bg-hover: #caf1f6;
704
+ --tone-cyan-bg-selected: #b5e9f0;
705
+ --tone-cyan-border: #9ddde7;
706
+ --tone-cyan-border-selected: #107d98;
707
+ --tone-cyan-text: #0d3c48;
708
+ --tone-cyan-icon: #107d98;
709
+ --tone-lime-bg: #eef6d6;
710
+ --tone-lime-bg-hover: #e2f0bd;
711
+ --tone-lime-bg-selected: #d3e7a6;
712
+ --tone-lime-border: #c2da91;
713
+ --tone-lime-border-selected: #5c7c2f;
714
+ --tone-lime-text: #37401c;
715
+ --tone-lime-icon: #5c7c2f;
716
+ --surface-violet-bg: #f7edfe;
717
+ --surface-violet-border: #e0c4f4;
718
+ --surface-violet-text: #8145b5;
719
+ --surface-orange-bg: #ffefd6;
720
+ --surface-orange-border: #ffc182;
721
+ --surface-orange-text: #bc4904;
722
+ --surface-teal-bg: #e0f8f3;
723
+ --surface-teal-border: #a1ded2;
724
+ --surface-teal-text: #017d6d;
725
+ /* tones:end */
600
726
 
601
727
  /* Run-mix ramp — the fills of a proportional status bar.
602
728
  *
@@ -809,6 +935,8 @@
809
935
  * themes, which would otherwise inherit the dark ramp from :root. */
810
936
  [data-sandbox-theme="vault"]:where(:not(.dark)),
811
937
  [data-sandbox-theme="dawn"]:where(:not(.dark)),
938
+ [data-theme="hospitality"]:where(:not(.dark)),
939
+ [data-theme="website"]:where(:not(.dark)),
812
940
  [data-theme="light"],
813
941
  .light,
814
942
  [data-theme$="-light"] {
@@ -843,3 +971,86 @@
843
971
  --motion-arrive: var(--duration-arrive) var(--ease-expo);
844
972
  }
845
973
  }
974
+
975
+ /* tone-scopes:begin — generated by scripts/gen-ladders.mjs; edit its CATEGORY map, not these lines. */
976
+ [data-tone="violet"],
977
+ [data-tone="violet"] :is(.light, .dark, [data-theme], [data-sandbox-ui], [data-sandbox-theme]) {
978
+ --tone-bg: var(--tone-violet-bg);
979
+ --tone-bg-hover: var(--tone-violet-bg-hover);
980
+ --tone-bg-selected: var(--tone-violet-bg-selected);
981
+ --tone-border: var(--tone-violet-border);
982
+ --tone-border-selected: var(--tone-violet-border-selected);
983
+ --tone-text: var(--tone-violet-text);
984
+ --tone-icon: var(--tone-violet-icon);
985
+ }
986
+ [data-tone="orange"],
987
+ [data-tone="orange"] :is(.light, .dark, [data-theme], [data-sandbox-ui], [data-sandbox-theme]) {
988
+ --tone-bg: var(--tone-orange-bg);
989
+ --tone-bg-hover: var(--tone-orange-bg-hover);
990
+ --tone-bg-selected: var(--tone-orange-bg-selected);
991
+ --tone-border: var(--tone-orange-border);
992
+ --tone-border-selected: var(--tone-orange-border-selected);
993
+ --tone-text: var(--tone-orange-text);
994
+ --tone-icon: var(--tone-orange-icon);
995
+ }
996
+ [data-tone="teal"],
997
+ [data-tone="teal"] :is(.light, .dark, [data-theme], [data-sandbox-ui], [data-sandbox-theme]) {
998
+ --tone-bg: var(--tone-teal-bg);
999
+ --tone-bg-hover: var(--tone-teal-bg-hover);
1000
+ --tone-bg-selected: var(--tone-teal-bg-selected);
1001
+ --tone-border: var(--tone-teal-border);
1002
+ --tone-border-selected: var(--tone-teal-border-selected);
1003
+ --tone-text: var(--tone-teal-text);
1004
+ --tone-icon: var(--tone-teal-icon);
1005
+ }
1006
+ [data-tone="blue"],
1007
+ [data-tone="blue"] :is(.light, .dark, [data-theme], [data-sandbox-ui], [data-sandbox-theme]) {
1008
+ --tone-bg: var(--tone-blue-bg);
1009
+ --tone-bg-hover: var(--tone-blue-bg-hover);
1010
+ --tone-bg-selected: var(--tone-blue-bg-selected);
1011
+ --tone-border: var(--tone-blue-border);
1012
+ --tone-border-selected: var(--tone-blue-border-selected);
1013
+ --tone-text: var(--tone-blue-text);
1014
+ --tone-icon: var(--tone-blue-icon);
1015
+ }
1016
+ [data-tone="pink"],
1017
+ [data-tone="pink"] :is(.light, .dark, [data-theme], [data-sandbox-ui], [data-sandbox-theme]) {
1018
+ --tone-bg: var(--tone-pink-bg);
1019
+ --tone-bg-hover: var(--tone-pink-bg-hover);
1020
+ --tone-bg-selected: var(--tone-pink-bg-selected);
1021
+ --tone-border: var(--tone-pink-border);
1022
+ --tone-border-selected: var(--tone-pink-border-selected);
1023
+ --tone-text: var(--tone-pink-text);
1024
+ --tone-icon: var(--tone-pink-icon);
1025
+ }
1026
+ [data-tone="brown"],
1027
+ [data-tone="brown"] :is(.light, .dark, [data-theme], [data-sandbox-ui], [data-sandbox-theme]) {
1028
+ --tone-bg: var(--tone-brown-bg);
1029
+ --tone-bg-hover: var(--tone-brown-bg-hover);
1030
+ --tone-bg-selected: var(--tone-brown-bg-selected);
1031
+ --tone-border: var(--tone-brown-border);
1032
+ --tone-border-selected: var(--tone-brown-border-selected);
1033
+ --tone-text: var(--tone-brown-text);
1034
+ --tone-icon: var(--tone-brown-icon);
1035
+ }
1036
+ [data-tone="cyan"],
1037
+ [data-tone="cyan"] :is(.light, .dark, [data-theme], [data-sandbox-ui], [data-sandbox-theme]) {
1038
+ --tone-bg: var(--tone-cyan-bg);
1039
+ --tone-bg-hover: var(--tone-cyan-bg-hover);
1040
+ --tone-bg-selected: var(--tone-cyan-bg-selected);
1041
+ --tone-border: var(--tone-cyan-border);
1042
+ --tone-border-selected: var(--tone-cyan-border-selected);
1043
+ --tone-text: var(--tone-cyan-text);
1044
+ --tone-icon: var(--tone-cyan-icon);
1045
+ }
1046
+ [data-tone="lime"],
1047
+ [data-tone="lime"] :is(.light, .dark, [data-theme], [data-sandbox-ui], [data-sandbox-theme]) {
1048
+ --tone-bg: var(--tone-lime-bg);
1049
+ --tone-bg-hover: var(--tone-lime-bg-hover);
1050
+ --tone-bg-selected: var(--tone-lime-bg-selected);
1051
+ --tone-border: var(--tone-lime-border);
1052
+ --tone-border-selected: var(--tone-lime-border-selected);
1053
+ --tone-text: var(--tone-lime-text);
1054
+ --tone-icon: var(--tone-lime-icon);
1055
+ }
1056
+ /* tone-scopes:end */
@@ -520,3 +520,44 @@ describe("dark status surfaces carry their tone in hue, not weight", () => {
520
520
  });
521
521
  }
522
522
  });
523
+
524
+ describe("categorical tones are a complete, legible family", () => {
525
+ // gen-ladders.mjs solves these and refuses to write a failing set; this holds
526
+ // the written file to the same floors, so a hand edit inside the generated
527
+ // region fails here before `gen-ladders --check` is even run.
528
+ const CATEGORIES = ["violet", "orange", "teal", "blue", "pink", "brown", "cyan", "lime"];
529
+ const ROLES = ["bg", "bg-hover", "bg-selected", "border", "border-selected", "text", "icon"];
530
+ for (const [theme, spine] of [
531
+ ["dark", DARK],
532
+ ["light", LIGHT],
533
+ ] as const) {
534
+ for (const tone of CATEGORIES) {
535
+ it(`${theme} ${tone}: text and icon clear their floors on every fill`, () => {
536
+ for (const role of ROLES) hexIn(spine, `tone-${tone}-${role}`);
537
+ for (const fill of ["bg", "bg-hover", "bg-selected"]) {
538
+ const under = hexIn(spine, `tone-${tone}-${fill}`);
539
+ expect(
540
+ contrastRatio(hexIn(spine, `tone-${tone}-text`), under),
541
+ `${theme} --tone-${tone}-text on --tone-${tone}-${fill}`,
542
+ ).toBeGreaterThanOrEqual(4.5);
543
+ expect(
544
+ contrastRatio(hexIn(spine, `tone-${tone}-icon`), under),
545
+ `${theme} --tone-${tone}-icon on --tone-${tone}-${fill}`,
546
+ ).toBeGreaterThanOrEqual(3);
547
+ }
548
+ });
549
+ }
550
+ }
551
+ it("keeps the shipped --surface-{violet,orange,teal}-* names on the family, with legible text", () => {
552
+ for (const spine of [DARK, LIGHT]) {
553
+ for (const tone of ["violet", "orange", "teal"]) {
554
+ for (const role of ["bg", "border"]) {
555
+ expect(hexIn(spine, `surface-${tone}-${role}`)).toEqual(hexIn(spine, `tone-${tone}-${role}`));
556
+ }
557
+ expect(
558
+ contrastRatio(hexIn(spine, `surface-${tone}-text`), hexIn(spine, `surface-${tone}-bg`)),
559
+ ).toBeGreaterThanOrEqual(4.5);
560
+ }
561
+ }
562
+ });
563
+ });