v0.6.6

Migración de tokens legacy

LEGACY: usa este contrato con versiones desplegadas que todavía no admitan design.tokens. También puedes mantenerlo tras actualizar: el nuevo runtime conserva su compatibilidad indefinidamente.

El contrato de diseño anterior por categorías seguirá soportado indefinidamente hasta que se comunique a los consumidores una decisión explícita de retirada. La configuración nueva debe usar design.tokens; los grupos legacy son una entrada de compatibilidad, no opciones canónicas equivalentes.

Prioridad de resolución

Los valores se aplican en este orden:

  1. Valores predeterminados de los tokens de dominio de Consents.
  2. Overrides legacy resueltos por categoría.
  3. Overrides canónicos de design.tokens.

Un override canónico prevalece sobre cualquier alias legacy que apunte al mismo token de dominio. Si el valor canónico es inválido, se descarta y se mantiene el valor legacy ya resuelto.

Los avisos legacy se emiten siempre con el prefijo [Consents Theme]. Se agrupan en un único mensaje de consola y se deduplican por código de diagnóstico y ruta de configuración; no dependen de un flag de entorno de producción.

Aliases escalares

Una clave legacy puede alimentar varios tokens de dominio. Al migrar, configura cada destino por separado cuando esos usos necesiten divergir.

Ruta legacyDestino o destinos canónicos
design.color.background-neutral-primarycomponent-background-color
design.color.background-surface-defaultheader-background-color, footer-background-color, parent-statement-background-color, language-selector-menu-background-color, dialog-background-color
design.color.background-button-defaultfooter-button-background-color
design.color.background-button-hoverfooter-button-hover-background-color
design.color.background-button-pressedfooter-button-pressed-background-color
design.color.background-semantic-critical-primaryvalidation-alert-background-color
design.color.text-neutral-primarytitle-color, description-color, language-selector-text-color, parent-statement-text-color, parent-statement-description-color, child-statement-text-color, child-statement-description-color, dialog-text-color
design.color.text-button-inversefooter-button-text-color
design.color.text-semantic-critical-primaryvalidation-alert-text-color
design.color.icon-neutral-primarycollapse-button-icon-color, language-selector-icon-color
design.color.icon-neutral-secondarystatement-help-icon-color, checkbox-unchecked-icon-color
design.color.icon-button-primarycheckbox-checked-icon-color
design.color.icon-semantic-critical-primaryvalidation-alert-icon-color
design.color.border-neutral-primarystatement-card-border-color
design.color.border-neutral-secondarycontainer-border-color, statement-divider-color
design.spacing.spacing-global-padding-xglobal-padding-x
design.spacing.spacing-global-padding-yglobal-padding-y
design.spacing.spacing-section-gapsection-gap, info-message-padding-y
design.spacing.spacing-statement-vertical-gapstatement-description-gap
design.spacing.spacing-header-padding-xheader-padding-x
design.spacing.spacing-header-padding-topheader-padding-top
design.spacing.spacing-header-padding-bottomheader-padding-bottom
design.spacing.spacing-header-content-gapheader-content-gap
design.spacing.spacing-statement-parent-padding-xparent-statement-padding-x
design.spacing.spacing-statement-parent-padding-yparent-statement-padding-y
design.spacing.spacing-statement-parent-vertical-gapparent-statement-description-gap
design.spacing.spacing-statement-child-padding-xchild-statement-padding-x
design.spacing.spacing-statement-child-padding-ychild-statement-padding-y
design.spacing.spacing-statement-child-vertical-gapchild-statement-description-gap
design.spacing.spacing-statement-child-indentchild-statement-indent
design.spacing.spacing-statement-box-gapstatement-list-gap
design.spacing.spacing-statement-box-padding-xstatement-list-padding-x
design.spacing.spacing-statement-help-icon-sizestatement-help-icon-size
design.spacing.spacing-footer-padding-xfooter-padding-x
design.spacing.spacing-footer-padding-yfooter-padding-y
design.spacing.spacing-footer-section-gapfooter-section-gap
design.spacing.spacing-alert-padding-xvalidation-alert-padding-x
design.spacing.spacing-alert-padding-yvalidation-alert-padding-y
design.spacing.spacing-button-desktop-padding-xfooter-button-desktop-padding-x
design.spacing.spacing-button-padding-yfooter-button-padding-y
design.spacing.spacing-dialog-paddingdialog-padding
design.spacing.spacing-dialog-padding-xdialog-padding-x
design.spacing.spacing-dialog-padding-ydialog-padding-y
design.spacing.spacing-dialog-offsetdialog-popper-offset
design.spacing.spacing-language-selector-gaplanguage-selector-flag-label-gap
design.radius.radius-globalglobal-radius
design.radius.radius-buttonfooter-button-radius
design.radius.radius-statement-boxstatement-card-radius
design.radius.radius-menulanguage-selector-menu-radius
design.radius.radius-dialogdialog-popper-radius
design.radius.radius-alertvalidation-alert-radius
design.shadows.shadow-statement-boxstatement-card-shadow
design.shadows.shadow-language-selector-menulanguage-selector-menu-shadow
design.shadows.shadow-dialogdialog-popper-shadow
design.border.border-statement-boxstatement-card-border-width
design.border.border-containercontainer-border-width

