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

95 lines
4.4 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# 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](./README.md) · método y protocolo:
> [`PLAN-theming.md`](../../process/PLAN-theming.md) §1, §2, §7.
- **Medido**: 2026-08-25 · **Alcance**: **100%** — 3 de 3 knobs por token público
- **Knobs de apariencia**: 5 — público 3 · privado 0 · global 0 · literal 0 · sistema 0 · excepción 0 · estructural 0 · puente 2 · canal 0 _(los cinco ú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 (0)
Sólo el **residuo**: el puente de paleta (§2-ter) y el canal de valor
(§2-quater) salen aparte, porque no son deuda ni tienen nombre que acuñar.
_Ninguno._
### 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._
## 2-ter. Puente de paleta THM-2 (2) — fuera del ratio
La receta lee `var(--_mark-palette-{slot})`, que **lo escribe el forward** de la
cascada de paleta bajo `[data-mark]:where([data-color], [data-color-custom])`
(`renderRecipePaletteForward`, firma B′). Es el MECANISMO de la paleta por
instancia, y se alcanza **dos veces**: por la capa compartida `--palette-*` y
por los tonos públicos del propio componente. **No se acuña**: un público
encima dejaría que un tema lo fijara y matara en silencio el `color=` de cada
instancia (veredictos §5 de `card`, `tags-input`, `avatar`).
| # | 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)` |
## 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
_Nada que proponer: no hay knobs fuera de alcance._
### 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
<!-- veredicto:start -->
**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.
<!-- veredicto:end -->

Powered by TurnKey Linux.