anima-ds-nucleus 1.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.
Files changed (116) hide show
  1. package/LICENSE.md +20 -0
  2. package/README.md +109 -0
  3. package/dist/anima-ds.cjs.js +1332 -0
  4. package/dist/anima-ds.esm.js +88297 -0
  5. package/dist/vite.svg +1 -0
  6. package/package.json +76 -0
  7. package/src/assets/charly.png +0 -0
  8. package/src/components/Atoms/Alert/Alert.jsx +52 -0
  9. package/src/components/Atoms/Alert/Alert.stories.jsx +62 -0
  10. package/src/components/Atoms/Avatar/Avatar.jsx +60 -0
  11. package/src/components/Atoms/Avatar/Avatar.stories.jsx +61 -0
  12. package/src/components/Atoms/Badge/Badge.jsx +34 -0
  13. package/src/components/Atoms/Badge/Badge.stories.jsx +55 -0
  14. package/src/components/Atoms/Button/Button.jsx +281 -0
  15. package/src/components/Atoms/Button/Button.stories.jsx +365 -0
  16. package/src/components/Atoms/Divider/Divider.jsx +49 -0
  17. package/src/components/Atoms/Divider/Divider.stories.jsx +62 -0
  18. package/src/components/Atoms/Icon/Icon.jsx +361 -0
  19. package/src/components/Atoms/Icon/Icon.stories.jsx +115 -0
  20. package/src/components/Atoms/Label/Label.jsx +22 -0
  21. package/src/components/Atoms/Progress/Progress.jsx +49 -0
  22. package/src/components/Atoms/Progress/Progress.stories.jsx +88 -0
  23. package/src/components/Atoms/Radios/Radios.jsx +39 -0
  24. package/src/components/Atoms/Radios/Radios.stories.jsx +119 -0
  25. package/src/components/Atoms/Shadow/Shadow.stories.jsx +25 -0
  26. package/src/components/Atoms/Skeleton/Skeleton.jsx +50 -0
  27. package/src/components/Atoms/Skeleton/Skeleton.stories.jsx +55 -0
  28. package/src/components/Atoms/Spacing/Spacing.jsx +56 -0
  29. package/src/components/Atoms/Spacing/Spacing.stories.jsx +78 -0
  30. package/src/components/Atoms/Spinner/Spinner.jsx +47 -0
  31. package/src/components/Atoms/Spinner/Spinner.stories.jsx +56 -0
  32. package/src/components/Atoms/Toast/Toast.jsx +74 -0
  33. package/src/components/Atoms/Toast/Toast.stories.jsx +101 -0
  34. package/src/components/Atoms/Tooltip/Tooltip.jsx +49 -0
  35. package/src/components/Atoms/Tooltip/Tooltip.stories.jsx +58 -0
  36. package/src/components/Atoms/Typography/Typography.jsx +52 -0
  37. package/src/components/Atoms/Typography/Typography.stories.jsx +267 -0
  38. package/src/components/DataDisplay/AreaChart/AreaChart.jsx +95 -0
  39. package/src/components/DataDisplay/AreaChart/AreaChart.stories.jsx +51 -0
  40. package/src/components/DataDisplay/BarChart/BarChart.jsx +90 -0
  41. package/src/components/DataDisplay/BarChart/BarChart.stories.jsx +60 -0
  42. package/src/components/DataDisplay/Card/Card.jsx +31 -0
  43. package/src/components/DataDisplay/Card/Card.stories.jsx +50 -0
  44. package/src/components/DataDisplay/ColumnChart/ColumnChart.jsx +92 -0
  45. package/src/components/DataDisplay/ColumnChart/ColumnChart.stories.jsx +65 -0
  46. package/src/components/DataDisplay/DBGrid/DBGrid.jsx +138 -0
  47. package/src/components/DataDisplay/DBGrid/DBGrid.stories.jsx +126 -0
  48. package/src/components/DataDisplay/DonutChart/DonutChart.jsx +83 -0
  49. package/src/components/DataDisplay/DonutChart/DonutChart.stories.jsx +48 -0
  50. package/src/components/DataDisplay/EmptyState/EmptyState.jsx +30 -0
  51. package/src/components/DataDisplay/EmptyState/EmptyState.stories.jsx +42 -0
  52. package/src/components/DataDisplay/LineChart/LineChart.jsx +86 -0
  53. package/src/components/DataDisplay/LineChart/LineChart.stories.jsx +67 -0
  54. package/src/components/DataDisplay/List/List.jsx +30 -0
  55. package/src/components/DataDisplay/List/List.stories.jsx +59 -0
  56. package/src/components/DataDisplay/PieChart/PieChart.jsx +64 -0
  57. package/src/components/DataDisplay/PieChart/PieChart.stories.jsx +47 -0
  58. package/src/components/DataDisplay/StatCard/StatCard.jsx +55 -0
  59. package/src/components/DataDisplay/StatCard/StatCard.stories.jsx +59 -0
  60. package/src/components/DataDisplay/TagList/TagList.jsx +37 -0
  61. package/src/components/DataDisplay/TagList/TagList.stories.jsx +48 -0
  62. package/src/components/DataDisplay/Timeline/Timeline.jsx +41 -0
  63. package/src/components/DataDisplay/Timeline/Timeline.stories.jsx +64 -0
  64. package/src/components/Inputs/Checkbox/Checkbox.jsx +27 -0
  65. package/src/components/Inputs/Checkbox/Checkbox.stories.jsx +51 -0
  66. package/src/components/Inputs/DatePicker/DatePicker.jsx +55 -0
  67. package/src/components/Inputs/DatePicker/DatePicker.stories.jsx +52 -0
  68. package/src/components/Inputs/FileUpload/FileUpload.jsx +108 -0
  69. package/src/components/Inputs/FileUpload/FileUpload.stories.jsx +52 -0
  70. package/src/components/Inputs/Input/Input.jsx +50 -0
  71. package/src/components/Inputs/Input/Input.stories.jsx +63 -0
  72. package/src/components/Inputs/RadioButton/RadioButton.jsx +31 -0
  73. package/src/components/Inputs/RadioButton/RadioButton.stories.jsx +59 -0
  74. package/src/components/Inputs/Select/Select.jsx +59 -0
  75. package/src/components/Inputs/Select/Select.stories.jsx +66 -0
  76. package/src/components/Inputs/Switch/Switch.jsx +44 -0
  77. package/src/components/Inputs/Switch/Switch.stories.jsx +51 -0
  78. package/src/components/Inputs/Textarea/Textarea.jsx +51 -0
  79. package/src/components/Inputs/Textarea/Textarea.stories.jsx +65 -0
  80. package/src/components/Layout/Accordion/Accordion.jsx +58 -0
  81. package/src/components/Layout/Accordion/Accordion.stories.jsx +55 -0
  82. package/src/components/Layout/Breadcrumbs/Breadcrumbs.jsx +49 -0
  83. package/src/components/Layout/Breadcrumbs/Breadcrumbs.stories.jsx +44 -0
  84. package/src/components/Layout/Breakpoint/Breakpoint.jsx +35 -0
  85. package/src/components/Layout/Breakpoint/Breakpoint.stories.jsx +348 -0
  86. package/src/components/Layout/Drawer/Drawer.jsx +75 -0
  87. package/src/components/Layout/Drawer/Drawer.stories.jsx +77 -0
  88. package/src/components/Layout/Dropdown/Dropdown.jsx +83 -0
  89. package/src/components/Layout/Dropdown/Dropdown.stories.jsx +53 -0
  90. package/src/components/Layout/Grid/Grid.jsx +39 -0
  91. package/src/components/Layout/Grid/Grid.stories.jsx +546 -0
  92. package/src/components/Layout/Header/Header.jsx +50 -0
  93. package/src/components/Layout/Header/Header.stories.jsx +36 -0
  94. package/src/components/Layout/Layout/Layout.jsx +14 -0
  95. package/src/components/Layout/Layout/Layout.stories.jsx +34 -0
  96. package/src/components/Layout/Modal/Modal.jsx +78 -0
  97. package/src/components/Layout/Modal/Modal.stories.jsx +98 -0
  98. package/src/components/Layout/Pagination/Pagination.jsx +109 -0
  99. package/src/components/Layout/Pagination/Pagination.stories.jsx +62 -0
  100. package/src/components/Layout/Sidebar/Sidebar.jsx +57 -0
  101. package/src/components/Layout/Sidebar/Sidebar.stories.jsx +51 -0
  102. package/src/components/Layout/Stepper/Stepper.jsx +132 -0
  103. package/src/components/Layout/Stepper/Stepper.stories.jsx +78 -0
  104. package/src/components/Layout/Tabs/Tabs.jsx +63 -0
  105. package/src/components/Layout/Tabs/Tabs.stories.jsx +62 -0
  106. package/src/components/Views/ChangePasswordForm/ChangePasswordForm.jsx +125 -0
  107. package/src/components/Views/ChangePasswordForm/ChangePasswordForm.stories.jsx +55 -0
  108. package/src/components/Views/Chat/Chat.jsx +134 -0
  109. package/src/components/Views/Chat/Chat.stories.jsx +143 -0
  110. package/src/components/Views/LoginForm/LoginForm.jsx +98 -0
  111. package/src/components/Views/LoginForm/LoginForm.stories.jsx +55 -0
  112. package/src/i18n/config.js +209 -0
  113. package/src/index.js +60 -0
  114. package/src/main.jsx +510 -0
  115. package/src/providers/I18nProvider.jsx +13 -0
  116. package/src/style.css +721 -0
