v0.7.0

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ósticoComportamiento
INVALID_OVERRIDESe descarta el valor o la propiedad incompatible
INSUFFICIENT_CONTRAST_AAAEl valor se aplica, pero se recomienda mejorar su contraste
UNKNOWN_TOKENSe ignora el token, categoría o propiedad tipográfica desconocida
LEGACY_OVERRIDESe aplica el valor legacy y se emite un aviso de migración
LEGACY_NO_EFFECTLa 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 dominioRutas aceptadas
ColorTokens DS compatibles con el uso; también se aceptan colores CSS válidos
Espaciadostyle.semantic.spacing.* y style.primitives.spacing.*, hasta 4xl o 80px
Radiostyle.semantic.radius.* y style.primitives.size.*, excepto los valores full
Bordestyle.semantic.border.* y style.primitives.stroke.*
Tamañostyle.primitives.size.{400,500,600,800}
Sombrashadow.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: estilos h1 a h6.
  • footer-button-typography: estilos de botón base, md y xs.
  • Resto de tokens públicos: estilos de cuerpo base-*, md-*, sm-* y xs-*.

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 planoFondoRegla
title-colorheader-background-colorTexto grande
description-colorheader-background-colorTexto normal
language-selector-text-colorlanguage-selector-menu-background-colorTexto normal
parent-statement-text-colorparent-statement-background-colorTexto normal
parent-statement-description-colorparent-statement-background-colorTexto normal
footer-button-text-colorfooter-button-background-colorTexto normal
footer-button-text-colorfooter-button-hover-background-colorTexto normal
footer-button-text-colorfooter-button-pressed-background-colorTexto normal
validation-alert-text-colorvalidation-alert-background-colorTexto normal
validation-alert-icon-colorvalidation-alert-background-colorUI/grande
dialog-text-colordialog-background-colorTexto 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 14px y 40px, y el interlineado no puede ser inferior al tamaño.
  • spacing-dialog-padding, spacing-dialog-padding-x y spacing-dialog-padding-y deben ser de al menos 8px.
  • spacing-statement-help-icon-size admite de 12px a 40px y no puede superar el menor interlineado configurado para body-medium y base-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.