trdr-ds-install 1.0.2 → 1.2.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.
@@ -16,9 +16,9 @@ Use os equivalentes semânticos: bg.*, surface.*, content.*, scale.spacing.*
16
16
  Tabelas de preços, P&L, quantidades, qualquer dado numérico de trading.
17
17
  - `font-family: var(--font-mono)`
18
18
 
19
- ### Regra 4 — Títulos de página e headings → Space Grotesk
20
- Space Grotesk é a fonte primária da marca TRDR.
21
- - `font-family: var(--font-primary)`
19
+ ### Regra 4 — Títulos de página e headings → JetBrains Mono
20
+ JetBrains Mono é a fonte primária do TRDR DS (`--font-primary`). Use as classes de text style.
21
+ - `font-family: var(--font-primary)` — ou melhor: classe `.trdr-h1` a `.trdr-h6`
22
22
 
23
23
  ### Regra 5 — Todo restante da UI → Inter
24
24
  Body text, labels, inputs, nav, tooltips — tudo que não é heading ou número.
@@ -67,6 +67,19 @@ bg.primary (fundo base)
67
67
  | Candle verde | context.chart.candles.up |
68
68
  | Candle vermelho | context.chart.candles.down |
69
69
 
70
+ ### Regra 8 — Text Styles → sempre use as classes utilitárias
71
+ Nunca use `font-size` em px diretamente. Use as classes de text style do DS:
72
+ - Títulos: `.trdr-h1` a `.trdr-h7`
73
+ - Corpo: `.trdr-body-b1` a `.trdr-body-b5`, `.trdr-body-aux`
74
+ - Labels: `.trdr-label-l2`, `.trdr-label-l3`
75
+
76
+ ### Regra 9 — Nenhuma cor fora do DS, em lugar nenhum
77
+ `rgba()`, gradientes inline, `#hex` hardcoded são SEMPRE uma violação — sem exceções para gradientes "decorativos" ou sombras.
78
+ Se não existe token semântico para o padrão → registrar em `MISSING_COMPONENTS.md` e solicitar o token no Hub.
79
+ - ❌ `box-shadow: 0 4px 16px rgba(0,0,0,.3)`
80
+ - ❌ `background: linear-gradient(135deg, #FF6B6B, #4158F6)`
81
+ - ✅ Usar token semântico existente ou solicitar novo token ao Hub
82
+
70
83
  ---
71
84
 
72
85
  ## Hub de Referência
