@tac-ui/tokens 0.1.0 → 1.0.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.
@@ -1,44 +1,37 @@
1
1
  // src/semantic.ts
2
2
  var semanticTokens = {
3
3
  light: {
4
- // ── Canvas & Surface (Off-white paper base) ──
4
+ // ── Canvas & Surface ──
5
5
  background: "#FAFAFA",
6
- // Off-white base
7
6
  backgroundSubtle: "#F4F4F5",
8
- // Slightly darker gray
9
- surface: "#FCFCFC",
10
- // Just faintly off-white surface
7
+ surface: "#FFFFFF",
11
8
  surfaceHover: "#F4F4F5",
12
9
  surfaceBase: "#FAFAFA",
13
- surfaceElevatedLow: "#FCFCFC",
14
- surfaceElevatedMid: "#FCFCFC",
15
- surfaceElevatedHigh: "#FCFCFC",
16
- card: "#FCFCFC",
17
- cardForeground: "#121212",
18
- // Barely off-black
10
+ surfaceElevatedLow: "#FFFFFF",
11
+ surfaceElevatedMid: "#FFFFFF",
12
+ surfaceElevatedHigh: "#FFFFFF",
13
+ card: "#FFFFFF",
14
+ cardForeground: "#18181B",
19
15
  // ── Text ──
20
- foreground: "#121212",
16
+ foreground: "#18181B",
21
17
  muted: "#F4F4F5",
22
18
  mutedForeground: "#71717A",
23
- // ── Brand ──
24
- primary: "#1E232D",
25
- // Iron Navy
26
- primaryHover: "#2A303D",
27
- // Slightly lighter for hover
28
- primaryForeground: "#FAFAFA",
29
- secondary: "#E4E4E7",
30
- // Darkened from F4F4F5 for better visibility
31
- secondaryForeground: "#1E232D",
32
- ring: "#1E232D",
33
- // ── Point / Accent (Steel Navy) ──
34
- point: "#323944",
35
- pointHover: "#4A5361",
36
- pointForeground: "#FAFAFA",
37
- pointSubtle: "rgba(30, 35, 45, 0.08)",
19
+ // ── Brand (Ink Black) ──
20
+ primary: "#18181B",
21
+ primaryHover: "#27272A",
22
+ primaryForeground: "#FFFFFF",
23
+ secondary: "#F4F4F5",
24
+ secondaryForeground: "#18181B",
25
+ ring: "#18181B",
26
+ // ── Point / Accent (Royal Indigo) ──
27
+ point: "#5856D6",
28
+ pointHover: "#4B49B8",
29
+ pointForeground: "#FFFFFF",
30
+ pointSubtle: "rgba(88, 86, 214, 0.1)",
38
31
  // ── Border ──
39
32
  border: "#E4E4E7",
40
33
  input: "#E4E4E7",
41
- // ── Gray Scale ──
34
+ // ── Gray Scale (Zinc) ──
42
35
  gray50: "#FAFAFA",
43
36
  gray100: "#F4F4F5",
44
37
  gray200: "#E4E4E7",
@@ -50,11 +43,11 @@ var semanticTokens = {
50
43
  gray800: "#27272A",
51
44
  gray900: "#18181B",
52
45
  // ── Glass & Effects ──
53
- glassBg: "rgba(252, 252, 252, 0.85)",
54
- glassBorder: "rgba(18, 18, 18, 0.04)",
55
- glassInset: "inset 0 1px 0 rgba(250, 250, 250, 0.6)",
56
- glassPanelShadow: "0 12px 40px rgba(18, 18, 18, 0.04), 0 1px 3px rgba(18, 18, 18, 0.02)",
57
- accentGlow: "0 0 0 transparent",
46
+ glassBg: "rgba(255, 255, 255, 0.85)",
47
+ glassBorder: "rgba(24, 24, 27, 0.04)",
48
+ glassInset: "inset 0 1px 0 rgba(255, 255, 255, 0.6)",
49
+ glassPanelShadow: "0 12px 40px rgba(24, 24, 27, 0.04), 0 1px 3px rgba(24, 24, 27, 0.02)",
50
+ accentGlow: "none",
58
51
  // ── Gradients ──
59
52
  gradientBrand: "none",
60
53
  gradientBrandHover: "none",
@@ -66,105 +59,94 @@ var semanticTokens = {
66
59
  gradientSurface: "none",
67
60
  gradientGlowShadow: "none",
68
61
  // ── Shadow ──
69
- shadowColor: "rgba(18, 18, 18, 0.05)",
62
+ shadowColor: "rgba(24, 24, 27, 0.05)",
70
63
  // ── Status ──
71
- success: "#1A4331",
72
- successBg: "#EAF1EC",
73
- successForeground: "#1A4331",
74
- warning: "#8A6D3B",
75
- warningBg: "#F7F3EA",
76
- warningForeground: "#8A6D3B",
77
- error: "#7C2128",
78
- errorBg: "#F4EAEB",
79
- errorForeground: "#7C2128",
80
- info: "#121212",
81
- infoBg: "#FAFAFA",
82
- infoForeground: "#121212",
64
+ success: "#166534",
65
+ successBg: "#DCFCE7",
66
+ successForeground: "#166534",
67
+ warning: "#854D0E",
68
+ warningBg: "#FEF9C3",
69
+ warningForeground: "#854D0E",
70
+ error: "#991B1B",
71
+ errorBg: "#FEE2E2",
72
+ errorForeground: "#991B1B",
73
+ info: "#18181B",
74
+ infoBg: "#F4F4F5",
75
+ infoForeground: "#18181B",
83
76
  // ── Interaction States ──
84
- interactiveHover: "rgba(18, 18, 18, 0.04)",
85
- interactivePressed: "rgba(18, 18, 18, 0.08)",
86
- interactiveFocus: "#121212",
87
- interactiveSurfaceTint: "rgba(18, 18, 18, 0.02)",
88
- interactiveHoverTint: "rgba(18, 18, 18, 0.04)",
89
- focusGlow: "0 0 0 2px #E4E4E7",
90
- pointGlow: "0 0 0 2px rgba(18, 18, 18, 0.15)",
77
+ interactiveHover: "rgba(24, 24, 27, 0.04)",
78
+ interactivePressed: "rgba(24, 24, 27, 0.08)",
79
+ interactiveFocus: "#18181B",
80
+ interactiveSurfaceTint: "rgba(0, 0, 0, 0.02)",
81
+ interactiveHoverTint: "rgba(0, 0, 0, 0.04)",
82
+ focusGlow: "0 0 0 3px rgba(24, 24, 27, 0.1)",
83
+ pointGlow: "0 0 0 2px rgba(88, 86, 214, 0.2)",
91
84
  // ── Components ──
92
- btnPrimarySurface: "#1E232D",
93
- btnPrimaryHover: "#2A303D",
94
- btnPrimaryEnergy: "0 4px 12px rgba(30, 35, 45, 0.16)",
85
+ btnPrimarySurface: "#18181B",
86
+ btnPrimaryHover: "#27272A",
87
+ btnPrimaryEnergy: "0 4px 12px rgba(24, 24, 27, 0.15)",
95
88
  btnPrimaryInset: "none",
96
- btnSecondarySurface: "#E4E4E7",
97
- btnSecondaryHover: "#D4D4D8",
98
- btnOutlineBorder: "#E4E4E7",
99
- btnOutlineBorderHover: "#D4D4D8",
100
- btnOutlineHoverBg: "#F4F4F5",
89
+ btnSecondarySurface: "#F4F4F5",
90
+ btnSecondaryHover: "#E4E4E7",
91
+ btnOutlineBorder: "#D4D4D8",
92
+ btnOutlineBorderHover: "#A1A1AA",
93
+ btnOutlineHoverBg: "#F9FAFB",
101
94
  btnGhostHover: "#F4F4F5",
102
- btnPointSurface: "#323944",
95
+ btnPointSurface: "#5856D6",
103
96
  btnPointBorder: "transparent",
104
- btnPointHoverSurface: "#4A5361",
97
+ btnPointHoverSurface: "#4B49B8",
105
98
  btnPointHoverBorder: "transparent",
106
- btnPointEnergy: "0 4px 12px rgba(50, 57, 68, 0.2)",
107
- btnDestructiveSurface: "#7C2128",
108
- btnDestructiveHover: "#5B171D",
109
- inputBg: "#FCFCFC",
110
- inputBorderRest: "#E4E4E7",
99
+ btnPointEnergy: "0 4px 12px rgba(88, 86, 214, 0.2)",
100
+ btnDestructiveSurface: "#DC2626",
101
+ btnDestructiveHover: "#B91C1C",
102
+ inputBg: "#F4F4F5",
103
+ inputBorderRest: "#D4D4D8",
111
104
  inputBorderHover: "#A1A1AA",
112
- inputHoverGlow: "0 0 0 2px #F4F4F5",
113
- inputFocusGlow: "0 0 0 2px #E4E4E7",
114
- inputErrorGlow: "0 0 0 2px #F4EAEB",
115
- dropdownBg: "#FCFCFC",
116
- dropdownShadow: "0 20px 25px -5px rgba(18, 18, 18, 0.08), 0 0 0 1px rgba(18, 18, 18, 0.03)",
105
+ inputHoverGlow: "0 0 0 2px rgba(0, 0, 0, 0.04)",
106
+ inputFocusGlow: "0 0 0 2px rgba(24, 24, 27, 0.15)",
107
+ inputErrorGlow: "0 0 0 2px #FEE2E2",
108
+ dropdownBg: "#FFFFFF",
109
+ dropdownShadow: "0 20px 25px -5px rgba(24, 24, 27, 0.08), 0 0 0 1px rgba(24, 24, 27, 0.03)",
117
110
  dropdownItemHover: "#F4F4F5",
118
111
  cardAccentBorder: "#E4E4E7",
119
112
  cardAccentGlow: "none",
120
113
  cardAccentHoverBorder: "#D4D4D8",
121
- cardAccentHoverGlow: "0 8px 24px rgba(18, 18, 18, 0.06)"
114
+ cardAccentHoverGlow: "0 8px 24px rgba(24, 24, 27, 0.06)"
122
115
  },
123
116
  dark: {
124
- // ── Canvas & Surface (High-Contrast Charcoal Base) ──
125
- background: "#121214",
126
- // Off-black charcoal
127
- backgroundSubtle: "#18181A",
128
- // Zinc 900
117
+ // ── Canvas & Surface ──
118
+ background: "#09090B",
119
+ backgroundSubtle: "#18181B",
129
120
  surface: "#27272A",
130
- // Zinc 800 - distinct from subtle background
131
121
  surfaceHover: "#3F3F46",
132
- // Zinc 700
133
- surfaceBase: "#121214",
134
- surfaceElevatedLow: "#18181A",
122
+ surfaceBase: "#09090B",
123
+ surfaceElevatedLow: "#18181B",
135
124
  surfaceElevatedMid: "#27272A",
136
125
  surfaceElevatedHigh: "#3F3F46",
137
- card: "#18181A",
138
- // Zinc 900
139
- cardForeground: "#F4F4F5",
140
- // Off-white
126
+ card: "#18181B",
127
+ cardForeground: "#FAFAFA",
141
128
  // ── Text ──
142
- foreground: "#F4F4F5",
143
- // Off-white
129
+ foreground: "#FAFAFA",
144
130
  muted: "#27272A",
145
- // Zinc 800
146
131
  mutedForeground: "#A1A1AA",
147
- // Zinc 400
148
- // ── Brand (Iron Navy Light / Cold Steel Blue-Gray) ──
149
- primary: "#B8C4D9",
150
- primaryHover: "#D1DBE8",
151
- primaryForeground: "#1E232D",
152
- // Deep Iron Navy text
132
+ // ── Brand (Inverted — Near-White) ──
133
+ primary: "#FAFAFA",
134
+ primaryHover: "#E4E4E7",
135
+ primaryForeground: "#18181B",
153
136
  secondary: "#27272A",
154
- secondaryForeground: "#B8C4D9",
155
- ring: "#B8C4D9",
156
- // ── Point / Accent (Lighter Steel Blue-Gray) ──
157
- point: "#D1DBE8",
158
- pointHover: "#E6ECEF",
159
- pointForeground: "#1E232D",
160
- pointSubtle: "rgba(209, 219, 232, 0.12)",
161
- // ── Border (Highly Visible) ──
137
+ secondaryForeground: "#FAFAFA",
138
+ ring: "#FAFAFA",
139
+ // ── Point / Accent (Royal Indigo) ──
140
+ point: "#5E5CE6",
141
+ pointHover: "#7A78F0",
142
+ pointForeground: "#FFFFFF",
143
+ pointSubtle: "rgba(94, 92, 230, 0.15)",
144
+ // ── Border ──
162
145
  border: "#3F3F46",
163
- // Zinc 700
164
146
  input: "#3F3F46",
165
- // ── Gray Scale (Zinc) ──
166
- gray50: "#121214",
167
- gray100: "#18181A",
147
+ // ── Gray Scale (Zinc Inverted) ──
148
+ gray50: "#09090B",
149
+ gray100: "#18181B",
168
150
  gray200: "#27272A",
169
151
  gray300: "#3F3F46",
170
152
  gray400: "#52525B",
@@ -174,7 +156,7 @@ var semanticTokens = {
174
156
  gray800: "#E4E4E7",
175
157
  gray900: "#FAFAFA",
176
158
  // ── Glass & Effects ──
177
- glassBg: "rgba(18, 18, 20, 0.85)",
159
+ glassBg: "rgba(9, 9, 11, 0.85)",
178
160
  glassBorder: "rgba(250, 250, 250, 0.1)",
179
161
  glassInset: "inset 0 1px 0 rgba(250, 250, 250, 0.05)",
180
162
  glassPanelShadow: "0 20px 40px rgba(0, 0, 0, 0.8)",
@@ -191,13 +173,13 @@ var semanticTokens = {
191
173
  gradientGlowShadow: "none",
192
174
  // ── Shadow ──
193
175
  shadowColor: "rgba(0, 0, 0, 0.9)",
194
- // ── Status (Deep & Clear) ──
195
- success: "#34D399",
196
- successBg: "rgba(52, 211, 153, 0.15)",
197
- successForeground: "#34D399",
198
- warning: "#FBBF24",
199
- warningBg: "rgba(251, 191, 36, 0.15)",
200
- warningForeground: "#FBBF24",
176
+ // ── Status ──
177
+ success: "#4ADE80",
178
+ successBg: "rgba(74, 222, 128, 0.15)",
179
+ successForeground: "#4ADE80",
180
+ warning: "#FACC15",
181
+ warningBg: "rgba(250, 204, 21, 0.15)",
182
+ warningForeground: "#FACC15",
201
183
  error: "#F87171",
202
184
  errorBg: "rgba(248, 113, 113, 0.15)",
203
185
  errorForeground: "#F87171",
@@ -208,36 +190,36 @@ var semanticTokens = {
208
190
  interactiveHover: "rgba(250, 250, 250, 0.08)",
209
191
  interactivePressed: "rgba(250, 250, 250, 0.12)",
210
192
  interactiveFocus: "#FAFAFA",
211
- interactiveSurfaceTint: "rgba(250, 250, 250, 0.04)",
212
- interactiveHoverTint: "rgba(250, 250, 250, 0.08)",
213
- focusGlow: "0 0 0 2px #3F3F46",
214
- pointGlow: "0 0 0 2px rgba(250, 250, 250, 0.3)",
193
+ interactiveSurfaceTint: "rgba(255, 255, 255, 0.04)",
194
+ interactiveHoverTint: "rgba(255, 255, 255, 0.08)",
195
+ focusGlow: "0 0 0 3px rgba(250, 250, 250, 0.15)",
196
+ pointGlow: "0 0 0 2px rgba(94, 92, 230, 0.3)",
215
197
  // ── Components ──
216
- btnPrimarySurface: "#B8C4D9",
217
- btnPrimaryHover: "#D1DBE8",
218
- btnPrimaryEnergy: "0 4px 16px rgba(184, 196, 217, 0.25)",
198
+ btnPrimarySurface: "#FAFAFA",
199
+ btnPrimaryHover: "#E4E4E7",
200
+ btnPrimaryEnergy: "0 4px 16px rgba(250, 250, 250, 0.1)",
219
201
  btnPrimaryInset: "none",
220
202
  btnSecondarySurface: "#27272A",
221
203
  btnSecondaryHover: "#3F3F46",
222
204
  btnOutlineBorder: "#3F3F46",
223
205
  btnOutlineBorderHover: "#52525B",
224
- btnOutlineHoverBg: "#27272A",
206
+ btnOutlineHoverBg: "#18181B",
225
207
  btnGhostHover: "#27272A",
226
- btnPointSurface: "#D1DBE8",
208
+ btnPointSurface: "#5E5CE6",
227
209
  btnPointBorder: "transparent",
228
- btnPointHoverSurface: "#E6ECEF",
210
+ btnPointHoverSurface: "#7A78F0",
229
211
  btnPointHoverBorder: "transparent",
230
- btnPointEnergy: "0 4px 16px rgba(209, 219, 232, 0.25)",
231
- btnDestructiveSurface: "#7C2128",
232
- btnDestructiveHover: "#9A2A32",
233
- inputBg: "#18181A",
212
+ btnPointEnergy: "0 4px 16px rgba(94, 92, 230, 0.3)",
213
+ btnDestructiveSurface: "#EF4444",
214
+ btnDestructiveHover: "#F87171",
215
+ inputBg: "#27272A",
234
216
  inputBorderRest: "#3F3F46",
235
217
  inputBorderHover: "#52525B",
236
- inputHoverGlow: "0 0 0 2px #27272A",
237
- inputFocusGlow: "0 0 0 2px #3F3F46",
238
- inputErrorGlow: "0 0 0 2px #3E1014",
239
- dropdownBg: "#18181A",
240
- dropdownShadow: "0 20px 25px -5px rgba(0, 0, 0, 0.9), 0 0 0 1px rgba(250,250,250,0.1)",
218
+ inputHoverGlow: "0 0 0 2px rgba(255, 255, 255, 0.04)",
219
+ inputFocusGlow: "0 0 0 2px rgba(250, 250, 250, 0.15)",
220
+ inputErrorGlow: "0 0 0 2px rgba(248, 113, 113, 0.3)",
221
+ dropdownBg: "#18181B",
222
+ dropdownShadow: "0 20px 25px -5px rgba(0, 0, 0, 0.9), 0 0 0 1px rgba(250, 250, 250, 0.1)",
241
223
  dropdownItemHover: "#27272A",
242
224
  cardAccentBorder: "#3F3F46",
243
225
  cardAccentGlow: "none",
@@ -249,25 +231,25 @@ var semanticTokens = {
249
231
  // src/component.ts
250
232
  var component = {
251
233
  button: {
252
- sm: { height: 34, paddingX: 18, paddingY: 8, fontSize: 12, borderRadius: 8, iconSize: 16 },
253
- md: { height: 42, paddingX: 28, paddingY: 12, fontSize: 13, borderRadius: 10, iconSize: 18 },
254
- lg: { height: 50, paddingX: 36, paddingY: 16, fontSize: 15, borderRadius: 14, iconSize: 20 }
234
+ sm: { height: 32, paddingX: 16, paddingY: 6, fontSize: 13, borderRadius: 8, iconSize: 16 },
235
+ md: { height: 44, paddingX: 20, paddingY: 10, fontSize: 15, borderRadius: 12, iconSize: 18 },
236
+ lg: { height: 50, paddingX: 28, paddingY: 14, fontSize: 17, borderRadius: 14, iconSize: 20 }
255
237
  },
256
238
  input: {
257
- height: 42,
258
- paddingX: 18,
239
+ height: 44,
240
+ paddingX: 16,
259
241
  paddingY: 12,
260
- fontSize: 14,
261
- borderRadius: 10,
242
+ fontSize: 15,
243
+ borderRadius: 12,
262
244
  iconSize: 18,
263
245
  iconPadding: 42
264
246
  },
265
247
  card: {
266
- padding: 28,
267
- gap: 20,
248
+ padding: 24,
249
+ gap: 16,
268
250
  borderRadius: 16,
269
251
  titleSize: 17,
270
- bodySize: 14
252
+ bodySize: 15
271
253
  },
272
254
  badge: {
273
255
  paddingX: 12,
@@ -281,29 +263,29 @@ var component = {
281
263
  wrapperPaddingY: 10,
282
264
  wrapperRadius: 10,
283
265
  gap: 12,
284
- size: 20,
266
+ size: 22,
285
267
  borderRadius: 6,
286
- borderWidth: 2,
268
+ borderWidth: 1.5,
287
269
  iconSize: 14,
288
- labelSize: 14
270
+ labelSize: 15
289
271
  },
290
272
  radio: {
291
273
  wrapperPaddingX: 16,
292
274
  wrapperPaddingY: 10,
293
275
  wrapperRadius: 10,
294
276
  gap: 12,
295
- size: 20,
296
- borderWidth: 2,
277
+ size: 22,
278
+ borderWidth: 1.5,
297
279
  checkedBorderWidth: 6,
298
- labelSize: 14
280
+ labelSize: 15
299
281
  },
300
282
  switch: {
301
- width: 52,
302
- height: 32,
303
- thumbSize: 24,
304
- thumbOffset: 4,
305
- thumbTranslateOn: 24,
306
- thumbTranslateOff: 4
283
+ width: 51,
284
+ height: 31,
285
+ thumbSize: 27,
286
+ thumbOffset: 2,
287
+ thumbTranslateOn: 22,
288
+ thumbTranslateOff: 2
307
289
  },
308
290
  chip: {
309
291
  paddingX: 16,
@@ -325,14 +307,14 @@ var component = {
325
307
  paddingY: 8,
326
308
  fontSize: 13,
327
309
  containerPadding: 4,
328
- containerRadius: 14,
329
- itemRadius: 10
310
+ containerRadius: 10,
311
+ itemRadius: 8
330
312
  }
331
313
  },
332
314
  slider: {
333
- trackHeight: 6,
334
- thumbSize: 20,
335
- thumbBorderWidth: 2
315
+ trackHeight: 4,
316
+ thumbSize: 28,
317
+ thumbBorderWidth: 0
336
318
  },
337
319
  tooltip: {
338
320
  simple: { paddingX: 14, paddingY: 8, fontSize: 13, borderRadius: 10 },
@@ -349,12 +331,12 @@ var component = {
349
331
  },
350
332
  divider: {
351
333
  thickness: 1,
352
- thickThickness: 8,
334
+ thickThickness: 1,
353
335
  insetMargin: 64,
354
336
  labelSize: 12
355
337
  },
356
338
  progress: {
357
- linear: { height: 8, borderRadius: 9999 },
339
+ linear: { height: 6, borderRadius: 9999 },
358
340
  circular: { strokeWidth: 4, textSize: 14 }
359
341
  },
360
342
  snackbar: {
@@ -362,7 +344,7 @@ var component = {
362
344
  paddingRight: 18,
363
345
  paddingBottom: 16,
364
346
  paddingLeft: 22,
365
- borderRadius: 14,
347
+ borderRadius: 12,
366
348
  gap: 12,
367
349
  iconSize: 18,
368
350
  messageSize: 14,
@@ -372,15 +354,15 @@ var component = {
372
354
  actionSize: 13
373
355
  },
374
356
  dialog: {
375
- width: 380,
376
- borderRadius: 20,
377
- headerPaddingX: 28,
378
- headerPaddingY: 24,
379
- footerPaddingX: 28,
357
+ width: 320,
358
+ borderRadius: 14,
359
+ headerPaddingX: 24,
360
+ headerPaddingY: 20,
361
+ footerPaddingX: 24,
380
362
  footerPaddingY: 20,
381
363
  titleSize: 17,
382
- descSize: 14,
383
- footerGap: 14
364
+ descSize: 13,
365
+ footerGap: 8
384
366
  },
385
367
  animatedToggle: {
386
368
  size: 40,
@@ -402,19 +384,19 @@ var typography = {
402
384
  sm: { size: 40, weight: 600, lineHeight: 1.15, letterSpacing: -0.02 }
403
385
  },
404
386
  heading: {
405
- h1: { size: 32, weight: 700, lineHeight: 1.2, letterSpacing: -0.025 },
387
+ h1: { size: 34, weight: 700, lineHeight: 1.2, letterSpacing: -0.025 },
406
388
  h2: { size: 28, weight: 600, lineHeight: 1.22, letterSpacing: -0.02 },
407
- h3: { size: 24, weight: 600, lineHeight: 1.25, letterSpacing: -0.015 },
408
- h4: { size: 20, weight: 500, lineHeight: 1.3, letterSpacing: -0.01 },
409
- h5: { size: 16, weight: 500, lineHeight: 1.35, letterSpacing: -5e-3 },
410
- h6: { size: 14, weight: 500, lineHeight: 1.4, letterSpacing: 0 }
389
+ h3: { size: 22, weight: 600, lineHeight: 1.25, letterSpacing: -0.015 },
390
+ h4: { size: 20, weight: 600, lineHeight: 1.3, letterSpacing: -0.01 },
391
+ h5: { size: 17, weight: 600, lineHeight: 1.35, letterSpacing: -5e-3 },
392
+ h6: { size: 15, weight: 600, lineHeight: 1.4, letterSpacing: 0 }
411
393
  },
412
394
  body: {
413
- lg: { size: 17, weight: 400, lineHeight: 1.65, letterSpacing: -0.01 },
414
- md: { size: 15, weight: 400, lineHeight: 1.6, letterSpacing: -5e-3 },
415
- sm: { size: 13, weight: 400, lineHeight: 1.55, letterSpacing: 0 }
395
+ lg: { size: 17, weight: 400, lineHeight: 1.4, letterSpacing: -0.02 },
396
+ md: { size: 15, weight: 400, lineHeight: 1.4, letterSpacing: -0.01 },
397
+ sm: { size: 13, weight: 400, lineHeight: 1.4, letterSpacing: 0 }
416
398
  },
417
- caption: { size: 11, weight: 400, lineHeight: 1.5, letterSpacing: 0.01 },
399
+ caption: { size: 12, weight: 400, lineHeight: 1.4, letterSpacing: 0.01 },
418
400
  fontWeight: {
419
401
  light: "300",
420
402
  regular: "400",
@@ -438,9 +420,9 @@ var spacing = {
438
420
  var radius = {
439
421
  none: 0,
440
422
  xs: 4,
441
- sm: 6,
442
- m: 10,
443
- lg: 14,
423
+ sm: 8,
424
+ m: 12,
425
+ lg: 16,
444
426
  xl: 20,
445
427
  "2xl": 24,
446
428
  pill: 9999
@@ -471,12 +453,12 @@ var containers = {
471
453
  // src/elevation.ts
472
454
  var elevation = {
473
455
  light: {
474
- sm: "0 1px 2px rgba(94,94,94,0.04), 0 1px 3px rgba(94,94,94,0.02)",
475
- m: "0 2px 4px rgba(94,94,94,0.04), 0 8px 16px rgba(94,94,94,0.04)",
476
- lg: "0 4px 8px rgba(94,94,94,0.05), 0 16px 32px rgba(94,94,94,0.06)",
477
- xl: "0 8px 16px rgba(94,94,94,0.06), 0 24px 48px rgba(94,94,94,0.08)",
478
- glass: "0 4px 24px rgba(94,94,94,0.05), 0 1px 2px rgba(94,94,94,0.02)",
479
- glassLg: "0 8px 32px rgba(94,94,94,0.08), 0 2px 4px rgba(94,94,94,0.03)"
456
+ sm: "0 1px 3px rgba(0,0,0,0.04), 0 1px 2px rgba(0,0,0,0.02)",
457
+ m: "0 4px 12px rgba(0,0,0,0.05), 0 2px 4px rgba(0,0,0,0.03)",
458
+ lg: "0 8px 24px rgba(0,0,0,0.06), 0 4px 8px rgba(0,0,0,0.04)",
459
+ xl: "0 16px 40px rgba(0,0,0,0.08), 0 8px 16px rgba(0,0,0,0.04)",
460
+ glass: "0 8px 32px rgba(0,0,0,0.05), 0 2px 4px rgba(0,0,0,0.02)",
461
+ glassLg: "0 12px 48px rgba(0,0,0,0.08), 0 4px 8px rgba(0,0,0,0.04)"
480
462
  },
481
463
  dark: {
482
464
  sm: "0 1px 2px rgba(0,0,0,0.20), 0 1px 3px rgba(0,0,0,0.14)",
@@ -501,8 +483,8 @@ var zIndex = {
501
483
  };
502
484
 
503
485
  // src/motion.ts
504
- var DIA_SPRING_DEFAULT = { type: "spring", stiffness: 260, damping: 34, mass: 1 };
505
- var DIA_SPRING_LIGHT = { type: "spring", stiffness: 260, damping: 34, mass: 0.5 };
486
+ var TAC_SPRING_DEFAULT = { type: "spring", stiffness: 300, damping: 35, mass: 1 };
487
+ var TAC_SPRING_LIGHT = { type: "spring", stiffness: 350, damping: 35, mass: 0.5 };
506
488
  var motion = {
507
489
  duration: {
508
490
  instant: 80,
@@ -512,43 +494,43 @@ var motion = {
512
494
  complex: 450
513
495
  },
514
496
  easing: {
515
- /** Dia's signature curve — slight overshoot with smooth natural deceleration. */
516
- standard: "cubic-bezier(0.22, 1, 0.36, 1)",
497
+ /** Slight overshoot with smooth natural deceleration. */
498
+ standard: "cubic-bezier(0.25, 0.1, 0.25, 1)",
517
499
  /** Exit easing — fast acceleration, abrupt departure. */
518
- easeIn: "cubic-bezier(0.55, 0, 1, 0.45)",
500
+ easeIn: "cubic-bezier(0.42, 0, 1, 1)",
519
501
  /** Entrance easing — gentle deceleration without overshoot. */
520
- easeOut: "cubic-bezier(0, 0.55, 0.45, 1)",
502
+ easeOut: "cubic-bezier(0, 0, 0.58, 1)",
521
503
  /** Symmetric ease — smooth in both directions. */
522
504
  easeInOut: "cubic-bezier(0.65, 0, 0.35, 1)",
523
- /** Playful overshoot — for toggles, switches, confirmatory feedback. */
524
- bounce: "cubic-bezier(0.34, 1.56, 0.64, 1)",
525
- /** Stronger spring feel — deliberate physical presence. */
526
- spring: "cubic-bezier(0.22, 1.2, 0.36, 1)",
505
+ /** Restrained overshoot — for toggles, switches, confirmatory feedback. */
506
+ bounce: "cubic-bezier(0.34, 1.3, 0.64, 1)",
507
+ /** Subtle spring feel — deliberate physical presence. */
508
+ spring: "cubic-bezier(0.22, 1.1, 0.36, 1)",
527
509
  /** Subtle rubber-band — elastic resistance with quick snap back. */
528
- elastic: "cubic-bezier(0.68, -0.2, 0.265, 1.2)"
510
+ elastic: "cubic-bezier(0.68, -0.1, 0.265, 1.1)"
529
511
  },
530
- /** Framer Motion spring presets calibrated for Dia-style organic feel. */
512
+ /** Framer Motion spring presets tuned with higher damping for natural deceleration. */
531
513
  spring: {
532
514
  /** Quick interactive feedback — subtle and responsive. */
533
- snappy: { type: "spring", stiffness: 260, damping: 28 },
515
+ snappy: { type: "spring", stiffness: 260, damping: 32 },
534
516
  /** Smooth state changes — gentle spring resolution. */
535
- gentle: { type: "spring", stiffness: 180, damping: 26 },
517
+ gentle: { type: "spring", stiffness: 180, damping: 30 },
536
518
  /** Toggle/switch feel — restrained with minimal bounce. */
537
- bouncy: { type: "spring", stiffness: 260, damping: 24 },
519
+ bouncy: { type: "spring", stiffness: 260, damping: 30 },
538
520
  /** Large layout shifts — deliberate mass with controlled deceleration. */
539
- slow: { type: "spring", stiffness: 140, damping: 24 },
521
+ slow: { type: "spring", stiffness: 140, damping: 28 },
540
522
  /** Press/release with life — elastic resistance, mass gives it weight. */
541
- elastic: { type: "spring", stiffness: 220, damping: 22, mass: 0.8 },
523
+ elastic: { type: "spring", stiffness: 220, damping: 28, mass: 0.8 },
542
524
  /** Elements appearing — spring resolves cleanly with organic arrival. */
543
- entrance: { type: "spring", stiffness: 180, damping: 24, mass: 0.9 }
525
+ entrance: { type: "spring", stiffness: 180, damping: 28, mass: 0.9 }
544
526
  },
545
- /** Mass-differentiated spring configs for Dia Browser-like physics interactions. */
546
- diaSpring: {
547
- default: DIA_SPRING_DEFAULT,
548
- light: DIA_SPRING_LIGHT,
549
- heavy: { type: "spring", stiffness: 220, damping: 32, mass: 1.5 },
550
- magnetic: { type: "spring", stiffness: 340, damping: 38, mass: 0.8 },
551
- entrance: { type: "spring", stiffness: 180, damping: 28, mass: 1.2 }
527
+ /** Mass-differentiated spring configs tuned higher damping for smooth deceleration. */
528
+ tacSpring: {
529
+ default: TAC_SPRING_DEFAULT,
530
+ light: TAC_SPRING_LIGHT,
531
+ heavy: { type: "spring", stiffness: 250, damping: 38, mass: 1.5 },
532
+ magnetic: { type: "spring", stiffness: 400, damping: 40, mass: 0.8 },
533
+ entrance: { type: "spring", stiffness: 220, damping: 32, mass: 1.2 }
552
534
  },
553
535
  /** Standard animation keyframe presets for reuse across components. */
554
536
  keyframes: {
@@ -565,13 +547,25 @@ var motion = {
565
547
  to: { opacity: "1", filter: "blur(0px)", transform: "scale(1)" }
566
548
  },
567
549
  /** Slide entrance from below — element springs up from offset position. */
568
- slideInUp: { from: { opacity: "0", transform: "translateY(5px)" }, to: { opacity: "1", transform: "translateY(0)" } },
550
+ slideInUp: {
551
+ from: { opacity: "0", transform: "translateY(5px)" },
552
+ to: { opacity: "1", transform: "translateY(0)" }
553
+ },
569
554
  /** Slide entrance from above — element springs down from offset position. */
570
- slideInDown: { from: { opacity: "0", transform: "translateY(-5px)" }, to: { opacity: "1", transform: "translateY(0)" } },
555
+ slideInDown: {
556
+ from: { opacity: "0", transform: "translateY(-5px)" },
557
+ to: { opacity: "1", transform: "translateY(0)" }
558
+ },
571
559
  /** Slide entrance from left — element springs in from offset. */
572
- slideInLeft: { from: { opacity: "0", transform: "translateX(-5px)" }, to: { opacity: "1", transform: "translateX(0)" } },
560
+ slideInLeft: {
561
+ from: { opacity: "0", transform: "translateX(-5px)" },
562
+ to: { opacity: "1", transform: "translateX(0)" }
563
+ },
573
564
  /** Slide entrance from right — element springs in from offset. */
574
- slideInRight: { from: { opacity: "0", transform: "translateX(5px)" }, to: { opacity: "1", transform: "translateX(0)" } },
565
+ slideInRight: {
566
+ from: { opacity: "0", transform: "translateX(5px)" },
567
+ to: { opacity: "1", transform: "translateX(0)" }
568
+ },
575
569
  /** Scale entrance — element inflates from slight compression. */
576
570
  scaleIn: { from: { opacity: "0", transform: "scale(0.98)" }, to: { opacity: "1", transform: "scale(1)" } },
577
571
  scaleOut: { from: { opacity: "1", transform: "scale(1)" }, to: { opacity: "0", transform: "scale(0.98)" } },
@@ -639,66 +633,75 @@ var motion = {
639
633
  },
640
634
  /** Layout morphing spring config — for FLIP transitions between components. */
641
635
  morph: {
642
- /** Spring config for morph transitions — references diaSpring.default. */
643
- spring: DIA_SPRING_DEFAULT,
636
+ /** Spring config for morph transitions — references tacSpring.default. */
637
+ spring: TAC_SPRING_DEFAULT,
644
638
  /** Faster variant for small elements. */
645
- springFast: { type: "spring", stiffness: 400, damping: 35, mass: 0.8 }
639
+ springFast: { type: "spring", stiffness: 450, damping: 35, mass: 0.8 }
646
640
  }
647
641
  };
648
- var diaSpring = motion.diaSpring;
642
+ var tacSpring = motion.tacSpring;
643
+ var springConfigs = {
644
+ default: { stiffness: 300, damping: 35, mass: 1 },
645
+ snappy: { stiffness: 260, damping: 32, mass: 1 },
646
+ gentle: { stiffness: 180, damping: 30, mass: 1 },
647
+ bouncy: { stiffness: 260, damping: 30, mass: 1 },
648
+ magnetic: { stiffness: 400, damping: 40, mass: 0.8 },
649
+ entrance: { stiffness: 180, damping: 28, mass: 0.9 },
650
+ light: { stiffness: 350, damping: 35, mass: 0.5 },
651
+ heavy: { stiffness: 250, damping: 38, mass: 1.5 },
652
+ elastic: { stiffness: 220, damping: 28, mass: 0.8 },
653
+ slow: { stiffness: 140, damping: 28, mass: 1 }
654
+ };
649
655
 
650
656
  // src/chart.ts
651
657
  var chart = {
652
658
  light: {
653
659
  colors: [
654
- "#1E232D",
655
- // chart-1: Iron Navy (Primary)
656
- "#323944",
657
- // chart-2: Steel Navy (Secondary)
658
- "#4A5361",
659
- // chart-3: Slate Navy (Tertiary)
660
+ "#18181B",
661
+ // chart-1: Ink (Primary)
662
+ "#5856D6",
663
+ // chart-2: Royal Indigo (Point)
664
+ "#854D0E",
665
+ // chart-3: Dark Gold
666
+ "#0F766E",
667
+ // chart-4: Deep Teal (cool contrast)
660
668
  "#71717A",
661
- // chart-4: Zinc 500 (Accent 1)
662
- "#A1A1AA",
663
- // chart-5: Zinc 400 (Accent 2)
664
- "#D4D4D8",
665
- // chart-6: Zinc 300 (Fill)
666
- "#0F172A",
667
- // chart-7: Deep Slate 900 (Deep Fill)
668
- "#E4E4E7"
669
- // chart-8: Zinc 200 (Light Fill)
669
+ // chart-5: Zinc 500 (Neutral)
670
+ "#4B49B8",
671
+ // chart-6: Deep Indigo
672
+ "#44403C",
673
+ // chart-7: Stone 700 (Warm gray)
674
+ "#D4D4D8"
675
+ // chart-8: Zinc 300 (Light fill)
670
676
  ],
671
- grid: "rgba(30, 35, 45, 0.04)",
672
- axis: "rgba(30, 35, 45, 0.08)",
677
+ grid: "rgba(24, 24, 27, 0.04)",
678
+ axis: "rgba(24, 24, 27, 0.08)",
673
679
  label: "#71717A",
674
- // Zinc 500
675
680
  tooltipBg: "#FFFFFF"
676
681
  },
677
682
  dark: {
678
683
  colors: [
679
- "#B8C4D9",
680
- // chart-1: Bright Ice Navy (Primary)
681
- "#D1DBE8",
682
- // chart-2: Ice Steel (Secondary)
683
- "#E6ECEF",
684
- // chart-3: Pale Silver (Tertiary)
684
+ "#FAFAFA",
685
+ // chart-1: Near-white (Primary)
686
+ "#5E5CE6",
687
+ // chart-2: Royal Indigo (Point)
688
+ "#FCD34D",
689
+ // chart-3: Amber 300 (Gold)
690
+ "#2DD4BF",
691
+ // chart-4: Teal 400 (cool contrast)
685
692
  "#A1A1AA",
686
- // chart-4: Zinc 400 (Accent 1)
687
- "#71717A",
688
- // chart-5: Zinc 500 (Accent 2)
689
- "#808B9D",
690
- // chart-6: Cold Steel (Fill)
691
- "#FFFFFF",
692
- // chart-7: Pure White (Highlight)
693
+ // chart-5: Zinc 400 (Neutral)
694
+ "#7A78F0",
695
+ // chart-6: Light Indigo
696
+ "#78716C",
697
+ // chart-7: Stone 500 (Warm gray)
693
698
  "#52525B"
694
- // chart-8: Zinc 600 (Deep Fill)
699
+ // chart-8: Zinc 600 (Deep fill)
695
700
  ],
696
701
  grid: "rgba(255, 255, 255, 0.04)",
697
702
  axis: "rgba(255, 255, 255, 0.06)",
698
703
  label: "#A1A1AA",
699
- // Zinc 400
700
- tooltipBg: "#18181A"
701
- // Off-black chart tooltip matches dropdowns
704
+ tooltipBg: "#18181B"
702
705
  },
703
706
  lineWidth: 1.5,
704
707
  dotSize: 2.5,
@@ -706,18 +709,4 @@ var chart = {
706
709
  areaOpacity: 0.08
707
710
  };
708
711
 
709
- // src/web/unit-utils.ts
710
- function rem(v) {
711
- return `${v / 16}rem`;
712
- }
713
- function px(v) {
714
- return `${v}px`;
715
- }
716
- function ms(v) {
717
- return `${v}ms`;
718
- }
719
- function unitless(v) {
720
- return `${v}`;
721
- }
722
-
723
- export { breakpoints, chart, component, containers, diaSpring, elevation, elevationLight, grid, motion, ms, px, radius, rem, semanticTokens, spacing, typography, unitless, zIndex };
712
+ export { breakpoints, chart, component, containers, elevation, elevationLight, grid, motion, radius, semanticTokens, spacing, springConfigs, tacSpring, typography, zIndex };