@tangle-network/brand 1.24.0 → 1.24.2

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/CHANGELOG.md CHANGED
@@ -1,5 +1,17 @@
1
1
  # Changelog
2
2
 
3
+ ## 1.24.2
4
+
5
+ ### Patch Changes
6
+
7
+ - 628a522: Canonical dark recessed page `--md3-surface-dim` (and `--md3-surface-container-lowest`, equal by design) #060610/#050509 → #040408. The inset workspace panel (#0a0a14) now sits 4.1 L above its gutter instead of 2.2, so pages on sandbox-ui `WorkspaceSurface` pass surface-ladder in dark.
8
+
9
+ ## 1.24.1
10
+
11
+ ### Patch Changes
12
+
13
+ - ea4b052: Hospitality dark field border #868f87 → #939c94: it measured 2.99:1 on the raised plane (a Select in a card in a card on Connections). Now 4.6:1 on the card and 3.5:1 on raised.
14
+
3
15
  ## 1.24.0
4
16
 
5
17
  ### Minor Changes
@@ -1028,7 +1028,7 @@
1028
1028
  "local_primitives": {}
1029
1029
  },
1030
1030
  "physim": {
1031
- "repo": "tangle-network/physim",
1031
+ "repo": "tangle-network/hardware-agent",
1032
1032
  "roots": [
1033
1033
  "apps/web"
1034
1034
  ],
@@ -37,7 +37,7 @@ export const SURFACES = {
37
37
  legal: { repo: "tangle-network/legal-agent", roots: [""] },
38
38
  insurance: { repo: "tangle-network/insurance-agent", roots: [""] },
39
39
  creative: { repo: "tangle-network/creative-agent", roots: [""] },
40
- physim: { repo: "tangle-network/physim", roots: ["apps/web"] },
40
+ physim: { repo: "tangle-network/hardware-agent", roots: ["apps/web"] },
41
41
  hospitality: { repo: "tangle-network/hospitality-agent", roots: [""] },
42
42
  audits: { repo: "tangle-network/redteam", roots: ["packages/website"] },
43
43
  browser: { repo: "tangle-network/bad-app", roots: [""] },
package/dist/index.d.ts CHANGED
@@ -88,7 +88,7 @@ export declare const palettes: {
88
88
  readonly well: "#12111f";
89
89
  readonly nested: "#221f33";
90
90
  readonly overlay: "#2c2942";
91
- readonly deepest: "#050509";
91
+ readonly deepest: "#040408";
92
92
  readonly hairline: "#2a293d";
93
93
  readonly ink: "#e6e6e6";
94
94
  readonly inkSecondary: "#c7c7c7";
package/dist/index.js CHANGED
@@ -147,7 +147,7 @@ const palettes = {
147
147
  well: "#12111f",
148
148
  nested: "#221f33",
149
149
  overlay: "#2c2942",
150
- deepest: "#050509",
150
+ deepest: "#040408",
151
151
  hairline: "#2a293d",
152
152
  ink: "#e6e6e6",
153
153
  inkSecondary: "#c7c7c7",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tangle-network/brand",
3
- "version": "1.24.0",
3
+ "version": "1.24.2",
4
4
  "description": "Tangle brand system — design tokens, logo, Tailwind v4 theme. Single source of truth for every Tangle app.",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -78,7 +78,7 @@ export const palettes = {
78
78
  well: "#12111f",
79
79
  nested: "#221f33",
80
80
  overlay: "#2c2942",
81
- deepest: "#050509",
81
+ deepest: "#040408",
82
82
  hairline: "#2a293d",
83
83
  ink: "#e6e6e6",
84
84
  inkSecondary: "#c7c7c7",
@@ -1,6 +1,6 @@
1
1
  /* GENERATED by scripts/gen-compat.mjs. Do not edit.
2
2
  * Source: tokens.css + named-themes.css
3
- * SHA-256: 6c805f42ca39150c46bc17c76de5083bf24e8b1e12baa70614d51a27e94777f7
3
+ * SHA-256: d10503737fc4c0704770bb4a56ec1ecf92d8cc4a875de7553f9b30fcb8317b07
4
4
  * Light-default compatibility; all explicit modes remain canonical.
5
5
  */
6
6
  :where(:root),
@@ -25,9 +25,9 @@
25
25
  .dark {
26
26
  color-scheme: dark;
27
27
  --md3-surface: #0a0a14;
28
- --md3-surface-dim: #060610;
28
+ --md3-surface-dim: #040408;
29
29
  --md3-surface-bright: #232238;
30
- --md3-surface-container-lowest: #050509;
30
+ --md3-surface-container-lowest: #040408;
31
31
  --md3-surface-container-low: #12111f;
32
32
  --md3-surface-container: #191826;
33
33
  --md3-surface-container-high: #221f33;
@@ -1215,7 +1215,7 @@
1215
1215
  --bg-root: #0a0a14;
1216
1216
  --bg-card: var(--depth-2);
1217
1217
  --bg-input: hsl(var(--hsl-input));
1218
- --md3-surface-container-lowest: #050509;
1218
+ --md3-surface-container-lowest: #040408;
1219
1219
  --md3-surface-container-low: #12111f;
1220
1220
  --md3-surface-container: #191826;
1221
1221
  --md3-surface-container-high: #221f33;
@@ -1476,8 +1476,8 @@
1476
1476
  --border-subtle: rgba(227, 233, 229, 0.10);
1477
1477
  --border-default: rgba(227, 233, 229, 0.16);
1478
1478
  --border-hover: rgba(227, 233, 229, 0.28);
1479
- --border-strong: #868f87;
1480
- --field-border: #868f87;
1479
+ --border-strong: #939c94;
1480
+ --field-border: #939c94;
1481
1481
  --border-accent: rgba(118, 183, 145, 0.35);
1482
1482
  --border-accent-hover: rgba(118, 183, 145, 0.50);
1483
1483
  --shadow-card: 0 1px 2px rgba(0, 0, 0, 0.45), 0 10px 24px -14px rgba(0, 0, 0, 0.6);
@@ -248,7 +248,7 @@
248
248
  --hsl-ring: 233 100% 87%;
249
249
  --depth-1: #0a0a14; --depth-2: #191826; --depth-3: #221f33; --depth-4: #2c2942;
250
250
  --bg-root: #0a0a14; --bg-card: var(--depth-2); --bg-input: hsl(var(--hsl-input));
251
- --md3-surface-container-lowest: #050509; --md3-surface-container-low: #12111f;
251
+ --md3-surface-container-lowest: #040408; --md3-surface-container-low: #12111f;
252
252
  --md3-surface-container: #191826; --md3-surface-container-high: #221f33;
253
253
  --md3-surface-container-highest: #2c2942; --md3-outline-variant: #2a293d;
254
254
  --border-subtle: rgba(255, 255, 255, 0.10); --border-default: rgba(255, 255, 255, 0.16);
@@ -349,7 +349,7 @@
349
349
  * well (field fill) on page / in card / in raised / in raised-2:
350
350
  * 100 / 94.9 / 100 / 94.9 12.4 / 12.4 / 22.1 / 22.1
351
351
  * hairline 85.0 #c9d0c7 42.0 #494f4a
352
- * field border 60.0 #798479 64.0 #868f87 (both 3.9:1 on the card)
352
+ * field border 60.0 #798479 68.3 #939c94 (light 3.9:1 on the card; dark 4.6:1 on the card, 3.5:1 on raised)
353
353
  * A well is always the opposite step from its parent in light and always
354
354
  * deeper in dark; tokens.css carries the `--well` context that picks one.
355
355
  *
@@ -448,8 +448,8 @@
448
448
  --well-page: #050705; --well-card: #050705; --well-raised: #181c18; --well-raised-2: #181c18;
449
449
  --bg-hover: rgba(118, 183, 145, 0.07); --bg-selection: rgba(118, 183, 145, 0.28);
450
450
  --border-subtle: rgba(227, 233, 229, 0.10); --border-default: rgba(227, 233, 229, 0.16);
451
- --border-hover: rgba(227, 233, 229, 0.28); --border-strong: #868f87;
452
- --field-border: #868f87;
451
+ --border-hover: rgba(227, 233, 229, 0.28); --border-strong: #939c94;
452
+ --field-border: #939c94;
453
453
  --border-accent: rgba(118, 183, 145, 0.35); --border-accent-hover: rgba(118, 183, 145, 0.50);
454
454
  --shadow-card: 0 1px 2px rgba(0, 0, 0, 0.45), 0 10px 24px -14px rgba(0, 0, 0, 0.6);
455
455
  --shadow-raised: 0 1px 2px rgba(0, 0, 0, 0.35);
@@ -39,7 +39,7 @@ const ladder: Array<[role: string, token: string, light: number, dark: number]>
39
39
  ["well in raised", "well-raised", 100, 22.1],
40
40
  ["well in raised-2", "well-raised-2", 94.9, 22.1],
41
41
  ["hairline", "hsl-border", 85.0, 42.0],
42
- ["field border", "field-border", 60.0, 64.0],
42
+ ["field border", "field-border", 60.0, 68.3],
43
43
  ];
44
44
 
45
45
  describe("Hospitality surface ladder", () => {
@@ -88,6 +88,9 @@ describe("Hospitality surface ladder", () => {
88
88
  const border = rgbOf(css, "field-border");
89
89
  expect(contrastRatio(border, rgbOf(css, "hsl-card")), "on the card").toBeGreaterThanOrEqual(3);
90
90
  expect(contrastRatio(border, rgbOf(css, "well-card")), "on the well in a card").toBeGreaterThanOrEqual(3);
91
+ // A field in a card in a card sits on the raised plane: production measured
92
+ // the dark Select edge at 2.99:1 there before #939c94.
93
+ expect(contrastRatio(border, rgbOf(css, "hsl-raised")), "on the raised plane").toBeGreaterThanOrEqual(3);
91
94
  expect(declIn(css, "border-strong")).toBe(declIn(css, "field-border"));
92
95
  });
93
96
 
@@ -285,3 +288,23 @@ describe("Canonical surface ladder (every theme without its own ladder)", () =>
285
288
  expect(contrastRatio(border, spine(css(), "hsl-background")), "on the page").toBeGreaterThanOrEqual(3);
286
289
  });
287
290
  });
291
+
292
+ describe("Inset workspace backdrop (canonical themes)", () => {
293
+ // sandbox-ui WorkspaceSurface / WorkspaceLayout surface="inset" paint the
294
+ // panel with the page colour on a --md3-surface-dim gutter. In dark the two
295
+ // were 2.2 L apart (#0a0a14 on #060610), so every page on the shared panel
296
+ // failed surface-ladder card-step on Creative production.
297
+ const DARK = blockIn(tokens, ".dark");
298
+ const LIGHT = blockIn(tokens, ".light");
299
+ it.each([
300
+ ["dark", () => DARK],
301
+ ["light", () => LIGHT],
302
+ ])("steps the panel at least 3 L off its backdrop in %s", (_mode, css) => {
303
+ const panel = oklchLightness(hslToRgb(hslIn(css(), "hsl-background")));
304
+ const backdrop = oklchLightness(hexIn(css(), "md3-surface-dim"));
305
+ expect(Math.abs(panel - backdrop)).toBeGreaterThanOrEqual(3);
306
+ });
307
+ it("keeps the dark floor tokens equal, as their comment says", () => {
308
+ expect(declIn(DARK, "md3-surface-dim")).toBe(declIn(DARK, "md3-surface-container-lowest"));
309
+ });
310
+ });
@@ -57,14 +57,14 @@
57
57
  .dark {
58
58
  color-scheme: dark;
59
59
  --md3-surface: #0a0a14; /* L0 page canvas — indigo-lifted off black */
60
- --md3-surface-dim: #060610; /* recessed page */
60
+ --md3-surface-dim: #040408; /* recessed page: 4.1 L under the #0a0a14 panel (the inset workspace surface needs >= 3) */
61
61
  --md3-surface-bright: #232238;
62
62
  /* Same value as --md3-surface-dim by design, not by drift: both name the floor
63
63
  * of the ladder, and dark has no plane below it to give them. They stay two
64
64
  * tokens because the roles diverge in light, where the well is paper (#ffffff)
65
65
  * and the recessed page is grey (#dcdee6) — a consumer binding to the wrong one
66
66
  * there gets the wrong surface. */
67
- --md3-surface-container-lowest: #050509; /* L-1 terminal/code well */
67
+ --md3-surface-container-lowest: #040408; /* L-1 terminal/code well */
68
68
  --md3-surface-container-low: #12111f; /* L1 chrome, field wells */
69
69
  --md3-surface-container: #191826; /* L2 resting card */
70
70
  --md3-surface-container-high: #221f33; /* L3 nested / hover */