Validaciones de tokens
La validación se ejecuta después de SET_CONFIG y antes de renderizar el tema configurable. Un
override canónico rechazado se elimina de forma independiente y se conserva su valor predeterminado
resuelto o su valor legacy. El renderizado continúa.
| Diagnóstico | Comportamiento |
|---|---|
INVALID_OVERRIDE | Se descarta el valor o la propiedad incompatible |
INSUFFICIENT_CONTRAST_AAA | El valor se aplica, pero se recomienda mejorar su contraste |
UNKNOWN_TOKEN | Se ignora el token, categoría o propiedad tipográfica desconocida |
LEGACY_OVERRIDE | Se aplica el valor legacy y se emite un aviso de migración |
LEGACY_NO_EFFECT | La clave legacy aceptada no afecta al renderizado |
Los diagnósticos se agrupan bajo el prefijo de consola [Consents Theme] y no se repiten mientras
la misma incidencia siga activa. Si se corrige y vuelve a producirse, se emite de nuevo.
Compatibilidad por tipo
Cada token de dominio escalar solo acepta rutas de la rama DS correspondiente.
| Tipo de dominio | Rutas aceptadas |
|---|---|
| Color | Tokens DS compatibles con el uso; también se aceptan colores CSS válidos |
| Espaciado | style.semantic.spacing.* y style.primitives.spacing.*, hasta 4xl o 80px |
| Radio | style.semantic.radius.* y style.primitives.size.*, excepto los valores full |
| Borde | style.semantic.border.* y style.primitives.stroke.* |
| Tamaño | style.primitives.size.{400,500,600,800} |
| Sombra | shadow.light.* y shadow.dark.* |
La API canónica no acepta rutas de otro tipo, valores numéricos directos ni strings arbitrarios. Los valores CSS directos solo están soportados para color.
La configuración puede usar las referencias abreviadas que muestra el editor, como primary,
sm, 400, thin o md. Las rutas DS completas compatibles siguen aceptándose.
Las rutas de color y sombra se normalizan al modo de tema activo. Una ruta semántica light en un tema dark se resuelve mediante su ruta dark equivalente cuando existe.
Compatibilidad tipográfica
Un override tipográfico canónico selecciona un estilo completo. La forma de objeto admite
únicamente style, family, desktop y mobile; los objetos de breakpoint aceptan style y
family. El tamaño, peso, interlineado y espaciado entre letras siempre proceden del estilo.
Los estilos disponibles dependen del token de dominio:
title-typography: estilosh1ah6.footer-button-typography: estilos de botónbase,mdyxs.- Resto de tokens públicos: estilos de cuerpo
base-*,md-*,sm-*yxs-*.
La familia solo admite los primitivos Inter y Menlo. Una propiedad o un estilo incompatible se
descarta de forma independiente y se conserva el valor resuelto anterior.
Contraste
El contraste se comprueba cuando se sobrescribe cualquiera de los lados de estos pares canónicos:
| Primer plano | Fondo | Regla |
|---|---|---|
title-color | header-background-color | Texto grande |
description-color | header-background-color | Texto normal |
language-selector-text-color | language-selector-menu-background-color | Texto normal |
parent-statement-text-color | parent-statement-background-color | Texto normal |
parent-statement-description-color | parent-statement-background-color | Texto normal |
footer-button-text-color | footer-button-background-color | Texto normal |
footer-button-text-color | footer-button-hover-background-color | Texto normal |
footer-button-text-color | footer-button-pressed-background-color | Texto normal |
validation-alert-text-color | validation-alert-background-color | Texto normal |
validation-alert-icon-color | validation-alert-background-color | UI/grande |
dialog-text-color | dialog-background-color | Texto normal |
El texto normal debe cumplir WCAG AA 4.5:1. El texto grande y los usos UI deben cumplir 3:1.
Si un par no alcanza AA, se descarta el override canónico de primer plano cuando existe; en caso
contrario, se descarta el de fondo. Si cumple AA pero no AAA, el valor sí se aplica y se emite
INSUFFICIENT_CONTRAST_AAA. La validación se repite hasta que no quede ningún par configurado
inválido.
Se admiten formatos CSS opacos habituales, como hexadecimal, rgb(), hsl() y colores con nombre.
Un primer plano con transparencia se compone sobre un fondo opaco antes de calcular el contraste.
No se bloquean los bordes decorativos por contraste.
Validación legacy
Las categorías legacy conservan sus valores directos aceptados y su saneado anterior para que los payloads existentes sigan funcionando. Se adaptan a tokens de dominio después de su resolución legacy.
Las reglas exclusivas de compatibilidad legacy son:
- Las cinco propiedades tipográficas antiguas siguen aceptándose. El tamaño debe estar entre
14pxy40px, y el interlineado no puede ser inferior al tamaño. spacing-dialog-padding,spacing-dialog-padding-xyspacing-dialog-padding-ydeben ser de al menos8px.spacing-statement-help-icon-sizeadmite de12pxa40pxy no puede superar el menor interlineado configurado parabody-mediumybase-medium.
En la API canónica, statement-help-icon-size solo admite 400, 500, 600 y 800 (de 16px
a 32px) y no depende del interlineado legacy.
No uses esas reglas legacy más amplias en configuración nueva. Se conservan únicamente por
retrocompatibilidad y no amplían los valores permitidos por design.tokens.