package/src/style.css ADDED
@@ -0,0 +1,721 @@
1
+ @import "tailwindcss";
2
+
3
+ /* Importar IBM Plex Sans y IBM Plex Mono desde Google Fonts */
4
+ @import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:ital,wght@0,300;0,400;0,500;0,600;0,700;1,300;1,400;1,500;1,600;1,700&family=IBM+Plex+Mono:ital,wght@0,300;0,400;0,500;0,600;0,700;1,300;1,400;1,500;1,600;1,700&display=swap');
5
+
6
+ /* ============================================
7
+ CLASES TIPOGRÁFICAS GENÉRICAS PREDEFINIDAS
8
+ Basadas en Figma - Sistema Escalable
9
+ ============================================ */
10
+
11
+ /* --- HEADINGS (H1-H6) - IBM Plex Sans --- */
12
+ .text-h1 {
13
+ font-family: 'IBM Plex Sans', sans-serif;
14
+ font-size: 2.5rem; /* 40px */
15
+ line-height: 3.75rem; /* 60px */
16
+ font-weight: 700; /* Bold */
17
+ letter-spacing: 0;
18
+ }
19
+
20
+ .text-h2 {
21
+ font-family: 'IBM Plex Sans', sans-serif;
22
+ font-size: 2.25rem; /* 36px */
23
+ line-height: 3.375rem; /* 54px */
24
+ font-weight: 700; /* Bold */
25
+ letter-spacing: 0;
26
+ }
27
+
28
+ .text-h3 {
29
+ font-family: 'IBM Plex Sans', sans-serif;
30
+ font-size: 2rem; /* 32px */
31
+ line-height: 3rem; /* 48px */
32
+ font-weight: 600; /* Semi Bold */
33
+ letter-spacing: 0;
34
+ }
35
+
36
+ .text-h4 {
37
+ font-family: 'IBM Plex Sans', sans-serif;
38
+ font-size: 1.75rem; /* 28px */
39
+ line-height: 2.625rem; /* 42px */
40
+ font-weight: 600; /* Semi Bold */
41
+ letter-spacing: 0;
42
+ }
43
+
44
+ .text-h5 {
45
+ font-family: 'IBM Plex Sans', sans-serif;
46
+ font-size: 1.5rem; /* 24px */
47
+ line-height: 2.25rem; /* 36px */
48
+ font-weight: 500; /* Medium */
49
+ letter-spacing: 0;
50
+ }
51
+
52
+ .text-h6 {
53
+ font-family: 'IBM Plex Sans', sans-serif;
54
+ font-size: 1.25rem; /* 20px */
55
+ line-height: 1.875rem; /* 30px */
56
+ font-weight: 500; /* Medium */
57
+ letter-spacing: 0;
58
+ }
59
+
60
+ /* --- BODY TEXT - IBM Plex Sans --- */
61
+ .text-body-lg {
62
+ font-family: 'IBM Plex Sans', sans-serif;
63
+ font-size: 1rem; /* 16px */
64
+ line-height: 1.5rem; /* 24px */
65
+ font-weight: 400; /* Regular */
66
+ letter-spacing: 0;
67
+ }
68
+
69
+ .text-body-md {
70
+ font-family: 'IBM Plex Sans', sans-serif;
71
+ font-size: 0.875rem; /* 14px */
72
+ line-height: 1.3125rem; /* 21px */
73
+ font-weight: 400; /* Regular */
74
+ letter-spacing: -0.01em; /* -1% */
75
+ }
76
+
77
+ .text-body-sm {
78
+ font-family: 'IBM Plex Sans', sans-serif;
79
+ font-size: 0.75rem; /* 12px */
80
+ line-height: 1.125rem; /* 18px */
81
+ font-weight: 400; /* Regular */
82
+ letter-spacing: -0.02em; /* -2% */
83
+ }
84
+
85
+ /* --- TEXT SIZES ADICIONALES --- */
86
+ .text-xsm {
87
+ font-family: 'IBM Plex Sans', sans-serif;
88
+ font-size: 0.75rem; /* 12px */
89
+ line-height: 1.125rem; /* 18px */
90
+ }
91
+
92
+ .text-xxsm {
93
+ font-family: 'IBM Plex Sans', sans-serif;
94
+ font-size: 0.5rem; /* 8px */
95
+ line-height: 0.75rem; /* 12px */
96
+ }
97
+
98
+ /* --- NUMBERS - IBM Plex Mono --- */
99
+ .font-numbers {
100
+ font-family: 'IBM Plex Mono', monospace;
101
+ }
102
+
103
+ .text-numbers {
104
+ font-family: 'IBM Plex Mono', monospace;
105
+ }
106
+
107
+ /* --- COLORS GENÉRICOS (Clases utilitarias) --- */
108
+ .color-black {
109
+ color: #111827; /* gray-900 */
110
+ }
111
+
112
+ .color-white {
113
+ color: #ffffff;
114
+ }
115
+
116
+ .color-gray-900 {
117
+ color: #111827;
118
+ }
119
+
120
+ .color-gray-700 {
121
+ color: #374151;
122
+ }
123
+
124
+ .color-gray-600 {
125
+ color: #4b5563;
126
+ }
127
+
128
+ .color-gray-500 {
129
+ color: #6b7280;
130
+ }
131
+
132
+ .color-gray-400 {
133
+ color: #9ca3af;
134
+ }
135
+
136
+ .color-red-600 {
137
+ color: #dc2626;
138
+ }
139
+
140
+ .color-red-500 {
141
+ color: #ef4444;
142
+ }
143
+
144
+ .color-blue-600 {
145
+ color: #2563eb;
146
+ }
147
+
148
+ .color-green-600 {
149
+ color: #16a34a;
150
+ }
151
+
152
+ .color-green-100 {
153
+ color: #dcfce7;
154
+ }
155
+
156
+ /* --- FONT WEIGHTS PERMITIDOS (según Figma) --- */
157
+ .font-light {
158
+ font-weight: 300;
159
+ }
160
+
161
+ .font-regular {
162
+ font-weight: 400;
163
+ }
164
+
165
+ .font-medium {
166
+ font-weight: 500;
167
+ }
168
+
169
+ .font-semibold {
170
+ font-weight: 600;
171
+ }
172
+
173
+ .font-bold {
174
+ font-weight: 700;
175
+ }
176
+
177
+ /* --- TEXT STYLES (según Figma: Normal, Italic) --- */
178
+ .text-italic {
179
+ font-style: italic;
180
+ }
181
+
182
+ .text-normal {
183
+ font-style: normal;
184
+ }
185
+
186
+ /* ============================================
187
+ ESCALA DE ESPACIADOS (px a rem)
188
+ ============================================ */
189
+
190
+ :root {
191
+ --space-160: 10rem; /* 160px */
192
+ --space-96: 6rem; /* 96px */
193
+ --space-80: 5rem; /* 80px */
194
+ --space-64: 4rem; /* 64px */
195
+ --space-48: 3rem; /* 48px */
196
+ --space-40: 2.5rem; /* 40px */
197
+ --space-32: 2rem; /* 32px */
198
+ --space-24: 1.5rem; /* 24px */
199
+ --space-16: 1rem; /* 16px */
200
+ --space-12: 0.75rem; /* 12px */
201
+ --space-8: 0.5rem; /* 8px */
202
+ --space-4: 0.25rem; /* 4px */
203
+ --space-2: 0.125rem; /* 2px */
204
+ }
205
+
206
+ .space-w-160 { width: var(--space-160); }
207
+ .space-h-160 { height: var(--space-160); }
208
+ .space-160 { width: var(--space-160); height: var(--space-160); }
209
+
210
+ .space-w-96 { width: var(--space-96); }
211
+ .space-h-96 { height: var(--space-96); }
212
+ .space-96 { width: var(--space-96); height: var(--space-96); }
213
+
214
+ .space-w-80 { width: var(--space-80); }
215
+ .space-h-80 { height: var(--space-80); }
216
+ .space-80 { width: var(--space-80); height: var(--space-80); }
217
+
218
+ .space-w-64 { width: var(--space-64); }
219
+ .space-h-64 { height: var(--space-64); }
220
+ .space-64 { width: var(--space-64); height: var(--space-64); }
221
+
222
+ .space-w-48 { width: var(--space-48); }
223
+ .space-h-48 { height: var(--space-48); }
224
+ .space-48 { width: var(--space-48); height: var(--space-48); }
225
+
226
+ .space-w-40 { width: var(--space-40); }
227
+ .space-h-40 { height: var(--space-40); }
228
+ .space-40 { width: var(--space-40); height: var(--space-40); }
229
+
230
+ .space-w-32 { width: var(--space-32); }
231
+ .space-h-32 { height: var(--space-32); }
232
+ .space-32 { width: var(--space-32); height: var(--space-32); }
233
+
234
+ .space-w-24 { width: var(--space-24); }
235
+ .space-h-24 { height: var(--space-24); }
236
+ .space-24 { width: var(--space-24); height: var(--space-24); }
237
+
238
+ .space-w-16 { width: var(--space-16); }
239
+ .space-h-16 { height: var(--space-16); }
240
+ .space-16 { width: var(--space-16); height: var(--space-16); }
241
+
242
+ .space-w-12 { width: var(--space-12); }
243
+ .space-h-12 { height: var(--space-12); }
244
+ .space-12 { width: var(--space-12); height: var(--space-12); }
245
+
246
+ .space-w-8 { width: var(--space-8); }
247
+ .space-h-8 { height: var(--space-8); }
248
+ .space-8 { width: var(--space-8); height: var(--space-8); }
249
+
250
+ .space-w-4 { width: var(--space-4); }
251
+ .space-h-4 { height: var(--space-4); }
252
+ .space-4 { width: var(--space-4); height: var(--space-4); }
253
+
254
+ .space-w-2 { width: var(--space-2); }
255
+ .space-h-2 { height: var(--space-2); }
256
+ .space-2 { width: var(--space-2); height: var(--space-2); }
257
+
258
+ .space-token {
259
+ display: inline-flex;
260
+ align-items: center;
261
+ justify-content: center;
262
+ background-color: #22c55e;
263
+ border-radius: 0.25rem;
264
+ }
265
+
266
+ .space-token-160 { width: var(--space-160); height: var(--space-160); }
267
+ .space-token-96 { width: var(--space-96); height: var(--space-96); }
268
+ .space-token-80 { width: var(--space-80); height: var(--space-80); }
269
+ .space-token-64 { width: var(--space-64); height: var(--space-64); }
270
+ .space-token-48 { width: var(--space-48); height: var(--space-48); }
271
+ .space-token-40 { width: var(--space-40); height: var(--space-40); }
272
+ .space-token-32 { width: var(--space-32); height: var(--space-32); }
273
+ .space-token-24 { width: var(--space-24); height: var(--space-24); }
274
+ .space-token-16 { width: var(--space-16); height: var(--space-16); }
275
+ .space-token-12 { width: var(--space-12); height: var(--space-12); }
276
+ .space-token-8 { width: var(--space-8); height: var(--space-8); }
277
+ .space-token-4 { width: var(--space-4); height: var(--space-4); }
278
+ .space-token-2 { width: var(--space-2); height: var(--space-2); }
279
+
280
+ /* ============================================
281
+ RADIOS (Border Radius)
282
+ ============================================ */
283
+
284
+ :root {
285
+ --radius-4: 0.25rem; /* 4px */
286
+ --radius-8: 0.5rem; /* 8px */
287
+ --radius-12: 0.75rem; /* 12px */
288
+ --radius-16: 1rem; /* 16px - Base */
289
+ --radius-24: 1.5rem; /* 24px */
290
+ --radius-32: 2rem; /* 32px */
291
+ }
292
+
293
+ /* Clases utilitarias para border-radius */
294
+ .radius-4 {
295
+ border-radius: var(--radius-4);
296
+ }
297
+
298
+ .radius-8 {
299
+ border-radius: var(--radius-8);
300
+ }
301
+
302
+ .radius-12 {
303
+ border-radius: var(--radius-12);
304
+ }
305
+
306
+ .radius-16 {
307
+ border-radius: var(--radius-16);
308
+ }
309
+
310
+ .radius-24 {
311
+ border-radius: var(--radius-24);
312
+ }
313
+
314
+ .radius-32 {
315
+ border-radius: var(--radius-32);
316
+ }
317
+
318
+ /* Clase para visualización de tokens de radio */
319
+ .radius-token {
320
+ display: inline-flex;
321
+ align-items: center;
322
+ justify-content: center;
323
+ background-color: #22c55e;
324
+ }
325
+
326
+ .radius-token-4 {
327
+ width: 3rem;
328
+ height: 3rem;
329
+ border-radius: var(--radius-4);
330
+ }
331
+
332
+ .radius-token-8 {
333
+ width: 3rem;
334
+ height: 3rem;
335
+ border-radius: var(--radius-8);
336
+ }
337
+
338
+ .radius-token-12 {
339
+ width: 3rem;
340
+ height: 3rem;
341
+ border-radius: var(--radius-12);
342
+ }
343
+
344
+ .radius-token-16 {
345
+ width: 3rem;
346
+ height: 3rem;
347
+ border-radius: var(--radius-16);
348
+ }
349
+
350
+ .radius-token-24 {
351
+ width: 3rem;
352
+ height: 3rem;
353
+ border-radius: var(--radius-24);
354
+ }
355
+
356
+ .radius-token-32 {
357
+ width: 3rem;
358
+ height: 3rem;
359
+ border-radius: var(--radius-32);
360
+ }
361
+
362
+ /* ============================================
363
+ SOMBRAS
364
+ ============================================ */
365
+
366
+ .shadow {
367
+ box-shadow:
368
+ 0px 15px 35px rgba(0, 0, 0, 0.06),
369
+ 0px 5px 15px rgba(0, 51, 0, 0.08);
370
+ border-radius: 0.75rem;
371
+ background-color: #ffffff;
372
+ }
373
+
374
+ /* ============================================
375
+ GRID SYSTEM
376
+ ============================================ */
377
+
378
+ /* Mobile Grid - Solo aplica en breakpoint Mobile (0-480px) */
379
+ @media (min-width: var(--breakpoint-sm)) and (max-width: var(--breakpoint-sm-max)) {
380
+ /* Mobile Grid - 2 Columns */
381
+ .grid-mobile-2 {
382
+ display: grid;
383
+ grid-template-columns: repeat(var(--grid-mobile-2-columns), 1fr);
384
+ gap: var(--grid-mobile-2-gutter);
385
+ padding-left: var(--grid-mobile-2-margin);
386
+ padding-right: var(--grid-mobile-2-margin);
387
+ }
388
+
389
+ /* Mobile Grid - 3 Columns */
390
+ .grid-mobile-3 {
391
+ display: grid;
392
+ grid-template-columns: repeat(var(--grid-mobile-3-columns), 1fr);
393
+ gap: var(--grid-mobile-3-gutter);
394
+ padding-left: var(--grid-mobile-3-margin);
395
+ padding-right: var(--grid-mobile-3-margin);
396
+ }
397
+
398
+ /* Mobile Grid - 4 Columns */
399
+ .grid-mobile-4 {
400
+ display: grid;
401
+ grid-template-columns: repeat(var(--grid-mobile-4-columns), 1fr);
402
+ gap: var(--grid-mobile-4-gutter);
403
+ padding-left: var(--grid-mobile-4-margin);
404
+ padding-right: var(--grid-mobile-4-margin);
405
+ }
406
+
407
+ /* Mobile Grid - 8 Columns */
408
+ .grid-mobile-8 {
409
+ display: grid;
410
+ grid-template-columns: repeat(var(--grid-mobile-8-columns), 1fr);
411
+ gap: var(--grid-mobile-8-gutter);
412
+ padding-left: var(--grid-mobile-8-margin);
413
+ padding-right: var(--grid-mobile-8-margin);
414
+ }
415
+ }
416
+
417
+ /* Desktop Grid - Small/Medium (769px - 1440px) */
418
+ @media (min-width: var(--breakpoint-base)) and (max-width: var(--breakpoint-base-max)) {
419
+ /* Desktop Grid - 2 Columns */
420
+ .grid-desktop-2 {
421
+ display: grid;
422
+ grid-template-columns: repeat(var(--grid-desktop-2-columns), 1fr);
423
+ gap: var(--grid-desktop-2-gutter);
424
+ padding-left: var(--grid-desktop-2-margin);
425
+ padding-right: var(--grid-desktop-2-margin);
426
+ }
427
+
428
+ /* Desktop Grid - 3 Columns */
429
+ .grid-desktop-3 {
430
+ display: grid;
431
+ grid-template-columns: repeat(var(--grid-desktop-3-columns), 1fr);
432
+ gap: var(--grid-desktop-3-gutter);
433
+ padding-left: var(--grid-desktop-3-margin);
434
+ padding-right: var(--grid-desktop-3-margin);
435
+ }
436
+
437
+ /* Desktop Grid - 4 Columns */
438
+ .grid-desktop-4 {
439
+ display: grid;
440
+ grid-template-columns: repeat(var(--grid-desktop-4-columns), 1fr);
441
+ gap: var(--grid-desktop-4-gutter);
442
+ padding-left: var(--grid-desktop-4-margin);
443
+ padding-right: var(--grid-desktop-4-margin);
444
+ }
445
+
446
+ /* Desktop Grid - 8 Columns */
447
+ .grid-desktop-8 {
448
+ display: grid;
449
+ grid-template-columns: repeat(var(--grid-desktop-8-columns), 1fr);
450
+ gap: var(--grid-desktop-8-gutter);
451
+ padding-left: var(--grid-desktop-8-margin);
452
+ padding-right: var(--grid-desktop-8-margin);
453
+ }
454
+ }
455
+
456
+ /* Desktop Grid - Large (1441px+) */
457
+ @media (min-width: var(--breakpoint-lg)) {
458
+ /* Desktop Large Grid - 12 Columns */
459
+ .grid-desktop-lg-12 {
460
+ display: grid;
461
+ grid-template-columns: repeat(var(--grid-desktop-lg-12-columns), 1fr);
462
+ gap: var(--grid-desktop-lg-12-gutter);
463
+ padding-left: var(--grid-desktop-lg-12-margin);
464
+ padding-right: var(--grid-desktop-lg-12-margin);
465
+ }
466
+
467
+ /* Desktop Large Grid - 16 Columns */
468
+ .grid-desktop-lg-16 {
469
+ display: grid;
470
+ grid-template-columns: repeat(var(--grid-desktop-lg-16-columns), 1fr);
471
+ gap: var(--grid-desktop-lg-16-gutter);
472
+ padding-left: var(--grid-desktop-lg-16-margin);
473
+ padding-right: var(--grid-desktop-lg-16-margin);
474
+ }
475
+ }
476
+ @theme {
477
+ /* Brand colors */
478
+ --color-brand: #56B676;
479
+ --color-brand-50: #EDF7F1;
480
+ --color-brand-100: #D0EAD8;
481
+ --color-brand-200: #B3DDBE;
482
+ --color-brand-300: #96D0A6;
483
+ --color-brand-400: #77C38E;
484
+ --color-brand-500: #56B676;
485
+ --color-brand-600: #47915F;
486
+ --color-brand-700: #376E49;
487
+ --color-brand-800: #294D34;
488
+ --color-brand-900: #1A2E20;
489
+
490
+ /* Main colors */
491
+ --color-main: #38656D;
492
+ --color-main-50: #EEF5F6;
493
+ --color-main-100: #D3DFE1;
494
+ --color-main-200: #D3DFE1;
495
+ --color-main-300: #9EB5B9;
496
+ --color-main-400: #84A0A5;
497
+ --color-main-500: #6B8C92;
498
+ --color-main-600: #52787F;
499
+ --color-main-700: #38656D;
500
+ --color-main-800: #29474C;
501
+ --color-main-900: #1B2B2E;
502
+ --color-main-950: #091011;
503
+
504
+ /* Secondary colors */
505
+ --color-secondary: #6D3856;
506
+ --color-secondary-50: #F6EEF3;
507
+ --color-secondary-100: #E2D2DB;
508
+ --color-secondary-200: #CEB7C3;
509
+ --color-secondary-300: #BB9CAC;
510
+ --color-secondary-400: #A78296;
511
+ --color-secondary-500: #946980;
512
+ --color-secondary-600: #80506B;
513
+ --color-secondary-700: #6D3856;
514
+ --color-secondary-800: #4C293D;
515
+ --color-secondary-900: #2E1B25;
516
+ --color-secondary-950: #11090D;
517
+
518
+ /* Tertiary colors */
519
+ --color-tertiary: #A06F11;
520
+ --color-tertiary-50: #FEF6E7;
521
+ --color-tertiary-100: #FBE5C5;
522
+ --color-tertiary-200: #F6D4A3;
523
+ --color-tertiary-300: #F0C382;
524
+ --color-tertiary-400: #E8B261;
525
+ --color-tertiary-500: #DEA23D;
526
+ --color-tertiary-600: #D4920A;
527
+ --color-tertiary-700: #A06F11;
528
+ --color-tertiary-800: #6E4D11;
529
+ --color-tertiary-900: #402E0E;
530
+ --color-tertiary-950: #181101;
531
+
532
+ /* Grey colors */
533
+ --color-grey-50: #F3F3F3;
534
+ --color-grey-100: #DDDDDD;
535
+ --color-grey-200: #C4C4C4;
536
+ --color-grey-300: #AAAAAA;
537
+ --color-grey-400: #919191;
538
+ --color-grey-500: #777777;
539
+ --color-grey-600: #5F5F5F;
540
+ --color-grey-700: #474747;
541
+ --color-grey-800: #303030;
542
+ --color-grey-900: #181818;
543
+ --color-grey-950: #0C0C0C;
544
+
545
+ /* Neutrals */
546
+ --color-neutrals-white: #FFF;
547
+ --color-neutrals-black: #000;
548
+
549
+ /* Info colors */
550
+ --color-info-50: #F0F3FC;
551
+ --color-info-100: #E1E7F9;
552
+ --color-info-200: #C4D0F3;
553
+ --color-info-300: #A6B8EE;
554
+ --color-info-400: #89A1E8;
555
+ --color-info-500: #6B89E2;
556
+ --color-info-600: #5873C2;
557
+ --color-info-700: #455DA2;
558
+ --color-info-800: #334681;
559
+ --color-info-900: #203061;
560
+ --color-info-950: #162551;
561
+
562
+ /* Status colors */
563
+ --color-status-error: #B30808;
564
+ --color-status-success: #0A742C;
565
+ --color-status-warning: #CC4908;
566
+ --color-status-state: #334681;
567
+
568
+ /* Breakpoints */
569
+ --breakpoint-sm: 0px;
570
+ --breakpoint-sm-max: 480px;
571
+ --breakpoint-md: 481px;
572
+ --breakpoint-md-max: 768px;
573
+ --breakpoint-base: 769px;
574
+ --breakpoint-base-max: 1440px;
575
+ --breakpoint-lg: 1441px;
576
+
577
+ /* Grid System - Mobile */
578
+ --grid-mobile-2-columns: 2;
579
+ --grid-mobile-2-margin: 1.25rem; /* 20px */
580
+ --grid-mobile-2-gutter: 1.25rem; /* 20px */
581
+
582
+ --grid-mobile-3-columns: 3;
583
+ --grid-mobile-3-margin: 1.25rem; /* 20px */
584
+ --grid-mobile-3-gutter: 1.25rem; /* 20px */
585
+
586
+ --grid-mobile-4-columns: 4;
587
+ --grid-mobile-4-margin: 1.25rem; /* 20px */
588
+ --grid-mobile-4-gutter: 1rem; /* 16px */
589
+
590
+ --grid-mobile-8-columns: 8;
591
+ --grid-mobile-8-margin: 1.25rem; /* 20px */
592
+ --grid-mobile-8-gutter: 0.75rem; /* 12px */
593
+
594
+ /* Grid System - Desktop (Small/Medium) */
595
+ /* Estandarizado: layouts amplios (2-4 cols) usan margin 64px y gutter 32px */
596
+ /* Layouts densos (8 cols) usan margin 32px y gutter 24px para aprovechar mejor el espacio */
597
+ --grid-desktop-2-columns: 2;
598
+ --grid-desktop-2-margin: 4rem; /* 64px */
599
+ --grid-desktop-2-gutter: 2rem; /* 32px */
600
+
601
+ --grid-desktop-3-columns: 3;
602
+ --grid-desktop-3-margin: 4rem; /* 64px */
603
+ --grid-desktop-3-gutter: 2rem; /* 32px */
604
+
605
+ --grid-desktop-4-columns: 4;
606
+ --grid-desktop-4-margin: 4rem; /* 64px - Estandarizado */
607
+ --grid-desktop-4-gutter: 2rem; /* 32px */
608
+
609
+ --grid-desktop-8-columns: 8;
610
+ --grid-desktop-8-margin: 2rem; /* 32px */
611
+ --grid-desktop-8-gutter: 1.5rem; /* 24px */
612
+
613
+ /* Grid System - Desktop (Large) */
614
+ --grid-desktop-lg-12-columns: 12;
615
+ --grid-desktop-lg-12-margin: 2rem; /* 32px */
616
+ --grid-desktop-lg-12-gutter: 1.25rem; /* 20px */
617
+
618
+ --grid-desktop-lg-16-columns: 16;
619
+ --grid-desktop-lg-16-margin: 2rem; /* 32px */
620
+ --grid-desktop-lg-16-gutter: 1.25rem; /* 20px */
621
+
622
+ /* Radius tokens */
623
+ --radius-4: 0.25rem; /* 4px */
624
+ --radius-8: 0.5rem; /* 8px */
625
+ --radius-12: 0.75rem; /* 12px */
626
+ --radius-16: 1rem; /* 16px - Base */
627
+ --radius-24: 1.5rem; /* 24px */
628
+ --radius-32: 2rem; /* 32px */
629
+ }
630
+
631
+ /* ============================================
632
+ Animación Charly (abeja IA Nucleus Labs)
633
+ Flotación suave en el header
634
+ ============================================ */
635
+
636
+ @keyframes charly-float {
637
+ 0% {
638
+ transform: translateY(0);
639
+ }
640
+ 50% {
641
+ transform: translateY(-6px);
642
+ }
643
+ 100% {
644
+ transform: translateY(0);
645
+ }
646
+ }
647
+
648
+ .charly-float {
649
+ animation: charly-float 3.5s ease-in-out infinite;
650
+ }
651
+
652
+ /* Animación de viaje de Bee desde el header hasta la sección central y regreso (trayectoria más natural, tipo abeja) */
653
+ @keyframes bee-travel {
654
+ 0% {
655
+ transform: translate3d(0, 0, 0) rotate(0deg) scale(1);
656
+ }
657
+ 12% {
658
+ transform: translate3d(50px, -6px, 0) rotate(-8deg) scale(1.02);
659
+ }
660
+ 24% {
661
+ transform: translate3d(110px, 26px, 0) rotate(6deg) scale(1.04);
662
+ }
663
+ 38% {
664
+ transform: translate3d(170px, 70px, 0) rotate(-10deg) scale(1.07);
665
+ }
666
+ 52% {
667
+ /* Punto más lejano, cerca de "Bienvenido a Anima DS" */
668
+ transform: translate3d(230px, 120px, 0) rotate(5deg) scale(1.1);
669
+ }
670
+ 66% {
671
+ transform: translate3d(180px, 85px, 0) rotate(-6deg) scale(1.06);
672
+ }
673
+ 80% {
674
+ transform: translate3d(90px, 30px, 0) rotate(3deg) scale(1.03);
675
+ }
676
+ 100% {
677
+ transform: translate3d(0, 0, 0) rotate(0deg) scale(1);
678
+ }
679
+ }
680
+
681
+ .bee-travel {
682
+ animation: bee-travel 3.6s cubic-bezier(0.22, 0.61, 0.36, 1) forwards;
683
+ }
684
+
685
+ /* Flotación sutil durante el viaje */
686
+ @keyframes bee-travel-float {
687
+ 0% {
688
+ transform: translateY(0);
689
+ }
690
+ 50% {
691
+ transform: translateY(-4px);
692
+ }
693
+ 100% {
694
+ transform: translateY(0);
695
+ }
696
+ }
697
+
698
+ .bee-travel-inner {
699
+ animation: bee-travel-float 0.8s ease-in-out infinite;
700
+ }
701
+
702
+ /* ============================================
703
+ Fondo de panal tenue para el header
704
+ ============================================ */
705
+
706
+ .header-honeycomb {
707
+ position: relative;
708
+ overflow: hidden;
709
+ }
710
+
711
+ .header-honeycomb::before {
712
+ content: '';
713
+ position: absolute;
714
+ inset: 0;
715
+ pointer-events: none;
716
+ background-image: url("data:image/svg+xml,%3Csvg width='140' height='120' viewBox='0 0 140 120' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' stroke='%23FFFFFF' stroke-width='0.7' stroke-opacity='0.45'%3E%3Cpath d='M20 10 L35 10 L43 24 L35 38 L20 38 L12 24 Z'/%3E%3Cpath d='M48 10 L63 10 L71 24 L63 38 L48 38 L40 24 Z'/%3E%3Cpath d='M76 10 L91 10 L99 24 L91 38 L76 38 L68 24 Z'/%3E%3Cpath d='M34 38 L49 38 L57 52 L49 66 L34 66 L26 52 Z'/%3E%3Cpath d='M62 38 L77 38 L85 52 L77 66 L62 66 L54 52 Z'/%3E%3Cpath d='M90 38 L105 38 L113 52 L105 66 L90 66 L82 52 Z'/%3E%3Cpath d='M20 66 L35 66 L43 80 L35 94 L20 94 L12 80 Z'/%3E%3Cpath d='M48 66 L63 66 L71 80 L63 94 L48 94 L40 80 Z'/%3E%3Cpath d='M76 66 L91 66 L99 80 L91 94 L76 94 L68 80 Z'/%3E%3C/g%3E%3C/svg%3E");
717
+ background-size: 140px 120px;
718
+ background-position: center;
719
+ mix-blend-mode: soft-light;
720
+ opacity: 0.85;
721
+ }