zark-design 1.0.0 → 2.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.
Files changed (64) hide show
  1. package/bin/cli.js +7 -6
  2. package/package.json +2 -2
  3. package/templates/README.md +264 -0
  4. package/templates/html/components.css +740 -0
  5. package/templates/html/index.html +135 -0
  6. package/templates/html/showcase.html +3550 -0
  7. package/templates/{tokens.css → html/tokens.css} +89 -112
  8. package/templates/jsx/App.example.jsx +229 -0
  9. package/templates/jsx/components/AlertCritical.jsx +43 -0
  10. package/templates/jsx/components/Avatar.jsx +41 -0
  11. package/templates/jsx/components/Badge.jsx +12 -0
  12. package/templates/jsx/components/Banner.jsx +42 -0
  13. package/templates/jsx/components/Button.jsx +43 -0
  14. package/templates/jsx/components/Chip.jsx +28 -0
  15. package/templates/jsx/components/CodeBlock.jsx +42 -0
  16. package/templates/jsx/components/EmptyState.jsx +27 -0
  17. package/templates/jsx/components/Funnel.jsx +55 -0
  18. package/templates/jsx/components/Input.jsx +53 -0
  19. package/templates/jsx/components/KanbanColumn.jsx +51 -0
  20. package/templates/jsx/components/Kbd.jsx +11 -0
  21. package/templates/jsx/components/LeadCard.jsx +79 -0
  22. package/templates/jsx/components/Modal.jsx +57 -0
  23. package/templates/jsx/components/Panel.jsx +25 -0
  24. package/templates/jsx/components/Section.jsx +28 -0
  25. package/templates/jsx/components/Segmented.jsx +26 -0
  26. package/templates/jsx/components/Sidebar.jsx +49 -0
  27. package/templates/jsx/components/Spec.jsx +19 -0
  28. package/templates/jsx/components/StatCard.jsx +44 -0
  29. package/templates/jsx/components/TableActions.jsx +34 -0
  30. package/templates/jsx/components/Tag.jsx +21 -0
  31. package/templates/jsx/components/TagDot.jsx +26 -0
  32. package/templates/jsx/components/Toast.jsx +25 -0
  33. package/templates/jsx/components/Toggle.jsx +29 -0
  34. package/templates/jsx/components.css +740 -0
  35. package/templates/{icons.jsx → jsx/icons.jsx} +20 -9
  36. package/templates/jsx/index.js +31 -0
  37. package/templates/jsx/tokens.css +283 -0
  38. package/templates/jsx/tokens.js +62 -0
  39. package/templates/REFERENCE.md +0 -376
  40. package/templates/SHOWCASE.html +0 -254
  41. package/templates/brand.jsx +0 -89
  42. package/templates/components.jsx +0 -385
  43. package/templates/design-canvas.jsx +0 -789
  44. package/templates/foundations.jsx +0 -363
  45. package/templates/layouts.jsx +0 -232
  46. package/templates/patterns.jsx +0 -268
  47. package/templates/primitives.jsx +0 -306
  48. package/templates/visual-references/pasted-1777605750385-0.png +0 -0
  49. package/templates/visual-references/pasted-1777605766298-0.png +0 -0
  50. package/templates/visual-references/pasted-1777605775820-0.png +0 -0
  51. package/templates/visual-references/pasted-1777605789833-0.png +0 -0
  52. package/templates/visual-references/pasted-1777605802420-0.png +0 -0
  53. package/templates/visual-references/pasted-1777605812470-0.png +0 -0
  54. package/templates/visual-references/pasted-1777605817688-0.png +0 -0
  55. package/templates/visual-references/pasted-1777605828485-0.png +0 -0
  56. package/templates/visual-references/pasted-1777605837137-0.png +0 -0
  57. package/templates/visual-references/pasted-1777605849789-0.png +0 -0
  58. package/templates/visual-references/pasted-1777605864942-0.png +0 -0
  59. package/templates/visual-references/pasted-1777605877920-0.png +0 -0
  60. package/templates/visual-references/pasted-1777605897353-0.png +0 -0
  61. /package/templates/{assets/zark-logo.png → html/assets/logo-zark-laranja.png} +0 -0
  62. /package/templates/{assets → html/assets}/zark-icon.png +0 -0
  63. /package/templates/{visual-references/logo-zark-principal.png → jsx/assets/logo-zark-laranja.png} +0 -0
  64. /package/templates/{visual-references/icon-zark.png → jsx/assets/zark-icon.png} +0 -0
