@tangle-network/brand 0.6.0 → 0.7.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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,14 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.7.0
4
+
5
+ ### Minor Changes
6
+
7
+ - e199bc7: Fix the dark theme being unresponsive to token changes + harsh on dark surfaces — root cause was the `@theme` layer.
8
+
9
+ - **Single source of truth for semantic tokens.** `theme.css` now maps every shadcn/MD3 utility token (`--color-background/card/border/muted/popover/secondary/accent/destructive/ring/input` + `--color-surface-container*`) onto the `tokens.css` spine via `var()`, instead of leaving them undefined (forcing every app to re-define them) and hardcoding a now-stale `--color-depth-*` copy. Editing the spine in `tokens.css` now actually flows through to `bg-card` / `border-border` / `bg-muted` everywhere.
10
+ - **Comfortable dark surface ladder.** Lift the canvas off near-black (`#0b0b0d` → `#15151a`) and spread the surface/depth/MD3 ladder so panels separate by _fill_, with the border softened (`13%` → `16%` lightness) so it recedes instead of reading as a bright outline on black.
11
+
3
12
  ## 0.6.0
4
13
 
5
14
  ### Minor Changes
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tangle-network/brand",
3
- "version": "0.6.0",
3
+ "version": "0.7.0",
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",
@@ -52,16 +52,47 @@
52
52
  --color-brand-glow: #A5AAFC;
53
53
  --color-brand-emerald: #10B981;
54
54
 
55
- /* Depth stack — flat neutral spine (Tangle Quiet) */
56
- --color-depth-1: #0b0b0d;
57
- --color-depth-2: #141416;
58
- --color-depth-3: #1a1a1d;
59
- --color-depth-4: #202023;
55
+ /* Depth stack — REFERENCE the spine in tokens.css (single source; was a stale
56
+ hardcoded copy that drifted from --depth-* and broke theme retunes). */
57
+ --color-depth-1: var(--depth-1);
58
+ --color-depth-2: var(--depth-2);
59
+ --color-depth-3: var(--depth-3);
60
+ --color-depth-4: var(--depth-4);
61
+
62
+ /* Semantic surface + text roles — map the shadcn/MD3 utility names onto the
63
+ tokens.css spine so `bg-card` / `border-border` / `bg-muted` /
64
+ `bg-surface-container*` / `text-muted-foreground` resolve from ONE source
65
+ here, instead of every consuming app re-defining them (the drift you hit).
66
+ Apps may still override locally; absent an override these are the defaults. */
67
+ --color-background: hsl(var(--background));
68
+ --color-foreground: hsl(var(--foreground));
69
+ --color-card: hsl(var(--card));
70
+ --color-card-foreground: hsl(var(--card-foreground));
71
+ --color-popover: hsl(var(--popover));
72
+ --color-popover-foreground: hsl(var(--popover-foreground));
73
+ --color-primary: hsl(var(--primary));
74
+ --color-primary-foreground: hsl(var(--primary-foreground));
75
+ --color-secondary: hsl(var(--secondary));
76
+ --color-secondary-foreground: hsl(var(--secondary-foreground));
77
+ --color-muted: hsl(var(--muted));
78
+ --color-muted-foreground: hsl(var(--muted-foreground));
79
+ --color-accent: hsl(var(--accent));
80
+ --color-accent-foreground: hsl(var(--accent-foreground));
81
+ --color-destructive: hsl(var(--destructive));
82
+ --color-destructive-foreground: hsl(var(--destructive-foreground));
83
+ --color-border: hsl(var(--border));
84
+ --color-input: hsl(var(--input));
85
+ --color-ring: hsl(var(--ring));
86
+ --color-surface-container-lowest: var(--md3-surface-container-lowest);
87
+ --color-surface-container-low: var(--md3-surface-container-low);
88
+ --color-surface-container: var(--md3-surface-container);
89
+ --color-surface-container-high: var(--md3-surface-container-high);
90
+ --color-surface-container-highest: var(--md3-surface-container-highest);
60
91
 
61
92
  /* Semantic text — use as `text-fg`, `text-fg-muted`, `text-fg-dim` */
62
- --color-fg: #ececee;
63
- --color-fg-muted: #9a9aa2;
64
- --color-fg-dim: #6b6b73;
93
+ --color-fg: var(--text-primary);
94
+ --color-fg-muted: var(--text-muted);
95
+ --color-fg-dim: var(--text-dim);
65
96
 
66
97
  /* Status — use as `text-status-running`, `bg-status-stopped` */
67
98
  --color-status-running: #10B981;
@@ -9,15 +9,15 @@
9
9
  [data-sandbox-ui],
10
10
  [data-theme="dark"],
