Limited Theme
¿Dónde se customiza el tema?
Limited se construye en dos capas sobre holygrailcss:
config.json define la paleta, espaciados y tipografía compartidos. npm run build regenera dist/output.css.
themes/limited/theme.json declara los metadatos y overrides (paleta dorada, Neutrif serif). themes/limited/_variables.css los materializa como CSS custom properties y mapea las variables de componente (ej. --btn-primary-bg: var(--hg-color-primary)).
themes/limited/theme.css es el punto de entrada: importa todos los módulos del tema. Las variables tipográficas (--hg-typo-font-family-*) se redefinen para aplicar Neutrif a titulares y texto corrido.
Variables del tema
Definidas en themes/limited/theme.json. La fuente del CSS sigue siendo
themes/limited/_variables.css; este JSON sirve como manifiesto del tema y para que
la demo muestre tablas siempre coherentes con sus tokens.
Colores semánticos (19)
--hg-color-orange#e96516--hg-color-mustard#FFE693--hg-color-primarytema#1D1D1D--hg-color-errortema#9B2A1E--hg-color-infotema#5B7FA1--hg-color-successtema#7A8D5F--hg-color-warningtema#D4A84B--hg-color-feeltema#A38A6B--hg-color-feel-darktema#7A6346--hg-color-silver#87888D--hg-color-gold#A38A6B--hg-color-platinum#5B7FA1--hg-color-solar#e4f222--hg-color-solar-light#f5ff78--hg-color-smolder#17332d--hg-color-blaze#e96516--hg-color-spring#5683d2--hg-color-spring-light#e4ebf6--hg-color-specialtema#B99D6BComponente: radio (4)
--radio-bgvar(--hg-color-white)--radio-bordervar(--hg-color-middle-grey)--radio-checked-bgvar(--hg-color-feel-dark)--radio-checked-bordervar(--hg-color-feel-dark)Componente: btn (21)
--btn-primary-bgvar(--hg-color-primary)--btn-primary-colorvar(--hg-color-white)--btn-primary-hover-bgvar(--hg-color-feel-dark)--btn-secondary-bgvar(--hg-color-feel)--btn-secondary-colorvar(--hg-color-white)--btn-secondary-hover-bgvar(--hg-color-feel-dark)--btn-outline-bordervar(--hg-color-feel-dark)--btn-outline-colorvar(--hg-color-feel-dark)--btn-outline-hover-bgvar(--hg-color-feel-dark)--btn-outline-hover-colorvar(--hg-color-white)--btn-ghost-colorvar(--hg-color-primary)--btn-ghost-hover-bgvar(--hg-color-bg-cream)--btn-feel-bgvar(--hg-color-feel)--btn-feel-colorvar(--hg-color-white)--btn-feel-hover-bgvar(--hg-color-feel-dark)--btn-padding-x-smvar(--hg-spacing-12)--btn-padding-y-smvar(--hg-spacing-8)--btn-padding-x-mdvar(--hg-spacing-16)--btn-padding-y-mdvar(--hg-spacing-12)--btn-padding-x-lgvar(--hg-spacing-24)--btn-padding-y-lgvar(--hg-spacing-16)Componente: form-group (1)
--form-group-gapvar(--hg-spacing-16)Design tokens (4)
--border-radius0--border-width1px--border-stylesolid--transitionall 0.3s easeComponente: input (11)
--input-bordervar(--hg-color-middle-grey)--input-border-focusvar(--hg-color-feel-dark)--input-bgvar(--hg-color-white)--input-colorvar(--hg-color-primary)--input-placeholdervar(--hg-color-middle-grey)--input-error-bordervar(--hg-color-error)--input-success-bordervar(--hg-color-success)--input-warning-bordervar(--hg-color-warning)--input-padding-xvar(--hg-spacing-16)--input-padding-yvar(--hg-spacing-12)--input-gapvar(--hg-spacing-8)Componente: label (2)
--label-colorvar(--hg-color-primary)--label-requiredvar(--hg-color-error)Componente: checkbox (4)
--checkbox-bgvar(--hg-color-white)--checkbox-bordervar(--hg-color-middle-grey)--checkbox-checked-bgvar(--hg-color-feel-dark)--checkbox-checked-bordervar(--hg-color-feel-dark)Componente: switch (3)
--switch-bgvar(--hg-color-middle-grey)--switch-active-bgvar(--hg-color-feel)--switch-thumbvar(--hg-color-white)Tipografía
Cada fila usa la clase real generada en dist/output.css a partir de config.json → typo.
La columna Preview aplica la clase tal cual, así puedes comparar el valor numérico con el render en vivo.
| Preview | Clase | Font family | Weight | Mobile | Desktop | Line height | Letter spacing | Text transform |
|---|---|---|---|---|---|---|---|---|
| Aa Bb Cc 123 | .headline-xs |
primary-bold |
600 | 20px | 24px | 24px | 0 | — |
| Aa Bb Cc 123 | .headline-s |
primary-bold |
600 | 22px | 28px | 26px | 0 | — |
| Aa Bb Cc 123 | .headline-m |
primary-bold |
600 | 28px | 40px | 32px | -0.005em | — |
| Aa Bb Cc 123 | .headline-l |
primary-bold |
600 | 34px | 48px | 38px | -0.01em | — |
| Aa Bb Cc 123 | .headline-xl |
primary-bold |
700 | 40px | 64px | 42px | -0.01em | — |
| Aa Bb Cc 123 | .body-xs |
primary-light |
400 | 12px | 13px | 18px | 0 | — |
| Aa Bb Cc 123 | .body-s |
primary-light |
400 | 14px | 14px | 20px | 0 | — |
| Aa Bb Cc 123 | .body-m |
primary-light |
400 | 15px | 16px | 21px | 0 | — |
| Aa Bb Cc 123 | .body-l |
primary-light |
400 | 17px | 18px | 23px | 0 | — |
| Aa Bb Cc 123 | .body-xl |
primary-light |
400 | 18px | 20px | 22px | 0 | — |