zark-design 2.0.0 → 3.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.
@@ -4,7 +4,7 @@ import React from 'react';
4
4
  * Funnel — horizontal segmented funnel (Pipeline de Vendas)
5
5
  *
6
6
  * @param stages [{ label, count, color, percent }]
7
- * color — qualquer CSS color (sugestão: var(--ember-500), var(--success-500), etc)
7
+ * color — qualquer CSS color (sugestão: var(--brand-500), var(--success-500), etc)
8
8
  * percent — 0-100, largura proporcional do segmento
9
9
  */
10
10
  export function Funnel({ stages = [] }) {
@@ -42,7 +42,7 @@ export function Funnel({ stages = [] }) {
42
42
  export function ProgressBar({ value = 0, tone = 'success', height = 4 }) {
43
43
  const colorMap = {
44
44
  success: 'var(--success-500)',
45
- ember: 'var(--ember-500)',
45
+ ember: 'var(--brand-500)',
46
46
  danger: 'var(--danger-500)',
47
47
  };
48
48
  return (
@@ -37,7 +37,7 @@ export function SidebarLink({ active = false, icon, shortcut, onClick, href, chi
37
37
  const cls = `zk-sidebar-link ${active ? 'active' : ''}`.trim();
38
38
  const content = (
39
39
  <>
40
- {icon && <span style={{ display: 'inline-flex', color: active ? 'var(--ember-600)' : 'var(--ink-400)' }}>{icon}</span>}
40
+ {icon && <span style={{ display: 'inline-flex', color: active ? 'var(--brand-600)' : 'var(--ink-400)' }}>{icon}</span>}
41
41
  <span style={{ flex: 1 }}>{children}</span>
42
42
  {shortcut}
43
43
  </>
@@ -33,18 +33,18 @@
33
33
  .btn-full { width: 100%; }
34
34
 
35
35
  .btn-primary {
36
- background: var(--ember-600); color: #fff;
36
+ background: var(--brand-600); color: #fff;
37
37
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.18), 0 1px 2px rgba(168, 53, 8, 0.18);
38
38
  }
39
- .btn-primary:hover { background: var(--ember-700); }
39
+ .btn-primary:hover { background: var(--brand-700); }
40
40
  .btn-secondary {
41
41
  background: var(--surface); color: var(--ink-700);
42
42
  border-color: var(--line-300);
43
43
  box-shadow: var(--shadow-xs);
44
44
  }
45
45
  .btn-secondary:hover { background: var(--paper); }
46
- .btn-soft { background: var(--ember-50); color: var(--ember-700); }
47
- .btn-soft:hover { background: var(--ember-100); }
46
+ .btn-soft { background: var(--brand-50); color: var(--brand-700); }
47
+ .btn-soft:hover { background: var(--brand-100); }
48
48
  .btn-ghost { background: transparent; color: var(--ink-600); }
49
49
  .btn-ghost:hover{ background: var(--ink-50); }
50
50
  .btn-danger { background: var(--surface); color: var(--danger-700); border-color: var(--line-300); }
@@ -72,7 +72,7 @@
72
72
  width: 100%;
73
73
  transition: box-shadow var(--t-fast), border-color var(--t-fast);
74
74
  }
75
- .input:focus-within { box-shadow: var(--ring-focus); border-color: var(--ember-400); }
75
+ .input:focus-within { box-shadow: var(--ring-focus); border-color: var(--brand-400); }
76
76
  .input.invalid { border-color: var(--danger-500); }
77
77
  .input.invalid:focus-within { box-shadow: 0 0 0 3px rgba(220, 53, 69, 0.18); }
78
78
  .input-sm { height: 28px; padding: 0 8px; font-size: var(--fs-sm); }
@@ -123,7 +123,7 @@
123
123
  .tag-sm { height: 22px; padding: 0 8px; font-size: var(--fs-xs); }
124
124
  .tag-md { height: 26px; padding: 0 10px; font-size: var(--fs-sm); }
125
125
  .tag-square { border-radius: var(--r-xs); }
126
- .tag-ember { background: var(--ember-50); color: var(--ember-700); }
126
+ .tag-ember { background: var(--brand-50); color: var(--brand-700); }
127
127
  .tag-mono { background: var(--tag-bg); color: var(--tag-fg); }
128
128
  .tag-success { background: var(--success-50); color: var(--success-700); }
129
129
  .tag-warning { background: var(--warning-50); color: var(--warning-700); }
@@ -150,14 +150,14 @@
150
150
 
151
151
  /* Status — 5 estados base */
152
152
  .s-todo { background: #fff8e6; color: #9a6500; }
153
- .s-progress { background: var(--ember-50); color: var(--ember-700); }
153
+ .s-progress { background: var(--brand-50); color: var(--brand-700); }
154
154
  .s-review { background: var(--info-50); color: var(--info-700); }
155
155
  .s-done { background: var(--success-50); color: var(--success-700); }
156
156
  .s-canceled { background: var(--ink-50); color: var(--ink-500); }
157
157
  /* Modificadores */
158
158
  .s-overdue { background: var(--danger-50); color: var(--danger-700); }
159
159
  .s-paused { background: var(--warning-50); color: var(--warning-700); }
160
- .s-followup { background: var(--ember-50); color: var(--ember-700); }
160
+ .s-followup { background: var(--brand-50); color: var(--brand-700); }
161
161
 
162
162
  /* Prioridade */
163
163
  .p-urgent { background: var(--danger-50); color: var(--danger-700); }
@@ -179,7 +179,7 @@
179
179
  .badge {
180
180
  display: inline-flex; align-items: center; justify-content: center;
181
181
  min-width: 18px; height: 18px; padding: 0 5px;
182
- background: var(--ember-500); color: #fff;
182
+ background: var(--brand-500); color: #fff;
183
183
  font-size: var(--fs-2xs); font-weight: 600;
184
184
  border-radius: var(--r-sm);
185
185
  }
@@ -193,7 +193,7 @@
193
193
  border: none; cursor: pointer; position: relative;
194
194
  transition: background var(--t-base) var(--ease-out);
195
195
  }
196
- .toggle.on { background: var(--ember-500); }
196
+ .toggle.on { background: var(--brand-500); }
197
197
  .toggle .knob {
198
198
  position: absolute; top: 2px; left: 2px;
199
199
  width: 16px; height: 16px; border-radius: var(--r-xs);
@@ -246,13 +246,13 @@
246
246
  transition: all var(--t-fast);
247
247
  }
248
248
  .chip:hover { background: var(--ink-50); color: var(--ink-700); }
249
- .chip.active { background: var(--ember-50); color: var(--ember-700); border-color: var(--ember-200); }
249
+ .chip.active { background: var(--brand-50); color: var(--brand-700); border-color: var(--brand-200); }
250
250
  .chip .count { font-family: var(--font-mono); font-size: var(--fs-2xs); color: inherit; opacity: 0.7; }
251
251
 
252
252
  /* ---------- AVATAR ---------- */
253
253
  .avatar {
254
254
  width: 24px; height: 24px;
255
- background: var(--ember-500); color: #fff;
255
+ background: var(--brand-500); color: #fff;
256
256
  border-radius: 50%;
257
257
  display: inline-flex; align-items: center; justify-content: center;
258
258
  font-size: 11px; font-weight: 600;
@@ -328,7 +328,7 @@
328
328
  font-size: var(--fs-xs);
329
329
  letter-spacing: var(--ls-widest);
330
330
  text-transform: uppercase;
331
- color: var(--ember-600);
331
+ color: var(--brand-600);
332
332
  margin-bottom: 14px;
333
333
  }
334
334
  .section h2 {
@@ -394,7 +394,7 @@
394
394
  color: #fff;
395
395
  }
396
396
  .stat-icon.green { background: var(--success-500); }
397
- .stat-icon.orange { background: var(--ember-500); }
397
+ .stat-icon.orange { background: var(--brand-500); }
398
398
  .stat-icon.blue { background: var(--info-500); }
399
399
  .stat-icon.purple { background: #7c3aed; }
400
400
  .stat-icon.red { background: var(--danger-500); }
@@ -518,7 +518,7 @@
518
518
  cursor: pointer;
519
519
  transition: all var(--t-fast);
520
520
  }
521
- .k-add:hover { color: var(--ember-700); border-color: var(--ember-300); background: var(--ember-50); }
521
+ .k-add:hover { color: var(--brand-700); border-color: var(--brand-300); background: var(--brand-50); }
522
522
 
523
523
  /* ---------- LEAD CARD ---------- */
524
524
  .lead-card {
@@ -536,7 +536,7 @@
536
536
  .lead-card.is-overdue { border-left: 3px solid var(--danger-500); }
537
537
  .lead-card-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
538
538
  .lead-card-name { display: inline-flex; align-items: center; gap: 6px; font-size: var(--fs-md); font-weight: 600; color: var(--ink-700); }
539
- .lead-card-name .flame { color: var(--ember-500); }
539
+ .lead-card-name .flame { color: var(--brand-500); }
540
540
  .lead-card-sub { font-size: var(--fs-xs); color: var(--ink-400); }
541
541
  .lead-card-meta { display: flex; align-items: center; justify-content: space-between; font-size: var(--fs-xs); color: var(--ink-400); }
542
542
  .lead-card-meta .icons { display: inline-flex; gap: 6px; color: var(--ink-300); }
@@ -548,7 +548,7 @@
548
548
  }
549
549
  .lead-card-followup {
550
550
  display: inline-flex; align-items: center; gap: 4px;
551
- font-size: var(--fs-xs); color: var(--ember-700); font-weight: 500;
551
+ font-size: var(--fs-xs); color: var(--brand-700); font-weight: 500;
552
552
  }
553
553
 
554
554
  /* ---------- EMPTY STATE ---------- */
@@ -620,8 +620,8 @@
620
620
  }
621
621
  .zk-sidebar-link:hover { background: var(--ink-50); color: var(--ink-700); }
622
622
  .zk-sidebar-link.active {
623
- color: var(--ember-700);
624
- background: var(--ember-50);
623
+ color: var(--brand-700);
624
+ background: var(--brand-50);
625
625
  font-weight: 500;
626
626
  }
627
627
 
@@ -686,7 +686,7 @@
686
686
  text-align: center;
687
687
  font-size: var(--fs-md); color: var(--ink-600);
688
688
  }
689
- .announce a { color: var(--ember-700); text-decoration: underline; }
689
+ .announce a { color: var(--brand-700); text-decoration: underline; }
690
690
  .tip {
691
691
  display: flex; gap: 12px; padding: 14px;
692
692
  background: var(--surface);
@@ -695,7 +695,7 @@
695
695
  max-width: 320px;
696
696
  box-shadow: var(--shadow-md);
697
697
  }
698
- .tip .ico { color: var(--ember-500); margin-top: 2px; }
698
+ .tip .ico { color: var(--brand-500); margin-top: 2px; }
699
699
  .tip .what {
700
700
  font-size: var(--fs-xs); font-family: var(--font-mono);
701
701
  letter-spacing: var(--ls-wider);
@@ -2,7 +2,7 @@
2
2
  // Usage:
3
3
  // import { Icons } from './icons';
4
4
  // <Icons.Search size={16}/>
5
- // <Icons.Bell size={20} style={{ color: 'var(--ember-500)' }}/>
5
+ // <Icons.Bell size={20} style={{ color: 'var(--brand-500)' }}/>
6
6
 
7
7
  import React from 'react';
8
8
 
@@ -0,0 +1,26 @@
1
+ {
2
+ "name": "ZARK",
3
+ "slug": "zark",
4
+ "preset": "zark",
5
+ "brand": {
6
+ "50": "#fff3e9",
7
+ "100": "#ffe1c8",
8
+ "200": "#ffc28e",
9
+ "300": "#ffa056",
10
+ "400": "#ff8a3a",
11
+ "500": "#f56f10",
12
+ "600": "#d45e0d",
13
+ "700": "#ad4a09",
14
+ "800": "#843706",
15
+ "900": "#5e2704",
16
+ "ring": "rgba(255, 93, 31, 0.20)",
17
+ "ringSoft": "rgba(255, 93, 31, 0.12)",
18
+ "ringDark": "rgba(255, 138, 58, 0.30)",
19
+ "ringSoftDark": "rgba(255, 138, 58, 0.16)"
20
+ },
21
+ "fonts": {
22
+ "ui": "Inter",
23
+ "mono": "JetBrains Mono",
24
+ "display": "Space Grotesk"
25
+ }
26
+ }
@@ -1,283 +0,0 @@
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);} }
Binary file