@@ -1,11 +1,16 @@
1
- // Zark Icon Set — outline, 1.5px stroke, 18px viewBox, currentColor
2
- // Modeled after the simple line iconography of the source.
1
+ // ZARK Icon Set — outline · stroke 1.5px · viewBox 18×18 · currentColor
2
+ // Usage:
3
+ // import { Icons } from './icons';
4
+ // <Icons.Search size={16}/>
5
+ // <Icons.Bell size={20} style={{ color: 'var(--ember-500)' }}/>
3
6
 
4
- const Ico = ({ d, size = 16, stroke = 1.5, fill = 'none', children, vb = 18, ...rest }) => (
7
+ import React from 'react';
8
+
9
+ const Ico = ({ size = 16, stroke = 1.5, fill = 'none', children, ...rest }) => (
5
10
  <svg
6
11
  width={size}
7
12
  height={size}
8
- viewBox={`0 0 ${vb} ${vb}`}
13
+ viewBox="0 0 18 18"
9
14
  fill={fill}
10
15
  stroke="currentColor"
11
16
  strokeWidth={stroke}
@@ -14,11 +19,11 @@ const Ico = ({ d, size = 16, stroke = 1.5, fill = 'none', children, vb = 18, ...
14
19
  aria-hidden="true"
15
20
  {...rest}
16
21
  >
17
- {d ? <path d={d} /> : children}
22
+ {children}
18
23
  </svg>
19
24
  );
20
25
 
21
- const Icons = {
26
+ export const Icons = {
22
27
  Search: (p) => <Ico {...p}><circle cx="8" cy="8" r="5"/><path d="M15 15l-3-3"/></Ico>,
23
28
  Home: (p) => <Ico {...p}><path d="M3 9l6-5 6 5v6a1 1 0 0 1-1 1h-3v-4H7v4H4a1 1 0 0 1-1-1V9z"/></Ico>,
24
29
  Play: (p) => <Ico {...p}><circle cx="9" cy="9" r="6.5"/><path d="M7.5 6.5l4 2.5-4 2.5z" fill="currentColor"/></Ico>,
@@ -53,7 +58,14 @@ const Icons = {
53
58
  Stop: (p) => <Ico {...p}><rect x="4" y="4" width="10" height="10" rx="1.5"/></Ico>,
54
59
  Share: (p) => <Ico {...p}><path d="M9 2v9M5 6l4-4 4 4M3 11v3a1 1 0 0 0 1 1h10a1 1 0 0 0 1-1v-3"/></Ico>,
55
60
  Warning: (p) => <Ico {...p}><path d="M9 2l7 13H2L9 2z"/><path d="M9 7v3"/><circle cx="9" cy="13" r="0.6" fill="currentColor"/></Ico>,
56
- Drag: (p) => <Ico {...p} stroke={0}><circle cx="6" cy="5" r="1" fill="currentColor"/><circle cx="6" cy="9" r="1" fill="currentColor"/><circle cx="6" cy="13" r="1" fill="currentColor"/><circle cx="12" cy="5" r="1" fill="currentColor"/><circle cx="12" cy="9" r="1" fill="currentColor"/><circle cx="12" cy="13" r="1" fill="currentColor"/></Ico>,
61
+ Drag: (p) => (
62
+ <Ico {...p} stroke={0}>
63
+ <g fill="currentColor">
64
+ <circle cx="6" cy="5" r="1"/><circle cx="6" cy="9" r="1"/><circle cx="6" cy="13" r="1"/>
65
+ <circle cx="12" cy="5" r="1"/><circle cx="12" cy="9" r="1"/><circle cx="12" cy="13" r="1"/>
66
+ </g>
67
+ </Ico>
68
+ ),
57
69
  Flame: (p) => (
58
70
  <Ico {...p} fill="currentColor" stroke="none">
59
71
  <path d="M9 1.5c0 2.5-2 3.5-3.5 5.5C4 9 4 11.5 5.5 13.5 6.5 14.8 8 15.5 9 15.5s2.5-.7 3.5-2c1.5-2 1.5-4.5 0-6.5C11 5 9 4 9 1.5z M9 9c.5 1 1.5 1.2 1.5 2.5S9.8 13.5 9 13.5s-1.5-.7-1.5-2S8.5 10 9 9z" fillRule="evenodd"/>
@@ -61,5 +73,4 @@ const Icons = {
61
73
  ),
62
74
  };
63
75
 
64
- window.Icons = Icons;
65
- window.Ico = Ico;
76
+ export default Icons;
@@ -0,0 +1,31 @@
1
+ // ZARK Design System — barrel export
2
+ // Importe componentes individuais ou o objeto inteiro:
3
+ // import { Button, TagDot, StatCard } from '@zark/design-system-apps/jsx';
4
+
5
+ export { Button } from './components/Button.jsx';
6
+ export { Input, UrlInputFull } from './components/Input.jsx';
7
+ export { Tag } from './components/Tag.jsx';
8
+ export { TagDot } from './components/TagDot.jsx';
9
+ export { Badge } from './components/Badge.jsx';
10
+ export { Toggle } from './components/Toggle.jsx';
11
+ export { Segmented } from './components/Segmented.jsx';
12
+ export { Chips } from './components/Chip.jsx';
13
+ export { StatCard } from './components/StatCard.jsx';
14
+ export { AlertCritical } from './components/AlertCritical.jsx';
15
+ export { Funnel, ProgressBar } from './components/Funnel.jsx';
16
+ export { EmptyState } from './components/EmptyState.jsx';
17
+ export { KanbanColumn, KanbanBoard } from './components/KanbanColumn.jsx';
18
+ export { LeadCard } from './components/LeadCard.jsx';
19
+ export { TableActions } from './components/TableActions.jsx';
20
+ export { Sidebar, SidebarLink, SidebarSection } from './components/Sidebar.jsx';
21
+ export { Panel } from './components/Panel.jsx';
22
+ export { Section } from './components/Section.jsx';
23
+ export { Modal } from './components/Modal.jsx';
24
+ export { Toast } from './components/Toast.jsx';
25
+ export { Announce, Tip } from './components/Banner.jsx';
26
+ export { CodeBlock } from './components/CodeBlock.jsx';
27
+ export { Avatar, AvatarSpace } from './components/Avatar.jsx';
28
+ export { Kbd } from './components/Kbd.jsx';
29
+ export { Spec } from './components/Spec.jsx';
30
+
31
+ export { Icons } from './icons.jsx';
@@ -0,0 +1,283 @@
1
+ /* ============================================================
2
+ ZARK DESIGN SYSTEM — TOKENS
3
+ v3 · Sistemas/Apps · 2026
4
+ Importe este arquivo no entry-point do projeto antes de
5
+ components.css.
6
+ ============================================================ */
7
+
8
+ :root {
9
+ /* ---------- BRAND / EMBER (Liquid Lava scale) ---------- */
10
+ --ember-50: #fff3e9;
11
+ --ember-100: #ffe1c8;
12
+ --ember-200: #ffc28e;
13
+ --ember-300: #ffa056;
14
+ --ember-400: #ff8a3a;
15
+ --ember-500: #f56f10; /* LIQUID LAVA — brand primary */
16
+ --ember-600: #d45e0d;
17
+ --ember-700: #ad4a09;
18
+ --ember-800: #843706;
19
+ --ember-900: #5e2704;
20
+ --liquid-lava: #f56f10;
21
+ --dark-void: #151419;
22
+ --glucon-grey: #1b1a1e;
23
+
24
+ /* ---------- NEUTRALS (warm paper → ink) ---------- */
25
+ --paper: #fafaf8;
26
+ --canvas: #f5f4f1;
27
+ --surface: #ffffff;
28
+ --line-100: #f0eeea;
29
+ --line-200: #e8e6e1;
30
+ --line-300: #d8d5cf;
31
+
32
+ --ink-50: #f4f3f0;
33
+ --ink-100: #e8e6e1;
34
+ --ink-200: #c8c5bf;
35
+ --ink-300: #a09c95;
36
+ --ink-400: #6f6b64;
37
+ --ink-500: #4a4741;
38
+ --ink-600: #2e2c28;
39
+ --ink-700: #1a1916;
40
+ --ink-800: #111110;
41
+ --ink-900: #0a0a09;
42
+
43
+ /* ---------- SEMANTIC ---------- */
44
+ --success-50: #ecfdf3;
45
+ --success-500: #10a960;
46
+ --success-700: #067a44;
47
+
48
+ --warning-50: #fff8e6;
49
+ --warning-500: #d99000;
50
+ --warning-700: #9a6500;
51
+
52
+ --danger-50: #fef1f1;
53
+ --danger-500: #dc3545;
54
+ --danger-700: #a52833;
55
+
56
+ --info-50: #eef5ff;
57
+ --info-500: #2f7adc;
58
+ --info-700: #1f5ba8;
59
+
60
+ --tag-bg: #fff0e0;
61
+ --tag-fg: #ad4a09;
62
+ --code-bg: #fff5ea;
63
+ --code-fg: #ad4a09;
64
+
65
+ /* ---------- SPACE / CLIENTE COLORS (CRM) ---------- */
66
+ --space-zark: #f56f10;
67
+ --space-zark-soft: #fff3e9;
68
+ --space-allsec: #c2410c;
69
+ --space-allsec-soft: #fff3e9;
70
+ --space-vipcar: #ea580c;
71
+ --space-vipcar-soft: #fff3e9;
72
+ --space-limppe: #f59e0b;
73
+ --space-limppe-soft: #fff8e6;
74
+ --space-gerais: #1f2937;
75
+ --space-gerais-soft: #f4f3f0;
76
+ --space-mixshop: #b91c1c;
77
+ --space-mixshop-soft:#fef1f1;
78
+ --space-vipseg: #991b1b;
79
+ --space-vipseg-soft: #fef1f1;
80
+
81
+ /* ---------- TYPOGRAPHY ----------
82
+ Inter → UI texto + NÚMEROS (KPIs, valores, contadores)
83
+ JetBrains → Código, labels técnicos, kbd
84
+ Space Grotesk→ TÍTULOS (h1, h2, h3, modal titles, header bands)
85
+ */
86
+ --font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;
87
+ --font-mono: "JetBrains Mono", "SF Mono", Menlo, Consolas, monospace;
88
+ --font-display: "Space Grotesk", "Inter Tight", "Inter", sans-serif;
89
+ --font-ui: "Inter", -apple-system, sans-serif;
90
+
91
+ /* type scale (px) */
92
+ --fs-2xs: 10px;
93
+ --fs-xs: 11px;
94
+ --fs-sm: 12px;
95
+ --fs-md: 13px;
96
+ --fs-base:14px;
97
+ --fs-lg: 16px;
98
+ --fs-xl: 18px;
99
+ --fs-2xl: 22px;
100
+ --fs-3xl: 28px;
101
+ --fs-4xl: 36px;
102
+ --fs-5xl: 48px;
103
+ --fs-6xl: 64px;
104
+ --fs-display: 88px;
105
+
106
+ /* line-heights */
107
+ --lh-tight: 1.1;
108
+ --lh-snug: 1.25;
109
+ --lh-base: 1.45;
110
+ --lh-loose: 1.6;
111
+
112
+ /* letter spacing */
113
+ --ls-tight: -0.02em;
114
+ --ls-snug: -0.01em;
115
+ --ls-normal: 0;
116
+ --ls-wide: 0.04em;
117
+ --ls-wider: 0.08em;
118
+ --ls-widest: 0.14em;
119
+
120
+ /* weights */
121
+ --fw-regular: 400;
122
+ --fw-medium: 500;
123
+ --fw-semibold:600;
124
+ --fw-bold: 700;
125
+
126
+ /* ---------- SPACING (4px base) ---------- */
127
+ --sp-0: 0;
128
+ --sp-1: 2px;
129
+ --sp-2: 4px;
130
+ --sp-3: 6px;
131
+ --sp-4: 8px;
132
+ --sp-5: 10px;
133
+ --sp-6: 12px;
134
+ --sp-7: 14px;
135
+ --sp-8: 16px;
136
+ --sp-10: 20px;
137
+ --sp-12: 24px;
138
+ --sp-14: 28px;
139
+ --sp-16: 32px;
140
+ --sp-20: 40px;
141
+ --sp-24: 48px;
142
+ --sp-32: 64px;
143
+ --sp-40: 80px;
144
+ --sp-48: 96px;
145
+
146
+ /* ---------- RADII (sem pill) ---------- */
147
+ --r-xs: 3px;
148
+ --r-sm: 4px;
149
+ --r-md: 6px;
150
+ --r-lg: 8px;
151
+ --r-xl: 12px;
152
+ --r-2xl: 16px;
153
+ --r-3xl: 20px;
154
+
155
+ /* ---------- SHADOWS (warm-black, never cool-black) ---------- */
156
+ --shadow-xs: 0 1px 0 rgba(20, 17, 12, 0.04);
157
+ --shadow-sm: 0 1px 2px rgba(20, 17, 12, 0.05), 0 0 0 1px rgba(20, 17, 12, 0.04);
158
+ --shadow-md: 0 4px 12px rgba(20, 17, 12, 0.06), 0 1px 2px rgba(20, 17, 12, 0.05);
159
+ --shadow-lg: 0 12px 32px rgba(20, 17, 12, 0.08), 0 2px 6px rgba(20, 17, 12, 0.04);
160
+ --shadow-xl: 0 24px 64px rgba(20, 17, 12, 0.12), 0 4px 12px rgba(20, 17, 12, 0.05);
161
+ --shadow-modal: 0 32px 96px rgba(20, 17, 12, 0.18), 0 8px 24px rgba(20, 17, 12, 0.08);
162
+ --shadow-inset: inset 0 1px 0 rgba(255, 255, 255, 0.08);
163
+
164
+ --ring-focus: 0 0 0 3px rgba(255, 93, 31, 0.20);
165
+ --ring-focus-soft: 0 0 0 3px rgba(255, 93, 31, 0.12);
166
+
167
+ /* ---------- MOTION ---------- */
168
+ --ease-out: cubic-bezier(0.22, 1, 0.36, 1);
169
+ --ease-in-out: cubic-bezier(0.65, 0, 0.35, 1);
170
+ --ease-spring: cubic-bezier(0.34, 1.56, 0.64, 1);
171
+ --t-fast: 120ms;
172
+ --t-base: 180ms;
173
+ --t-slow: 280ms;
174
+ --t-slower: 420ms;
175
+
176
+ /* ---------- LAYOUT ---------- */
177
+ --sidebar-w: 240px;
178
+ --topbar-h: 56px;
179
+ --container-max: 1280px;
180
+ }
181
+
182
+ /* ============================================================
183
+ DARK THEME
184
+ ============================================================ */
185
+ [data-theme="dark"] {
186
+ --ember-50: #2a1810;
187
+ --ember-100: #3d2114;
188
+ --ember-200: #5e2704;
189
+ --ember-300: #843706;
190
+ --ember-400: #ad4a09;
191
+ --ember-500: #f56f10; /* brand inalterado */
192
+ --ember-600: #ff8a3a;
193
+ --ember-700: #ffa056;
194
+ --ember-800: #ffc28e;
195
+ --ember-900: #ffe1c8;
196
+
197
+ --paper: #0e0d11;
198
+ --canvas: #151419;
199
+ --surface: #1b1a1e;
200
+ --line-100: #232227;
201
+ --line-200: #2c2b32;
202
+ --line-300: #3a383f;
203
+
204
+ --ink-50: #1a1916;
205
+ --ink-100: #2c2b27;
206
+ --ink-200: #4a4741;
207
+ --ink-300: #6f6b64;
208
+ --ink-400: #a09c95;
209
+ --ink-500: #c8c5bf;
210
+ --ink-600: #e0ddd6;
211
+ --ink-700: #f0ede5;
212
+ --ink-800: #f7f5ef;
213
+ --ink-900: #fafaf8;
214
+
215
+ --success-50: #0f2419;
216
+ --warning-50: #2a1f08;
217
+ --danger-50: #2a1010;
218
+ --info-50: #0e1a2c;
219
+
220
+ --tag-bg: #3d2114;
221
+ --tag-fg: #ffc28e;
222
+ --code-bg: #2a1810;
223
+ --code-fg: #ffa056;
224
+
225
+ --shadow-xs: 0 1px 0 rgba(0, 0, 0, 0.5);
226
+ --shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.4), 0 0 0 1px rgba(255, 255, 255, 0.04);
227
+ --shadow-md: 0 4px 12px rgba(0, 0, 0, 0.4), 0 1px 2px rgba(0, 0, 0, 0.3);
228
+ --shadow-lg: 0 12px 32px rgba(0, 0, 0, 0.5), 0 2px 6px rgba(0, 0, 0, 0.3);
229
+ --shadow-xl: 0 24px 64px rgba(0, 0, 0, 0.6), 0 4px 12px rgba(0, 0, 0, 0.3);
230
+ --shadow-modal: 0 32px 96px rgba(0, 0, 0, 0.7), 0 8px 24px rgba(0, 0, 0, 0.4);
231
+ --shadow-inset: inset 0 1px 0 rgba(255, 255, 255, 0.04);
232
+
233
+ --ring-focus: 0 0 0 3px rgba(255, 138, 58, 0.30);
234
+ --ring-focus-soft: 0 0 0 3px rgba(255, 138, 58, 0.16);
235
+ }
236
+
237
+ /* Auto dark via OS, opt-out: <html data-theme="light"> */
238
+ @media (prefers-color-scheme: dark) {
239
+ :root:not([data-theme="light"]) {
240
+ --ember-50: #2a1810; --ember-100: #3d2114; --ember-200: #5e2704;
241
+ --ember-300: #843706; --ember-400: #ad4a09; --ember-500: #f56f10;
242
+ --ember-600: #ff8a3a; --ember-700: #ffa056; --ember-800: #ffc28e;
243
+ --ember-900: #ffe1c8;
244
+ --paper: #0e0d11; --canvas: #151419; --surface: #1b1a1e;
245
+ --line-100: #232227; --line-200: #2c2b32; --line-300: #3a383f;
246
+ --ink-50: #1a1916; --ink-100: #2c2b27; --ink-200: #4a4741;
247
+ --ink-300: #6f6b64; --ink-400: #a09c95; --ink-500: #c8c5bf;
248
+ --ink-600: #e0ddd6; --ink-700: #f0ede5; --ink-800: #f7f5ef;
249
+ --ink-900: #fafaf8;
250
+ --success-50: #0f2419; --warning-50: #2a1f08; --danger-50: #2a1010; --info-50: #0e1a2c;
251
+ --tag-bg: #3d2114; --tag-fg: #ffc28e; --code-bg: #2a1810; --code-fg: #ffa056;
252
+ --shadow-xs: 0 1px 0 rgba(0, 0, 0, 0.5);
253
+ --shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.4), 0 0 0 1px rgba(255, 255, 255, 0.04);
254
+ --shadow-md: 0 4px 12px rgba(0, 0, 0, 0.4), 0 1px 2px rgba(0, 0, 0, 0.3);
255
+ --shadow-lg: 0 12px 32px rgba(0, 0, 0, 0.5), 0 2px 6px rgba(0, 0, 0, 0.3);
256
+ --shadow-xl: 0 24px 64px rgba(0, 0, 0, 0.6), 0 4px 12px rgba(0, 0, 0, 0.3);
257
+ --shadow-modal: 0 32px 96px rgba(0, 0, 0, 0.7), 0 8px 24px rgba(0, 0, 0, 0.4);
258
+ --shadow-inset: inset 0 1px 0 rgba(255, 255, 255, 0.04);
259
+ --ring-focus: 0 0 0 3px rgba(255, 138, 58, 0.30);
260
+ --ring-focus-soft: 0 0 0 3px rgba(255, 138, 58, 0.16);
261
+ }
262
+ }
263
+
264
+ /* ============================================================
265
+ BASE
266
+ ============================================================ */
267
+ * { box-sizing: border-box; }
268
+ html, body {
269
+ margin: 0; padding: 0;
270
+ font-family: var(--font-sans);
271
+ font-size: var(--fs-base);
272
+ line-height: var(--lh-base);
273
+ color: var(--ink-700);
274
+ background: var(--paper);
275
+ -webkit-font-smoothing: antialiased;
276
+ text-rendering: optimizeLegibility;
277
+ }
278
+ ::selection { background: var(--ember-200); color: var(--ink-700); }
279
+ a { color: inherit; text-decoration: none; }
280
+ button { font-family: inherit; }
281
+
282
+ @keyframes zk-spin { to { transform: rotate(360deg); } }
283
+ @keyframes zk-fadein { from { opacity: 0; transform: translateY(4px);} to { opacity: 1; transform: translateY(0);} }
@@ -0,0 +1,62 @@
1
+ // Tokens em JS — para casos onde você precisa do valor em runtime
2
+ // (animações, charts, inline styles dinâmicos). Para CSS, use tokens.css.
3
+
4
+ export const tokens = {
5
+ brand: {
6
+ liquidLava: '#f56f10',
7
+ ember: {
8
+ 50: '#fff3e9', 100: '#ffe1c8', 200: '#ffc28e', 300: '#ffa056',
9
+ 400: '#ff8a3a', 500: '#f56f10', 600: '#d45e0d', 700: '#ad4a09',
10
+ 800: '#843706', 900: '#5e2704',
11
+ },
12
+ },
13
+ neutral: {
14
+ paper: '#fafaf8', canvas: '#f5f4f1', surface: '#ffffff',
15
+ line: { 100: '#f0eeea', 200: '#e8e6e1', 300: '#d8d5cf' },
16
+ ink: {
17
+ 50: '#f4f3f0', 100: '#e8e6e1', 200: '#c8c5bf', 300: '#a09c95',
18
+ 400: '#6f6b64', 500: '#4a4741', 600: '#2e2c28', 700: '#1a1916',
19
+ 800: '#111110', 900: '#0a0a09',
20
+ },
21
+ },
22
+ semantic: {
23
+ success: { 50: '#ecfdf3', 500: '#10a960', 700: '#067a44' },
24
+ warning: { 50: '#fff8e6', 500: '#d99000', 700: '#9a6500' },
25
+ danger: { 50: '#fef1f1', 500: '#dc3545', 700: '#a52833' },
26
+ info: { 50: '#eef5ff', 500: '#2f7adc', 700: '#1f5ba8' },
27
+ },
28
+ space: {
29
+ zark: '#f56f10',
30
+ allsec: '#c2410c',
31
+ vipcar: '#ea580c',
32
+ limppe: '#f59e0b',
33
+ gerais: '#1f2937',
34
+ mixshop: '#b91c1c',
35
+ vipseg: '#991b1b',
36
+ },
37
+ font: {
38
+ sans: '"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif',
39
+ mono: '"JetBrains Mono", "SF Mono", Menlo, Consolas, monospace',
40
+ display: '"Space Grotesk", "Inter Tight", "Inter", sans-serif',
41
+ },
42
+ radius: {
43
+ xs: 3, sm: 4, md: 6, lg: 8, xl: 12, '2xl': 16, '3xl': 20,
44
+ },
45
+ spacing: {
46
+ 1: 2, 2: 4, 3: 6, 4: 8, 5: 10, 6: 12, 7: 14, 8: 16,
47
+ 10: 20, 12: 24, 14: 28, 16: 32, 20: 40, 24: 48, 32: 64, 40: 80, 48: 96,
48
+ },
49
+ motion: {
50
+ fast: 120, base: 180, slow: 280, slower: 420,
51
+ easeOut: 'cubic-bezier(0.22, 1, 0.36, 1)',
52
+ easeInOut: 'cubic-bezier(0.65, 0, 0.35, 1)',
53
+ easeSpring: 'cubic-bezier(0.34, 1.56, 0.64, 1)',
54
+ },
55
+ layout: {
56
+ sidebarW: 240,
57
+ topbarH: 56,
58
+ containerMax: 1280,
59
+ },
60
+ };
61
+
62
+ export default tokens;