design.color.text-neutral-secondary sigue alimentando su uso interno anterior de MUI. No tiene fan-out canónico porque actualmente ningún uso público de dominio representa ese contenido.

Los tokens canónicos container-background-color y statement-card-background-color siguen siendo transparentes salvo que se configuren directamente. Los aliases legacy amplios de fondo no convierten estas nuevas superficies en opacas.

Aliases tipográficos

En cada grupo de la tabla, sustituye {property} por family, size, weight, lineheight o letterspacing.

Patrón de token legacyDestino o destinos canónicos
headings-h4-{property}title-typography
headings-h6-{property}info-message-typography
base-regular-{property}language-selector-text-typography, parent-statement-description-typography, child-statement-description-typography, validation-alert-typography
base-medium-{property}child-statement-text-typography, footer-button-typography
body-medium-{property}parent-statement-text-typography
typography-base-familyTodos los tokens de dominio tipográficos públicos

Los valores tipográficos legacy de primer nivel se aplican globalmente. design.typography.xs se mapea a mobile y design.typography.xl a desktop. Los demás bloques de breakpoint legacy no tienen efecto.

Las cinco propiedades antiguas se mantienen exclusivamente para los payloads legacy. Al migrar, selecciona un estilo semántico completo; la API canónica solo permite sobrescribir su familia:

json

{
  "design": {
    "tokens": {
      "title-typography": {
        "style": "h4",
        "family": "Inter",
        "desktop": {
          "style": "h3"
        },
        "mobile": {
          "style": "h5",
          "family": "Menlo"
        }
      }
    }
  }
}

Consulta Validaciones de tokens para ver los límites que siguen aplicándose a las propiedades tipográficas antiguas.

Claves deprecadas sin efecto

Estas claves públicas conocidas se mantienen para que los payloads existentes sigan aceptándose, pero no afectan al componente renderizado:

  • design.spacing.spacing-dialog-section-gap
  • design.spacing.spacing-dialog-header-gap

design.components, las categorías desconocidas, los nombres de token legacy desconocidos y los breakpoints tipográficos legacy no soportados tampoco tienen efecto. Generan un aviso deduplicado.

Procedimiento de migración

  1. Carga el payload existente sin reescribirlo.
  2. Añade las entradas correspondientes bajo design.tokens.
  3. Compara el renderizado light/dark y desktop/mobile.
  4. Elimina una clave legacy solo cuando estén representados todos sus destinos canónicos.

El editor de Integration Testing de Admin conserva los grupos legacy cargados, pero solo edita tokens de dominio canónicos. Usa su editor JSON para eliminar las claves legacy después de validar la migración.