You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
svelte-kit-vice/docs/audit/theming/surface.md

4.5 KiB

surface — alcance de tema: análisis y propuesta

Generado por node --import tsx/esm scripts/theming-census.ts --report. Lo medido y la propuesta se regeneran; el Veredicto (§5) se conserva. Vista de conjunto: README · método y protocolo: PLAN-theming.md §1, §2, §7.

  • Medido: 2026-08-20 · Alcance: 25% — 1 de 4 knobs por token público
  • Knobs de apariencia: 4 — público 1 · privado 3 · global 0 · literal 0 · sistema 0 (fuera del ratio)
  • Contrato hoy (lib/recipes/base.ts): 25 pública(s) — radius, neutral-track, neutral-solid, neutral-contrast, primary-track, primary-solid, primary-contrast, secondary-track, secondary-solid, secondary-contrast, affirm-track, affirm-solid, affirm-contrast, fulfill-track, fulfill-solid, fulfill-contrast, risk-track, risk-solid, risk-contrast, threat-track, threat-solid, threat-contrast, loss-track, loss-solid, loss-contrast · 3 privada(s) forward — _palette-track, _palette-solid, _palette-contrast
  • Eje size: no · ficheros: surface.css

1. Knobs fuera de alcance

1.1 Directo a primitivo global (0)

Ninguno.

1.2 A través de un privado (3)

# fichero:línea selector propiedad valor
1 surface.css:21 [data-box][data-surface] background var(--_surface-bg)
2 surface.css:22 [data-box][data-surface] color var(--_surface-fg)
3 surface.css:38 [data-box][data-surface][data-gradient][data-variant='solid'] background-image var(--_surface-fill-finish)

1.3 Literales (0)

Ninguno.

2. Sistema transversal (0) — informativo, fuera del ratio

Un tema los alcanza a nivel de sistema, por diseño (recipe-contract §2).

Ninguno.

3. Privados de la receta — ¿de dónde sale su valor?

privado declaraciones valor(es) origen ¿deriva de un público?
--_surface-bg 2 var(--_surface-palette-track), var(--_surface-palette-solid) private no
--_surface-fg 2 inherit, var(--_surface-finish-ink, var(--_surface-palette-contrast)) literal, private no

Consumidos y no declarados en el CSS (vienen de base.ts o de un estilo inline del wrapper): --_surface-fill-finish, --_surface-finish-ink, --_surface-palette-contrast, --_surface-palette-solid, --_surface-palette-track.

4. Propuesta de corrección

4.1 Tokens a declarar en lib/recipes/base.ts (2)

Valor verbatim del CSS de hoy: el default no se mueve, sólo cambia quién puede moverlo. Nombres derivados de recipe-contract §1 (ejes lógicos, talla al final) y theming §6.7 (slots de color, modificador delante). Un token con DOS valores distintos es una colisión de nombre: son dos knobs, o el nombre no distingue lo que debería — se marca ⚠.

token (--surface-…) scope TSC valor propuesto usos
bg root ⚠ var(--_surface-palette-track) / var(--_surface-palette-solid) 2
fg root ⚠ inherit / var(--_surface-finish-ink, var(--_surface-palette-contrast)) 2

4.2 Sin nombre mecánico (1)

  • ⚠ decisión: el privado que alimenta este knob no se declara en el CSS (viene de base.ts o de un estilo inline) — hay que resolverlo antes de nombrarlo — 1: background-image.

4.3 Avisos sobre los tokens propuestos (2)

  • el privado --_surface-bg debe pasar a leer este público (o desaparecer) — --surface-bg
  • el privado --_surface-fg debe pasar a leer este público (o desaparecer) — --surface-fg

4.4 Lo que hay que comprobar a mano (PLAN-theming §1.3 · §7.4)

  • Privado que no deriva de un público — §3 lo marca; el privado debe leer el público o desaparecer.
  • Velo o acento en el nodo equivocado (archetype: 'item' en un envoltorio, un background en shorthand que mata la capa de estado) — se mide desde el píxel hacia arriba.
  • Doble animación al mover un sello a una superficie con animación propia — registro de animationstart/animationend.
  • Diff de computed = 0 en reposo · hover · abierto · disabled · foco, por talla, antes y después.
  • Centinela por token nuevo: valor imposible en el root → el nodo lo sigue. Si no, el token miente.

5. Veredicto

(pendiente — lo escribe el autor; se conserva al regenerar)

Powered by TurnKey Linux.