holygrail5 1.0.2 → 1.0.3
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 +145 -195
- package/package.json +1 -1
- package/src/guide.js +32 -0
package/README.md
CHANGED
|
@@ -1,47 +1,55 @@
|
|
|
1
1
|
# HolyGrail5
|
|
2
2
|
|
|
3
|
+
[](https://www.npmjs.com/package/holygrail5)
|
|
4
|
+
[](https://www.npmjs.com/package/holygrail5)
|
|
5
|
+
|
|
3
6
|
Framework CSS generator con Node.js que genera CSS optimizado con variables CSS compartidas desde un archivo JSON de configuración.
|
|
4
7
|
|
|
5
|
-
##
|
|
8
|
+
## 📦 Instalación
|
|
6
9
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
| Consistencia visual | ⚠️ Difícil mantener si hay muchas utilidades | ✅ Mantienes branding y coherencia |
|
|
11
|
-
| Escalabilidad | ⚠️ Costoso en proyectos grandes | ✅ Fácil de mantener |
|
|
12
|
-
| Curva de aprendizaje | Media | Baja si ya vienes de BEM/SCSS |
|
|
13
|
-
| Control sobre design system | ❌ Limitado | ✅ Total |
|
|
14
|
-
| Performance CSS final | ✅ Muy buena | ✅ Muy buena |
|
|
10
|
+
```bash
|
|
11
|
+
# Instalación global
|
|
12
|
+
npm install -g holygrail5
|
|
15
13
|
|
|
14
|
+
# Instalación local
|
|
15
|
+
npm install holygrail5
|
|
16
|
+
```
|
|
16
17
|
|
|
18
|
+
## 🚀 Inicio Rápido
|
|
17
19
|
|
|
18
|
-
|
|
20
|
+
```bash
|
|
21
|
+
# 1. Generar CSS y HTML
|
|
22
|
+
npx holygrail5
|
|
23
|
+
|
|
24
|
+
# 2. Ver la guía interactiva
|
|
25
|
+
npm run serve
|
|
26
|
+
# Abre http://localhost:3000/index.html
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
## ✨ Características Principales
|
|
19
30
|
|
|
20
31
|
- 🎨 **CSS optimizado** con variables CSS compartidas (mínimas y eficientes)
|
|
21
32
|
- 📱 **Soporte responsive** con breakpoints personalizables (mobile/desktop)
|
|
22
33
|
- 🔧 **Configuración simple** mediante JSON
|
|
23
34
|
- 📊 **Guía HTML interactiva** generada automáticamente con detección de cambios
|
|
24
|
-
-
|
|
25
|
-
- 🔄 **Conversión automática** de px a rem
|
|
26
|
-
- 🛠️ **Helpers de spacing** (padding y margin) estilo Tailwind con propiedades lógicas (RTL)
|
|
35
|
+
- 🛠️ **Helpers de spacing** estilo Tailwind con propiedades lógicas (RTL)
|
|
27
36
|
- 🎨 **Sistema de colores** con variables CSS
|
|
28
37
|
- 📐 **Helpers de layout** (display, flexbox, alignment, gap)
|
|
29
38
|
- 👀 **Modo watch** para desarrollo con regeneración automática
|
|
30
|
-
- ✅ **Validación robusta** de configuración
|
|
31
|
-
- 🧪 **Suite de tests** incluida
|
|
32
39
|
- 🔍 **Gestión de variables CSS** con historial persistente
|
|
33
40
|
|
|
34
|
-
##
|
|
41
|
+
## ⚖️ ¿Por qué HolyGrail5?
|
|
35
42
|
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
+
| Aspecto | Solo Tailwind | HolyGrail5 (Híbrido) |
|
|
44
|
+
|--------------------------|-------------------------------------------------------------------------------|---------------------------------------------------------------------|
|
|
45
|
+
| Velocidad de desarrollo | 🔥 Muy alta | 🔥 Alta |
|
|
46
|
+
| Consistencia visual | ⚠️ Difícil mantener si hay muchas utilidades | ✅ Mantienes branding y coherencia |
|
|
47
|
+
| Escalabilidad | ⚠️ Costoso en proyectos grandes | ✅ Fácil de mantener |
|
|
48
|
+
| Curva de aprendizaje | Media | Baja si ya vienes de BEM/SCSS |
|
|
49
|
+
| Control sobre design system | ❌ Limitado | ✅ Total |
|
|
50
|
+
| Performance CSS final | ✅ Muy buena | ✅ Muy buena |
|
|
43
51
|
|
|
44
|
-
##
|
|
52
|
+
## 📖 Uso
|
|
45
53
|
|
|
46
54
|
### CLI
|
|
47
55
|
|
|
@@ -65,7 +73,7 @@ const css = generateCSS(config);
|
|
|
65
73
|
const html = generateHTML(config);
|
|
66
74
|
```
|
|
67
75
|
|
|
68
|
-
### Desarrollo
|
|
76
|
+
### Scripts de Desarrollo
|
|
69
77
|
|
|
70
78
|
```bash
|
|
71
79
|
# Modo watch (regenera automáticamente al cambiar config.json)
|
|
@@ -81,7 +89,7 @@ npm run serve
|
|
|
81
89
|
npm run start
|
|
82
90
|
```
|
|
83
91
|
|
|
84
|
-
**Nota:** El servidor sirve desde `dist/` como raíz, así que la URL será `http://localhost:3000/index.html` (sin mostrar "dist" en la URL).
|
|
92
|
+
> **Nota:** El servidor sirve desde `dist/` como raíz, así que la URL será `http://localhost:3000/index.html` (sin mostrar "dist" en la URL).
|
|
85
93
|
|
|
86
94
|
## ⚙️ Configuración
|
|
87
95
|
|
|
@@ -105,8 +113,7 @@ npm run start
|
|
|
105
113
|
"4": "4px",
|
|
106
114
|
"8": "8px",
|
|
107
115
|
"16": "16px",
|
|
108
|
-
"24": "24px"
|
|
109
|
-
"32": "32px"
|
|
116
|
+
"24": "24px"
|
|
110
117
|
},
|
|
111
118
|
"spacingImportant": ["0"],
|
|
112
119
|
"colors": {
|
|
@@ -121,17 +128,7 @@ npm run start
|
|
|
121
128
|
"class": "d",
|
|
122
129
|
"responsive": true,
|
|
123
130
|
"description": "Tipo de caja de renderizado",
|
|
124
|
-
"values": ["
|
|
125
|
-
},
|
|
126
|
-
"flex-direction": {
|
|
127
|
-
"property": "flex-direction",
|
|
128
|
-
"class": "flex",
|
|
129
|
-
"responsive": true,
|
|
130
|
-
"description": "Dirección del eje principal",
|
|
131
|
-
"values": {
|
|
132
|
-
"row": "row",
|
|
133
|
-
"column": "column"
|
|
134
|
-
}
|
|
131
|
+
"values": ["flex", "block", "none"]
|
|
135
132
|
}
|
|
136
133
|
},
|
|
137
134
|
"classes": {
|
|
@@ -153,7 +150,7 @@ npm run start
|
|
|
153
150
|
}
|
|
154
151
|
```
|
|
155
152
|
|
|
156
|
-
### Propiedades
|
|
153
|
+
### Propiedades Globales
|
|
157
154
|
|
|
158
155
|
| Propiedad | Tipo | Default | Descripción |
|
|
159
156
|
|-----------|------|---------|-------------|
|
|
@@ -168,7 +165,7 @@ npm run start
|
|
|
168
165
|
| `helpers` | object | - | Helpers de layout (display, flexbox, etc.) |
|
|
169
166
|
| `classes` | object | **Requerido** | Clases CSS de tipografía a generar |
|
|
170
167
|
|
|
171
|
-
### Propiedades de
|
|
168
|
+
### Propiedades de Clases
|
|
172
169
|
|
|
173
170
|
**Base (aplicadas a todos los breakpoints):**
|
|
174
171
|
|
|
@@ -178,62 +175,10 @@ npm run start
|
|
|
178
175
|
- `textTransform`: Transformación (none, uppercase, lowercase)
|
|
179
176
|
|
|
180
177
|
**Responsive (por breakpoint):**
|
|
178
|
+
|
|
181
179
|
- `mobile`: `{ fontSize: "18px", lineHeight: "1.2" }`
|
|
182
180
|
- `desktop`: `{ fontSize: "24px", lineHeight: "1.5" }`
|
|
183
181
|
|
|
184
|
-
## 📄 Salida
|
|
185
|
-
|
|
186
|
-
### `dist/output.css`
|
|
187
|
-
|
|
188
|
-
CSS generado con estructura organizada:
|
|
189
|
-
|
|
190
|
-
1. **Reset CSS Mínimo** - Normalización básica
|
|
191
|
-
2. **Variables CSS Compartidas** (`:root`) - Variables para:
|
|
192
|
-
|
|
193
|
-
- Font families
|
|
194
|
-
- Font sizes
|
|
195
|
-
- Line heights
|
|
196
|
-
- Font weights
|
|
197
|
-
- Letter spacing
|
|
198
|
-
- Text transform
|
|
199
|
-
- Spacing values
|
|
200
|
-
- Colors
|
|
201
|
-
3. **Helpers de Spacing (Mobile)** - Padding y margin con propiedades lógicas
|
|
202
|
-
4. **Helpers de Spacing (Desktop)** - Versiones `md:` con media queries
|
|
203
|
-
5. **Layout Helpers** - Display, flexbox, alignment, gap
|
|
204
|
-
6. **Tipografías (Mobile)** - Clases responsive para mobile
|
|
205
|
-
7. **Tipografías (Desktop)** - Clases responsive para desktop
|
|
206
|
-
- Font families
|
|
207
|
-
- Font sizes
|
|
208
|
-
- Line heights
|
|
209
|
-
- Font weights
|
|
210
|
-
- Letter spacing
|
|
211
|
-
- Text transform
|
|
212
|
-
- Spacing values
|
|
213
|
-
- Colors
|
|
214
|
-
3. **Helpers de Spacing (Mobile)** - Padding y margin con propiedades lógicas
|
|
215
|
-
4. **Helpers de Spacing (Desktop)** - Versiones `md:` con media queries
|
|
216
|
-
5. **Layout Helpers** - Display, flexbox, alignment, gap
|
|
217
|
-
6. **Tipografías (Mobile)** - Clases responsive para mobile
|
|
218
|
-
7. **Tipografías (Desktop)** - Clases responsive para desktop
|
|
219
|
-
|
|
220
|
-
### `dist/index.html`
|
|
221
|
-
|
|
222
|
-
Guía HTML interactiva generada en la carpeta `dist/` con:
|
|
223
|
-
|
|
224
|
-
- 🎨 **Sección de Colores** - Grid visual con preview de colores
|
|
225
|
-
- 🔤 **Font Families** - Tabla con preview de fuentes
|
|
226
|
-
- 📝 **Clases de Tipografía** - Tabla completa con preview y valores responsive
|
|
227
|
-
- 🔗 **Variables CSS Compartidas** - Todas las variables generadas
|
|
228
|
-
- 📏 **Helpers de Spacing** - Tabla con clases y variables
|
|
229
|
-
- 📐 **Helpers de Layout** - Tabla con clases base y responsive (`md:`)
|
|
230
|
-
- 📱 **Breakpoints** - Configuración de breakpoints
|
|
231
|
-
- 🔍 **Búsqueda en tiempo real** - Filtra y resalta contenido
|
|
232
|
-
- 🎯 **Detección de cambios** - Valores modificados se resaltan en verde
|
|
233
|
-
- 📌 **Header sticky** - Navegación siempre visible
|
|
234
|
-
- 📋 **Menú lateral** - Navegación rápida entre secciones
|
|
235
|
-
- 📊 **Metadata** - Último commit y versión del package
|
|
236
|
-
|
|
237
182
|
## 🎯 Helpers de Spacing
|
|
238
183
|
|
|
239
184
|
Genera clases estilo Tailwind para padding y margin con **propiedades lógicas** para soporte RTL automático:
|
|
@@ -335,40 +280,64 @@ Genera helpers para display, flexbox, alignment y gap:
|
|
|
335
280
|
}
|
|
336
281
|
```
|
|
337
282
|
|
|
283
|
+
## 📄 Archivos Generados
|
|
284
|
+
|
|
285
|
+
### `dist/output.css`
|
|
286
|
+
|
|
287
|
+
CSS generado con estructura organizada:
|
|
288
|
+
|
|
289
|
+
1. **Reset CSS Mínimo** - Normalización básica
|
|
290
|
+
2. **Variables CSS Compartidas** (`:root`) - Variables para:
|
|
291
|
+
- Font families, font sizes, line heights
|
|
292
|
+
- Font weights, letter spacing, text transform
|
|
293
|
+
- Spacing values, colors
|
|
294
|
+
3. **Helpers de Spacing (Mobile)** - Padding y margin con propiedades lógicas
|
|
295
|
+
4. **Helpers de Spacing (Desktop)** - Versiones `md:` con media queries
|
|
296
|
+
5. **Layout Helpers** - Display, flexbox, alignment, gap
|
|
297
|
+
6. **Tipografías (Mobile)** - Clases responsive para mobile
|
|
298
|
+
7. **Tipografías (Desktop)** - Clases responsive para desktop
|
|
299
|
+
|
|
300
|
+
### `dist/index.html`
|
|
301
|
+
|
|
302
|
+
Guía HTML interactiva generada automáticamente con:
|
|
303
|
+
|
|
304
|
+
- 🎨 **Grid de colores** - Visualización de la paleta de colores con preview
|
|
305
|
+
- 🔤 **Font Families** - Tabla con preview de fuentes
|
|
306
|
+
- 📝 **Clases de Tipografía** - Tabla completa con preview y valores responsive
|
|
307
|
+
- 🔗 **Variables CSS Compartidas** - Todas las variables generadas
|
|
308
|
+
- 📏 **Helpers de Spacing** - Tabla con clases y variables
|
|
309
|
+
- 📐 **Helpers de Layout** - Tabla con clases base y responsive (`md:`)
|
|
310
|
+
- 📱 **Breakpoints** - Configuración de breakpoints
|
|
311
|
+
- 🔍 **Búsqueda en tiempo real** - Filtra y resalta contenido
|
|
312
|
+
- 🎯 **Detección de cambios** - Valores modificados se resaltan en verde
|
|
313
|
+
- 📌 **Header sticky** - Navegación siempre visible
|
|
314
|
+
- 📋 **Menú lateral** - Navegación rápida con scroll suave
|
|
315
|
+
- 📊 **Metadata** - Último commit y versión del package
|
|
316
|
+
|
|
338
317
|
## 🔍 Gestión de Variables CSS
|
|
339
318
|
|
|
340
319
|
El generador mantiene un historial de todas las variables CSS generadas en `.data/.historical-variables.json` para que nunca se eliminen automáticamente, incluso si se borran las clases que las usaban.
|
|
341
320
|
|
|
342
|
-
### Comandos
|
|
321
|
+
### Comandos Disponibles
|
|
343
322
|
|
|
344
323
|
```bash
|
|
345
324
|
# Listar variables no usadas
|
|
346
325
|
npm run vars:list
|
|
347
|
-
# o
|
|
348
|
-
node src/cli-variables.js list
|
|
349
326
|
|
|
350
327
|
# Ver reporte completo de variables
|
|
351
328
|
npm run vars:report
|
|
352
|
-
# o
|
|
353
|
-
node src/cli-variables.js report
|
|
354
329
|
|
|
355
330
|
# Eliminar una variable específica del historial
|
|
356
331
|
npm run vars:remove -- --hg-typo-font-size-18
|
|
357
|
-
# o
|
|
358
|
-
node src/cli-variables.js remove --hg-typo-font-size-18
|
|
359
332
|
|
|
360
333
|
# Eliminar todas las variables no usadas del historial
|
|
361
334
|
npm run vars:remove-all-unused
|
|
362
|
-
# o
|
|
363
|
-
node src/cli-variables.js remove-all-unused
|
|
364
335
|
|
|
365
336
|
# Mostrar todas las variables históricas almacenadas
|
|
366
337
|
npm run vars:show-all
|
|
367
|
-
# o
|
|
368
|
-
node src/cli-variables.js show-all
|
|
369
338
|
```
|
|
370
339
|
|
|
371
|
-
### Ejemplo de
|
|
340
|
+
### Ejemplo de Uso
|
|
372
341
|
|
|
373
342
|
```bash
|
|
374
343
|
# 1. Generar CSS
|
|
@@ -384,7 +353,7 @@ npm run vars:remove-all-unused
|
|
|
384
353
|
npm run generate
|
|
385
354
|
```
|
|
386
355
|
|
|
387
|
-
### Opciones
|
|
356
|
+
### Opciones Avanzadas
|
|
388
357
|
|
|
389
358
|
```bash
|
|
390
359
|
# Especificar ruta personalizada del CSS
|
|
@@ -410,38 +379,43 @@ node src/cli-variables.js list --history=./.data/.custom-variables.json
|
|
|
410
379
|
| `npm run vars:remove-all-unused` | Elimina todas las variables no usadas |
|
|
411
380
|
| `npm run vars:show-all` | Muestra todas las variables históricas |
|
|
412
381
|
|
|
413
|
-
##
|
|
382
|
+
## 🔑 Características Técnicas
|
|
414
383
|
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
├── config.json # Configuración del proyecto
|
|
419
|
-
├── package.json # Dependencias y scripts
|
|
420
|
-
├── README.md # Este archivo
|
|
421
|
-
├── .data/ # Archivos de estado (gitignored)
|
|
422
|
-
│ ├── .previous-values.json # Valores previos para detección de cambios
|
|
423
|
-
│ └── .historical-variables.json # Historial de variables CSS
|
|
424
|
-
├── dist/ # Archivos generados (gitignored)
|
|
425
|
-
│ ├── output.css # CSS generado
|
|
426
|
-
│ └── index.html # Guía HTML interactiva
|
|
427
|
-
├── src/
|
|
428
|
-
│ ├── config.js # Carga y validación de configuración
|
|
429
|
-
│ ├── parser.js # Generación de CSS desde JSON
|
|
430
|
-
│ ├── guide.js # Generación de guía HTML interactiva
|
|
431
|
-
│ ├── utils.js # Utilidades compartidas (px→rem, etc.)
|
|
432
|
-
│ ├── variables-manager.js # Gestión de variables CSS históricas
|
|
433
|
-
│ ├── cli-variables.js # CLI para gestión de variables
|
|
434
|
-
│ ├── watch.js # Modo watch para desarrollo
|
|
435
|
-
│ └── dev.js # Script de desarrollo (watch + servidor)
|
|
436
|
-
└── tests/
|
|
437
|
-
├── run-all.js # Ejecutor de todos los tests
|
|
438
|
-
├── config.test.js # Tests de configuración
|
|
439
|
-
├── parser.test.js # Tests del parseador
|
|
440
|
-
├── guide.test.js # Tests de la guía HTML
|
|
441
|
-
└── utils.test.js # Tests de utilidades
|
|
442
|
-
```
|
|
384
|
+
### Variables Compartidas
|
|
385
|
+
|
|
386
|
+
Las variables se generan basándose en **valores únicos**, no en clases:
|
|
443
387
|
|
|
444
|
-
|
|
388
|
+
- Múltiples clases con `fontWeight: "900"` → una sola variable `--hg-typo-font-weight-900`
|
|
389
|
+
- Optimiza el CSS eliminando duplicados
|
|
390
|
+
- Historial persistente en `.data/.historical-variables.json`
|
|
391
|
+
|
|
392
|
+
### Conversión px → rem
|
|
393
|
+
|
|
394
|
+
- `fontSize` en JSON: `"18px"` → CSS: `1.125rem` (usando `baseFontSize: 16`)
|
|
395
|
+
- Nombre de variable mantiene el valor original: `--hg-typo-font-size-18`
|
|
396
|
+
- Conversión automática para todos los valores en píxeles
|
|
397
|
+
|
|
398
|
+
### Nombres de Variables
|
|
399
|
+
|
|
400
|
+
Patrón: `--{prefix}-{category}-{propiedad}-{valor}`
|
|
401
|
+
|
|
402
|
+
Ejemplos:
|
|
403
|
+
|
|
404
|
+
- `--hg-typo-font-family-primary`
|
|
405
|
+
- `--hg-typo-font-size-18`
|
|
406
|
+
- `--hg-spacing-4`
|
|
407
|
+
- `--hg-color-white`
|
|
408
|
+
|
|
409
|
+
### Propiedades Lógicas (RTL)
|
|
410
|
+
|
|
411
|
+
Los helpers de spacing usan propiedades lógicas para soporte RTL automático:
|
|
412
|
+
|
|
413
|
+
- `pr-4` → `padding-inline-end` (no `padding-right`)
|
|
414
|
+
- `pl-4` → `padding-inline-start` (no `padding-left`)
|
|
415
|
+
- `mr-8` → `margin-inline-end` (no `margin-right`)
|
|
416
|
+
- `ml-8` → `margin-inline-start` (no `margin-left`)
|
|
417
|
+
|
|
418
|
+
## 🎨 Ejemplo de CSS Generado
|
|
445
419
|
|
|
446
420
|
```css
|
|
447
421
|
/* Reset CSS Mínimo */
|
|
@@ -503,66 +477,38 @@ html {
|
|
|
503
477
|
}
|
|
504
478
|
```
|
|
505
479
|
|
|
506
|
-
##
|
|
480
|
+
## 🏗️ Estructura del Proyecto
|
|
507
481
|
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
- `pr-4` → `padding-inline-end` (no `padding-right`)
|
|
538
|
-
- `pl-4` → `padding-inline-start` (no `padding-left`)
|
|
539
|
-
- `mr-8` → `margin-inline-end` (no `margin-right`)
|
|
540
|
-
- `ml-8` → `margin-inline-start` (no `margin-left`)
|
|
541
|
-
|
|
542
|
-
## 📊 Guía HTML Interactiva
|
|
543
|
-
|
|
544
|
-
La guía HTML generada en `dist/index.html` incluye:
|
|
545
|
-
|
|
546
|
-
#### Características
|
|
547
|
-
|
|
548
|
-
- 🎨 **Grid de colores** - Visualización de la paleta de colores con preview
|
|
549
|
-
- 🔤 **Font Families** - Tabla con preview de fuentes
|
|
550
|
-
- 📝 **Tipografía** - Tabla completa con preview y valores mobile/desktop
|
|
551
|
-
- 🔗 **Variables CSS** - Todas las variables generadas con valores
|
|
552
|
-
- 📏 **Helpers de Spacing** - Clases y variables de padding/margin
|
|
553
|
-
- 📐 **Helpers de Layout** - Display, flexbox, alignment, gap
|
|
554
|
-
- 📱 **Breakpoints** - Configuración de breakpoints
|
|
555
|
-
|
|
556
|
-
#### Funcionalidades interactivas
|
|
557
|
-
|
|
558
|
-
- 🔍 **Búsqueda en tiempo real** - Filtra y resalta contenido en todas las tablas
|
|
559
|
-
- 🎯 **Detección de cambios** - Valores modificados se resaltan en verde
|
|
560
|
-
- 📌 **Header sticky** - Navegación y búsqueda siempre visibles
|
|
561
|
-
- 📋 **Menú lateral** - Navegación rápida con scroll suave
|
|
562
|
-
- 📊 **Metadata** - Último commit de Git y versión del package
|
|
563
|
-
- 🔄 **Cache busting** - Timestamp en CSS para forzar recarga
|
|
482
|
+
```
|
|
483
|
+
holygrail5/
|
|
484
|
+
├── generator.js # Orquestador principal
|
|
485
|
+
├── config.json # Configuración del proyecto
|
|
486
|
+
├── package.json # Dependencias y scripts
|
|
487
|
+
├── README.md # Este archivo
|
|
488
|
+
├── .data/ # Archivos de estado (gitignored)
|
|
489
|
+
│ ├── .previous-values.json # Valores previos para detección de cambios
|
|
490
|
+
│ └── .historical-variables.json # Historial de variables CSS
|
|
491
|
+
├── dist/ # Archivos generados (gitignored)
|
|
492
|
+
│ ├── output.css # CSS generado
|
|
493
|
+
│ └── index.html # Guía HTML interactiva
|
|
494
|
+
├── src/
|
|
495
|
+
│ ├── config.js # Carga y validación de configuración
|
|
496
|
+
│ ├── parser.js # Generación de CSS desde JSON
|
|
497
|
+
│ ├── guide.js # Generación de guía HTML interactiva
|
|
498
|
+
│ ├── utils.js # Utilidades compartidas (px→rem, etc.)
|
|
499
|
+
│ ├── variables-manager.js # Gestión de variables CSS históricas
|
|
500
|
+
│ ├── cli-variables.js # CLI para gestión de variables
|
|
501
|
+
│ ├── watch.js # Modo watch para desarrollo
|
|
502
|
+
│ └── dev.js # Script de desarrollo (watch + servidor)
|
|
503
|
+
└── tests/
|
|
504
|
+
├── run-all.js # Ejecutor de todos los tests
|
|
505
|
+
├── config.test.js # Tests de configuración
|
|
506
|
+
├── parser.test.js # Tests del parseador
|
|
507
|
+
├── guide.test.js # Tests de la guía HTML
|
|
508
|
+
└── utils.test.js # Tests de utilidades
|
|
509
|
+
```
|
|
564
510
|
|
|
565
|
-
## 🐛 Solución de
|
|
511
|
+
## 🐛 Solución de Problemas
|
|
566
512
|
|
|
567
513
|
**Error: "Archivo de configuración no encontrado"**
|
|
568
514
|
|
|
@@ -595,14 +541,17 @@ Para desplegar en GitHub Pages, puedes:
|
|
|
595
541
|
2. O crear un workflow de GitHub Actions que genere los archivos en `docs/` automáticamente
|
|
596
542
|
|
|
597
543
|
**Opción 1 - Usar dist/ directamente:**
|
|
544
|
+
|
|
598
545
|
- En Settings → Pages, selecciona la rama y carpeta `dist/`
|
|
599
546
|
|
|
600
547
|
**Opción 2 - Workflow automático:**
|
|
548
|
+
|
|
601
549
|
- Crea `.github/workflows/deploy.yml` que ejecute `npm run generate` y copie archivos a `docs/`
|
|
602
550
|
|
|
603
551
|
## 📚 Recursos
|
|
604
552
|
|
|
605
553
|
- **Repositorio**: [GitHub](https://github.com/holygrailcss/holygrail5.git)
|
|
554
|
+
- **npm**: [holygrail5](https://www.npmjs.com/package/holygrail5)
|
|
606
555
|
- **Licencia**: MIT
|
|
607
556
|
- **Node.js**: Requiere >=12.0.0
|
|
608
557
|
|
|
@@ -617,6 +566,7 @@ Para desplegar en GitHub Pages, puedes:
|
|
|
617
566
|
## 📝 Changelog
|
|
618
567
|
|
|
619
568
|
### v1.0.2
|
|
569
|
+
|
|
620
570
|
- ✅ Sistema de colores con variables CSS
|
|
621
571
|
- ✅ Helpers de layout (display, flexbox, alignment, gap)
|
|
622
572
|
- ✅ Propiedades lógicas para soporte RTL
|
package/package.json
CHANGED
package/src/guide.js
CHANGED
|
@@ -1146,6 +1146,7 @@ function generateHTML(configData, previousValuesPath = null) {
|
|
|
1146
1146
|
background: white;
|
|
1147
1147
|
border-right: 1px solid #e0e0e0;
|
|
1148
1148
|
padding: 2rem 0;
|
|
1149
|
+
padding-bottom: 120px;
|
|
1149
1150
|
overflow-y: auto;
|
|
1150
1151
|
z-index: 100;
|
|
1151
1152
|
box-shadow: 2px 0 8px rgba(0,0,0,0.05);
|
|
@@ -1167,6 +1168,28 @@ function generateHTML(configData, previousValuesPath = null) {
|
|
|
1167
1168
|
.sidebar-nav {
|
|
1168
1169
|
padding: 0 1rem;
|
|
1169
1170
|
}
|
|
1171
|
+
|
|
1172
|
+
.sidebar-footer {
|
|
1173
|
+
position: absolute;
|
|
1174
|
+
bottom: 0;
|
|
1175
|
+
left: 0;
|
|
1176
|
+
right: 0;
|
|
1177
|
+
padding: 1rem 1.5rem .5rem 1.5rem;
|
|
1178
|
+
border-top: 1px solid #e0e0e0;
|
|
1179
|
+
background: white;
|
|
1180
|
+
}
|
|
1181
|
+
|
|
1182
|
+
.sidebar-badges {
|
|
1183
|
+
display: flex;
|
|
1184
|
+
flex-direction: column;
|
|
1185
|
+
gap: 0.5rem;
|
|
1186
|
+
align-items: flex-start;
|
|
1187
|
+
}
|
|
1188
|
+
|
|
1189
|
+
.sidebar-badges img {
|
|
1190
|
+
height: 20px;
|
|
1191
|
+
width: auto;
|
|
1192
|
+
}
|
|
1170
1193
|
|
|
1171
1194
|
.menu-item {
|
|
1172
1195
|
display: block;
|
|
@@ -1315,6 +1338,15 @@ function generateHTML(configData, previousValuesPath = null) {
|
|
|
1315
1338
|
<nav class="sidebar-nav">
|
|
1316
1339
|
${menuHTML}
|
|
1317
1340
|
</nav>
|
|
1341
|
+
|
|
1342
|
+
<div class="sidebar-footer">
|
|
1343
|
+
<div class="sidebar-badges">
|
|
1344
|
+
<a href="https://www.npmjs.com/package/holygrail5" target="_blank" rel="noopener noreferrer">
|
|
1345
|
+
<img src="https://img.shields.io/npm/v/holygrail5.svg" alt="npm version" />
|
|
1346
|
+
</a>
|
|
1347
|
+
|
|
1348
|
+
</div>
|
|
1349
|
+
</div>
|
|
1318
1350
|
</aside>
|
|
1319
1351
|
|
|
1320
1352
|
<main class="main-content">
|