@bsginstitute/bsg-integra 0.0.1
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 +64 -0
- package/fesm2022/bsginstitute-bsg-integra.mjs +7872 -0
- package/fesm2022/bsginstitute-bsg-integra.mjs.map +1 -0
- package/index.d.ts +2464 -0
- package/package.json +51 -0
- package/src/lib/tokens/animations.css +650 -0
- package/src/lib/tokens/borders.css +288 -0
- package/src/lib/tokens/breakpoints.css +541 -0
- package/src/lib/tokens/shadows.css +296 -0
- package/src/lib/tokens/spacing.css +199 -0
- package/src/lib/tokens/themes.css +148 -0
- package/src/lib/tokens/typography.css +200 -0
- package/src/lib/tokens/z-index.css +316 -0
- package/src/styles.css +69 -0
|
@@ -0,0 +1,296 @@
|
|
|
1
|
+
@theme {
|
|
2
|
+
/* ============================================
|
|
3
|
+
Shadow Colors - Base
|
|
4
|
+
============================================ */
|
|
5
|
+
--shadow-color-base: 0 0 0; /* RGB negro */
|
|
6
|
+
--shadow-color-primary: 139 92 246; /* RGB del primary-500 */
|
|
7
|
+
--shadow-color-success: 34 197 94; /* RGB del success-500 */
|
|
8
|
+
--shadow-color-warning: 234 179 8; /* RGB del warning-500 */
|
|
9
|
+
--shadow-color-danger: 239 68 68; /* RGB del danger-500 */
|
|
10
|
+
--shadow-color-info: 14 165 233; /* RGB del info-500 */
|
|
11
|
+
|
|
12
|
+
/* ============================================
|
|
13
|
+
Box Shadows - Elevation System
|
|
14
|
+
Basado en Material Design con mejoras modernas
|
|
15
|
+
============================================ */
|
|
16
|
+
|
|
17
|
+
/* Sin sombra */
|
|
18
|
+
--shadow-none: none;
|
|
19
|
+
|
|
20
|
+
/* Extra Small - Elementos sutilmente elevados */
|
|
21
|
+
--shadow-xs: 0 1px 2px 0 rgb(var(--shadow-color-base) / 0.05);
|
|
22
|
+
|
|
23
|
+
/* Small - Cards en reposo, botones elevados */
|
|
24
|
+
--shadow-sm:
|
|
25
|
+
0 1px 3px 0 rgb(var(--shadow-color-base) / 0.1),
|
|
26
|
+
0 1px 2px -1px rgb(var(--shadow-color-base) / 0.1);
|
|
27
|
+
|
|
28
|
+
/* Medium - Cards hover, dropdowns pequeños */
|
|
29
|
+
--shadow-md:
|
|
30
|
+
0 4px 6px -1px rgb(var(--shadow-color-base) / 0.1),
|
|
31
|
+
0 2px 4px -2px rgb(var(--shadow-color-base) / 0.1);
|
|
32
|
+
|
|
33
|
+
/* Large - Modales, dropdowns grandes */
|
|
34
|
+
--shadow-lg:
|
|
35
|
+
0 10px 15px -3px rgb(var(--shadow-color-base) / 0.1),
|
|
36
|
+
0 4px 6px -4px rgb(var(--shadow-color-base) / 0.1);
|
|
37
|
+
|
|
38
|
+
/* Extra Large - Navegación flotante, popovers */
|
|
39
|
+
--shadow-xl:
|
|
40
|
+
0 20px 25px -5px rgb(var(--shadow-color-base) / 0.1),
|
|
41
|
+
0 8px 10px -6px rgb(var(--shadow-color-base) / 0.1);
|
|
42
|
+
|
|
43
|
+
/* 2XL - Dialogs grandes, sheets */
|
|
44
|
+
--shadow-2xl: 0 25px 50px -12px rgb(var(--shadow-color-base) / 0.25);
|
|
45
|
+
|
|
46
|
+
/* 3XL - Maximum elevation */
|
|
47
|
+
--shadow-3xl: 0 35px 60px -15px rgb(var(--shadow-color-base) / 0.3);
|
|
48
|
+
|
|
49
|
+
/* ============================================
|
|
50
|
+
Inner Shadows - Efectos de profundidad
|
|
51
|
+
============================================ */
|
|
52
|
+
--shadow-inner-sm: inset 0 1px 2px 0 rgb(var(--shadow-color-base) / 0.05);
|
|
53
|
+
--shadow-inner: inset 0 2px 4px 0 rgb(var(--shadow-color-base) / 0.06);
|
|
54
|
+
--shadow-inner-md: inset 0 4px 6px 0 rgb(var(--shadow-color-base) / 0.08);
|
|
55
|
+
--shadow-inner-lg: inset 0 8px 12px 0 rgb(var(--shadow-color-base) / 0.1);
|
|
56
|
+
|
|
57
|
+
/* ============================================
|
|
58
|
+
Colored Shadows - Sombras con tinte
|
|
59
|
+
Tendencia moderna para branded experiences
|
|
60
|
+
============================================ */
|
|
61
|
+
|
|
62
|
+
/* Primary colored shadows */
|
|
63
|
+
--shadow-primary-sm:
|
|
64
|
+
0 1px 3px 0 rgb(var(--shadow-color-primary) / 0.2),
|
|
65
|
+
0 1px 2px -1px rgb(var(--shadow-color-primary) / 0.2);
|
|
66
|
+
|
|
67
|
+
--shadow-primary-md:
|
|
68
|
+
0 4px 6px -1px rgb(var(--shadow-color-primary) / 0.2),
|
|
69
|
+
0 2px 4px -2px rgb(var(--shadow-color-primary) / 0.2);
|
|
70
|
+
|
|
71
|
+
--shadow-primary-lg:
|
|
72
|
+
0 10px 15px -3px rgb(var(--shadow-color-primary) / 0.2),
|
|
73
|
+
0 4px 6px -4px rgb(var(--shadow-color-primary) / 0.2);
|
|
74
|
+
|
|
75
|
+
--shadow-primary-xl:
|
|
76
|
+
0 20px 25px -5px rgb(var(--shadow-color-primary) / 0.25),
|
|
77
|
+
0 8px 10px -6px rgb(var(--shadow-color-primary) / 0.25);
|
|
78
|
+
|
|
79
|
+
/* Success colored shadows */
|
|
80
|
+
--shadow-success-sm:
|
|
81
|
+
0 1px 3px 0 rgb(var(--shadow-color-success) / 0.2),
|
|
82
|
+
0 1px 2px -1px rgb(var(--shadow-color-success) / 0.2);
|
|
83
|
+
|
|
84
|
+
--shadow-success-md:
|
|
85
|
+
0 4px 6px -1px rgb(var(--shadow-color-success) / 0.2),
|
|
86
|
+
0 2px 4px -2px rgb(var(--shadow-color-success) / 0.2);
|
|
87
|
+
|
|
88
|
+
/* Warning colored shadows */
|
|
89
|
+
--shadow-warning-sm:
|
|
90
|
+
0 1px 3px 0 rgb(var(--shadow-color-warning) / 0.2),
|
|
91
|
+
0 1px 2px -1px rgb(var(--shadow-color-warning) / 0.2);
|
|
92
|
+
|
|
93
|
+
--shadow-warning-md:
|
|
94
|
+
0 4px 6px -1px rgb(var(--shadow-color-warning) / 0.2),
|
|
95
|
+
0 2px 4px -2px rgb(var(--shadow-color-warning) / 0.2);
|
|
96
|
+
|
|
97
|
+
/* Danger colored shadows */
|
|
98
|
+
--shadow-danger-sm:
|
|
99
|
+
0 1px 3px 0 rgb(var(--shadow-color-danger) / 0.2),
|
|
100
|
+
0 1px 2px -1px rgb(var(--shadow-color-danger) / 0.2);
|
|
101
|
+
|
|
102
|
+
--shadow-danger-md:
|
|
103
|
+
0 4px 6px -1px rgb(var(--shadow-color-danger) / 0.2),
|
|
104
|
+
0 2px 4px -2px rgb(var(--shadow-color-danger) / 0.2);
|
|
105
|
+
|
|
106
|
+
/* Info colored shadows */
|
|
107
|
+
--shadow-info-sm:
|
|
108
|
+
0 1px 3px 0 rgb(var(--shadow-color-info) / 0.2),
|
|
109
|
+
0 1px 2px -1px rgb(var(--shadow-color-info) / 0.2);
|
|
110
|
+
|
|
111
|
+
--shadow-info-md:
|
|
112
|
+
0 4px 6px -1px rgb(var(--shadow-color-info) / 0.2),
|
|
113
|
+
0 2px 4px -2px rgb(var(--shadow-color-info) / 0.2);
|
|
114
|
+
|
|
115
|
+
/* ============================================
|
|
116
|
+
Glow Effects - Para estados interactivos
|
|
117
|
+
============================================ */
|
|
118
|
+
|
|
119
|
+
/* Primary glow */
|
|
120
|
+
--shadow-glow-primary-sm: 0 0 8px rgb(var(--shadow-color-primary) / 0.3);
|
|
121
|
+
--shadow-glow-primary-md: 0 0 16px rgb(var(--shadow-color-primary) / 0.4);
|
|
122
|
+
--shadow-glow-primary-lg: 0 0 24px rgb(var(--shadow-color-primary) / 0.5);
|
|
123
|
+
|
|
124
|
+
/* Success glow */
|
|
125
|
+
--shadow-glow-success-sm: 0 0 8px rgb(var(--shadow-color-success) / 0.3);
|
|
126
|
+
--shadow-glow-success-md: 0 0 16px rgb(var(--shadow-color-success) / 0.4);
|
|
127
|
+
|
|
128
|
+
/* Warning glow */
|
|
129
|
+
--shadow-glow-warning-sm: 0 0 8px rgb(var(--shadow-color-warning) / 0.3);
|
|
130
|
+
--shadow-glow-warning-md: 0 0 16px rgb(var(--shadow-color-warning) / 0.4);
|
|
131
|
+
|
|
132
|
+
/* Danger glow */
|
|
133
|
+
--shadow-glow-danger-sm: 0 0 8px rgb(var(--shadow-color-danger) / 0.3);
|
|
134
|
+
--shadow-glow-danger-md: 0 0 16px rgb(var(--shadow-color-danger) / 0.4);
|
|
135
|
+
|
|
136
|
+
/* White glow (para fondos oscuros) */
|
|
137
|
+
--shadow-glow-white-sm: 0 0 8px rgb(255 255 255 / 0.3);
|
|
138
|
+
--shadow-glow-white-md: 0 0 16px rgb(255 255 255 / 0.4);
|
|
139
|
+
|
|
140
|
+
/* ============================================
|
|
141
|
+
Component Shadows - Button
|
|
142
|
+
============================================ */
|
|
143
|
+
--shadow-button-default: var(--shadow-none);
|
|
144
|
+
--shadow-button-hover: var(--shadow-sm);
|
|
145
|
+
--shadow-button-active: var(--shadow-xs);
|
|
146
|
+
--shadow-button-focus: 0 0 0 3px rgb(var(--shadow-color-primary) / 0.1);
|
|
147
|
+
|
|
148
|
+
/* Button primary variant */
|
|
149
|
+
--shadow-button-primary: var(--shadow-sm);
|
|
150
|
+
--shadow-button-primary-hover: var(--shadow-md);
|
|
151
|
+
--shadow-button-primary-focus: 0 0 0 3px
|
|
152
|
+
rgb(var(--shadow-color-primary) / 0.2);
|
|
153
|
+
|
|
154
|
+
/* ============================================
|
|
155
|
+
Component Shadows - Card
|
|
156
|
+
============================================ */
|
|
157
|
+
--shadow-card-default: var(--shadow-sm);
|
|
158
|
+
--shadow-card-hover: var(--shadow-md);
|
|
159
|
+
--shadow-card-active: var(--shadow-lg);
|
|
160
|
+
--shadow-card-elevated: var(--shadow-lg);
|
|
161
|
+
|
|
162
|
+
/* ============================================
|
|
163
|
+
Component Shadows - Input
|
|
164
|
+
============================================ */
|
|
165
|
+
--shadow-input-default: var(--shadow-none);
|
|
166
|
+
--shadow-input-focus: 0 0 0 3px rgb(var(--shadow-color-primary) / 0.1);
|
|
167
|
+
--shadow-input-error: 0 0 0 3px rgb(var(--shadow-color-danger) / 0.1);
|
|
168
|
+
--shadow-input-success: 0 0 0 3px rgb(var(--shadow-color-success) / 0.1);
|
|
169
|
+
|
|
170
|
+
/* ============================================
|
|
171
|
+
Component Shadows - Dialog/Modal
|
|
172
|
+
============================================ */
|
|
173
|
+
--shadow-dialog: var(--shadow-2xl);
|
|
174
|
+
--shadow-modal: var(--shadow-2xl);
|
|
175
|
+
--shadow-sheet: var(--shadow-xl);
|
|
176
|
+
|
|
177
|
+
/* ============================================
|
|
178
|
+
Component Shadows - Dropdown/Menu
|
|
179
|
+
============================================ */
|
|
180
|
+
--shadow-dropdown: var(--shadow-lg);
|
|
181
|
+
--shadow-menu: var(--shadow-lg);
|
|
182
|
+
--shadow-context-menu: var(--shadow-xl);
|
|
183
|
+
|
|
184
|
+
/* ============================================
|
|
185
|
+
Component Shadows - Popover/Tooltip
|
|
186
|
+
============================================ */
|
|
187
|
+
--shadow-popover: var(--shadow-md);
|
|
188
|
+
--shadow-tooltip: var(--shadow-sm);
|
|
189
|
+
|
|
190
|
+
/* ============================================
|
|
191
|
+
Component Shadows - Toast/Notification
|
|
192
|
+
============================================ */
|
|
193
|
+
--shadow-toast: var(--shadow-lg);
|
|
194
|
+
--shadow-notification: var(--shadow-lg);
|
|
195
|
+
|
|
196
|
+
/* ============================================
|
|
197
|
+
Component Shadows - Avatar
|
|
198
|
+
============================================ */
|
|
199
|
+
--shadow-avatar-sm: var(--shadow-xs);
|
|
200
|
+
--shadow-avatar: var(--shadow-sm);
|
|
201
|
+
--shadow-avatar-lg: var(--shadow-md);
|
|
202
|
+
|
|
203
|
+
/* ============================================
|
|
204
|
+
Component Shadows - Badge
|
|
205
|
+
============================================ */
|
|
206
|
+
--shadow-badge: var(--shadow-xs);
|
|
207
|
+
|
|
208
|
+
/* ============================================
|
|
209
|
+
Component Shadows - Navigation
|
|
210
|
+
============================================ */
|
|
211
|
+
--shadow-navbar: var(--shadow-sm);
|
|
212
|
+
--shadow-sidebar: var(--shadow-md);
|
|
213
|
+
--shadow-floating-nav: var(--shadow-xl);
|
|
214
|
+
|
|
215
|
+
/* ============================================
|
|
216
|
+
Component Shadows - Table
|
|
217
|
+
============================================ */
|
|
218
|
+
--shadow-table-header: var(--shadow-xs);
|
|
219
|
+
--shadow-table-row-hover: var(--shadow-sm);
|
|
220
|
+
|
|
221
|
+
/* ============================================
|
|
222
|
+
Component Shadows - Image/Media
|
|
223
|
+
============================================ */
|
|
224
|
+
--shadow-image: var(--shadow-sm);
|
|
225
|
+
--shadow-image-hover: var(--shadow-md);
|
|
226
|
+
|
|
227
|
+
/* ============================================
|
|
228
|
+
Text Shadows - Tipografía
|
|
229
|
+
============================================ */
|
|
230
|
+
--text-shadow-none: none;
|
|
231
|
+
--text-shadow-sm: 0 1px 2px rgb(var(--shadow-color-base) / 0.3);
|
|
232
|
+
--text-shadow-md: 0 2px 4px rgb(var(--shadow-color-base) / 0.4);
|
|
233
|
+
--text-shadow-lg: 0 4px 8px rgb(var(--shadow-color-base) / 0.5);
|
|
234
|
+
|
|
235
|
+
/* Text glow effects */
|
|
236
|
+
--text-shadow-glow-primary: 0 0 8px rgb(var(--shadow-color-primary) / 0.6);
|
|
237
|
+
--text-shadow-glow-white: 0 0 8px rgb(255 255 255 / 0.8);
|
|
238
|
+
|
|
239
|
+
/* ============================================
|
|
240
|
+
Layered Shadows - Combinaciones realistas
|
|
241
|
+
Para efectos ultra-realistas (múltiples capas)
|
|
242
|
+
============================================ */
|
|
243
|
+
|
|
244
|
+
/* Floating effect - Elementos que "flotan" sobre la UI */
|
|
245
|
+
--shadow-floating:
|
|
246
|
+
0 2px 4px -1px rgb(var(--shadow-color-base) / 0.06),
|
|
247
|
+
0 4px 6px -1px rgb(var(--shadow-color-base) / 0.08),
|
|
248
|
+
0 10px 15px -3px rgb(var(--shadow-color-base) / 0.1);
|
|
249
|
+
|
|
250
|
+
/* Lifted effect - Elementos "levantados" con profundidad */
|
|
251
|
+
--shadow-lifted:
|
|
252
|
+
0 4px 6px -2px rgb(var(--shadow-color-base) / 0.05),
|
|
253
|
+
0 10px 15px -3px rgb(var(--shadow-color-base) / 0.08),
|
|
254
|
+
0 20px 25px -5px rgb(var(--shadow-color-base) / 0.1);
|
|
255
|
+
|
|
256
|
+
/* Dramatic effect - Máxima profundidad */
|
|
257
|
+
--shadow-dramatic:
|
|
258
|
+
0 10px 15px -3px rgb(var(--shadow-color-base) / 0.1),
|
|
259
|
+
0 20px 25px -5px rgb(var(--shadow-color-base) / 0.15),
|
|
260
|
+
0 30px 40px -10px rgb(var(--shadow-color-base) / 0.2);
|
|
261
|
+
|
|
262
|
+
/* Soft glow - Glow suave alrededor del elemento */
|
|
263
|
+
--shadow-soft-glow:
|
|
264
|
+
0 0 0 1px rgb(var(--shadow-color-base) / 0.05),
|
|
265
|
+
0 2px 4px rgb(var(--shadow-color-base) / 0.05),
|
|
266
|
+
0 8px 16px rgb(var(--shadow-color-base) / 0.08);
|
|
267
|
+
|
|
268
|
+
/* ============================================
|
|
269
|
+
Keyboard Focus Shadows - Accesibilidad
|
|
270
|
+
Compatible con focus-visible
|
|
271
|
+
============================================ */
|
|
272
|
+
--shadow-focus-default: 0 0 0 3px rgb(var(--shadow-color-primary) / 0.15);
|
|
273
|
+
--shadow-focus-primary: 0 0 0 3px rgb(var(--shadow-color-primary) / 0.2);
|
|
274
|
+
--shadow-focus-error: 0 0 0 3px rgb(var(--shadow-color-danger) / 0.2);
|
|
275
|
+
--shadow-focus-success: 0 0 0 3px rgb(var(--shadow-color-success) / 0.2);
|
|
276
|
+
|
|
277
|
+
/* Focus ring con borde */
|
|
278
|
+
--shadow-focus-ring:
|
|
279
|
+
0 0 0 2px var(--color-background-default, #ffffff),
|
|
280
|
+
0 0 0 4px rgb(var(--shadow-color-primary) / 0.3);
|
|
281
|
+
|
|
282
|
+
/* ============================================
|
|
283
|
+
Neumorphism Shadows - Estilo Soft UI
|
|
284
|
+
============================================ */
|
|
285
|
+
--shadow-neumorphic-light:
|
|
286
|
+
-4px -4px 8px rgb(255 255 255 / 0.5),
|
|
287
|
+
4px 4px 8px rgb(var(--shadow-color-base) / 0.1);
|
|
288
|
+
|
|
289
|
+
--shadow-neumorphic-dark:
|
|
290
|
+
-4px -4px 8px rgb(255 255 255 / 0.05),
|
|
291
|
+
4px 4px 8px rgb(var(--shadow-color-base) / 0.2);
|
|
292
|
+
|
|
293
|
+
--shadow-neumorphic-inset:
|
|
294
|
+
inset -2px -2px 4px rgb(255 255 255 / 0.5),
|
|
295
|
+
inset 2px 2px 4px rgb(var(--shadow-color-base) / 0.1);
|
|
296
|
+
}
|
|
@@ -0,0 +1,199 @@
|
|
|
1
|
+
@theme {
|
|
2
|
+
/* ============================================
|
|
3
|
+
Spacing Scale - Base 4px
|
|
4
|
+
Uso: margin, padding, gap, inset
|
|
5
|
+
============================================ */
|
|
6
|
+
|
|
7
|
+
/* Valores extremos */
|
|
8
|
+
--spacing-0: 0rem;
|
|
9
|
+
--spacing-px: 0.0625rem;
|
|
10
|
+
|
|
11
|
+
/* Escala pequeña (0-4) */
|
|
12
|
+
--spacing-0-5: 0.125rem; /* 2px */
|
|
13
|
+
--spacing-1: 0.25rem; /* 4px */
|
|
14
|
+
--spacing-1-5: 0.375rem; /* 6px */
|
|
15
|
+
--spacing-2: 0.5rem; /* 8px */
|
|
16
|
+
--spacing-2-5: 0.625rem; /* 10px */
|
|
17
|
+
--spacing-3: 0.75rem; /* 12px */
|
|
18
|
+
--spacing-3-5: 0.875rem; /* 14px */
|
|
19
|
+
--spacing-4: 1rem; /* 16px */
|
|
20
|
+
|
|
21
|
+
/* Escala media (5-12) */
|
|
22
|
+
--spacing-5: 1.25rem; /* 20px */
|
|
23
|
+
--spacing-6: 1.5rem; /* 24px */
|
|
24
|
+
--spacing-7: 1.75rem; /* 28px */
|
|
25
|
+
--spacing-8: 2rem; /* 32px */
|
|
26
|
+
--spacing-9: 2.25rem; /* 36px */
|
|
27
|
+
--spacing-10: 2.5rem; /* 40px */
|
|
28
|
+
--spacing-11: 2.75rem; /* 44px */
|
|
29
|
+
--spacing-12: 3rem; /* 48px */
|
|
30
|
+
|
|
31
|
+
/* Escala grande (14-24) */
|
|
32
|
+
--spacing-14: 3.5rem; /* 56px */
|
|
33
|
+
--spacing-16: 4rem; /* 64px */
|
|
34
|
+
--spacing-18: 4.5rem; /* 72px */
|
|
35
|
+
--spacing-20: 5rem; /* 80px */
|
|
36
|
+
--spacing-24: 6rem; /* 96px */
|
|
37
|
+
|
|
38
|
+
/* Escala extra grande (28-96) */
|
|
39
|
+
--spacing-28: 7rem; /* 112px */
|
|
40
|
+
--spacing-32: 8rem; /* 128px */
|
|
41
|
+
--spacing-36: 9rem; /* 144px */
|
|
42
|
+
--spacing-40: 10rem; /* 160px */
|
|
43
|
+
--spacing-44: 11rem; /* 176px */
|
|
44
|
+
--spacing-48: 12rem; /* 192px */
|
|
45
|
+
--spacing-52: 13rem; /* 208px */
|
|
46
|
+
--spacing-56: 14rem; /* 224px */
|
|
47
|
+
--spacing-60: 15rem; /* 240px */
|
|
48
|
+
--spacing-64: 16rem; /* 256px */
|
|
49
|
+
--spacing-72: 18rem; /* 288px */
|
|
50
|
+
--spacing-80: 20rem; /* 320px */
|
|
51
|
+
--spacing-96: 24rem; /* 384px */
|
|
52
|
+
|
|
53
|
+
/* ============================================
|
|
54
|
+
Spacing Semántico - T-Shirt Sizes
|
|
55
|
+
Uso rápido para componentes comunes
|
|
56
|
+
============================================ */
|
|
57
|
+
--spacing-xs: var(--spacing-2); /* 8px */
|
|
58
|
+
--spacing-sm: var(--spacing-3); /* 12px */
|
|
59
|
+
--spacing-md: var(--spacing-4); /* 16px */
|
|
60
|
+
--spacing-lg: var(--spacing-6); /* 24px */
|
|
61
|
+
--spacing-xl: var(--spacing-8); /* 32px */
|
|
62
|
+
--spacing-2xl: var(--spacing-12); /* 48px */
|
|
63
|
+
--spacing-3xl: var(--spacing-16); /* 64px */
|
|
64
|
+
--spacing-4xl: var(--spacing-24); /* 96px */
|
|
65
|
+
|
|
66
|
+
/* ============================================
|
|
67
|
+
Component Spacing - Padding Interno
|
|
68
|
+
Uso: padding de componentes específicos
|
|
69
|
+
============================================ */
|
|
70
|
+
|
|
71
|
+
/* Button Padding */
|
|
72
|
+
--spacing-button-sm-x: var(--spacing-3); /* 12px */
|
|
73
|
+
--spacing-button-sm-y: var(--spacing-1-5); /* 6px */
|
|
74
|
+
--spacing-button-md-x: var(--spacing-4); /* 16px */
|
|
75
|
+
--spacing-button-md-y: var(--spacing-2); /* 8px */
|
|
76
|
+
--spacing-button-lg-x: var(--spacing-6); /* 24px */
|
|
77
|
+
--spacing-button-lg-y: var(--spacing-3); /* 12px */
|
|
78
|
+
|
|
79
|
+
/* Input Padding */
|
|
80
|
+
--spacing-input-sm-x: var(--spacing-2-5); /* 10px */
|
|
81
|
+
--spacing-input-sm-y: var(--spacing-1-5); /* 6px */
|
|
82
|
+
--spacing-input-md-x: var(--spacing-3); /* 12px */
|
|
83
|
+
--spacing-input-md-y: var(--spacing-2); /* 8px */
|
|
84
|
+
--spacing-input-lg-x: var(--spacing-4); /* 16px */
|
|
85
|
+
--spacing-input-lg-y: var(--spacing-2-5); /* 10px */
|
|
86
|
+
|
|
87
|
+
/* Card Padding */
|
|
88
|
+
--spacing-card-sm: var(--spacing-4); /* 16px */
|
|
89
|
+
--spacing-card-md: var(--spacing-6); /* 24px */
|
|
90
|
+
--spacing-card-lg: var(--spacing-8); /* 32px */
|
|
91
|
+
|
|
92
|
+
/* Dialog/Modal Padding */
|
|
93
|
+
--spacing-dialog-sm: var(--spacing-4); /* 16px */
|
|
94
|
+
--spacing-dialog-md: var(--spacing-6); /* 24px */
|
|
95
|
+
--spacing-dialog-lg: var(--spacing-8); /* 32px */
|
|
96
|
+
|
|
97
|
+
/* ============================================
|
|
98
|
+
Stack Spacing - Espaciado Vertical
|
|
99
|
+
Uso: gap en flex/grid verticales (margin-bottom)
|
|
100
|
+
============================================ */
|
|
101
|
+
--spacing-stack-xs: var(--spacing-2); /* 8px */
|
|
102
|
+
--spacing-stack-sm: var(--spacing-3); /* 12px */
|
|
103
|
+
--spacing-stack-md: var(--spacing-4); /* 16px */
|
|
104
|
+
--spacing-stack-lg: var(--spacing-6); /* 24px */
|
|
105
|
+
--spacing-stack-xl: var(--spacing-8); /* 32px */
|
|
106
|
+
--spacing-stack-2xl: var(--spacing-12); /* 48px */
|
|
107
|
+
|
|
108
|
+
/* ============================================
|
|
109
|
+
Inline Spacing - Espaciado Horizontal
|
|
110
|
+
Uso: gap en flex/grid horizontales
|
|
111
|
+
============================================ */
|
|
112
|
+
--spacing-inline-xs: var(--spacing-1); /* 4px */
|
|
113
|
+
--spacing-inline-sm: var(--spacing-2); /* 8px */
|
|
114
|
+
--spacing-inline-md: var(--spacing-3); /* 12px */
|
|
115
|
+
--spacing-inline-lg: var(--spacing-4); /* 16px */
|
|
116
|
+
--spacing-inline-xl: var(--spacing-6); /* 24px */
|
|
117
|
+
|
|
118
|
+
/* ============================================
|
|
119
|
+
Section Spacing - Espaciado entre Secciones
|
|
120
|
+
Uso: margin/padding entre grandes bloques de contenido
|
|
121
|
+
============================================ */
|
|
122
|
+
--spacing-section-xs: var(--spacing-12); /* 48px */
|
|
123
|
+
--spacing-section-sm: var(--spacing-16); /* 64px */
|
|
124
|
+
--spacing-section-md: var(--spacing-24); /* 96px */
|
|
125
|
+
--spacing-section-lg: var(--spacing-32); /* 128px */
|
|
126
|
+
--spacing-section-xl: var(--spacing-40); /* 160px */
|
|
127
|
+
--spacing-section-2xl: var(--spacing-48); /* 192px */
|
|
128
|
+
|
|
129
|
+
/* ============================================
|
|
130
|
+
Container Widths - Anchos Máximos
|
|
131
|
+
Uso: max-width para contenedores responsivos
|
|
132
|
+
============================================ */
|
|
133
|
+
--container-xs: 20rem; /* 320px */
|
|
134
|
+
--container-sm: 24rem; /* 384px */
|
|
135
|
+
--container-md: 28rem; /* 448px */
|
|
136
|
+
--container-lg: 32rem; /* 512px */
|
|
137
|
+
--container-xl: 36rem; /* 576px */
|
|
138
|
+
--container-2xl: 42rem; /* 672px */
|
|
139
|
+
--container-3xl: 48rem; /* 768px */
|
|
140
|
+
--container-4xl: 56rem; /* 896px */
|
|
141
|
+
--container-5xl: 64rem; /* 1024px */
|
|
142
|
+
--container-6xl: 72rem; /* 1152px */
|
|
143
|
+
--container-7xl: 80rem; /* 1280px */
|
|
144
|
+
|
|
145
|
+
/* Container Aliases */
|
|
146
|
+
--container-prose: var(--container-2xl); /* 672px - óptimo para lectura */
|
|
147
|
+
--container-content: var(--container-5xl); /* 1024px - contenido general */
|
|
148
|
+
--container-full: 100%;
|
|
149
|
+
|
|
150
|
+
/* ============================================
|
|
151
|
+
Inset - Espaciado Uniforme (todos los lados)
|
|
152
|
+
Uso: padding aplicado a los 4 lados
|
|
153
|
+
============================================ */
|
|
154
|
+
--inset-xs: var(--spacing-2); /* 8px */
|
|
155
|
+
--inset-sm: var(--spacing-3); /* 12px */
|
|
156
|
+
--inset-md: var(--spacing-4); /* 16px */
|
|
157
|
+
--inset-lg: var(--spacing-6); /* 24px */
|
|
158
|
+
--inset-xl: var(--spacing-8); /* 32px */
|
|
159
|
+
--inset-2xl: var(--spacing-12); /* 48px */
|
|
160
|
+
|
|
161
|
+
/* ============================================
|
|
162
|
+
Grid Gap - Espaciado para Grids
|
|
163
|
+
Uso: gap en CSS Grid
|
|
164
|
+
============================================ */
|
|
165
|
+
--grid-gap-xs: var(--spacing-2); /* 8px */
|
|
166
|
+
--grid-gap-sm: var(--spacing-3); /* 12px */
|
|
167
|
+
--grid-gap-md: var(--spacing-4); /* 16px */
|
|
168
|
+
--grid-gap-lg: var(--spacing-6); /* 24px */
|
|
169
|
+
--grid-gap-xl: var(--spacing-8); /* 32px */
|
|
170
|
+
|
|
171
|
+
/* ============================================
|
|
172
|
+
Gutters - Márgenes laterales de página
|
|
173
|
+
Uso: padding-inline para layouts responsivos
|
|
174
|
+
============================================ */
|
|
175
|
+
--gutter-mobile: var(--spacing-4); /* 16px */
|
|
176
|
+
--gutter-tablet: var(--spacing-6); /* 24px */
|
|
177
|
+
--gutter-desktop: var(--spacing-8); /* 32px */
|
|
178
|
+
--gutter-wide: var(--spacing-12); /* 48px */
|
|
179
|
+
|
|
180
|
+
/* ============================================
|
|
181
|
+
Icon Spacing - Espaciado con iconos
|
|
182
|
+
Uso: gap entre icono y texto
|
|
183
|
+
============================================ */
|
|
184
|
+
--spacing-icon-text-sm: var(--spacing-1); /* 4px */
|
|
185
|
+
--spacing-icon-text-md: var(--spacing-2); /* 8px */
|
|
186
|
+
--spacing-icon-text-lg: var(--spacing-3); /* 12px */
|
|
187
|
+
|
|
188
|
+
/* ============================================
|
|
189
|
+
Aspect Ratios - Proporciones (Bonus)
|
|
190
|
+
============================================ */
|
|
191
|
+
--aspect-square: 1 / 1;
|
|
192
|
+
--aspect-video: 16 / 9;
|
|
193
|
+
--aspect-video-vertical: 9 / 16;
|
|
194
|
+
--aspect-photo: 4 / 3;
|
|
195
|
+
--aspect-portrait: 3 / 4;
|
|
196
|
+
--aspect-wide: 21 / 9;
|
|
197
|
+
--aspect-ultrawide: 32 / 9;
|
|
198
|
+
--aspect-golden: 1.618 / 1;
|
|
199
|
+
}
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
/* ============================================
|
|
2
|
+
CSS Variables - Semantic Tokens
|
|
3
|
+
============================================ */
|
|
4
|
+
@layer base {
|
|
5
|
+
:root {
|
|
6
|
+
--background: oklch(1 0 0);
|
|
7
|
+
--foreground: oklch(0.145 0 0);
|
|
8
|
+
|
|
9
|
+
--card: oklch(1 0 0);
|
|
10
|
+
--card-foreground: oklch(0.145 0 0);
|
|
11
|
+
|
|
12
|
+
--popover: oklch(1 0 0);
|
|
13
|
+
--popover-foreground: oklch(0.145 0 0);
|
|
14
|
+
|
|
15
|
+
--primary: oklch(0.606 0.25 292.717);
|
|
16
|
+
--primary-foreground: oklch(0.985 0 0);
|
|
17
|
+
|
|
18
|
+
--secondary: oklch(0.97 0 0);
|
|
19
|
+
--secondary-foreground: oklch(0.205 0 0);
|
|
20
|
+
|
|
21
|
+
--muted: oklch(0.97 0 0);
|
|
22
|
+
--muted-foreground: oklch(0.556 0 0);
|
|
23
|
+
|
|
24
|
+
--accent: oklch(0.97 0 0);
|
|
25
|
+
--accent-foreground: oklch(0.205 0 0);
|
|
26
|
+
|
|
27
|
+
--destructive: oklch(0.577 0.245 27.325);
|
|
28
|
+
--destructive-foreground: oklch(0.985 0 0);
|
|
29
|
+
|
|
30
|
+
--border: oklch(0.922 0 0);
|
|
31
|
+
--input: oklch(0.922 0 0);
|
|
32
|
+
--ring: oklch(0.702 0.183 293.541);
|
|
33
|
+
|
|
34
|
+
--radius: 0.625rem;
|
|
35
|
+
|
|
36
|
+
/* Sidebar tokens (shadcn pattern) */
|
|
37
|
+
--sidebar-background: oklch(0.985 0 0);
|
|
38
|
+
--sidebar-foreground: oklch(0.145 0 0);
|
|
39
|
+
--sidebar-primary: oklch(0.205 0 0);
|
|
40
|
+
--sidebar-primary-foreground: oklch(0.985 0 0);
|
|
41
|
+
--sidebar-accent: oklch(0.97 0 0);
|
|
42
|
+
--sidebar-accent-foreground: oklch(0.205 0 0);
|
|
43
|
+
--sidebar-border: oklch(0.922 0 0);
|
|
44
|
+
--sidebar-ring: oklch(0.708 0 0);
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
/* refactorizar tema oscuro colores */
|
|
48
|
+
.dark {
|
|
49
|
+
--background: oklch(0.145 0 0);
|
|
50
|
+
--foreground: oklch(0.985 0 0);
|
|
51
|
+
|
|
52
|
+
--card: oklch(0.145 0 0);
|
|
53
|
+
--card-foreground: oklch(0.985 0 0);
|
|
54
|
+
|
|
55
|
+
--popover: oklch(0.145 0 0);
|
|
56
|
+
--popover-foreground: oklch(0.985 0 0);
|
|
57
|
+
|
|
58
|
+
--primary: oklch(0.985 0 0);
|
|
59
|
+
--primary-foreground: oklch(0.205 0 0);
|
|
60
|
+
|
|
61
|
+
--secondary: oklch(0.269 0 0);
|
|
62
|
+
--secondary-foreground: oklch(0.985 0 0);
|
|
63
|
+
|
|
64
|
+
--muted: oklch(0.269 0 0);
|
|
65
|
+
--muted-foreground: oklch(0.708 0 0);
|
|
66
|
+
|
|
67
|
+
--accent: oklch(0.269 0 0);
|
|
68
|
+
--accent-foreground: oklch(0.985 0 0);
|
|
69
|
+
|
|
70
|
+
--destructive: oklch(0.704 0.191 22.216);
|
|
71
|
+
--destructive-foreground: oklch(0.985 0 0);
|
|
72
|
+
|
|
73
|
+
--border: oklch(0.269 0 0);
|
|
74
|
+
--input: oklch(0.269 0 0);
|
|
75
|
+
--ring: oklch(0.439 0 0);
|
|
76
|
+
|
|
77
|
+
/* Sidebar tokens (dark theme) */
|
|
78
|
+
--sidebar-background: oklch(0.205 0 0);
|
|
79
|
+
--sidebar-foreground: oklch(0.985 0 0);
|
|
80
|
+
--sidebar-primary: oklch(0.488 0.243 264.376);
|
|
81
|
+
--sidebar-primary-foreground: oklch(0.985 0 0);
|
|
82
|
+
--sidebar-accent: oklch(0.269 0 0);
|
|
83
|
+
--sidebar-accent-foreground: oklch(0.985 0 0);
|
|
84
|
+
--sidebar-border: oklch(0.269 0 0);
|
|
85
|
+
--sidebar-ring: oklch(0.439 0 0);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
/* ============================================
|
|
90
|
+
@theme inline
|
|
91
|
+
Genera clases utility basadas en variables CSS
|
|
92
|
+
============================================ */
|
|
93
|
+
@theme inline {
|
|
94
|
+
/* Referencias a variables de :root */
|
|
95
|
+
--color-background: var(--background);
|
|
96
|
+
--color-foreground: var(--foreground);
|
|
97
|
+
|
|
98
|
+
--color-card: var(--card);
|
|
99
|
+
--color-card-foreground: var(--card-foreground);
|
|
100
|
+
|
|
101
|
+
--color-popover: var(--popover);
|
|
102
|
+
--color-popover-foreground: var(--popover-foreground);
|
|
103
|
+
|
|
104
|
+
--color-primary: var(--primary);
|
|
105
|
+
--color-primary-foreground: var(--primary-foreground);
|
|
106
|
+
|
|
107
|
+
--color-secondary: var(--secondary);
|
|
108
|
+
--color-secondary-foreground: var(--secondary-foreground);
|
|
109
|
+
|
|
110
|
+
--color-muted: var(--muted);
|
|
111
|
+
--color-muted-foreground: var(--muted-foreground);
|
|
112
|
+
|
|
113
|
+
--color-accent: var(--accent);
|
|
114
|
+
--color-accent-foreground: var(--accent-foreground);
|
|
115
|
+
|
|
116
|
+
--color-destructive: var(--destructive);
|
|
117
|
+
--color-destructive-foreground: var(--destructive-foreground);
|
|
118
|
+
|
|
119
|
+
--color-border: var(--border);
|
|
120
|
+
--color-input: var(--input);
|
|
121
|
+
--color-ring: var(--ring);
|
|
122
|
+
|
|
123
|
+
/* Sidebar color utilities */
|
|
124
|
+
--color-sidebar: var(--sidebar-background);
|
|
125
|
+
--color-sidebar-foreground: var(--sidebar-foreground);
|
|
126
|
+
--color-sidebar-primary: var(--sidebar-primary);
|
|
127
|
+
--color-sidebar-primary-foreground: var(--sidebar-primary-foreground);
|
|
128
|
+
--color-sidebar-accent: var(--sidebar-accent);
|
|
129
|
+
--color-sidebar-accent-foreground: var(--sidebar-accent-foreground);
|
|
130
|
+
--color-sidebar-border: var(--sidebar-border);
|
|
131
|
+
--color-sidebar-ring: var(--sidebar-ring);
|
|
132
|
+
|
|
133
|
+
/* Radius también puede ser usado en utilities */
|
|
134
|
+
--radius: var(--radius);
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
/* ============================================
|
|
138
|
+
Theme Base Styles
|
|
139
|
+
============================================ */
|
|
140
|
+
@layer base {
|
|
141
|
+
* {
|
|
142
|
+
@apply border-border;
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
body {
|
|
146
|
+
@apply bg-background text-foreground;
|
|
147
|
+
}
|
|
148
|
+
}
|