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.
- package/bin/cli.js +7 -6
- package/package.json +2 -2
- package/templates/README.md +264 -0
- package/templates/html/components.css +740 -0
- package/templates/html/index.html +135 -0
- package/templates/html/showcase.html +3550 -0
- package/templates/{tokens.css → html/tokens.css} +89 -112
- package/templates/jsx/App.example.jsx +229 -0
- package/templates/jsx/components/AlertCritical.jsx +43 -0
- package/templates/jsx/components/Avatar.jsx +41 -0
- package/templates/jsx/components/Badge.jsx +12 -0
- package/templates/jsx/components/Banner.jsx +42 -0
- package/templates/jsx/components/Button.jsx +43 -0
- package/templates/jsx/components/Chip.jsx +28 -0
- package/templates/jsx/components/CodeBlock.jsx +42 -0
- package/templates/jsx/components/EmptyState.jsx +27 -0
- package/templates/jsx/components/Funnel.jsx +55 -0
- package/templates/jsx/components/Input.jsx +53 -0
- package/templates/jsx/components/KanbanColumn.jsx +51 -0
- package/templates/jsx/components/Kbd.jsx +11 -0
- package/templates/jsx/components/LeadCard.jsx +79 -0
- package/templates/jsx/components/Modal.jsx +57 -0
- package/templates/jsx/components/Panel.jsx +25 -0
- package/templates/jsx/components/Section.jsx +28 -0
- package/templates/jsx/components/Segmented.jsx +26 -0
- package/templates/jsx/components/Sidebar.jsx +49 -0
- package/templates/jsx/components/Spec.jsx +19 -0
- package/templates/jsx/components/StatCard.jsx +44 -0
- package/templates/jsx/components/TableActions.jsx +34 -0
- package/templates/jsx/components/Tag.jsx +21 -0
- package/templates/jsx/components/TagDot.jsx +26 -0
- package/templates/jsx/components/Toast.jsx +25 -0
- package/templates/jsx/components/Toggle.jsx +29 -0
- package/templates/jsx/components.css +740 -0
- package/templates/{icons.jsx → jsx/icons.jsx} +20 -9
- package/templates/jsx/index.js +31 -0
- package/templates/jsx/tokens.css +283 -0
- package/templates/jsx/tokens.js +62 -0
- package/templates/REFERENCE.md +0 -376
- package/templates/SHOWCASE.html +0 -254
- package/templates/brand.jsx +0 -89
- package/templates/components.jsx +0 -385
- package/templates/design-canvas.jsx +0 -789
- package/templates/foundations.jsx +0 -363
- package/templates/layouts.jsx +0 -232
- package/templates/patterns.jsx +0 -268
- package/templates/primitives.jsx +0 -306
- package/templates/visual-references/pasted-1777605750385-0.png +0 -0
- package/templates/visual-references/pasted-1777605766298-0.png +0 -0
- package/templates/visual-references/pasted-1777605775820-0.png +0 -0
- package/templates/visual-references/pasted-1777605789833-0.png +0 -0
- package/templates/visual-references/pasted-1777605802420-0.png +0 -0
- package/templates/visual-references/pasted-1777605812470-0.png +0 -0
- package/templates/visual-references/pasted-1777605817688-0.png +0 -0
- package/templates/visual-references/pasted-1777605828485-0.png +0 -0
- package/templates/visual-references/pasted-1777605837137-0.png +0 -0
- package/templates/visual-references/pasted-1777605849789-0.png +0 -0
- package/templates/visual-references/pasted-1777605864942-0.png +0 -0
- package/templates/visual-references/pasted-1777605877920-0.png +0 -0
- package/templates/visual-references/pasted-1777605897353-0.png +0 -0
- /package/templates/{assets/zark-logo.png → html/assets/logo-zark-laranja.png} +0 -0
- /package/templates/{assets → html/assets}/zark-icon.png +0 -0
- /package/templates/{visual-references/logo-zark-principal.png → jsx/assets/logo-zark-laranja.png} +0 -0
- /package/templates/{visual-references/icon-zark.png → jsx/assets/zark-icon.png} +0 -0
|
@@ -1,11 +1,16 @@
|
|
|
1
|
-
//
|
|
2
|
-
//
|
|
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
|
-
|
|
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=
|
|
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
|
-
{
|
|
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) =>
|
|
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
|
-
|
|
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;
|