12 claves en una entrada NUEVA de `recipes/base.ts`. Censo 0 % → 73 %, cero
globales y cero privados.
Es el **gemelo exacto de `virtual-list`**: mismo chasis, mismos valores, misma
escala. Se tokeniza igual, y en su propio commit — un componente, un commit.
**La talla mueve SÓLO el tipo del cromo**: las dimensiones de cada celda salen
de las props (`rowSize` / `columnSize`), no de esta escala, así que hay UNA
coordenada por talla y el `radius` está DESACOPLADO a propósito (modelo Radix,
constante en las cinco). La escala tipográfica va un paso por debajo desde lg
(xs→xs, sm→sm, md→sm, lg→md, xl→lg) y lee al bundle. El resuelto declara
`parts: ['root']` porque el `data-size` se estampa en
`[data-virtual-grid-root]`, un wrapper de eidos.
Surface y outline comparten anchura y color de borde → un par de knobs. El
`transparent` de ghost y los `100%` del viewport son identidad de variante y de
layout: el 27 % que no alcanza, y es correcto que no lo haga.
Artefactos y gates:
- Sonda antes/después = **0 diffs en 20.010 valores** × 7 estados (111 nodos:
la demo renderiza la ventana entera de celdas).
- R-5.4: **12/12**, sin una sola entrada en el ledger.
- censo --only 73 % · component:audit PASS · eidos-lint invalid 0, class-hooks
0 · suite eidos sin rojos nuevos · rtl:check 0 · docs:check 0 · check por
fichero limpio.
- README con «Talla y tema» y tab `Tokens`; como en su gemelo, la demo no ataba
referencia al stage y se ata una para que el panel lea los computados vivos.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>