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/mark.md

4.2 KiB

mark — 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-24 · Alcance: 60% — 3 de 5 knobs por token público
  • Knobs de apariencia: 5 — público 3 · privado 2 · global 0 · literal 0 · sistema 0 · excepción 0 (los dos últimos, fuera del ratio)
  • Contrato hoy (lib/recipes/base.ts): 3 pública(s) — padding-inline, padding-block, radius · 2 privada(s) forward — _palette-element, _palette-text
  • Eje size: no · ficheros: mark.css

1. Knobs fuera de alcance

1.1 Directo a primitivo global (0)

Ninguno.

1.2 A través de un privado (2)

# fichero:línea selector propiedad valor
1 mark.css:13 [data-mark] background var(--_mark-palette-element)
2 mark.css:24 [data-mark][data-color], [data-mark][data-color-custom] color var(--_mark-palette-text)

1.3 Literales (0)

Ninguno.

1.4 Excepciones firmadas (0) — fuera del ratio

Literales que llevan su anotación /* literal: <razón> */ en la propia declaración: la válvula de recipe-contract §3, la misma que honra component-audit. Una desviación firmada no es deuda — se listan para que la razón se lea, no para acuñarlas.

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?

La receta no declara privados propios en su CSS.

Consumidos y no declarados en el CSS (vienen de base.ts o de un estilo inline del wrapper): --_mark-palette-element, --_mark-palette-text.

4. Propuesta de corrección

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

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 (--mark-…) scope TSC valor propuesto usos

4.2 Sin nombre mecánico (2)

  • ⚠ 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 — 2: background, color.

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

Medido 2026-08-22. Cinco knobs, y el reparto lo decide la propia doctrina del componente: hereda la tipografía ambiente (font: inherit, color: inherit) porque un resaltado vive dentro de un párrafo, así que no tiene ni un solo knob de tipo. Lo suyo es la decoración.

  1. Los dos forwards de paleta se quedan privados (THM-2): el fondo tiñe con el rol y la tinta sólo cuando hay data-color — el defecto es inherit. Son el 40 % que no alcanza.
  2. Los tres knobs propios son la decoración: el padding en sus dos ejes y el radio. El padding es em-relativo a propósito y muy pequeño (0.16em / 0.04em): el resaltado tiene que leerse sin romper el interlineado del párrafo que lo contiene, que es justo lo que esos dos números protegen.

Powered by TurnKey Linux.