@rainersoft/design-tokens 1.0.4 → 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/README.md +593 -544
- package/dist/index.d.ts +1714 -103
- package/dist/index.mjs +2 -1116
- package/dist/index.mjs.map +1 -1
- package/formats/tailwind.config.ts +64 -6
- package/formats/tokens.json +2 -2
- package/package.json +15 -12
- package/themes/dark.ts +2 -2
- package/themes/index.ts +2 -2
- package/themes/light.ts +2 -2
- package/tokens/accessibility.ts +1 -1
- package/tokens/animations.json +83 -0
- package/tokens/breakpoints.json +30 -0
- package/tokens/components/celestial-background.json +106 -0
- package/tokens/effects.json +125 -0
- package/tokens/hero.json +69 -0
- package/tokens/index.ts +156 -9
- package/tokens/motion.json +33 -0
- package/tokens/utilities.ts +594 -177
- package/tokens/z-index.json +27 -0
- package/dist/index.cjs +0 -1190
- package/dist/index.cjs.map +0 -1
- package/dist/index.d.cts +0 -5853
package/tokens/utilities.ts
CHANGED
|
@@ -1,177 +1,594 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fileoverview Tokens utilitários - Classes Tailwind CSS
|
|
3
|
-
*
|
|
4
|
-
* @description
|
|
5
|
-
* Tokens utilitários que exportam classes Tailwind CSS prontas para uso.
|
|
6
|
-
* Esses tokens são classes CSS que podem ser aplicadas diretamente nos componentes,
|
|
7
|
-
* facilitando o desenvolvimento e garantindo consistência visual.
|
|
8
|
-
*
|
|
9
|
-
* @module tokens/utilities
|
|
10
|
-
* @version
|
|
11
|
-
* @author Rainer Teixeira
|
|
12
|
-
* @since 1.0.0
|
|
13
|
-
*/
|
|
14
|
-
|
|
15
|
-
/**
|
|
16
|
-
* Direções de gradiente como classes Tailwind CSS
|
|
17
|
-
*
|
|
18
|
-
* @description
|
|
19
|
-
* Conjunto de constantes que representam as diferentes direções
|
|
20
|
-
* de gradiente disponíveis no Tailwind CSS.
|
|
21
|
-
*
|
|
22
|
-
* @type {Object}
|
|
23
|
-
* @property {string} TO_TOP - Gradiente de baixo para cima
|
|
24
|
-
* @property {string} TO_BOTTOM - Gradiente de cima para baixo
|
|
25
|
-
* @property {string} TO_LEFT - Gradiente da direita para esquerda
|
|
26
|
-
* @property {string} TO_RIGHT - Gradiente da esquerda para direita
|
|
27
|
-
* @property {string} TO_TL - Gradiente para cima-esquerda (top-left)
|
|
28
|
-
* @property {string} TO_TR - Gradiente para cima-direita (top-right)
|
|
29
|
-
* @property {string} TO_BL - Gradiente para baixo-esquerda (bottom-left)
|
|
30
|
-
* @property {string} TO_BR - Gradiente para baixo-direita (bottom-right)
|
|
31
|
-
*
|
|
32
|
-
* @constant
|
|
33
|
-
* @readonly
|
|
34
|
-
*
|
|
35
|
-
* @example
|
|
36
|
-
* ```typescript
|
|
37
|
-
* import { GRADIENT_DIRECTIONS } from '
|
|
38
|
-
*
|
|
39
|
-
* // Aplicar gradiente de cima para baixo
|
|
40
|
-
* <div className={GRADIENT_DIRECTIONS.TO_BOTTOM}>
|
|
41
|
-
* ```
|
|
42
|
-
*/
|
|
43
|
-
export const GRADIENT_DIRECTIONS = {
|
|
44
|
-
TO_TOP: 'bg-
|
|
45
|
-
TO_BOTTOM: 'bg-
|
|
46
|
-
TO_LEFT: 'bg-
|
|
47
|
-
TO_RIGHT: 'bg-
|
|
48
|
-
TO_TL: 'bg-
|
|
49
|
-
TO_TR: 'bg-
|
|
50
|
-
TO_BL: 'bg-
|
|
51
|
-
TO_BR: 'bg-
|
|
52
|
-
} as const;
|
|
53
|
-
|
|
54
|
-
/**
|
|
55
|
-
* Gradientes decorativos e utilitários como classes Tailwind CSS
|
|
56
|
-
*
|
|
57
|
-
* @description
|
|
58
|
-
* Conjunto de gradientes pré-configurados para uso em diferentes
|
|
59
|
-
* contextos da aplicação, incluindo texto, elementos decorativos e botões.
|
|
60
|
-
*
|
|
61
|
-
* @type {Object}
|
|
62
|
-
* @property {string} TEXT_PRIMARY - Gradiente para texto com efeito de clip
|
|
63
|
-
* @property {string} DECORATIVE_PRIMARY - Gradiente decorativo principal (cyan-purple-pink)
|
|
64
|
-
* @property {string} DECORATIVE_CYAN_PURPLE - Gradiente decorativo cyan para purple
|
|
65
|
-
* @property {string} DECORATIVE_GREEN_EMERALD - Gradiente decorativo green para emerald
|
|
66
|
-
* @property {string} BUTTON_CYAN_BLUE - Gradiente para botões (cyan para blue)
|
|
67
|
-
* @property {string} BUTTON_PURPLE_PINK - Gradiente para botões (purple para pink)
|
|
68
|
-
*
|
|
69
|
-
* @constant
|
|
70
|
-
* @readonly
|
|
71
|
-
*
|
|
72
|
-
* @example
|
|
73
|
-
* ```typescript
|
|
74
|
-
* import { GRADIENTS } from '
|
|
75
|
-
*
|
|
76
|
-
* // Aplicar gradiente em texto
|
|
77
|
-
* <h1 className={GRADIENTS.TEXT_PRIMARY}>Título com Gradiente</h1>
|
|
78
|
-
*
|
|
79
|
-
* // Aplicar gradiente em botão
|
|
80
|
-
* <button className={GRADIENTS.BUTTON_CYAN_BLUE}>Clique aqui</button>
|
|
81
|
-
* ```
|
|
82
|
-
*/
|
|
83
|
-
export const GRADIENTS = {
|
|
84
|
-
// Gradientes de texto usando tokens CSS
|
|
85
|
-
TEXT_PRIMARY: 'bg-linear-to-r from-[var(--color-primary-base)] via-[var(--color-secondary-base)] to-[var(--color-accent-base)] bg-clip-text text-transparent',
|
|
86
|
-
|
|
87
|
-
// Gradientes decorativos usando tokens CSS
|
|
88
|
-
DECORATIVE_PRIMARY: 'bg-linear-to-br from-[var(--color-primary-base)] via-[var(--color-secondary-base)] to-[var(--color-accent-base)]',
|
|
89
|
-
DECORATIVE_CYAN_PURPLE: 'bg-linear-to-r from-[var(--color-primary-base)] to-[var(--color-secondary-base)]',
|
|
90
|
-
DECORATIVE_GREEN_EMERALD: 'bg-linear-to-br from-[var(--color-status-success)] to-[var(--color-accent-base)]',
|
|
91
|
-
|
|
92
|
-
// Gradientes de botões usando tokens CSS
|
|
93
|
-
BUTTON_CYAN_BLUE: 'bg-linear-to-r from-[var(--color-primary-base)] to-[var(--color-primary-hover)]',
|
|
94
|
-
BUTTON_PURPLE_PINK: 'bg-linear-to-r from-[var(--color-secondary-base)] to-[var(--color-accent-base)]',
|
|
95
|
-
} as const;
|
|
96
|
-
|
|
97
|
-
/**
|
|
98
|
-
* Backgrounds utilitários como classes Tailwind CSS
|
|
99
|
-
*
|
|
100
|
-
* @description
|
|
101
|
-
* Conjunto de classes para backgrounds pré-configurados, incluindo
|
|
102
|
-
* overlays, divisores e backgrounds de seção com efeitos de gradiente sutis.
|
|
103
|
-
*
|
|
104
|
-
* @type {Object}
|
|
105
|
-
* @property {string} FULL - Background completo padrão
|
|
106
|
-
* @property {string} GRADIENT_OVERLAY - Overlay de gradiente sutil
|
|
107
|
-
* @property {string} PREMIUM_DIVIDER_CONTAINER - Container para divisor premium
|
|
108
|
-
* @property {string} PREMIUM_DIVIDER_LINE - Linha do divisor premium
|
|
109
|
-
* @property {string} SECTION_CYAN - Background de seção com gradiente cyan
|
|
110
|
-
* @property {string} SECTION_CYAN_VIA - Background de seção cyan via (meio)
|
|
111
|
-
* @property {string} SECTION_PURPLE_VIA - Background de seção purple via (meio)
|
|
112
|
-
* @property {string} SECTION_PINK_VIA - Background de seção pink via (meio)
|
|
113
|
-
*
|
|
114
|
-
* @constant
|
|
115
|
-
* @readonly
|
|
116
|
-
*
|
|
117
|
-
* @example
|
|
118
|
-
* ```typescript
|
|
119
|
-
* import { BACKGROUND } from '
|
|
120
|
-
*
|
|
121
|
-
* // Aplicar background de seção
|
|
122
|
-
* <section className={BACKGROUND.SECTION_CYAN}>
|
|
123
|
-
* Conteúdo da seção
|
|
124
|
-
* </section>
|
|
125
|
-
*
|
|
126
|
-
* // Aplicar overlay de gradiente
|
|
127
|
-
* <div className={BACKGROUND.GRADIENT_OVERLAY}>
|
|
128
|
-
* Conteúdo com overlay
|
|
129
|
-
* </div>
|
|
130
|
-
* ```
|
|
131
|
-
*/
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
*
|
|
152
|
-
*
|
|
153
|
-
*
|
|
154
|
-
* @
|
|
155
|
-
*
|
|
156
|
-
*
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Tokens utilitários - Classes Tailwind CSS
|
|
3
|
+
*
|
|
4
|
+
* @description
|
|
5
|
+
* Tokens utilitários que exportam classes Tailwind CSS prontas para uso.
|
|
6
|
+
* Esses tokens são classes CSS que podem ser aplicadas diretamente nos componentes,
|
|
7
|
+
* facilitando o desenvolvimento e garantindo consistência visual.
|
|
8
|
+
*
|
|
9
|
+
* @module tokens/utilities
|
|
10
|
+
* @version 2.0.0
|
|
11
|
+
* @author Rainer Teixeira
|
|
12
|
+
* @since 1.0.0
|
|
13
|
+
*/
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Direções de gradiente como classes Tailwind CSS
|
|
17
|
+
*
|
|
18
|
+
* @description
|
|
19
|
+
* Conjunto de constantes que representam as diferentes direções
|
|
20
|
+
* de gradiente disponíveis no Tailwind CSS.
|
|
21
|
+
*
|
|
22
|
+
* @type {Object}
|
|
23
|
+
* @property {string} TO_TOP - Gradiente de baixo para cima
|
|
24
|
+
* @property {string} TO_BOTTOM - Gradiente de cima para baixo
|
|
25
|
+
* @property {string} TO_LEFT - Gradiente da direita para esquerda
|
|
26
|
+
* @property {string} TO_RIGHT - Gradiente da esquerda para direita
|
|
27
|
+
* @property {string} TO_TL - Gradiente para cima-esquerda (top-left)
|
|
28
|
+
* @property {string} TO_TR - Gradiente para cima-direita (top-right)
|
|
29
|
+
* @property {string} TO_BL - Gradiente para baixo-esquerda (bottom-left)
|
|
30
|
+
* @property {string} TO_BR - Gradiente para baixo-direita (bottom-right)
|
|
31
|
+
*
|
|
32
|
+
* @constant
|
|
33
|
+
* @readonly
|
|
34
|
+
*
|
|
35
|
+
* @example
|
|
36
|
+
* ```typescript
|
|
37
|
+
* import { GRADIENT_DIRECTIONS } from '@rainersoft/design-tokens';
|
|
38
|
+
*
|
|
39
|
+
* // Aplicar gradiente de cima para baixo
|
|
40
|
+
* <div className={GRADIENT_DIRECTIONS.TO_BOTTOM}>
|
|
41
|
+
* ```
|
|
42
|
+
*/
|
|
43
|
+
export const GRADIENT_DIRECTIONS = {
|
|
44
|
+
TO_TOP: 'bg-linear-to-t',
|
|
45
|
+
TO_BOTTOM: 'bg-linear-to-b',
|
|
46
|
+
TO_LEFT: 'bg-linear-to-l',
|
|
47
|
+
TO_RIGHT: 'bg-linear-to-r',
|
|
48
|
+
TO_TL: 'bg-linear-to-tl',
|
|
49
|
+
TO_TR: 'bg-linear-to-tr',
|
|
50
|
+
TO_BL: 'bg-linear-to-bl',
|
|
51
|
+
TO_BR: 'bg-linear-to-br',
|
|
52
|
+
} as const;
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* Gradientes decorativos e utilitários como classes Tailwind CSS
|
|
56
|
+
*
|
|
57
|
+
* @description
|
|
58
|
+
* Conjunto de gradientes pré-configurados para uso em diferentes
|
|
59
|
+
* contextos da aplicação, incluindo texto, elementos decorativos e botões.
|
|
60
|
+
*
|
|
61
|
+
* @type {Object}
|
|
62
|
+
* @property {string} TEXT_PRIMARY - Gradiente para texto com efeito de clip
|
|
63
|
+
* @property {string} DECORATIVE_PRIMARY - Gradiente decorativo principal (cyan-purple-pink)
|
|
64
|
+
* @property {string} DECORATIVE_CYAN_PURPLE - Gradiente decorativo cyan para purple
|
|
65
|
+
* @property {string} DECORATIVE_GREEN_EMERALD - Gradiente decorativo green para emerald
|
|
66
|
+
* @property {string} BUTTON_CYAN_BLUE - Gradiente para botões (cyan para blue)
|
|
67
|
+
* @property {string} BUTTON_PURPLE_PINK - Gradiente para botões (purple para pink)
|
|
68
|
+
*
|
|
69
|
+
* @constant
|
|
70
|
+
* @readonly
|
|
71
|
+
*
|
|
72
|
+
* @example
|
|
73
|
+
* ```typescript
|
|
74
|
+
* import { GRADIENTS } from '@rainersoft/design-tokens';
|
|
75
|
+
*
|
|
76
|
+
* // Aplicar gradiente em texto
|
|
77
|
+
* <h1 className={GRADIENTS.TEXT_PRIMARY}>Título com Gradiente</h1>
|
|
78
|
+
*
|
|
79
|
+
* // Aplicar gradiente em botão
|
|
80
|
+
* <button className={GRADIENTS.BUTTON_CYAN_BLUE}>Clique aqui</button>
|
|
81
|
+
* ```
|
|
82
|
+
*/
|
|
83
|
+
export const GRADIENTS = {
|
|
84
|
+
// Gradientes de texto usando tokens CSS
|
|
85
|
+
TEXT_PRIMARY: 'bg-linear-to-r from-[var(--color-primary-base)] via-[var(--color-secondary-base)] to-[var(--color-accent-base)] bg-clip-text text-transparent',
|
|
86
|
+
|
|
87
|
+
// Gradientes decorativos usando tokens CSS
|
|
88
|
+
DECORATIVE_PRIMARY: 'bg-linear-to-br from-[var(--color-primary-base)] via-[var(--color-secondary-base)] to-[var(--color-accent-base)]',
|
|
89
|
+
DECORATIVE_CYAN_PURPLE: 'bg-linear-to-r from-[var(--color-primary-base)] to-[var(--color-secondary-base)]',
|
|
90
|
+
DECORATIVE_GREEN_EMERALD: 'bg-linear-to-br from-[var(--color-status-success)] to-[var(--color-accent-base)]',
|
|
91
|
+
|
|
92
|
+
// Gradientes de botões usando tokens CSS
|
|
93
|
+
BUTTON_CYAN_BLUE: 'bg-linear-to-r from-[var(--color-primary-base)] to-[var(--color-primary-hover)]',
|
|
94
|
+
BUTTON_PURPLE_PINK: 'bg-linear-to-r from-[var(--color-secondary-base)] to-[var(--color-accent-base)]',
|
|
95
|
+
} as const;
|
|
96
|
+
|
|
97
|
+
/**
|
|
98
|
+
* Backgrounds utilitários como classes Tailwind CSS
|
|
99
|
+
*
|
|
100
|
+
* @description
|
|
101
|
+
* Conjunto de classes para backgrounds pré-configurados, incluindo
|
|
102
|
+
* overlays, divisores e backgrounds de seção com efeitos de gradiente sutis.
|
|
103
|
+
*
|
|
104
|
+
* @type {Object}
|
|
105
|
+
* @property {string} FULL - Background completo padrão
|
|
106
|
+
* @property {string} GRADIENT_OVERLAY - Overlay de gradiente sutil
|
|
107
|
+
* @property {string} PREMIUM_DIVIDER_CONTAINER - Container para divisor premium
|
|
108
|
+
* @property {string} PREMIUM_DIVIDER_LINE - Linha do divisor premium
|
|
109
|
+
* @property {string} SECTION_CYAN - Background de seção com gradiente cyan
|
|
110
|
+
* @property {string} SECTION_CYAN_VIA - Background de seção cyan via (meio)
|
|
111
|
+
* @property {string} SECTION_PURPLE_VIA - Background de seção purple via (meio)
|
|
112
|
+
* @property {string} SECTION_PINK_VIA - Background de seção pink via (meio)
|
|
113
|
+
*
|
|
114
|
+
* @constant
|
|
115
|
+
* @readonly
|
|
116
|
+
*
|
|
117
|
+
* @example
|
|
118
|
+
* ```typescript
|
|
119
|
+
* import { BACKGROUND } from '@rainersoft/design-tokens';
|
|
120
|
+
*
|
|
121
|
+
* // Aplicar background de seção
|
|
122
|
+
* <section className={BACKGROUND.SECTION_CYAN}>
|
|
123
|
+
* Conteúdo da seção
|
|
124
|
+
* </section>
|
|
125
|
+
*
|
|
126
|
+
* // Aplicar overlay de gradiente
|
|
127
|
+
* <div className={BACKGROUND.GRADIENT_OVERLAY}>
|
|
128
|
+
* Conteúdo com overlay
|
|
129
|
+
* </div>
|
|
130
|
+
* ```
|
|
131
|
+
*/
|
|
132
|
+
/**
|
|
133
|
+
* Gradientes compostos - Direção + Cores (Padrão Enterprise)
|
|
134
|
+
*
|
|
135
|
+
* @description
|
|
136
|
+
* Combina direção e cores em um único token para uso direto.
|
|
137
|
+
* Elimina necessidade de concatenar strings manualmente.
|
|
138
|
+
* Padrão usado por grandes empresas (Google Material, Microsoft Fluent, Shopify Polaris).
|
|
139
|
+
*
|
|
140
|
+
* @type {Object}
|
|
141
|
+
* @property {string} HORIZONTAL_PRIMARY - Gradiente horizontal com cores primárias
|
|
142
|
+
* @property {string} HORIZONTAL_SECONDARY - Gradiente horizontal com cores secundárias
|
|
143
|
+
* @property {string} HORIZONTAL_DECORATIVE - Gradiente horizontal decorativo
|
|
144
|
+
* @property {string} VERTICAL_PRIMARY - Gradiente vertical com cores primárias
|
|
145
|
+
* @property {string} VERTICAL_SECONDARY - Gradiente vertical com cores secundárias
|
|
146
|
+
* @property {string} DIAGONAL_PRIMARY - Gradiente diagonal com cores primárias
|
|
147
|
+
* @property {string} DIAGONAL_SECONDARY - Gradiente diagonal com cores secundárias
|
|
148
|
+
*
|
|
149
|
+
* @constant
|
|
150
|
+
* @readonly
|
|
151
|
+
*
|
|
152
|
+
* @example
|
|
153
|
+
* ```typescript
|
|
154
|
+
* import { GRADIENT_COMPOSITES } from '@rainersoft/design-tokens';
|
|
155
|
+
*
|
|
156
|
+
* // Usar diretamente sem concatenar
|
|
157
|
+
* <div className={GRADIENT_COMPOSITES.HORIZONTAL_PRIMARY}>
|
|
158
|
+
* Conteúdo
|
|
159
|
+
* </div>
|
|
160
|
+
* ```
|
|
161
|
+
*/
|
|
162
|
+
export const GRADIENT_COMPOSITES = {
|
|
163
|
+
// Gradientes horizontais (left-to-right)
|
|
164
|
+
HORIZONTAL_PRIMARY: `${GRADIENT_DIRECTIONS.TO_RIGHT} ${GRADIENTS.BUTTON_CYAN_BLUE}`,
|
|
165
|
+
HORIZONTAL_SECONDARY: `${GRADIENT_DIRECTIONS.TO_RIGHT} ${GRADIENTS.BUTTON_PURPLE_PINK}`,
|
|
166
|
+
HORIZONTAL_DECORATIVE: `${GRADIENT_DIRECTIONS.TO_RIGHT} ${GRADIENTS.DECORATIVE_PRIMARY}`,
|
|
167
|
+
HORIZONTAL_CYAN_PURPLE: `${GRADIENT_DIRECTIONS.TO_RIGHT} ${GRADIENTS.DECORATIVE_CYAN_PURPLE}`,
|
|
168
|
+
|
|
169
|
+
// Gradientes verticais (top-to-bottom)
|
|
170
|
+
VERTICAL_PRIMARY: `${GRADIENT_DIRECTIONS.TO_BOTTOM} ${GRADIENTS.BUTTON_CYAN_BLUE}`,
|
|
171
|
+
VERTICAL_SECONDARY: `${GRADIENT_DIRECTIONS.TO_BOTTOM} ${GRADIENTS.BUTTON_PURPLE_PINK}`,
|
|
172
|
+
VERTICAL_DECORATIVE: `${GRADIENT_DIRECTIONS.TO_BOTTOM} ${GRADIENTS.DECORATIVE_PRIMARY}`,
|
|
173
|
+
|
|
174
|
+
// Gradientes diagonais
|
|
175
|
+
DIAGONAL_PRIMARY: `${GRADIENT_DIRECTIONS.TO_BR} ${GRADIENTS.DECORATIVE_PRIMARY}`,
|
|
176
|
+
DIAGONAL_SECONDARY: `${GRADIENT_DIRECTIONS.TO_BR} ${GRADIENTS.DECORATIVE_CYAN_PURPLE}`,
|
|
177
|
+
DIAGONAL_GREEN_EMERALD: `${GRADIENT_DIRECTIONS.TO_BR} ${GRADIENTS.DECORATIVE_GREEN_EMERALD}`,
|
|
178
|
+
} as const;
|
|
179
|
+
|
|
180
|
+
/**
|
|
181
|
+
* Gradientes de cores específicas usando tokens de cor
|
|
182
|
+
*
|
|
183
|
+
* @description
|
|
184
|
+
* Elimina valores hardcoded como "from-gray-500". Todos os gradientes
|
|
185
|
+
* usam tokens de cor do sistema para garantir consistência.
|
|
186
|
+
*
|
|
187
|
+
* @type {Object}
|
|
188
|
+
* @property {string} GRAY_SCALE - Gradiente em escala de cinza usando tokens
|
|
189
|
+
* @property {string} BLUE_SCALE - Gradiente em escala de azul usando tokens primários
|
|
190
|
+
* @property {string} SUCCESS_SCALE - Gradiente em escala de verde (sucesso) usando tokens
|
|
191
|
+
* @property {string} TEXT_MUTED - Gradiente para texto muted usando tokens
|
|
192
|
+
*
|
|
193
|
+
* @constant
|
|
194
|
+
* @readonly
|
|
195
|
+
*
|
|
196
|
+
* @example
|
|
197
|
+
* ```typescript
|
|
198
|
+
* import { GRADIENT_COLORS } from '@rainersoft/design-tokens';
|
|
199
|
+
*
|
|
200
|
+
* // Usar gradiente de cinza sem valores hardcoded
|
|
201
|
+
* <div className={GRADIENT_COLORS.GRAY_SCALE}>
|
|
202
|
+
* Conteúdo
|
|
203
|
+
* </div>
|
|
204
|
+
* ```
|
|
205
|
+
*/
|
|
206
|
+
export const GRADIENT_COLORS = {
|
|
207
|
+
// Escala de cinza usando tokens de texto
|
|
208
|
+
GRAY_SCALE: `${GRADIENT_DIRECTIONS.TO_RIGHT} from-[var(--color-text-tertiary)] to-[var(--color-text-secondary)]`,
|
|
209
|
+
|
|
210
|
+
// Escala de azul usando tokens primários
|
|
211
|
+
BLUE_SCALE: `${GRADIENT_DIRECTIONS.TO_RIGHT} from-[var(--color-primary-base)] to-[var(--color-primary-hover)]`,
|
|
212
|
+
|
|
213
|
+
// Escala de verde (sucesso) usando tokens de status
|
|
214
|
+
SUCCESS_SCALE: `${GRADIENT_DIRECTIONS.TO_RIGHT} from-[var(--color-status-success)] to-[var(--color-status-success-hover)]`,
|
|
215
|
+
|
|
216
|
+
// Gradiente para texto muted
|
|
217
|
+
TEXT_MUTED: `${GRADIENT_DIRECTIONS.TO_RIGHT} from-[var(--color-text-tertiary)] to-[var(--color-text-secondary)]`,
|
|
218
|
+
} as const;
|
|
219
|
+
|
|
220
|
+
export const BACKGROUND = {
|
|
221
|
+
// Background completo usando token CSS
|
|
222
|
+
FULL: 'bg-[var(--color-background-primary)]',
|
|
223
|
+
|
|
224
|
+
// Overlay de gradiente usando tokens CSS
|
|
225
|
+
GRADIENT_OVERLAY: 'bg-linear-to-br from-[var(--color-primary-base)]/10 via-[var(--color-secondary-base)]/10 to-[var(--color-accent-base)]/10',
|
|
226
|
+
|
|
227
|
+
// Divisores premium usando tokens CSS
|
|
228
|
+
PREMIUM_DIVIDER_CONTAINER: 'bg-linear-to-b from-transparent via-[var(--color-primary-base)]/5 to-transparent',
|
|
229
|
+
PREMIUM_DIVIDER_LINE: 'bg-linear-to-r from-transparent via-[var(--color-primary-base)]/50 to-transparent',
|
|
230
|
+
|
|
231
|
+
// Backgrounds de seção usando tokens CSS
|
|
232
|
+
SECTION_CYAN: 'bg-linear-to-br from-[var(--color-primary-base)]/5 via-[var(--color-primary-base)]/3 to-transparent',
|
|
233
|
+
SECTION_CYAN_VIA: 'bg-linear-to-br from-transparent via-[var(--color-primary-base)]/5 to-transparent',
|
|
234
|
+
SECTION_PURPLE_VIA: 'bg-linear-to-br from-transparent via-[var(--color-secondary-base)]/5 to-transparent',
|
|
235
|
+
SECTION_PINK_VIA: 'bg-linear-to-br from-transparent via-[var(--color-accent-base)]/5 to-transparent',
|
|
236
|
+
} as const;
|
|
237
|
+
|
|
238
|
+
/**
|
|
239
|
+
* Tipo TypeScript para direções de gradiente
|
|
240
|
+
*
|
|
241
|
+
* @typedef {Object} GradientDirections
|
|
242
|
+
* @description
|
|
243
|
+
* Tipo que representa todas as direções de gradiente disponíveis.
|
|
244
|
+
* Útil para type-checking e autocomplete em IDEs.
|
|
245
|
+
*/
|
|
246
|
+
export type GradientDirections = typeof GRADIENT_DIRECTIONS;
|
|
247
|
+
|
|
248
|
+
/**
|
|
249
|
+
* Utilidades responsivas para breakpoints
|
|
250
|
+
*
|
|
251
|
+
* @description
|
|
252
|
+
* Classes e helpers para trabalhar com breakpoints responsivos,
|
|
253
|
+
* facilitando a criação de layouts mobile-first.
|
|
254
|
+
*
|
|
255
|
+
* @type {Object}
|
|
256
|
+
* @constant
|
|
257
|
+
* @readonly
|
|
258
|
+
*
|
|
259
|
+
* @example
|
|
260
|
+
* ```typescript
|
|
261
|
+
* import { RESPONSIVE } from '@rainersoft/design-tokens';
|
|
262
|
+
*
|
|
263
|
+
* // Usar classes responsivas
|
|
264
|
+
* <div className={RESPONSIVE.HIDE_ON_MOBILE}>
|
|
265
|
+
* Visível apenas em desktop
|
|
266
|
+
* </div>
|
|
267
|
+
*
|
|
268
|
+
* // Usar container responsivo
|
|
269
|
+
* <div className={RESPONSIVE.CONTAINER.DEFAULT}>
|
|
270
|
+
* Container com largura máxima responsiva
|
|
271
|
+
* </div>
|
|
272
|
+
* ```
|
|
273
|
+
*/
|
|
274
|
+
export const RESPONSIVE = {
|
|
275
|
+
// Visibilidade responsiva
|
|
276
|
+
HIDE_ON_MOBILE: 'hidden sm:block',
|
|
277
|
+
HIDE_ON_TABLET: 'hidden lg:block',
|
|
278
|
+
HIDE_ON_DESKTOP: 'block lg:hidden',
|
|
279
|
+
SHOW_ON_MOBILE: 'block sm:hidden',
|
|
280
|
+
SHOW_ON_TABLET: 'block lg:hidden',
|
|
281
|
+
SHOW_ON_DESKTOP: 'hidden lg:block',
|
|
282
|
+
|
|
283
|
+
// Containers responsivos
|
|
284
|
+
CONTAINER: {
|
|
285
|
+
DEFAULT: 'w-full mx-auto px-4 sm:px-6 lg:px-8 max-w-7xl',
|
|
286
|
+
FLUID: 'w-full px-4 sm:px-6 lg:px-8',
|
|
287
|
+
TIGHT: 'w-full mx-auto px-4 sm:px-6 lg:px-8 max-w-4xl',
|
|
288
|
+
WIDE: 'w-full mx-auto px-4 sm:px-6 lg:px-8 max-w-screen-2xl',
|
|
289
|
+
PROSE: 'w-full mx-auto px-4 sm:px-6 lg:px-8 max-w-prose',
|
|
290
|
+
},
|
|
291
|
+
|
|
292
|
+
// Grid responsivo
|
|
293
|
+
GRID: {
|
|
294
|
+
COLS_1_2: 'grid grid-cols-1 md:grid-cols-2 gap-4',
|
|
295
|
+
COLS_1_3: 'grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4',
|
|
296
|
+
COLS_1_4: 'grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-4',
|
|
297
|
+
COLS_2_3: 'grid grid-cols-2 lg:grid-cols-3 gap-4',
|
|
298
|
+
COLS_2_4: 'grid grid-cols-2 md:grid-cols-3 lg:grid-cols-4 gap-4',
|
|
299
|
+
},
|
|
300
|
+
|
|
301
|
+
// Flex responsivo
|
|
302
|
+
FLEX: {
|
|
303
|
+
MOBILE_COLUMN: 'flex flex-col sm:flex-row',
|
|
304
|
+
TABLET_COLUMN: 'flex flex-col lg:flex-row',
|
|
305
|
+
MOBILE_REVERSE: 'flex flex-col-reverse sm:flex-row',
|
|
306
|
+
TABLET_REVERSE: 'flex flex-col-reverse lg:flex-row',
|
|
307
|
+
},
|
|
308
|
+
|
|
309
|
+
// Text responsivo
|
|
310
|
+
TEXT: {
|
|
311
|
+
MOBILE_CENTER: 'text-center sm:text-left',
|
|
312
|
+
TABLET_CENTER: 'text-center lg:text-left',
|
|
313
|
+
RESPONSIVE_SIZE: 'text-sm sm:text-base lg:text-lg',
|
|
314
|
+
HEADING_SIZE: 'text-2xl sm:text-3xl lg:text-4xl xl:text-5xl',
|
|
315
|
+
},
|
|
316
|
+
|
|
317
|
+
// Padding/Margin responsivo
|
|
318
|
+
SPACING: {
|
|
319
|
+
MOBILE_TIGHT: 'p-2 sm:p-4 lg:p-6',
|
|
320
|
+
TABLET_TIGHT: 'p-4 lg:p-8',
|
|
321
|
+
RESPONSIVE_Y: 'py-4 sm:py-6 lg:py-8 xl:py-12',
|
|
322
|
+
RESPONSIVE_X: 'px-4 sm:px-6 lg:px-8',
|
|
323
|
+
},
|
|
324
|
+
} as const;
|
|
325
|
+
|
|
326
|
+
/**
|
|
327
|
+
* Helpers de motion para animações
|
|
328
|
+
*
|
|
329
|
+
* @description
|
|
330
|
+
* Classes utilitárias para aplicar motion tokens diretamente
|
|
331
|
+
* em elementos usando Tailwind CSS.
|
|
332
|
+
*
|
|
333
|
+
* @type {Object}
|
|
334
|
+
* @constant
|
|
335
|
+
* @readonly
|
|
336
|
+
*
|
|
337
|
+
* @example
|
|
338
|
+
* ```typescript
|
|
339
|
+
* import { MOTION } from '@rainersoft/design-tokens';
|
|
340
|
+
*
|
|
341
|
+
* // Aplicar transição suave
|
|
342
|
+
* <button className={MOTION.TRANSITION.DEFAULT}>
|
|
343
|
+
* Clique aqui
|
|
344
|
+
* </button>
|
|
345
|
+
*
|
|
346
|
+
* // Aplicar animação de entrada
|
|
347
|
+
* <div className={MOTION.ANIMATE.FADE_IN}>
|
|
348
|
+
* Conteúdo animado
|
|
349
|
+
* </div>
|
|
350
|
+
* ```
|
|
351
|
+
*/
|
|
352
|
+
export const MOTION = {
|
|
353
|
+
// Transições
|
|
354
|
+
TRANSITION: {
|
|
355
|
+
DEFAULT: 'transition-all duration-200 ease-in-out',
|
|
356
|
+
FAST: 'transition-all duration-100 ease-out',
|
|
357
|
+
SLOW: 'transition-all duration-300 ease-in-out',
|
|
358
|
+
COLOR: 'transition-colors duration-200 ease-in-out',
|
|
359
|
+
TRANSFORM: 'transition-transform duration-200 ease-in-out',
|
|
360
|
+
OPACITY: 'transition-opacity duration-150 ease-in-out',
|
|
361
|
+
SHADOW: 'transition-shadow duration-200 ease-in-out',
|
|
362
|
+
},
|
|
363
|
+
|
|
364
|
+
// Animações
|
|
365
|
+
ANIMATE: {
|
|
366
|
+
FADE_IN: 'animate-fadeIn',
|
|
367
|
+
FADE_OUT: 'animate-fadeOut',
|
|
368
|
+
SLIDE_IN_UP: 'animate-slideInUp',
|
|
369
|
+
SLIDE_IN_DOWN: 'animate-slideInDown',
|
|
370
|
+
SLIDE_IN_LEFT: 'animate-slideInLeft',
|
|
371
|
+
SLIDE_IN_RIGHT: 'animate-slideInRight',
|
|
372
|
+
SCALE_IN: 'animate-scaleIn',
|
|
373
|
+
SCALE_OUT: 'animate-scaleOut',
|
|
374
|
+
ROTATE: 'animate-rotate',
|
|
375
|
+
PULSE: 'animate-pulse',
|
|
376
|
+
BOUNCE: 'animate-bounce',
|
|
377
|
+
SHAKE: 'animate-shake',
|
|
378
|
+
FLASH: 'animate-flash',
|
|
379
|
+
},
|
|
380
|
+
|
|
381
|
+
// Durações
|
|
382
|
+
DURATION: {
|
|
383
|
+
INSTANT: 'duration-0',
|
|
384
|
+
FAST: 'duration-100',
|
|
385
|
+
NORMAL: 'duration-200',
|
|
386
|
+
SLOW: 'duration-300',
|
|
387
|
+
SLOWER: 'duration-500',
|
|
388
|
+
SLOWEST: 'duration-700',
|
|
389
|
+
},
|
|
390
|
+
|
|
391
|
+
// Delays
|
|
392
|
+
DELAY: {
|
|
393
|
+
NONE: 'delay-0',
|
|
394
|
+
SHORT: 'delay-75',
|
|
395
|
+
MEDIUM: 'delay-150',
|
|
396
|
+
LONG: 'delay-300',
|
|
397
|
+
LONGER: 'delay-500',
|
|
398
|
+
},
|
|
399
|
+
} as const;
|
|
400
|
+
|
|
401
|
+
/**
|
|
402
|
+
* Constantes de cores principais para uso direto
|
|
403
|
+
*
|
|
404
|
+
* @description
|
|
405
|
+
* Cores principais do tema light para uso direto em componentes.
|
|
406
|
+
* Retorna valores hexadecimais das cores base.
|
|
407
|
+
*
|
|
408
|
+
* @type {Object}
|
|
409
|
+
* @constant
|
|
410
|
+
* @readonly
|
|
411
|
+
*
|
|
412
|
+
* @example
|
|
413
|
+
* ```typescript
|
|
414
|
+
* import { COLORS } from '@rainersoft/design-tokens';
|
|
415
|
+
*
|
|
416
|
+
* // Usar cor primária
|
|
417
|
+
* const primaryColor = COLORS.primary; // "#0891b2"
|
|
418
|
+
*
|
|
419
|
+
* // Usar em estilo inline
|
|
420
|
+
* <div style={{ color: COLORS.primary }}>
|
|
421
|
+
* Texto com cor primária
|
|
422
|
+
* </div>
|
|
423
|
+
* ```
|
|
424
|
+
*/
|
|
425
|
+
export const COLORS = {
|
|
426
|
+
primary: '#0891b2',
|
|
427
|
+
secondary: '#9333ea',
|
|
428
|
+
accent: '#db2777',
|
|
429
|
+
success: '#22c55e',
|
|
430
|
+
warning: '#f59e0b',
|
|
431
|
+
error: '#ef4444',
|
|
432
|
+
info: '#0891b2',
|
|
433
|
+
} as const;
|
|
434
|
+
|
|
435
|
+
/**
|
|
436
|
+
* Estrutura de navegação padrão
|
|
437
|
+
*
|
|
438
|
+
* @description
|
|
439
|
+
* Array de itens de navegação para uso em componentes de layout.
|
|
440
|
+
* Pode ser sobrescrito ou estendido conforme necessário.
|
|
441
|
+
*
|
|
442
|
+
* @type {Array<{href: string, label: string}>}
|
|
443
|
+
* @constant
|
|
444
|
+
*
|
|
445
|
+
* @example
|
|
446
|
+
* ```typescript
|
|
447
|
+
* import { NAVIGATION } from '@rainersoft/design-tokens';
|
|
448
|
+
*
|
|
449
|
+
* // Usar em componente
|
|
450
|
+
* {NAVIGATION.map(item => (
|
|
451
|
+
* <Link key={item.href} href={item.href}>
|
|
452
|
+
* {item.label}
|
|
453
|
+
* </Link>
|
|
454
|
+
* ))}
|
|
455
|
+
* ```
|
|
456
|
+
*/
|
|
457
|
+
export const NAVIGATION: Array<{ href: string; label: string }> = [
|
|
458
|
+
{ href: '/', label: 'Home' },
|
|
459
|
+
{ href: '/sobre', label: 'Sobre' },
|
|
460
|
+
{ href: '/projetos', label: 'Projetos' },
|
|
461
|
+
{ href: '/contato', label: 'Contato' },
|
|
462
|
+
];
|
|
463
|
+
|
|
464
|
+
/**
|
|
465
|
+
* Helpers de shadows (sombras) como classes Tailwind CSS
|
|
466
|
+
*
|
|
467
|
+
* @description
|
|
468
|
+
* Classes utilitárias para aplicar shadows tokens consistentes
|
|
469
|
+
* usando valores pré-definidos do tema light.
|
|
470
|
+
*
|
|
471
|
+
* @type {Object}
|
|
472
|
+
* @constant
|
|
473
|
+
* @readonly
|
|
474
|
+
*
|
|
475
|
+
* @example
|
|
476
|
+
* ```typescript
|
|
477
|
+
* import { SHADOWS } from '@rainersoft/design-tokens';
|
|
478
|
+
*
|
|
479
|
+
* // Aplicar shadow large
|
|
480
|
+
* <div className={SHADOWS.LARGE}>
|
|
481
|
+
* Content with large shadow
|
|
482
|
+
* </div>
|
|
483
|
+
* ```
|
|
484
|
+
*/
|
|
485
|
+
export const SHADOWS = {
|
|
486
|
+
XS: 'shadow-xs',
|
|
487
|
+
SMALL: 'shadow-sm',
|
|
488
|
+
BASE: 'shadow',
|
|
489
|
+
MEDIUM: 'shadow-md',
|
|
490
|
+
LARGE: 'shadow-lg',
|
|
491
|
+
XL: 'shadow-xl',
|
|
492
|
+
'2XL': 'shadow-2xl',
|
|
493
|
+
INNER: 'shadow-inner',
|
|
494
|
+
} as const;
|
|
495
|
+
|
|
496
|
+
/**
|
|
497
|
+
* Helpers de z-index para camadas
|
|
498
|
+
*
|
|
499
|
+
* @description
|
|
500
|
+
* Classes utilitárias para aplicar z-index tokens consistentes
|
|
501
|
+
* usando valores pré-definidos.
|
|
502
|
+
*
|
|
503
|
+
* @type {Object}
|
|
504
|
+
* @constant
|
|
505
|
+
* @readonly
|
|
506
|
+
*
|
|
507
|
+
* @example
|
|
508
|
+
* ```typescript
|
|
509
|
+
* import { Z_INDEX } from '@rainersoft/design-tokens';
|
|
510
|
+
*
|
|
511
|
+
* // Aplicar z-index para modal
|
|
512
|
+
* <div className={Z_INDEX.MODAL}>
|
|
513
|
+
* Modal content
|
|
514
|
+
* </div>
|
|
515
|
+
* ```
|
|
516
|
+
*/
|
|
517
|
+
export const Z_INDEX = {
|
|
518
|
+
BASE: 'z-0',
|
|
519
|
+
DROPDOWN: 'z-[1000]',
|
|
520
|
+
STICKY: 'z-[1020]',
|
|
521
|
+
FIXED: 'z-[1030]',
|
|
522
|
+
BACKDROP: 'z-[1040]',
|
|
523
|
+
MODAL: 'z-[1050]',
|
|
524
|
+
POPOVER: 'z-[1060]',
|
|
525
|
+
TOOLTIP: 'z-[1070]',
|
|
526
|
+
TOAST: 'z-[1080]',
|
|
527
|
+
SPOTLIGHT: 'z-[1090]',
|
|
528
|
+
PRIORITY: 'z-[1100]',
|
|
529
|
+
MAX: 'z-[2147483647]',
|
|
530
|
+
} as const;
|
|
531
|
+
|
|
532
|
+
/**
|
|
533
|
+
* Tipo TypeScript para cores
|
|
534
|
+
*
|
|
535
|
+
* @typedef {Object} Colors
|
|
536
|
+
* @description
|
|
537
|
+
* Tipo que representa todas as cores principais disponíveis.
|
|
538
|
+
*/
|
|
539
|
+
export type Colors = typeof COLORS;
|
|
540
|
+
|
|
541
|
+
/**
|
|
542
|
+
* Tipo TypeScript para navegação
|
|
543
|
+
*
|
|
544
|
+
* @typedef {Array<{href: string, label: string}>} Navigation
|
|
545
|
+
* @description
|
|
546
|
+
* Tipo que representa a estrutura de navegação.
|
|
547
|
+
*/
|
|
548
|
+
export type Navigation = typeof NAVIGATION;
|
|
549
|
+
|
|
550
|
+
/**
|
|
551
|
+
* Tipo TypeScript para shadows
|
|
552
|
+
*
|
|
553
|
+
* @typedef {Object} Shadows
|
|
554
|
+
* @description
|
|
555
|
+
* Tipo que representa todas as classes de shadows disponíveis.
|
|
556
|
+
*/
|
|
557
|
+
export type Shadows = typeof SHADOWS;
|
|
558
|
+
|
|
559
|
+
/**
|
|
560
|
+
* Tipo TypeScript para gradientes
|
|
561
|
+
*
|
|
562
|
+
* @typedef {Object} Gradients
|
|
563
|
+
* @description
|
|
564
|
+
* Tipo que representa todos os gradientes pré-configurados disponíveis.
|
|
565
|
+
*/
|
|
566
|
+
export type Gradients = typeof GRADIENTS;
|
|
567
|
+
|
|
568
|
+
/**
|
|
569
|
+
* Tipo TypeScript para gradientes compostos
|
|
570
|
+
*
|
|
571
|
+
* @typedef {Object} GradientComposites
|
|
572
|
+
* @description
|
|
573
|
+
* Tipo que representa todos os gradientes compostos (direção + cores).
|
|
574
|
+
*/
|
|
575
|
+
export type GradientComposites = typeof GRADIENT_COMPOSITES;
|
|
576
|
+
|
|
577
|
+
/**
|
|
578
|
+
* Tipo TypeScript para gradientes de cores
|
|
579
|
+
*
|
|
580
|
+
* @typedef {Object} GradientColors
|
|
581
|
+
* @description
|
|
582
|
+
* Tipo que representa todos os gradientes de cores específicas.
|
|
583
|
+
*/
|
|
584
|
+
export type GradientColors = typeof GRADIENT_COLORS;
|
|
585
|
+
|
|
586
|
+
/**
|
|
587
|
+
* Tipo TypeScript para backgrounds
|
|
588
|
+
*
|
|
589
|
+
* @typedef {Object} Background
|
|
590
|
+
* @description
|
|
591
|
+
* Tipo que representa todos os backgrounds utilitários disponíveis.
|
|
592
|
+
*/
|
|
593
|
+
export type Background = typeof BACKGROUND;
|
|
594
|
+
|