@rainersoft/design-tokens 1.0.6 → 2.3.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/README.md CHANGED
@@ -1,593 +1,241 @@
1
1
  # @rainersoft/design-tokens
2
2
 
3
- <div align="center">
3
+ [![Version](https://img.shields.io/badge/version-2.2.0-blue)](https://github.com/RainerTeixeira/rainer-design-tokens)
4
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
4
5
 
5
- ![Version](https://img.shields.io/badge/version-2.0.0-blue)
6
- ![License](https://img.shields.io/badge/license-MIT-green)
7
- ![TypeScript](https://img.shields.io/badge/TypeScript-100%25-blue)
8
- ![Tests](https://img.shields.io/badge/tests-320%20passing-success)
9
- ![Size](https://img.shields.io/badge/size-<5KB-success)
6
+ > Design tokens globais (CSS Variables, Tailwind config, temas) para o ecossistema Rainersoft
10
7
 
11
- **Enterprise-grade design tokens for modern design systems**
8
+ **Versão 2.2.0** - Arquitetura limpa, zero redundância, fonte única de verdade
12
9
 
13
- [Getting Started](#-installation) • [Documentation](#-documentation) • [Storybook](#-storybook---visualização-dos-tokens) • [Roadmap](./docs/14-roadmap.md)
10
+ ## 📦 Responsabilidade
14
11
 
15
- </div>
16
-
17
- ---
18
-
19
- ## 📖 Overview
20
-
21
- `@rainersoft/design-tokens` é uma biblioteca profissional de design tokens que define a linguagem visual do RainerSoft Design System. Agnóstica de tecnologia, escalável e pronta para produção.
12
+ Este pacote é a **fonte única de verdade** para todos os tokens de design:
13
+ - Cores, tipografia, espaçamento, radius, sombras
14
+ - CSS Variables para temas dinâmicos
15
+ - Configuração Tailwind pronta para uso
16
+ - Suporte a múltiplos temas (light/dark)
22
17
 
23
- ### Features
24
-
25
- - 🎨 **Temas Light & Dark** - Paletas profissionais para qualquer contexto
26
- - 🚀 **Zero Dependencies** - Pura performance, sem bloat
27
- - 📦 **Múltiplos Formatos** - Tailwind, CSS Vars, JSON universal
28
- - 🎯 **Type-Safe** - 100% TypeScript com tipos completos
29
- - 🌐 **Platform Agnostic** - Use em web, mobile, desktop, jogos
30
- - ♿ **Acessível** - WCAG AA compliant por padrão
31
- - 📏 **8pt Grid** - Sistema de espaçamento consistente
32
- - 🎭 **Cyberpunk Theme** - Dark mode com efeitos neon
33
- - 🎬 **Animações** - Keyframes e animações prontas (accordion, slide-in, fade-in)
34
- - 📚 **Storybook** - Documentação visual interativa de todos os tokens
35
- - ✏️ **Token Editor** - Interface web completa para editar tokens visualmente
36
- - ✅ Validação de schema JSON
37
- - ✅ Preview visual dos tokens
38
- - ✅ Histórico de alterações (undo/redo)
39
- - ✅ Geração de formatos: CSS, Tailwind, Figma, Android XML, iOS Swift (100% local no navegador)
40
- - 🧪 **Testes Completos** - 302 testes com 100% de cobertura do Token Editor
41
-
42
- ---
43
-
44
- ## 🚀 Installation
18
+ ## 🚀 Instalação
45
19
 
46
20
  ```bash
21
+ # Com pnpm (recomendado)
47
22
  pnpm add @rainersoft/design-tokens
48
- ```
49
23
 
50
- ```bash
24
+ # Com npm
51
25
  npm install @rainersoft/design-tokens
52
26
  ```
53
27
 
54
- ```bash
55
- yarn add @rainersoft/design-tokens
56
- ```
57
-
58
- ---
28
+ ## 📖 Uso
59
29
 
60
- ## 🎯 Quick Start
61
-
62
- ### TypeScript/JavaScript
63
-
64
- ```typescript
65
- import { tokens, lightTheme, darkTheme } from '@rainersoft/design-tokens';
66
-
67
- // Use tokens diretamente
68
- const primaryColor = tokens.colors.light.primary.base; // #0891b2
69
- const spacing = tokens.spacing['4']; // 1rem
70
- const fontSize = tokens.typography.headings.h1.fontSize; // 2.25rem
71
-
72
- // Ou use temas
73
- const theme = lightTheme;
74
- console.log(theme.colors.background.primary); // #ffffff
75
- ```
76
-
77
- ### Tailwind CSS
78
-
79
- ```typescript
80
- // tailwind.config.ts
81
- import { tailwindConfig } from '@rainersoft/design-tokens/formats/tailwind.config';
82
-
83
- export default {
84
- ...tailwindConfig,
85
- content: ['./src/**/*.{js,ts,jsx,tsx}'],
86
- };
87
- ```
30
+ ### CSS Variables (Recomendado)
88
31
 
89
32
  ```tsx
90
- // Use as classes
91
- <div className="bg-brand text-text-primary p-4 rounded-lg shadow-md">
33
+ // Use o formato gerado automaticamente (v2.1.0+)
34
+ import '@rainersoft/design-tokens/formats/css-vars.css';
35
+
36
+ // Os tokens estarão disponíveis globalmente
37
+ <div style={{ color: 'var(--color-primary)' }}>
92
38
  Hello World
93
39
  </div>
94
40
  ```
95
41
 
96
- ### CSS Variables
42
+ > **Nota**: `src/css-vars.css` está **deprecated** desde v2.1.0 e será removido na v3.0.0.
43
+ > Use `formats/css-vars.css` que é gerado automaticamente dos tokens JSON.
97
44
 
98
- ```css
99
- /* Import CSS vars */
100
- @import '@rainersoft/design-tokens/formats/css-vars.css';
101
-
102
- /* Use variables */
103
- .button {
104
- background: var(--color-brand-primary);
105
- padding: var(--spacing-4);
106
- border-radius: var(--radius-md);
107
- }
108
- ```
45
+ ### Tokens TypeScript
109
46
 
110
- ### 📚 Storybook - Visualização dos Tokens
111
-
112
- O Storybook da lib é focado **apenas em design tokens**, não em componentes UI.
47
+ ```tsx
48
+ import { colors, spacing, radius } from '@rainersoft/design-tokens';
113
49
 
114
- ```bash
115
- pnpm run storybook
50
+ // Usar tokens programaticamente
51
+ const primaryColor = colors.primary.DEFAULT;
52
+ const largePadding = spacing['16'];
116
53
  ```
117
54
 
118
- Acesse `http://localhost:6006` para explorar:
119
- - 🎨 **ColorPalette** - Paletas completas (Light & Dark themes)
120
- - 🎭 **ThemePreview** - Preview dos temas mostrando tokens trabalhando juntos
121
- - 📝 **Typography** - Sistema de tipografia completo
122
- - 📏 **Spacing** - Escala de espaçamento (8pt grid)
123
- - 🔲 **Radius** - Raios de borda
124
- - 🌑 **Shadows** - Sombras e efeitos glow
125
- - 🎬 **Animations** - Animações e keyframes (accordion, slide-in, fade-in)
55
+ ### Temas Dinâmicos
126
56
 
127
- > **Nota**: Componentes UI (Button, Card, etc.) devem estar no Storybook do frontend, não aqui. Veja [Estrutura do Storybook](./docs/06-ESTRUTURA_STORYBOOK.md) para mais detalhes.
57
+ ```html
58
+ <!-- Tema claro (padrão) -->
59
+ <body data-theme="light">
128
60
 
129
- ---
130
-
131
- ## 📁 Structure
132
-
133
- ```
134
- @rainersoft/design-tokens/
135
-
136
- ├── 📄 index.ts # Ponto de entrada principal da biblioteca
137
- ├── 📄 package.json # Configuração do pacote npm
138
- ├── 📄 pnpm-lock.yaml # Lock file do pnpm
139
- ├── 📄 tsconfig.json # Configuração TypeScript
140
- ├── 📄 tsup.config.ts # Configuração do bundler tsup
141
- ├── 📄 LICENSE # Licença MIT
142
- ├── 📄 README.md # Este arquivo
143
-
144
- ├── 🔧 Configurações
145
- │ ├── .npmrc # Configuração pnpm (isolamento workspace)
146
- │ ├── .gitignore # Arquivos ignorados pelo Git
147
- │ ├── .npmignore # Arquivos ignorados na publicação npm
148
- │ ├── .prettierrc.json # Configuração Prettier
149
- │ ├── .eslintrc.json # Configuração ESLint
150
- │ ├── .cspell.json # Configuração CSpell (verificação ortográfica)
151
- │ └── .env # Variáveis de ambiente (local, não commitado)
152
-
153
- ├── 🎯 tokens/ # FONTE ÚNICA DE VERDADE (JSON + TypeScript)
154
- │ ├── index.ts # Exportações principais dos tokens
155
- │ ├── accessibility.ts # Utilitários de acessibilidade (WCAG)
156
- │ ├── utilities.ts # Utilitários e helpers
157
- │ ├── colors/
158
- │ │ ├── light.json # Paleta do tema claro
159
- │ │ └── dark.json # Paleta do tema escuro (cyberpunk)
160
- │ ├── typography.json # Sistema de tipografia completo
161
- │ ├── spacing.json # Escala de espaçamento (8pt grid)
162
- │ ├── radius.json # Escala de raio de borda
163
- │ ├── shadows.json # Sombras e efeitos glow
164
- │ └── animations.json # Animações e keyframes
165
-
166
- ├── 🎨 themes/ # Temas compostos
167
- │ ├── index.ts # Exportações dos temas
168
- │ ├── light.ts # Tema claro profissional
169
- │ └── dark.ts # Tema escuro cyberpunk
170
-
171
- ├── 📤 formats/ # FORMATOS GERADOS AUTOMATICAMENTE
172
- │ ├── tailwind.config.ts # Configuração Tailwind (gerado)
173
- │ ├── css-vars.css # CSS custom properties (gerado)
174
- │ └── tokens.json # Export JSON universal (gerado)
175
-
176
- ├── 🔧 scripts/ # Scripts de build e utilitários
177
- │ ├── build-formats.ts # Orquestrador principal de build
178
- │ ├── build-css.ts # Gera CSS variables
179
- │ ├── build-tailwind.ts # Gera Tailwind config
180
- │ ├── build-tokens-json.ts # Gera tokens.json
181
- │ ├── prepare-publish.js # Prepara publicação npm
182
- │ ├── setup-github.sh # Setup GitHub Actions
183
- │ ├── fix-storybook.ps1 # Script PowerShell para Storybook
184
- │ ├── update-dates.ts # Atualiza datas na documentação
185
- │ └── update-version.ts # Atualiza versão no README automaticamente
186
-
187
- ├── 📚 stories/ # Stories do Storybook (apenas tokens)
188
- │ ├── assets/ # Assets das stories
189
- │ ├── Accessibility.stories.tsx # Documentação de acessibilidade
190
- │ ├── ColorPalette.stories.tsx # Paleta completa de cores
191
- │ ├── ColorStates.stories.tsx # Estados de cores
192
- │ ├── ThemePreview.stories.tsx # Preview dos temas
193
- │ ├── Typography.stories.tsx # Sistema de tipografia
194
- │ ├── TypographyHierarchy.stories.tsx # Hierarquia tipográfica
195
- │ ├── Spacing.stories.tsx # Escala de espaçamento
196
- │ ├── Radius.stories.tsx # Raios de borda
197
- │ ├── Shadows.stories.tsx # Sombras e efeitos
198
- │ ├── Animations.stories.tsx # Animações e keyframes
199
- │ └── *.mdx # Documentação MDX das stories
200
-
201
- ├── ⚙️ .storybook/ # Configuração do Storybook
202
- │ ├── main.ts # Configuração principal
203
- │ └── preview.tsx # Preview e temas do Storybook
204
-
205
- ├── 📦 dist/ # Saída compilada (TypeScript)
206
- │ ├── index.js # CommonJS bundle
207
- │ ├── index.mjs # ESM bundle
208
- │ ├── index.d.ts # TypeScript definitions
209
- │ ├── index.d.mts # ESM TypeScript definitions
210
- │ └── *.map # Source maps
211
-
212
- └── 📖 docs/ # Documentação completa
213
- ├── 00-INDICE.md # Índice geral da documentação
214
- ├── 03-ESTRUTURA.md # Estrutura detalhada da biblioteca
215
- ├── 06-ESTRUTURA_STORYBOOK.md # Estrutura do Storybook
216
- ├── 04-SISTEMA_BUILD.md # Sistema de build automatizado
217
- ├── 01-guidelines.md # Guidelines de uso
218
- ├── 07-GUIA_TOKENS_EXPANDIDOS.md # Guia dos tokens expandidos
219
- ├── 15-GUIA_MIGRACAO.md # Guia de migração
220
- ├── 11-PUBLICACAO.md # Guia de publicação
221
- ├── 09-CONFIGURACAO_PNPM.md # Configuração pnpm
222
- ├── CONTRIBUINDO.md # Guia de contribuição
223
- ├── 05-STORYBOOK.md # Documentação do Storybook
224
- ├── 02-RESUMO_ESTRUTURA.md # Resumo da estrutura
225
- ├── 12-HISTORICO_MUDANCAS.md # Histórico de mudanças
226
- └── 14-roadmap.md # Roadmap do projeto
61
+ <!-- Tema escuro -->
62
+ <body data-theme="dark">
227
63
  ```
228
64
 
229
- ### 🎯 Princípio: JSON como Fonte Única de Verdade
65
+ ## 🛠️ Scripts
230
66
 
231
- - ✅ **Edite apenas**: `tokens/*.json` (arquivos JSON na pasta `tokens/`)
232
- - **Edite também**: `tokens/*.ts` (utilitários e helpers em TypeScript)
233
- - ✅ **Formats são gerados**: Execute `pnpm run build:formats`
234
- - ❌ **NÃO edite manualmente**: `formats/*` (serão sobrescritos pelo build)
235
- - ⚙️ **Configurações**: Arquivos `.npmrc`, `.eslintrc.json`, `.prettierrc.json`, etc. na raiz
67
+ ```bash
68
+ # Construir tokens
69
+ pnpm build
236
70
 
237
- ---
71
+ # Desenvolvimento com hot reload
72
+ pnpm dev
238
73
 
239
- ## 🎨 Color System
74
+ # Executar testes
75
+ pnpm test
240
76
 
241
- ### Light Theme
242
- ```typescript
243
- {
244
- primary: { base: '#0891b2', hover: '#06b6d4', active: '#0891b2' },
245
- secondary: { base: '#9333ea', hover: '#a855f7', active: '#9333ea' },
246
- accent: { base: '#db2777', hover: '#e11d48', active: '#db2777' },
247
- status: { success: '#22c55e', error: '#ef4444', warning: '#f59e0b', info: '#3b82f6' }
248
- }
249
- ```
77
+ # Verificar tipos
78
+ pnpm type-check
250
79
 
251
- ### Dark Theme (Cyberpunk)
252
- ```typescript
253
- {
254
- primary: { base: '#00e6ff', hover: '#33eeff', active: '#00e6ff' },
255
- secondary: { base: '#7d00ff', hover: '#9333ea', active: '#7d00ff' },
256
- accent: { base: '#ff006e', hover: '#ff3385', active: '#ff006e' },
257
- effects: { glowCyan: '0 0 20px rgba(0, 230, 255, 0.5)' }
258
- }
80
+ # Limpar build
81
+ pnpm clean
259
82
  ```
260
83
 
261
- ---
262
-
263
- ## 📏 Typography
84
+ ## 📁 Estrutura
264
85
 
265
- Sistema hierárquico completo com headings, subtítulos, body, captions, buttons e labels:
86
+ ```text
87
+ @rainersoft/design-tokens/
88
+ ├── tokens/ # 📝 Fonte única de verdade (JSON)
89
+ │ ├── colors/ # Paletas light/dark
90
+ │ ├── typography.json # Tipografia
91
+ │ ├── spacing.json # Espaçamento
92
+ │ ├── radius.json # Border radius
93
+ │ ├── shadows.json # Sombras
94
+ │ ├── motion.json # Animações
95
+ │ └── z-index.json # Camadas
96
+ ├── formats/ # 🔄 Gerados automaticamente
97
+ │ ├── css-vars.css # CSS Variables (USE ESTE)
98
+ │ ├── tokens.json # JSON consolidado
99
+ │ └── tailwind.config.ts # Config Tailwind
100
+ ├── src/
101
+ │ └── css-vars.css # ⚠️ DEPRECATED (remover em v3.0.0)
102
+ └── dist/ # 📦 Build para distribuição
103
+ ```
104
+
105
+ ## 🎨 Tokens Disponíveis
106
+
107
+ ### Cores
108
+ - `primary`, `secondary`, `accent`, `destructive`
109
+ - `background`, `foreground`, `muted`, `card`, `popover`
110
+ - Cada cor tem variantes light/dark
111
+
112
+ As cores são expostas principalmente como **CSS Variables**, por exemplo:
266
113
 
267
- ```typescript
268
- {
269
- headings: {
270
- h1: { fontSize: '2.25rem', fontWeight: '700', lineHeight: '1.2' },
271
- h2: { fontSize: '1.875rem', fontWeight: '600', lineHeight: '1.3' },
272
- // ... h3, h4, h5, h6
273
- },
274
- body: {
275
- large: { fontSize: '1.125rem', lineHeight: '1.75' },
276
- medium: { fontSize: '1rem', lineHeight: '1.5' },
277
- small: { fontSize: '0.875rem', lineHeight: '1.5' }
278
- },
279
- // ... subtitle, caption, button, label, code
114
+ ```css
115
+ :root[data-theme="light"] {
116
+ --color-primary: 14 165 233; /* rgb */
117
+ --color-primary-foreground: 15 23 42; /* rgb */
118
+ /* ...outras cores */
280
119
  }
281
- ```
282
120
 
283
- ---
284
-
285
- ## 🌓 Theme Switching
286
-
287
- ```tsx
288
- // React example
289
- function ThemeToggle() {
290
- const [theme, setTheme] = useState('light');
291
-
292
- const toggleTheme = () => {
293
- const newTheme = theme === 'light' ? 'dark' : 'light';
294
- setTheme(newTheme);
295
- document.documentElement.classList.toggle('dark');
296
- };
297
-
298
- return <button onClick={toggleTheme}>Toggle Theme</button>;
121
+ :root[data-theme="dark"] {
122
+ --color-primary: 56 189 248;
123
+ --color-primary-foreground: 15 23 42;
299
124
  }
300
125
  ```
301
126
 
302
- ---
303
-
304
- ## 📚 Documentation
305
-
306
- 📖 **[Documentação Completa](./docs/00-INDICE.md)** - Índice geral de toda a documentação
307
-
308
- ### Guias Principais
309
-
310
- - [**Guidelines**](./docs/01-guidelines.md) - Como usar os tokens
311
- - [**ESTRUTURA.md**](./docs/03-ESTRUTURA.md) - Estrutura detalhada da biblioteca
312
- - [**SISTEMA_BUILD.md**](./docs/04-SISTEMA_BUILD.md) - Sistema de build automatizado
313
- - [**Roadmap**](./docs/14-roadmap.md) - Futuras features e versões
314
- - [**GUIA_TOKENS_EXPANDIDOS**](./docs/07-GUIA_TOKENS_EXPANDIDOS.md) - Guia dos tokens expandidos (cores e tipografia)
315
- - [**GUIA_MIGRACAO**](./docs/15-GUIA_MIGRACAO.md) - Guia de migração para v2.0.0
316
- - [**PUBLICACAO**](./docs/11-PUBLICACAO.md) - Guia de publicação no GitHub/npm
317
-
318
- ### Storybook
319
-
320
- - [**STORYBOOK.md**](./docs/05-STORYBOOK.md) - Documentação visual dos tokens
321
- - [**ESTRUTURA_STORYBOOK.md**](./docs/06-ESTRUTURA_STORYBOOK.md) - Separação entre tokens e componentes
322
-
323
- ### Referência Rápida
324
-
325
- - [**RESUMO_ESTRUTURA.md**](./docs/02-RESUMO_ESTRUTURA.md) - Resumo da estrutura
326
- - [**HISTORICO_MUDANCAS.md**](./docs/12-HISTORICO_MUDANCAS.md) - Histórico de mudanças
327
-
328
- ---
329
-
330
- ## 🎯 Use Cases
127
+ Uso típico nas camadas de UI:
331
128
 
332
- ### Perfect For
129
+ - CSS direto: `color: rgb(var(--color-primary));`
130
+ - Tailwind (via config): classes como `bg-primary`, `text-primary-foreground`, `border-border`, etc.
131
+ - Temas dinâmicos: alternando `data-theme="light"` / `data-theme="dark"` na tag `html` ou `body`.
333
132
 
334
- - 🌐 Websites e aplicações web
335
- - 📱 Aplicativos mobile (React Native, Flutter)
336
- - 🖥️ Aplicações desktop (Electron, Tauri)
337
- - 🎮 Interfaces de jogos (Unity, Unreal, Godot)
338
- - 🎨 Design systems corporativos
339
- - 🚀 MVPs e protótipos rápidos
133
+ ### Espaçamento
134
+ - Sistema 8pt grid: `0`, `1`, `2`, `4`, `8`, `12`, `16`, `20`, `24`, `32`...
340
135
 
341
- ### ❌ Not Included
136
+ ### Tipografia
137
+ - Font sizes: `xs`, `sm`, `base`, `lg`, `xl`, `2xl`...
138
+ - Font weights: `light`, `regular`, `medium`, `semibold`, `bold`
342
139
 
343
- Esta biblioteca contém **apenas tokens**, não componentes UI.
140
+ ### Radius
141
+ - `none`, `sm`, `md`, `lg`, `xl`, `full`
344
142
 
345
- Para componentes, use:
346
- - [shadcn/ui](https://ui.shadcn.com/) com estes tokens
347
- - [Radix UI](https://www.radix-ui.com/) + custom styling
348
- - Sua própria biblioteca de componentes
143
+ ### Sombras
144
+ - `xs`, `sm`, `md`, `lg`, `xl`, `2xl`
349
145
 
350
- ---
146
+ ### Animações
147
+ - Durações: `fast`, `normal`, `slow`
148
+ - Easing functions predefinidos
351
149
 
352
- ## 🔧 Integration Examples
150
+ ## ⚙️ Exemplo de Tailwind Config
353
151
 
354
- ### Next.js + Tailwind
152
+ Um exemplo simples de como consumir as variáveis de cor neste pacote via Tailwind:
355
153
 
356
- ```typescript
154
+ ```ts
357
155
  // tailwind.config.ts
358
- import { tailwindConfig } from '@rainersoft/design-tokens/formats/tailwind.config';
359
-
360
- export default tailwindConfig;
361
- ```
362
-
363
- ```tsx
364
- // app/layout.tsx
365
- export default function RootLayout({ children }: { children: React.Node }) {
366
- return (
367
- <html lang="pt-BR" className="dark">
368
- <body>{children}</body>
369
- </html>
370
- );
371
- }
372
- ```
373
-
374
- ### Vite + CSS
375
-
376
- ```typescript
377
- // main.ts
378
- import '@rainersoft/design-tokens/formats/css-vars.css';
379
- ```
380
-
381
- ### shadcn/ui
382
-
383
- ```typescript
384
- // Use tokens as base for shadcn/ui theming
385
- import { tokens } from '@rainersoft/design-tokens';
386
-
387
- export const shadcnTheme = {
388
- primary: tokens.colors.light.primary.base,
389
- secondary: tokens.colors.light.secondary.base,
390
- accent: tokens.colors.light.accent.base,
391
- // ... map other tokens
156
+ import type { Config } from 'tailwindcss';
157
+
158
+ const config: Config = {
159
+ darkMode: ['class', '[data-theme="dark"]'],
160
+ theme: {
161
+ extend: {
162
+ colors: {
163
+ background: 'rgb(var(--color-background) / <alpha-value>)',
164
+ foreground: 'rgb(var(--color-foreground) / <alpha-value>)',
165
+ primary: {
166
+ DEFAULT: 'rgb(var(--color-primary) / <alpha-value>)',
167
+ foreground: 'rgb(var(--color-primary-foreground) / <alpha-value>)',
168
+ },
169
+ secondary: {
170
+ DEFAULT: 'rgb(var(--color-secondary) / <alpha-value>)',
171
+ foreground: 'rgb(var(--color-secondary-foreground) / <alpha-value>)',
172
+ },
173
+ muted: {
174
+ DEFAULT: 'rgb(var(--color-muted) / <alpha-value>)',
175
+ foreground: 'rgb(var(--color-muted-foreground) / <alpha-value>)',
176
+ },
177
+ card: {
178
+ DEFAULT: 'rgb(var(--color-card) / <alpha-value>)',
179
+ foreground: 'rgb(var(--color-card-foreground) / <alpha-value>)',
180
+ },
181
+ },
182
+ },
183
+ },
392
184
  };
393
- ```
394
-
395
- ---
396
185
 
397
- ## 📦 Exports
398
-
399
- ```typescript
400
- // Main tokens
401
- import { tokens } from '@rainersoft/design-tokens';
402
-
403
- // Individual token categories
404
- import {
405
- lightThemeColors,
406
- darkThemeColors,
407
- typographyTokens,
408
- spacingTokens,
409
- radiusTokens,
410
- shadowTokens
411
- } from '@rainersoft/design-tokens/tokens';
412
-
413
- // Themes
414
- import { lightTheme, darkTheme } from '@rainersoft/design-tokens/themes';
415
-
416
- // Formats
417
- import { tailwindConfig } from '@rainersoft/design-tokens/formats/tailwind.config';
186
+ export default config;
418
187
  ```
419
188
 
420
- ---
189
+ ## 📝 Changelog
421
190
 
422
- ## 🎨 Token Editor (Editor Visual Local)
191
+ ### v2.2.0 (2024-11-24)
423
192
 
424
- Para editar os design tokens visualmente, sem servidor, use o **Token Editor** incluso no repositório:
193
+ **🚀 Melhorias de Governança e CI/CD**
425
194
 
426
- 1. Localize a pasta `token-editor/` na raiz do projeto.
427
- 2. Abra o arquivo `token-editor/index.html` diretamente no navegador (duplo clique ou arrastar/soltar).
428
- 3. Carregue um arquivo JSON de tokens, edite visualmente ou via código e salve/gera formatos **100% local**, direto no navegador.
429
-
430
- ---
431
-
432
- ## 🧪 Development
433
-
434
- ```bash
435
- # Install dependencies
436
- pnpm install
195
+ - **CI/CD Pipeline**: Workflow GitHub Actions completo para validação automática
196
+ - **Validação de Tokens**: Checks automáticos para valores hardcoded
197
+ - **Build Sequencial**: Pipeline garantindo ordem correta de build
198
+ - ✅ **Zero Hardcode Enforcement**: Validação rigorosa contra valores hardcoded
199
+ - ✅ **Documentação Profissional**: CONTRIBUTING.md dentro de docs/
437
200
 
438
- # Build tokens (gera formats + compila TypeScript)
439
- pnpm run build
201
+ ### v2.1.0 (2024-11-24)
440
202
 
441
- # Gerar apenas formatos (CSS, Tailwind, JSON)
442
- pnpm run build:formats
203
+ **🎯 Arquitetura Limpa - Zero Redundância**
443
204
 
444
- # Gerar formatos individuais
445
- pnpm run build:css # Gera formats/css-vars.css
446
- pnpm run build:tailwind # Gera formats/tailwind.config.ts
447
- pnpm run build:tokens-json # Gera formats/tokens.json
205
+ - **Removida redundância entre CSS vars**: `src/css-vars.css` marcado como DEPRECATED
206
+ - **Fonte única de verdade**: Apenas `formats/` (gerado) + `tokens/` (fonte)
207
+ - **Classes utilitárias movidas**: `.glass`, `.neon-*`, `.gradient-*` → `@rainersoft/ui`
208
+ - **Limpeza de arquivos**: `coverage/` e `.env` adicionados ao `.gitignore`
209
+ - ✅ **Documentação atualizada**: README reflete a nova arquitetura
448
210
 
449
- # Storybook (visualização dos tokens)
450
- pnpm run storybook # Inicia Storybook em http://localhost:6006
451
- pnpm run build-storybook # Gera build estático do Storybook
452
-
453
- # Run tests
454
- pnpm test
455
-
456
- # Type check
457
- pnpm run type-check
458
-
459
- # Lint
460
- pnpm run lint
461
-
462
- # Clean
463
- pnpm run clean # Remove dist/
464
- pnpm run clean:all # Remove node_modules, lock, dist, etc.
211
+ **Migração Recomendada:**
212
+ ```diff
213
+ - import '@rainersoft/design-tokens/src/css-vars.css';
214
+ + import '@rainersoft/design-tokens/formats/css-vars.css';
465
215
  ```
466
216
 
467
- ### 🔄 Workflow de Desenvolvimento
217
+ ### v2.0.0
468
218
 
469
- 1. **Edite os tokens** em `tokens/*.json` (fonte única de verdade)
470
- 2. **Edite utilitários** em `tokens/*.ts` se necessário (accessibility, utilities)
471
- 3. **Execute o build**: `pnpm run build:formats` (gera formatos)
472
- 4. **Os formatos são gerados automaticamente** em `formats/`
473
- 5. **Compile o TypeScript**: `pnpm run build` (já inclui build:formats + tsup)
474
- 6. **Visualize no Storybook**: `pnpm run storybook` para ver todos os tokens de forma interativa
475
- 7. **Execute testes**: `pnpm test` antes de commitar
476
- 8. **⚠️ IMPORTANTE**: Sempre commit `dist/` após build (veja [PUBLICACAO.md](./docs/11-PUBLICACAO.md#-por-que-dist-está-commitado))
219
+ - Sistema profissional W3C Design Tokens (DTCG)
220
+ - Token Editor 100% local (browser-based)
221
+ - Novos tokens: motion, breakpoints, z-index
222
+ - Novos formatos: Figma, Android XML, iOS Swift
223
+ - 320+ testes com 100% cobertura do Token Editor
224
+ - Estrutura primitivos/semânticos
225
+ - Breaking changes com guia de migração
477
226
 
478
- ### ✏️ Token Editor - Editor Visual de Tokens
227
+ ## 🤝 Contribuindo
479
228
 
480
- Interface web **100% local** para editar tokens visualmente, sem necessidade de servidor.
229
+ Contribuições são bem-vindas! Consulte o [Guia de Contribuição](./docs/CONTRIBUINDO.md) para saber como contribuir com este projeto.
481
230
 
482
- **Localização**: `token-editor/`
231
+ ## 📚 Documentação Completa
483
232
 
484
- **Características:**
485
- - 🚀 **100% Local** - Funciona abrindo HTML diretamente no navegador
486
- - 🎨 **Editor Visual** - Edite propriedades com inputs HTML (evita erros de sintaxe)
487
- - 📝 **Editor de Código** - Edição tradicional de JSON
488
- - **Validação em Tempo Real** - Detecta erros instantaneamente
489
- - 💾 **Download de Arquivos** - Salve JSON diretamente (sem servidor)
490
- - 🔄 **Auto-backup** - Salva automaticamente no localStorage
491
- - 🎯 **Zero Dependencies** - Apenas HTML, CSS e JavaScript puro
233
+ - [Índice da Documentação](./docs/00-INDICE.md)
234
+ - [Guia de Contribuição](./docs/CONTRIBUINDO.md)
235
+ - [Estrutura do Projeto](./docs/03-ESTRUTURA.md)
236
+ - [Sistema de Build](./docs/04-SISTEMA_BUILD.md)
237
+ - [Guia de Publicação](./docs/11-PUBLICACAO.md)
492
238
 
493
- **Como usar (Modo Local - Recomendado):**
494
- ```bash
495
- # Simplesmente abra o arquivo HTML no navegador:
496
- # Windows: Clique duas vezes em token-editor/index.html
497
- # Mac/Linux: open token-editor/index.html
498
- ```
239
+ ## 📝 Licença
499
240
 
500
- **Funcionalidades:**
501
- - 📂 Carregar arquivos JSON do computador
502
- - ✏️ Editar tokens com editor visual ou código
503
- - ✅ Validação JSON em tempo real
504
- - 💾 Salvar/Download de arquivos JSON
505
- - 🔨 Gerar formatos (requer servidor backend - opcional)
506
- - 👁️ Preview dos arquivos gerados
507
- - ⌨️ Atalhos de teclado (Ctrl+S, Ctrl+Shift+F, Ctrl+B)
508
-
509
- **Documentação completa**: Veja [Token Editor README](./token-editor/README.md)
510
-
511
- ### 🧪 Testes
512
-
513
- Suíte completa de testes com **302 casos de teste** cobrindo toda a funcionalidade, incluindo **100% de cobertura do Token Editor** (168 testes específicos + testes E2E).
514
-
515
- **Executar testes:**
516
- ```bash
517
- pnpm test # Executa todos os testes
518
- pnpm test:watch # Modo watch (desenvolvimento)
519
- pnpm test:coverage # Com relatório de cobertura
520
- ```
521
-
522
- **Cobertura:**
523
- - ✅ Tokens estrutura e exportações
524
- - ✅ Tokens utilitários (Tailwind classes)
525
- - ✅ Utilitários de acessibilidade (WCAG)
526
- - ✅ Estrutura de temas (light/dark)
527
- - ✅ **Token Editor (100% de cobertura - 168 testes + E2E)**
528
- - ✅ TypeScript types
529
- - ✅ Casos de uso reais
530
-
531
- Veja [Testes README](./tests/README.md) para mais detalhes.
532
-
533
- ### 📚 Storybook - Visualização dos Tokens
534
-
535
- O Storybook da lib documenta **apenas design tokens**, não componentes UI.
536
-
537
- **Stories disponíveis:**
538
- - 🎨 **ColorPalette** - Paletas completas de cores (Light & Dark)
539
- - 🎭 **ThemePreview** - Preview dos temas mostrando tokens em ação
540
- - 📝 **Typography** - Sistema completo de tipografia
541
- - 📏 **Spacing** - Escala de espaçamento (8pt grid)
542
- - 🔲 **Radius** - Raios de borda
543
- - 🌑 **Shadows** - Sombras e efeitos glow
544
- - 🎬 **Animations** - Animações e keyframes (accordion, slide-in, fade-in)
545
-
546
- **Separação de responsabilidades:**
547
- - ✅ **Este Storybook**: Apenas tokens (cores, tipografia, espaçamento, etc.)
548
- - ✅ **Storybook do Frontend**: Componentes UI (Button, Card, etc.)
549
-
550
- Para mais detalhes sobre a estrutura, consulte [**Estrutura do Storybook**](./docs/06-ESTRUTURA_STORYBOOK.md).
551
-
552
- ---
553
-
554
- ## 🤝 Contributing
555
-
556
- Contributions are welcome! Please read our [Contributing Guide](./docs/CONTRIBUINDO.md) first.
557
-
558
- ---
559
-
560
- ## 📄 License
561
-
562
- MIT © [Rainer Teixeira](https://github.com/RainerTeixeira)
563
-
564
- ---
565
-
566
- ## 🔗 Links
567
-
568
- - **GitHub**: [RainerTeixeira/rainer-design-tokens](https://github.com/RainerTeixeira/rainer-design-tokens)
569
- - **NPM**: [@rainersoft/design-tokens](https://www.npmjs.com/package/@rainersoft/design-tokens)
570
- - **Website**: [rainersoft.com.br](https://rainersoft.com.br)
571
- - **Email**: suporte@rainersoft.com.br
572
-
573
- ## 🛠️ Tech Stack
574
-
575
- - **Language**: TypeScript 5.3+ (strict mode)
576
- - **Package Manager**: pnpm 9+
577
- - **Build Tool**: tsup (TypeScript bundler)
578
- - **Linter**: ESLint + TypeScript ESLint
579
- - **Formatter**: Prettier
580
- - **Testing**: Jest
581
- - **Documentation**: Storybook 10
582
- - **Publish**: GitHub Actions (GitHub Packages + npm)
583
-
584
- ---
585
-
586
- <div align="center">
587
-
588
- **Made with ❤️ by Rainer Teixeira**
589
-
590
- ![Built with TypeScript](https://img.shields.io/badge/Built%20with-TypeScript-blue)
591
- ![Enterprise Ready](https://img.shields.io/badge/Enterprise-Ready-success)
592
-
593
- </div>
241
+ MIT © Rainer Teixeira