@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.
@@ -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
+ }