holygrail5 1.0.19 → 1.0.21
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 +88 -18
- package/config.json +205 -77
- package/dist/assets/fonts/suisse-intl-light.woff +0 -0
- package/dist/assets/fonts/suisse-intl-light.woff2 +0 -0
- package/dist/assets/fonts/suisse-intl-medium.woff +0 -0
- package/dist/assets/fonts/suisse-intl-medium.woff2 +0 -0
- package/dist/assets/fonts/suisse-intl-regular.woff +0 -0
- package/dist/assets/fonts/suisse-intl-regular.woff2 +0 -0
- package/dist/assets/fonts/suisse-intl-semibold.woff +0 -0
- package/dist/assets/fonts/suisse-intl-semibold.woff2 +0 -0
- package/dist/assets/fonts/suisse-works-bold.woff +0 -0
- package/dist/assets/fonts/suisse-works-bold.woff2 +0 -0
- package/dist/assets/fonts/suisse-works-medium.woff +0 -0
- package/dist/assets/fonts/suisse-works-medium.woff2 +0 -0
- package/dist/assets/fonts/suisse-works-regular.woff +0 -0
- package/dist/assets/fonts/suisse-works-regular.woff2 +0 -0
- package/dist/componentes.html +429 -0
- package/dist/developer-guide.md +7 -7
- package/dist/guide-styles.css +197 -25
- package/dist/index.html +807 -689
- package/dist/output.css +217 -114
- package/dist/skills.html +14 -8
- package/dist/themes/dutti-demo.html +713 -19
- package/dist/themes/dutti.css +67 -16
- package/dist/themes/limited-demo.html +1121 -0
- package/dist/themes/limited.css +2493 -0
- package/package.json +1 -1
- package/src/.data/.previous-values.json +151 -84
- package/src/assets/fonts/suisse-intl-light.woff +0 -0
- package/src/assets/fonts/suisse-intl-light.woff2 +0 -0
- package/src/assets/fonts/suisse-intl-medium.woff +0 -0
- package/src/assets/fonts/suisse-intl-medium.woff2 +0 -0
- package/src/assets/fonts/suisse-intl-regular.woff +0 -0
- package/src/assets/fonts/suisse-intl-regular.woff2 +0 -0
- package/src/assets/fonts/suisse-intl-semibold.woff +0 -0
- package/src/assets/fonts/suisse-intl-semibold.woff2 +0 -0
- package/src/assets/fonts/suisse-works-bold.woff +0 -0
- package/src/assets/fonts/suisse-works-bold.woff2 +0 -0
- package/src/assets/fonts/suisse-works-medium.woff +0 -0
- package/src/assets/fonts/suisse-works-medium.woff2 +0 -0
- package/src/assets/fonts/suisse-works-regular.woff +0 -0
- package/src/assets/fonts/suisse-works-regular.woff2 +0 -0
- package/src/build/asset-manager.js +94 -3
- package/src/build/build-orchestrator.js +74 -12
- package/src/build/components-generator.js +584 -0
- package/src/build/skills-generator.js +43 -5
- package/src/build/theme-config-loader.js +58 -0
- package/src/build/theme-transformer.js +109 -16
- package/src/build/theme-vars-table-generator.js +349 -0
- package/src/build/typo-table-generator.js +154 -0
- package/src/docs-generator/guide-styles.css +197 -24
- package/src/docs-generator/html-generator.js +92 -246
- package/src/docs-generator/sections/colors-section.js +109 -0
- package/src/docs-generator/value-tracker.js +154 -0
- package/src/generators/typo-generator.js +2 -1
- package/src/generators/utils.js +90 -1
- package/src/skills.html +1 -0
- package/src/watch-config.js +99 -32
- package/themes/{dutti → _base}/_buttons.css +2 -2
- package/themes/{dutti → _base}/_checkboxes.css +1 -1
- package/themes/{dutti → _base}/_forms.css +1 -1
- package/themes/{dutti → _base}/_inputs.css +55 -10
- package/themes/{dutti → _base}/_labels.css +1 -1
- package/themes/dutti/README.md +67 -21
- package/themes/dutti/_variables.css +7 -1
- package/themes/dutti/demo.html +18 -14
- package/themes/dutti/theme.css +22 -44
- package/themes/dutti/theme.json +86 -0
- package/themes/limited/_variables.css +123 -0
- package/themes/limited/demo.html +296 -0
- package/themes/limited/theme.css +32 -0
- package/themes/limited/theme.json +105 -0
- /package/themes/{dutti → _base}/_containers.css +0 -0
- /package/themes/{dutti → _base}/_radios.css +0 -0
- /package/themes/{dutti → _base}/_switches.css +0 -0
- /package/themes/{dutti → _base}/components/_icons.css +0 -0
- /package/themes/{dutti → _base}/objects/_grid.css +0 -0
package/themes/dutti/README.md
CHANGED
|
@@ -14,27 +14,56 @@ Sistema de componentes UI basado en las variables CSS de **HolyGrail5**. Todos l
|
|
|
14
14
|
<link rel="stylesheet" href="themes/dutti/theme.css">
|
|
15
15
|
```
|
|
16
16
|
|
|
17
|
-
**Nota**: El archivo `theme.css` importa automáticamente todos los módulos. Si solo necesitas ciertos componentes, puedes
|
|
17
|
+
**Nota**: El archivo `theme.css` importa automáticamente todos los módulos. Los componentes (botones, inputs, checkboxes, radios, switches, labels, forms, containers, grid, icons) **no viven dentro de `themes/dutti/`**: se comparten desde `themes/_base/` y el `theme.css` hace `@import url('../_base/_buttons.css')` para cada uno. Si solo necesitas ciertos componentes, puedes importarlos directamente desde `_base/`:
|
|
18
18
|
|
|
19
19
|
```html
|
|
20
|
-
<!-- Solo variables y botones -->
|
|
20
|
+
<!-- Solo variables del tema y botones compartidos -->
|
|
21
21
|
<link rel="stylesheet" href="themes/dutti/_variables.css">
|
|
22
|
-
<link rel="stylesheet" href="themes/
|
|
22
|
+
<link rel="stylesheet" href="themes/_base/_buttons.css">
|
|
23
23
|
```
|
|
24
24
|
|
|
25
25
|
## 📁 Estructura de Archivos
|
|
26
26
|
|
|
27
|
-
|
|
27
|
+
La carpeta del tema solo contiene **lo que hace distinto a Dutti** — el resto se hereda de `themes/_base/`:
|
|
28
28
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
29
|
+
```
|
|
30
|
+
themes/
|
|
31
|
+
├── _base/ # Componentes compartidos (fuente única de verdad)
|
|
32
|
+
│ ├── _buttons.css
|
|
33
|
+
│ ├── _inputs.css
|
|
34
|
+
│ ├── _labels.css
|
|
35
|
+
│ ├── _checkboxes.css
|
|
36
|
+
│ ├── _radios.css
|
|
37
|
+
│ ├── _switches.css
|
|
38
|
+
│ ├── _forms.css
|
|
39
|
+
│ ├── _containers.css
|
|
40
|
+
│ ├── objects/_grid.css
|
|
41
|
+
│ └── components/_icons.css
|
|
42
|
+
│
|
|
43
|
+
└── dutti/
|
|
44
|
+
├── theme.json # Meta + tokenOverrides + componentVars + design
|
|
45
|
+
├── _variables.css # Overrides de --hg-color-* y mapeo de componentVars (--btn-*, --input-*, …)
|
|
46
|
+
├── theme.css # @import de _variables.css + @import de ../_base/*.css
|
|
47
|
+
└── demo.html # Demo interactiva (usa placeholders HG_THEME_BLOCK y HG_TYPO_TABLE)
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
Los componentes apuntan a los componentVars (`var(--btn-primary-bg)`, `var(--input-border-focus)`, …) y esos componentVars se mapean en `_variables.css` a los tokens base `--hg-color-*`. Como todos los temas comparten `_base/`, cambiar la paleta en `_variables.css` repinta automáticamente todos los componentes sin duplicar CSS.
|
|
51
|
+
|
|
52
|
+
### Sobrescribir un componente SOLO en Dutti
|
|
53
|
+
|
|
54
|
+
Si Dutti necesita un componente distinto al de `_base/`:
|
|
55
|
+
|
|
56
|
+
1. Copia, p. ej., `themes/_base/_inputs.css` → `themes/dutti/_inputs.css` y modifícalo.
|
|
57
|
+
2. En `themes/dutti/theme.css` cambia el `@import` correspondiente:
|
|
58
|
+
|
|
59
|
+
```css
|
|
60
|
+
/* antes */
|
|
61
|
+
@import url('../_base/_inputs.css');
|
|
62
|
+
/* después */
|
|
63
|
+
@import url('_inputs.css');
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
El resto de componentes sigue heredando de `_base/`.
|
|
38
67
|
|
|
39
68
|
## 🎨 Componentes Disponibles
|
|
40
69
|
|
|
@@ -234,7 +263,12 @@ Mensajes de ayuda, error, éxito o advertencia:
|
|
|
234
263
|
|
|
235
264
|
## 🎨 Personalización
|
|
236
265
|
|
|
237
|
-
Todos los componentes utilizan variables CSS de HolyGrail5.
|
|
266
|
+
Todos los componentes utilizan variables CSS de HolyGrail5. Hay **dos niveles** de personalización:
|
|
267
|
+
|
|
268
|
+
1. **Globales** — edita `config.json` de HolyGrail5 (colores base, spacing, tipografías). Afecta a todos los temas.
|
|
269
|
+
2. **Por tema** — edita `themes/dutti/theme.json` o `themes/dutti/_variables.css` para overridear los tokens solo para Dutti. Esto es lo que usa, por ejemplo, el tema `limited` para cambiar toda su paleta y tipografía sin tocar `config.json`.
|
|
270
|
+
|
|
271
|
+
En ambos casos, después regenera con `npm run build`.
|
|
238
272
|
|
|
239
273
|
### Variables principales
|
|
240
274
|
|
|
@@ -256,14 +290,14 @@ El sistema de theming Dutti utiliza estas variables de HolyGrail5:
|
|
|
256
290
|
- `--hg-spacing-4`, `--hg-spacing-8`, `--hg-spacing-12`, `--hg-spacing-16`, etc.
|
|
257
291
|
|
|
258
292
|
#### Tipografía
|
|
259
|
-
- `--hg-typo-font-family-primary`: Fuente principal
|
|
293
|
+
- `--hg-typo-font-family-primary-regular`: Fuente principal
|
|
260
294
|
- `--hg-typo-font-size-*`: Tamaños de fuente
|
|
261
295
|
- `--hg-typo-font-weight-*`: Pesos de fuente
|
|
262
296
|
- `--hg-typo-line-height-*`: Alturas de línea
|
|
263
297
|
|
|
264
|
-
### Personalizar
|
|
298
|
+
### Personalizar globalmente (todos los temas)
|
|
265
299
|
|
|
266
|
-
Para cambiar los colores, edita `config.json`:
|
|
300
|
+
Para cambiar los colores base compartidos, edita `config.json`:
|
|
267
301
|
|
|
268
302
|
```json
|
|
269
303
|
{
|
|
@@ -277,13 +311,25 @@ Para cambiar los colores, edita `config.json`:
|
|
|
277
311
|
}
|
|
278
312
|
```
|
|
279
313
|
|
|
280
|
-
|
|
314
|
+
### Personalizar solo Dutti
|
|
281
315
|
|
|
282
|
-
|
|
283
|
-
|
|
316
|
+
Para cambiar la paleta o la tipografía únicamente del tema Dutti, edita `themes/dutti/_variables.css` y añade overrides sobre los tokens base:
|
|
317
|
+
|
|
318
|
+
```css
|
|
319
|
+
:root {
|
|
320
|
+
--hg-color-primary: #111;
|
|
321
|
+
--hg-color-feel: #fb9962;
|
|
322
|
+
--hg-typo-font-family-primary-regular: "Inter", sans-serif;
|
|
323
|
+
}
|
|
284
324
|
```
|
|
285
325
|
|
|
286
|
-
Los
|
|
326
|
+
Los componentes de `themes/_base/` consumen estas variables a través del mapeo en `componentVars`, así que se repintan automáticamente sin duplicar CSS.
|
|
327
|
+
|
|
328
|
+
Luego regenera:
|
|
329
|
+
|
|
330
|
+
```bash
|
|
331
|
+
npm run build
|
|
332
|
+
```
|
|
287
333
|
|
|
288
334
|
## 📱 Responsive
|
|
289
335
|
|
|
@@ -66,7 +66,13 @@
|
|
|
66
66
|
|
|
67
67
|
--form-group-gap: var(--hg-spacing-16);
|
|
68
68
|
|
|
69
|
-
/* Tipografía
|
|
69
|
+
/* Tipografía del tema Dutti — Suisse Intl (sans) por peso.
|
|
70
|
+
Cada peso es una font-family propia (suisse-light/regular/
|
|
71
|
+
medium/semibold) declaradas en guide-styles.css. */
|
|
72
|
+
--hg-typo-font-family-primary-light: "suisse-light", Arial, Helvetica, sans-serif;
|
|
73
|
+
--hg-typo-font-family-primary-regular: "suisse-regular", Arial, Helvetica, sans-serif;
|
|
74
|
+
--hg-typo-font-family-primary-bold: "suisse-semibold", Arial, Helvetica, sans-serif;
|
|
75
|
+
--hg-typo-font-family-secondary: "suisse-medium", Arial, Helvetica, sans-serif;
|
|
70
76
|
|
|
71
77
|
/* Bordes y radios */
|
|
72
78
|
--border-radius: 0;
|
package/themes/dutti/demo.html
CHANGED
|
@@ -16,26 +16,30 @@
|
|
|
16
16
|
<h2 class="demo-title">Dutti Theme</h2>
|
|
17
17
|
|
|
18
18
|
|
|
19
|
-
<div class="demo-section-2"
|
|
20
|
-
<h3
|
|
21
|
-
<
|
|
22
|
-
|
|
23
|
-
El tema Dutti se customiza en <strong>dos niveles</strong>:
|
|
19
|
+
<div class="demo-section-2">
|
|
20
|
+
<h3>¿Dónde se customiza el tema?</h3>
|
|
21
|
+
<p class="mb-16">
|
|
22
|
+
Dutti se construye en <strong>dos capas</strong> sobre HolyGrail5:
|
|
24
23
|
</p>
|
|
25
|
-
<div> </div>
|
|
26
24
|
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
25
|
+
<div class="mb-16">
|
|
26
|
+
<strong>1. Tokens base</strong> — <code>config.json</code> define la paleta, espaciados y tipografía compartidos. <code>npm run build</code> regenera <code>dist/output.css</code>.
|
|
27
|
+
</div>
|
|
28
|
+
<div class="mb-16">
|
|
29
|
+
<strong>2. Overrides del tema</strong> — <code>themes/dutti/theme.json</code> declara los metadatos y overrides del tema. <code>themes/dutti/_variables.css</code> los materializa como CSS custom properties y mapea las variables de componente (ej. <code>--btn-primary-bg: var(--hg-color-primary)</code>).
|
|
30
|
+
</div>
|
|
31
|
+
|
|
34
32
|
<p class="mb-24">
|
|
35
|
-
<
|
|
33
|
+
<code>themes/dutti/theme.css</code> es el punto de entrada: importa todos los módulos (<code>_buttons.css</code>, <code>_inputs.css</code>, etc.) que consumen esas variables.
|
|
36
34
|
</p>
|
|
37
35
|
</div>
|
|
38
36
|
|
|
37
|
+
<!-- BLOQUE DEL TEMA (meta + variables) generado en build a partir de themes/<tema>/theme.json -->
|
|
38
|
+
<!-- HG_THEME_BLOCK -->
|
|
39
|
+
|
|
40
|
+
<!-- TIPOGRAFÍA (tabla generada en build a partir de config.json → typo) -->
|
|
41
|
+
<!-- HG_TYPO_TABLE -->
|
|
42
|
+
|
|
39
43
|
<!-- BOTONES -->
|
|
40
44
|
<section class="demo-section" id="buttons">
|
|
41
45
|
<h2 class="demo-title">Botones</h2>
|
package/themes/dutti/theme.css
CHANGED
|
@@ -1,51 +1,29 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Sistema de Theming Dutti
|
|
3
3
|
* Basado en HolyGrail5 CSS Variables
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
* - Checkboxes
|
|
11
|
-
* - Radios
|
|
12
|
-
* - Switches/Toggles
|
|
13
|
-
* - Labels
|
|
14
|
-
* - Form Groups
|
|
15
|
-
* - Estados (error, success, warning, disabled)
|
|
4
|
+
*
|
|
5
|
+
* Los componentes (botones, inputs, checkboxes, radios, switches, labels,
|
|
6
|
+
* forms, containers, grid, icons) son compartidos desde `themes/_base/`.
|
|
7
|
+
* Para personalizar un componente SOLO en este tema, crea una copia
|
|
8
|
+
* local del fichero en `themes/dutti/` y cambia su @import aquí para
|
|
9
|
+
* que apunte a esa versión en vez de a `../_base/`.
|
|
16
10
|
*/
|
|
17
11
|
|
|
18
|
-
/* Variables del tema */
|
|
12
|
+
/* Variables del tema (colores, tipografía y mapeo de componentVars) */
|
|
19
13
|
@import url('_variables.css');
|
|
20
14
|
|
|
21
|
-
/* Componentes */
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
/* Settings - Variables y configuración */
|
|
37
|
-
|
|
38
|
-
/* Tools - Mixins y funciones */
|
|
39
|
-
|
|
40
|
-
/* Generic - Resets, normalize */
|
|
41
|
-
|
|
42
|
-
/* Elements - Estilos de elementos HTML (h1, p, a) */
|
|
43
|
-
|
|
44
|
-
/* Objects - Patrones de layout */
|
|
45
|
-
@import url('./_containers.css');
|
|
46
|
-
/* @import url('./objects/_grid.css');
|
|
47
|
-
|
|
48
|
-
/* Components - Componentes de UI específicos */
|
|
49
|
-
/* @import url('./components/_icons.css');
|
|
50
|
-
|
|
51
|
-
/* Utilities - Helpers y utilidades */
|
|
15
|
+
/* Componentes compartidos ─ themes/_base/ */
|
|
16
|
+
@import url('../_base/_buttons.css');
|
|
17
|
+
@import url('../_base/_inputs.css');
|
|
18
|
+
@import url('../_base/_labels.css');
|
|
19
|
+
@import url('../_base/_checkboxes.css');
|
|
20
|
+
@import url('../_base/_radios.css');
|
|
21
|
+
@import url('../_base/_switches.css');
|
|
22
|
+
@import url('../_base/_forms.css');
|
|
23
|
+
|
|
24
|
+
/* Objects (layout) compartidos ─ themes/_base/ */
|
|
25
|
+
@import url('../_base/_containers.css');
|
|
26
|
+
@import url('../_base/objects/_grid.css');
|
|
27
|
+
|
|
28
|
+
/* Components (icons) compartidos ─ themes/_base/ */
|
|
29
|
+
@import url('../_base/components/_icons.css');
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
{
|
|
2
|
+
"meta": {
|
|
3
|
+
"name": "dutti",
|
|
4
|
+
"displayName": "Dutti",
|
|
5
|
+
"description": "Tema base que extiende HolyGrail5 con variables específicas para botones, inputs, formularios, switches y radios. Las variables del tema referencian los tokens de --hg-color-* y --hg-spacing-* para mantener coherencia con el design system global.",
|
|
6
|
+
"version": "1.0.0",
|
|
7
|
+
"author": "HolyGrail CSS"
|
|
8
|
+
},
|
|
9
|
+
"tokenOverrides": {
|
|
10
|
+
"color": {},
|
|
11
|
+
"spacing": {}
|
|
12
|
+
},
|
|
13
|
+
"componentVars": {
|
|
14
|
+
"btn": {
|
|
15
|
+
"primary-bg": "var(--hg-color-primary)",
|
|
16
|
+
"primary-color": "var(--hg-color-white)",
|
|
17
|
+
"primary-hover-bg": "var(--hg-color-dark-grey)",
|
|
18
|
+
|
|
19
|
+
"secondary-bg": "var(--hg-color-dark-grey)",
|
|
20
|
+
"secondary-color": "var(--hg-color-white)",
|
|
21
|
+
"secondary-hover-bg": "var(--hg-color-middle-grey)",
|
|
22
|
+
|
|
23
|
+
"outline-border": "var(--hg-color-primary)",
|
|
24
|
+
"outline-color": "var(--hg-color-primary)",
|
|
25
|
+
"outline-hover-bg": "var(--hg-color-primary)",
|
|
26
|
+
"outline-hover-color": "var(--hg-color-white)",
|
|
27
|
+
|
|
28
|
+
"ghost-color": "var(--hg-color-primary)",
|
|
29
|
+
"ghost-hover-bg": "var(--hg-color-light-grey)",
|
|
30
|
+
|
|
31
|
+
"feel-bg": "var(--hg-color-feel)",
|
|
32
|
+
"feel-color": "var(--hg-color-white)",
|
|
33
|
+
"feel-hover-bg": "var(--hg-color-feel-dark)",
|
|
34
|
+
|
|
35
|
+
"padding-x-sm": "var(--hg-spacing-12)",
|
|
36
|
+
"padding-y-sm": "var(--hg-spacing-8)",
|
|
37
|
+
"padding-x-md": "var(--hg-spacing-16)",
|
|
38
|
+
"padding-y-md": "var(--hg-spacing-12)",
|
|
39
|
+
"padding-x-lg": "var(--hg-spacing-24)",
|
|
40
|
+
"padding-y-lg": "var(--hg-spacing-16)"
|
|
41
|
+
},
|
|
42
|
+
"input": {
|
|
43
|
+
"border": "var(--hg-color-middle-grey)",
|
|
44
|
+
"border-focus": "var(--hg-color-primary)",
|
|
45
|
+
"bg": "var(--hg-color-white)",
|
|
46
|
+
"color": "var(--hg-color-primary)",
|
|
47
|
+
"placeholder": "var(--hg-color-middle-grey)",
|
|
48
|
+
"error-border": "var(--hg-color-error)",
|
|
49
|
+
"success-border": "var(--hg-color-success)",
|
|
50
|
+
"warning-border": "var(--hg-color-warning)",
|
|
51
|
+
"padding-x": "var(--hg-spacing-16)",
|
|
52
|
+
"padding-y": "var(--hg-spacing-12)",
|
|
53
|
+
"gap": "var(--hg-spacing-8)"
|
|
54
|
+
},
|
|
55
|
+
"label": {
|
|
56
|
+
"color": "var(--hg-color-primary)",
|
|
57
|
+
"required": "var(--hg-color-error)"
|
|
58
|
+
},
|
|
59
|
+
"checkbox": {
|
|
60
|
+
"bg": "var(--hg-color-white)",
|
|
61
|
+
"border": "var(--hg-color-middle-grey)",
|
|
62
|
+
"checked-bg": "var(--hg-color-primary)",
|
|
63
|
+
"checked-border": "var(--hg-color-primary)"
|
|
64
|
+
},
|
|
65
|
+
"radio": {
|
|
66
|
+
"bg": "var(--hg-color-white)",
|
|
67
|
+
"border": "var(--hg-color-middle-grey)",
|
|
68
|
+
"checked-bg": "var(--hg-color-primary)",
|
|
69
|
+
"checked-border": "var(--hg-color-primary)"
|
|
70
|
+
},
|
|
71
|
+
"switch": {
|
|
72
|
+
"bg": "var(--hg-color-middle-grey)",
|
|
73
|
+
"active-bg": "var(--hg-color-primary)",
|
|
74
|
+
"thumb": "var(--hg-color-white)"
|
|
75
|
+
},
|
|
76
|
+
"form-group": {
|
|
77
|
+
"gap": "var(--hg-spacing-16)"
|
|
78
|
+
}
|
|
79
|
+
},
|
|
80
|
+
"design": {
|
|
81
|
+
"border-radius": "0",
|
|
82
|
+
"border-width": "1px",
|
|
83
|
+
"border-style": "solid",
|
|
84
|
+
"transition": "all 0.2s ease"
|
|
85
|
+
}
|
|
86
|
+
}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Variables del Tema Limited
|
|
3
|
+
* Paleta: lujo cálido (dorados, bronces y crema)
|
|
4
|
+
* Tipografía 100% serif: Suisse Works (titulares + texto corrido).
|
|
5
|
+
*
|
|
6
|
+
* Las @font-face de Suisse Works se declaran en guide-styles.css
|
|
7
|
+
* y se sirven desde dist/assets/fonts/ como woff2.
|
|
8
|
+
*
|
|
9
|
+
* Sobrescribe los tokens de color base de HolyGrail5 (--hg-color-*)
|
|
10
|
+
* y los tokens de tipografía (--hg-typo-font-family-*) para aplicar
|
|
11
|
+
* el look & feel del tema sin tocar config.json.
|
|
12
|
+
*/
|
|
13
|
+
|
|
14
|
+
:root {
|
|
15
|
+
/* ─────────────────────────────────────────────
|
|
16
|
+
Overrides de tokens base HolyGrail5 (colores)
|
|
17
|
+
Estos valores prevalecen sobre config.json y
|
|
18
|
+
actualizan automáticamente los componentVars
|
|
19
|
+
que apuntan con var(--hg-color-*).
|
|
20
|
+
───────────────────────────────────────────── */
|
|
21
|
+
--hg-color-primary: #1D1D1D;
|
|
22
|
+
--hg-color-feel: #A38A6B;
|
|
23
|
+
--hg-color-feel-dark: #7A6346;
|
|
24
|
+
--hg-color-error: #9B2A1E;
|
|
25
|
+
--hg-color-success: #7A8D5F;
|
|
26
|
+
--hg-color-warning: #D4A84B;
|
|
27
|
+
--hg-color-info: #5B7FA1;
|
|
28
|
+
--hg-color-bg-light: #F4F2ED;
|
|
29
|
+
--hg-color-bg-cream: #F4F2ED;
|
|
30
|
+
|
|
31
|
+
/* ─────────────────────────────────────────────
|
|
32
|
+
Overrides de tipografía del tema (100% serif)
|
|
33
|
+
Suisse Works → titulares y texto corrido
|
|
34
|
+
───────────────────────────────────────────── */
|
|
35
|
+
--hg-typo-font-family-primary-light: "suisse-works-regular", Georgia, "Times New Roman", serif;
|
|
36
|
+
--hg-typo-font-family-primary-regular: "suisse-works-regular", Georgia, "Times New Roman", serif;
|
|
37
|
+
--hg-typo-font-family-primary-bold: "suisse-works-bold", Georgia, "Times New Roman", serif;
|
|
38
|
+
--hg-typo-font-family-secondary: "suisse-works-medium", Georgia, "Times New Roman", serif;
|
|
39
|
+
|
|
40
|
+
/* ─────────────────────────────────────────────
|
|
41
|
+
Variables del tema (mapeo a los tokens base)
|
|
42
|
+
───────────────────────────────────────────── */
|
|
43
|
+
--btn-primary-bg: var(--hg-color-primary);
|
|
44
|
+
--btn-primary-color: var(--hg-color-white);
|
|
45
|
+
--btn-primary-hover-bg: var(--hg-color-feel-dark);
|
|
46
|
+
|
|
47
|
+
--btn-secondary-bg: var(--hg-color-feel);
|
|
48
|
+
--btn-secondary-color: var(--hg-color-white);
|
|
49
|
+
--btn-secondary-hover-bg: var(--hg-color-feel-dark);
|
|
50
|
+
|
|
51
|
+
--btn-outline-border: var(--hg-color-feel-dark);
|
|
52
|
+
--btn-outline-color: var(--hg-color-feel-dark);
|
|
53
|
+
--btn-outline-hover-bg: var(--hg-color-feel-dark);
|
|
54
|
+
--btn-outline-hover-color: var(--hg-color-white);
|
|
55
|
+
|
|
56
|
+
--btn-ghost-color: var(--hg-color-primary);
|
|
57
|
+
--btn-ghost-hover-bg: var(--hg-color-bg-cream);
|
|
58
|
+
|
|
59
|
+
--btn-feel-bg: var(--hg-color-feel);
|
|
60
|
+
--btn-feel-color: var(--hg-color-white);
|
|
61
|
+
--btn-feel-hover-bg: var(--hg-color-feel-dark);
|
|
62
|
+
|
|
63
|
+
--input-border: var(--hg-color-middle-grey);
|
|
64
|
+
--input-border-focus: var(--hg-color-feel-dark);
|
|
65
|
+
--input-bg: var(--hg-color-white);
|
|
66
|
+
--input-color: var(--hg-color-primary);
|
|
67
|
+
--input-placeholder: var(--hg-color-middle-grey);
|
|
68
|
+
|
|
69
|
+
--input-error-border: var(--hg-color-error);
|
|
70
|
+
--input-success-border: var(--hg-color-success);
|
|
71
|
+
--input-warning-border: var(--hg-color-warning);
|
|
72
|
+
|
|
73
|
+
--label-color: var(--hg-color-primary);
|
|
74
|
+
--label-required: var(--hg-color-error);
|
|
75
|
+
|
|
76
|
+
--checkbox-bg: var(--hg-color-white);
|
|
77
|
+
--checkbox-border: var(--hg-color-middle-grey);
|
|
78
|
+
--checkbox-checked-bg: var(--hg-color-feel-dark);
|
|
79
|
+
--checkbox-checked-border: var(--hg-color-feel-dark);
|
|
80
|
+
|
|
81
|
+
--radio-bg: var(--hg-color-white);
|
|
82
|
+
--radio-border: var(--hg-color-middle-grey);
|
|
83
|
+
--radio-checked-bg: var(--hg-color-feel-dark);
|
|
84
|
+
--radio-checked-border: var(--hg-color-feel-dark);
|
|
85
|
+
|
|
86
|
+
--switch-bg: var(--hg-color-middle-grey);
|
|
87
|
+
--switch-active-bg: var(--hg-color-feel);
|
|
88
|
+
--switch-thumb: var(--hg-color-white);
|
|
89
|
+
|
|
90
|
+
/* Espaciados - usando variables de HolyGrail5 */
|
|
91
|
+
--btn-padding-x-sm: var(--hg-spacing-12);
|
|
92
|
+
--btn-padding-y-sm: var(--hg-spacing-8);
|
|
93
|
+
--btn-padding-x-md: var(--hg-spacing-16);
|
|
94
|
+
--btn-padding-y-md: var(--hg-spacing-12);
|
|
95
|
+
--btn-padding-x-lg: var(--hg-spacing-24);
|
|
96
|
+
--btn-padding-y-lg: var(--hg-spacing-16);
|
|
97
|
+
|
|
98
|
+
--input-padding-x: var(--hg-spacing-16);
|
|
99
|
+
--input-padding-y: var(--hg-spacing-12);
|
|
100
|
+
--input-gap: var(--hg-spacing-8);
|
|
101
|
+
|
|
102
|
+
--form-group-gap: var(--hg-spacing-16);
|
|
103
|
+
|
|
104
|
+
/* Bordes y radios */
|
|
105
|
+
--border-radius: 0;
|
|
106
|
+
--border-width: 1px;
|
|
107
|
+
--border-style: solid;
|
|
108
|
+
|
|
109
|
+
/* Transiciones */
|
|
110
|
+
--transition: all 0.3s ease;
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
/* ─────────────────────────────────────────────
|
|
114
|
+
Refuerzo tipográfico: titulares en Suisse Works
|
|
115
|
+
───────────────────────────────────────────── */
|
|
116
|
+
.demo-container h1,
|
|
117
|
+
.demo-container h2,
|
|
118
|
+
.demo-container .demo-title,
|
|
119
|
+
.demo-container .hg-vars-section__title {
|
|
120
|
+
font-family: var(--hg-typo-font-family-secondary);
|
|
121
|
+
font-weight: 600;
|
|
122
|
+
letter-spacing: 0.01em;
|
|
123
|
+
}
|