@@ -0,0 +1,399 @@
1
+ /*
2
+ * SNAPSHOT — TRDR Design Tokens
3
+ * Sincronizado de: ../trdr-design-hub
4
+ * Em: 2026-05-08T21:43:59.388Z
5
+ * Não edite manualmente — atualize via "npm run sync-tokens"
6
+ */
7
+
8
+ /* ==========================================================================
9
+ TRDR Design System — CSS Variables
10
+ Fonte: Figma Variables | Atualizado: 2026-05-06
11
+ ========================================================================== */
12
+
13
+ :root {
14
+
15
+ /* =========================================================================
16
+ PRIMITIVOS — CORES
17
+ Nunca use diretamente na UI. Use tokens semânticos.
18
+ ========================================================================= */
19
+
20
+ /* Brand Cyan (renomeado de Azul — escala brand principal) */
21
+ --color-blue-50: #E6FEFF;
22
+ --color-blue-100: #CCFDFF;
23
+ --color-blue-200: #99F9FF;
24
+ --color-blue-300: #5CF3FF;
25
+ --color-blue-400: #29ECFF;
26
+ --color-blue-500: #00D4FF;
27
+ --color-blue-600: #00A8CC;
28
+ --color-blue-700: #007D99;
29
+ --color-blue-800: #005266;
30
+ --color-blue-900: #002933;
31
+ --color-blue-alpha-08: #00D4FF14;
32
+ --color-blue-alpha-16: #00D4FF29;
33
+ --color-blue-alpha-32: #00D4FF52;
34
+
35
+ /* Neutro */
36
+ --color-neutral-0: #FFFFFF;
37
+ --color-neutral-50: #FAFAFA;
38
+ --color-neutral-100: #EEEEEE;
39
+ --color-neutral-200: #E8E8E8;
40
+ --color-neutral-300: #D2D2D2;
41
+ --color-neutral-400: #BCBCBC;
42
+ --color-neutral-500: #A4A4A4;
43
+ --color-neutral-600: #777777;
44
+ --color-neutral-700: #4A4A4A;
45
+ --color-neutral-800: #222222;
46
+ --color-neutral-900: #1A1A1A;
47
+ --color-neutral-1000: #141519;
48
+ --color-neutral-1200: #0E0E0E;
49
+
50
+ /* Verde */
51
+ --color-green-50: #F0FFF7;
52
+ --color-green-100: #CCFFDF;
53
+ --color-green-200: #99FFBF;
54
+ --color-green-300: #66FFA0;
55
+ --color-green-400: #33FF80;
56
+ --color-green-500: #00FF60;
57
+ --color-green-600: #31DD7E;
58
+ --color-green-700: #00CC4D;
59
+ --color-green-800: #009933;
60
+ --color-green-900: #00661F;
61
+ --color-green-alpha-08: #4FE29014;
62
+ --color-green-alpha-12: #4FE2901F;
63
+ --color-green-alpha-16: #4FE29029;
64
+ --color-green-alpha-32: #4FE29052;
65
+ --color-green-alpha-40: #4FE29066;
66
+ --color-green-alpha-48: #4FE2907A;
67
+ --color-green-alpha-56: #4FE2908F;
68
+
69
+ /* Vermelho */
70
+ --color-red-50: #FFF0F0;
71
+ --color-red-100: #FFCCCC;
72
+ --color-red-200: #FF9999;
73
+ --color-red-300: #FF6666;
74
+ --color-red-400: #FF3333;
75
+ --color-red-500: #FF0000;
76
+ --color-red-600: #F34F45;
77
+ --color-red-700: #CC0000;
78
+ --color-red-800: #990000;
79
+ --color-red-900: #660000;
80
+ --color-red-alpha-08: #F34F4514;
81
+ --color-red-alpha-12: #F34F451F;
82
+ --color-red-alpha-16: #F34F4529;
83
+ --color-red-alpha-32: #F34F4552;
84
+ --color-red-alpha-40: #F34F4566;
85
+ --color-red-alpha-48: #F34F457A;
86
+ --color-red-alpha-56: #F34F458F;
87
+
88
+ /* Amarelo */
89
+ --color-yellow-50: #FFFBF0;
90
+ --color-yellow-100: #FFF3CC;
91
+ --color-yellow-200: #FFE799;
92
+ --color-yellow-300: #FFDB66;
93
+ --color-yellow-400: #FFCF33;
94
+ --color-yellow-500: #FFCC40;
95
+ --color-yellow-600: #FFB800;
96
+ --color-yellow-700: #CC9200;
97
+ --color-yellow-800: #996D00;
98
+ --color-yellow-900: #664900;
99
+ --color-yellow-alpha-08: #FFCC4014;
100
+ --color-yellow-alpha-16: #FFCC4029;
101
+ --color-yellow-alpha-32: #FFCC4052;
102
+
103
+ /* Laranja */
104
+ --color-orange-50: #FFF5F0;
105
+ --color-orange-100: #FFE0CC;
106
+ --color-orange-200: #FFC199;
107
+ --color-orange-300: #FFA266;
108
+ --color-orange-400: #FF8333;
109
+ --color-orange-500: #FF6400;
110
+ --color-orange-600: #F57C00;
111
+ --color-orange-700: #CC5000;
112
+ --color-orange-800: #993C00;
113
+ --color-orange-900: #662800;
114
+ --color-orange-alpha-08: #FF640014;
115
+ --color-orange-alpha-16: #FF640029;
116
+ --color-orange-alpha-32: #FF640052;
117
+
118
+ /* Roxo */
119
+ --color-purple-50: #F1EFF5;
120
+ --color-purple-100: #D6D3E5;
121
+ --color-purple-200: #BBB4D6;
122
+ --color-purple-300: #9E94C9;
123
+ --color-purple-400: #8072BE;
124
+ --color-purple-500: #6350B3;
125
+ --color-purple-600: #50418E;
126
+ --color-purple-700: #3E3467;
127
+ --color-purple-800: #2A2542;
128
+ --color-purple-900: #161320;
129
+ --color-purple-alpha-08: #6350B314;
130
+ --color-purple-alpha-16: #6350B329;
131
+ --color-purple-alpha-32: #6350B352;
132
+
133
+ /* =========================================================================
134
+ PRIMITIVOS — ESPAÇAMENTOS
135
+ ========================================================================= */
136
+ --space-0: 0px;
137
+ --space-50: 4px;
138
+ --space-100: 8px;
139
+ --space-200: 12px;
140
+ --space-300: 16px;
141
+ --space-400: 20px;
142
+ --space-500: 24px;
143
+ --space-600: 32px;
144
+ --space-700: 40px;
145
+ --space-800: 48px;
146
+ --space-900: 56px;
147
+ --space-1000: 64px;
148
+ --space-1200: 80px;
149
+ --space-1400: 96px;
150
+
151
+ /* =========================================================================
152
+ PRIMITIVOS — BORDER RADIUS
153
+ ========================================================================= */
154
+ --radius-prim-0: 0px;
155
+ --radius-prim-50: 2px;
156
+ --radius-prim-100: 4px;
157
+ --radius-prim-200: 8px;
158
+ --radius-prim-300: 12px;
159
+ --radius-prim-400: 16px;
160
+ --radius-prim-500: 20px;
161
+ --radius-prim-600: 24px;
162
+ --radius-prim-700: 32px;
163
+ --radius-prim-full: 9999px;
164
+
165
+ /* =========================================================================
166
+ PRIMITIVOS — TIPOGRAFIA
167
+ ========================================================================= */
168
+ --font-size-50: 12px;
169
+ --font-size-100: 14px;
170
+ --font-size-200: 16px;
171
+ --font-size-300: 18px;
172
+ --font-size-400: 20px;
173
+ --font-size-500: 24px;
174
+ --font-size-600: 28px;
175
+ --font-size-700: 32px;
176
+ --font-size-800: 40px;
177
+
178
+ /* =========================================================================
179
+ PRIMITIVOS — OPACIDADES
180
+ ========================================================================= */
181
+ --opacity-0: 0;
182
+ --opacity-08: 0.08;
183
+ --opacity-16: 0.16;
184
+ --opacity-32: 0.32;
185
+ --opacity-48: 0.48;
186
+ --opacity-64: 0.64;
187
+ --opacity-80: 0.80;
188
+ --opacity-100: 1;
189
+
190
+ /* =========================================================================
191
+ SEMÂNTICOS — BACKGROUNDS (Dark padrão)
192
+ ========================================================================= */
193
+ --bg-primary: #0E0E0E;
194
+ --bg-secondary: #141519;
195
+ --bg-tertiary: #1A1A1A;
196
+ --bg-inverse: #FFFFFF;
197
+ --bg-overlay: #FFFFFF29;
198
+ --bg-brand: #00D4FF;
199
+ --bg-brand2: #6350B3;
200
+ --bg-warning: #FFCC40;
201
+ --bg-danger: #F34F45;
202
+ --bg-success: #31DD7E;
203
+ --bg-base-alpha-0: #0E0E0E00;
204
+
205
+ /* =========================================================================
206
+ SEMÂNTICOS — SURFACES
207
+ ========================================================================= */
208
+ --surface-primary: #4A4A4A;
209
+ --surface-secondary: #222222;
210
+ --surface-tertiary: #1A1A1A;
211
+ --surface-interactive: #002933;
212
+ --surface-disabled: #1A1A1A;
213
+ --surface-info: #00D4FF14;
214
+ --surface-error: #F1312614;
215
+ --surface-warning: #FFCC4014;
216
+ --surface-success: #4FE29014;
217
+ --surface-brand: #00D4FF29;
218
+
219
+ /* =========================================================================
220
+ SEMÂNTICOS — CONTEÚDO (TEXTO)
221
+ ========================================================================= */
222
+ --content-primary: #FFFFFF;
223
+ --content-secondary: #E8E8E8;
224
+ --content-tertiary: #A4A4A4;
225
+ --content-placeholder: #A4A4A4;
226
+ --content-disabled: #4A4A4A;
227
+ --content-inverse: #1A1A1A;
228
+ --content-info: #CCFDFF;
229
+ --content-warning: #FFD35A;
230
+ --content-error: #F34F45;
231
+ --content-success: #4FE290;
232
+ --content-brand: #00D4FF;
233
+
234
+ /* =========================================================================
235
+ SEMÂNTICOS — BORDAS
236
+ ========================================================================= */
237
+ --border-default: #4A4A4A;
238
+ --border-subtle: #222222;
239
+ --border-strong: #A4A4A4;
240
+ --border-focus: #00D4FF;
241
+ --border-disabled: #777777;
242
+
243
+ /* =========================================================================
244
+ SEMÂNTICOS — AÇÕES
245
+ ========================================================================= */
246
+
247
+ /* Brand (Ciano — primário) */
248
+ --action-brand-default: #00D4FF;
249
+ --action-brand-hover: #00A8CC;
250
+ --action-brand-active: #007D99;
251
+ --action-brand-disabled: #777777;
252
+ --action-brand-alpha: #00D4FF14;
253
+
254
+ /* Brand Inverse (botão CTA primário sólido) */
255
+ --action-brand-inverse-default: #005266;
256
+ --action-brand-inverse-hover: #007D99;
257
+ --action-brand-inverse-active: #002933;
258
+ --action-brand-inverse-alpha: #00D4FF14;
259
+ --action-brand-inverse-disabled: #777777;
260
+
261
+ /* Secondary (Neutro) */
262
+ --action-secondary-default: #4A4A4A;
263
+ --action-secondary-hover: #777777;
264
+ --action-secondary-active: #A4A4A4;
265
+ --action-secondary-disabled: #1A1A1A;
266
+ --action-secondary-alpha: #FFFFFF00;
267
+
268
+ /* Tertiary (Roxo) */
269
+ --action-tertiary-default: #50418E;
270
+ --action-tertiary-hover: #3E3467;
271
+ --action-tertiary-active: #2A2542;
272
+ --action-tertiary-disabled: #777777;
273
+ --action-tertiary-alpha: #6350B314;
274
+
275
+ /* Destructive (Laranja) */
276
+ --action-destructive-default: #EA580C;
277
+ --action-destructive-hover: #C2410C;
278
+ --action-destructive-active: #9A3412;
279
+ --action-destructive-disabled: #777777;
280
+ --action-destructive-alpha: #F9731614;
281
+
282
+ /* =========================================================================
283
+ SEMÂNTICOS — CONTEXTO DE TRADING
284
+ ========================================================================= */
285
+
286
+ /* Candlesticks */
287
+ --context-chart-up: #4FE290;
288
+ --context-chart-down: #F34F45;
289
+
290
+ /* Preço */
291
+ --context-trading-up: #4FE290;
292
+ --context-trading-up-alpha: #4FE29029;
293
+ --context-trading-down: #F34F45;
294
+ --context-trading-down-alpha: #F1312629;
295
+
296
+ /* Long (Compra) */
297
+ --context-trading-long-text: #6DE7A2;
298
+ --context-trading-long-default: #4FE29014;
299
+ --context-trading-long-hover: #4FE29029;
300
+ --context-trading-long-active: #4FE29052;
301
+
302
+ /* Short (Venda) */
303
+ --context-trading-short-text: #F56D64;
304
+ --context-trading-short-default: #F1312614;
305
+ --context-trading-short-hover: #F1312629;
306
+ --context-trading-short-active: #F1312652;
307
+
308
+ /* Stop Loss */
309
+ --context-trading-stop-default: #F97316;
310
+ --context-trading-stop-hover: #EA580C;
311
+ --context-trading-stop-active: #C2410C;
312
+ --context-trading-stop-alpha: #F9731614;
313
+
314
+ /* =========================================================================
315
+ SCALE — ESPAÇAMENTOS RESPONSIVOS (Desktop padrão)
316
+ ========================================================================= */
317
+ --spacing-xs: 4px;
318
+ --spacing-sm: 8px;
319
+ --spacing-md: 12px;
320
+ --spacing-lg: 16px;
321
+ --spacing-xl: 20px;
322
+ --spacing-2xl: 24px;
323
+ --spacing-3xl: 32px;
324
+ --spacing-3xl-2: 40px;
325
+ --spacing-3xl-3: 48px;
326
+ --spacing-3xl-4: 56px;
327
+ --spacing-3xl-5: 64px;
328
+ --spacing-3xl-6: 80px;
329
+ --spacing-3xl-7: 96px;
330
+
331
+ /* =========================================================================
332
+ SCALE — BORDER RADIUS
333
+ ========================================================================= */
334
+ --radius-none: 0px;
335
+ --radius-xs: 2px;
336
+ --radius-sm: 4px;
337
+ --radius-md: 8px;
338
+ --radius-lg: 16px;
339
+ --radius-xl: 20px;
340
+ --radius-full: 9999px;
341
+
342
+ /* =========================================================================
343
+ FONTES
344
+ ========================================================================= */
345
+ --font-primary: var(--font-jetbrains-mono), 'JetBrains Mono', monospace;
346
+ --font-secondary: var(--font-inter), 'Inter', sans-serif;
347
+ --font-mono: var(--font-roboto-mono), 'Roboto Mono', monospace;
348
+
349
+ /* =========================================================================
350
+ GRADIENTES DE BRANDING (Site)
351
+ ========================================================================= */
352
+ --gradient-text-brand: linear-gradient(90deg, #00D4FF 0%, #FFFFFF 100%);
353
+ --gradient-text-brand-hero: linear-gradient(90deg, #00D4FF 30%, #FFFFFF 100%);
354
+ --gradient-bg-hero: linear-gradient(180deg, #002933 0%, #0E0E0E 40%);
355
+ --gradient-bg-fade: linear-gradient(180deg, rgba(14,14,14,0) 0%, #0E0E0E 47%);
356
+ }
357
+
358
+ /* ==========================================================================
359
+ LIGHT MODE
360
+ ========================================================================== */
361
+ [data-theme="light"] {
362
+ --bg-primary: #EEEEEE;
363
+ --bg-secondary: #F5F5F5;
364
+ --bg-tertiary: #FAFAFA;
365
+ --bg-inverse: #1A1A1A;
366
+ --bg-overlay: #FFFFFF52;
367
+ --bg-brand: #00A8CC;
368
+ --bg-base-alpha-0: #FFFFFF00;
369
+
370
+ --surface-primary: #D2D2D2;
371
+ --surface-secondary: #E8E8E8;
372
+ --surface-tertiary: #EEEEEE;
373
+ --surface-interactive: #29ECFF;
374
+ --surface-disabled: #FAFAFA;
375
+ --surface-brand: #00D4FF29;
376
+
377
+ --content-primary: #1A1A1A;
378
+ --content-secondary: #222222;
379
+ --content-tertiary: #4A4A4A;
380
+ --content-disabled: #777777;
381
+ --content-inverse: #FFFFFF;
382
+ --content-brand: #007D99;
383
+ --content-info: #00A8CC;
384
+ --content-warning: #FFC500;
385
+ --content-placeholder: #777777;
386
+
387
+ --border-default: #A4A4A4;
388
+ --border-subtle: #E8E8E8;
389
+ --border-strong: #D2D2D2;
390
+ --border-disabled: #E8E8E8;
391
+ --border-focus: #00D4FF;
392
+
393
+ --action-brand-default: #00A8CC;
394
+ --action-brand-hover: #007D99;
395
+ --action-brand-active: #005266;
396
+ --action-brand-inverse-default: #00A8CC;
397
+ --action-brand-inverse-hover: #007D99;
398
+ --action-brand-inverse-active: #005266;
399
+ }