11
11
  .dark {
12
- --md3-surface: #0a0a14;
13
- --md3-surface-dim: #07070d;
14
- --md3-surface-bright: #1b1a2c;
15
- --md3-surface-container-lowest: #000001;
16
- --md3-surface-container-low: #0d0c18;
17
- --md3-surface-container: #11101e;
18
- --md3-surface-container-high: #171624;
19
- --md3-surface-container-highest: #1f1e30;
20
- --md3-surface-variant: #1f1e30;
12
+ --md3-surface: #16161f;
13
+ --md3-surface-dim: #111119;
14
+ --md3-surface-bright: #2a2940;
15
+ --md3-surface-container-lowest: #101017;
16
+ --md3-surface-container-low: #16161f;
17
+ --md3-surface-container: #1c1b27;
18
+ --md3-surface-container-high: #232231;
19
+ --md3-surface-container-highest: #2c2b3d;
20
+ --md3-surface-variant: #2c2b3d;
21
21
  --md3-on-surface: #fdfdfd;
22
22
  --md3-on-surface-variant: #aaa8b8;
23
23
 
@@ -36,8 +36,8 @@
36
36
  --md3-on-secondary-container: #E8E5FF;
37
37
 
38
38
  --md3-tertiary: #10B981;
39
- --md3-outline: #434260;
40
- --md3-outline-variant: #2A293D;
39
+ --md3-outline: #4a4965;
40
+ --md3-outline-variant: #34324a;
41
41
 
42
42
  --md3-error: #ff5277;
43
43
  --md3-error-dim: #eb2855;
@@ -51,24 +51,24 @@
51
51
  --md3-surface-tint: #818CF8;
52
52
 
53
53
  /* Semantic HSL bridge — flat neutral spine (Tangle Quiet) */
54
- --hsl-background: 240 8% 5%; /* #0b0b0d */
54
+ --hsl-background: 240 7% 9%; /* #15151a canvas — lifted off pure black */
55
55
  --hsl-foreground: 240 6% 93%; /* #ececee */
56
- --hsl-card: 240 5% 8%; /* #141416 surface */
56
+ --hsl-card: 240 5% 13%; /* #1f1f23 surface, clearly above canvas */
57
57
  --hsl-card-foreground: 240 6% 93%;
58
- --hsl-popover: 240 4% 13%; /* #202023 elevated */
58
+ --hsl-popover: 240 5% 17%; /* #28282d elevated */
59
59
  --hsl-popover-foreground: 240 6% 93%;
60
60
  --hsl-primary: 239 84% 67%;
61
61
  --hsl-primary-foreground: 0 0% 100%;
62
- --hsl-secondary: 240 5% 11%; /* #1a1a1d surface-2 */
62
+ --hsl-secondary: 240 5% 15%; /* #242428 surface-2 */
63
63
  --hsl-secondary-foreground: 240 6% 93%;
64
- --hsl-muted: 240 5% 11%; /* #1a1a1d — neutral hover well */
65
- --hsl-muted-foreground: 240 4% 62%; /* #9a9aa2 text-muted */
66
- --hsl-accent: 240 5% 11%; /* neutral hover (indigo lives in accent-surface-strong) */
64
+ --hsl-muted: 240 5% 15%; /* #242428 — neutral hover well */
65
+ --hsl-muted-foreground: 240 4% 64%; /* #9c9ca6 text-muted */
66
+ --hsl-accent: 240 5% 15%; /* neutral hover (indigo lives in accent-surface-strong) */
67
67
  --hsl-accent-foreground: 240 6% 93%;
68
68
  --hsl-destructive: 348 90% 60%;
69
69
  --hsl-destructive-foreground: 0 0% 100%;
70
- --hsl-border: 240 3% 13%; /* hairline ≈ rgba(255,255,255,0.07) */
71
- --hsl-input: 240 5% 11%;
70
+ --hsl-border: 240 5% 16%; /* soft edge — fill carries separation, not the line */
71
+ --hsl-input: 240 5% 15%;
72
72
  --hsl-ring: 239 84% 67%;
73
73
  --hsl-success: 160 84% 39%;
74
74
  --hsl-warning: 40 94% 56%;
@@ -100,20 +100,20 @@
100
100
  --info: var(--hsl-info);
101
101
 
102
102
  /* Sidebar tokens — flat surface + hairline */
103
- --sidebar-background: 240 5% 8%; /* #141416 surface */
103
+ --sidebar-background: 240 6% 11%; /* #1a1a1f surface */
104
104
  --sidebar-foreground: 240 6% 93%;
105
105
  --sidebar-primary: 239 84% 67%;
106
106
  --sidebar-primary-foreground: 0 0% 100%;
107
- --sidebar-accent: 240 5% 11%; /* neutral hover */
107
+ --sidebar-accent: 240 5% 15%; /* neutral hover */
108
108
  --sidebar-accent-foreground: 240 6% 93%;
109
- --sidebar-border: 240 3% 13%; /* hairline */
109
+ --sidebar-border: 240 5% 16%; /* soft edge */
110
110
  --sidebar-ring: 239 84% 67%;
111
111
 
112
112
  /* Depth scale — flat neutral spine (Tangle Quiet) */
113
- --depth-1: #0b0b0d;
114
- --depth-2: #141416;
115
- --depth-3: #1a1a1d;
116
- --depth-4: #202023;
113
+ --depth-1: #15151a;
114
+ --depth-2: #1f1f23;
115
+ --depth-3: #26262b;
116
+ --depth-4: #2e2e34;
117
117
 
118
118
  /* Status colors */
119
119
  --status-running: #10B981;
@@ -172,7 +172,7 @@
172
172
  --accent-text: #b9bffb;
173
173
 
174
174
  /* Surfaces — flat single-neutral (no radial mesh) */
175
- --bg-root: #0b0b0d;
175
+ --bg-root: #15151a;
176
176
  --bg-dark: var(--depth-1);
177
177
  --bg-card: var(--depth-2);
178
178
  --bg-elevated: var(--depth-4);