diff --git a/src/uix/eidos/SHAPE_ENGINE_RFC.md b/src/uix/eidos/SHAPE_ENGINE_RFC.md
index e880e079c..962536878 100644
--- a/src/uix/eidos/SHAPE_ENGINE_RFC.md
+++ b/src/uix/eidos/SHAPE_ENGINE_RFC.md
@@ -103,17 +103,21 @@ nada → cero rotura):
## 6. Fases (la flexibilidad va horneada en cada una)
-1. **Continuidad + escala** — `--shape-smoothing` + emisión progresiva (`border-radius` +
- `corner-shape` donde se soporte) + validación + test + regen. Puertas: smoothing
- config-driven/override, `--radius-*` intactos, escape al `border-radius` crudo.
-2. **Armonía anidada** — convención/helper de radio anidado computado (`--shape-nest-gap`).
-3. **Forma _eventful_ (momento-evento)** — firma `shape-morph` (squeeze/round) **sobre el
- sistema de `signatures` existente**, coordinada con motion/depth desde un evento, degradando
- con reduced-motion. Anulable (sobreescribe keyframes/signatures). No un sistema paralelo.
-4. **Familias** — `rounded/continuous/cut/pill/sharp` como atributo + recipe + builder
- `applyShape(seed)`.
-5. **Showcase + docs** — `/temas/forma` (continuidad/anidado/familias/eventful en vivo) +
- THEMING §shape.
+1. ✅ **Continuidad + escala + familias** — `--shape-smoothing` + `data-shape` →
+ `corner-shape` con las 4 familias (`rounded`/`continuous`/`cut`/`scoop`). Emisión
+ progresiva: `border-radius` universal (la magnitud, `--radius-*` intactos) + `corner-shape`
+ donde se soporte (degrada al arco). Config-driven + validación + test + regen. (Las familias
+ se adelantaron aquí — son la misma mecánica `corner-shape`.)
+2. ✅ **Armonía anidada** — `--shape-nest-gap` + regla `[data-shape-nest]`:
+ `border-radius: max(0, var(--shape-outer-radius) − gap)` (concéntrico).
+3. ✅ **Forma _eventful_ (momento-evento)** — el morph de esquina **plegado en la firma
+ `press-squeeze`** (cross-modal: un press = escala + sombra + esquina) + `@property
+ --shape-smoothing` para que interpole. Sobre el sistema de `signatures` existente; degrada con
+ reduced-motion. No un sistema paralelo.
+4. ✅ **Builder runtime `applyShape(seed)`** — dial de `smoothing`/`nestGap` + override de
+ familias, bloque gestionado (hermano de `applyColorScheme`/`applyTypeScale`/`applyDepth`).
+5. ✅ **Showcase + docs** — `/temas/forma` (continuidad con dial + familias + anidado +
+ eventful en vivo) + THEMING §30.
## 7. Composición con lo existente
diff --git a/src/uix/eidos/THEMING.md b/src/uix/eidos/THEMING.md
index 7fefc2230..d515c9fda 100644
--- a/src/uix/eidos/THEMING.md
+++ b/src/uix/eidos/THEMING.md
@@ -2308,6 +2308,34 @@ en vivo — hermano de `applyColorScheme` / `applyTypeScale`. Demo: `/temas/prof
**Pendiente** (menor): el cue `scrim` está disponible como token (`--depth-{plane}-scrim`) pero
sin regla cableada — el backdrop dim de los modales lo gestiona hoy cada componente.
+## 30. Forma (shape) — continuidad + familias + anidado + eventful (2026-06-05)
+
+La forma es un **canal**, no un número de `border-radius`. Guía canónica:
+`SHAPE_ENGINE_RFC.md`. La **magnitud** sigue en `--radius-*` (intacta); shape añade los ejes
+que todos dejan planos. **El primer squircle-como-token de la web** (el campo entero es
+arco + estático; la continuidad solo existía en Apple, atada a plataforma).
+
+- **Continuidad** — `--shape-smoothing` (exponente superelipse: 1 = arco, 2 = squircle) +
+ familias vía `data-shape='{family}'` → `corner-shape`: `rounded` (round) · `continuous`
+ (`superellipse(var(--shape-smoothing))`) · `cut` (bevel) · `scoop`. **Opt-in** (no pisa
+ círculos/píldoras) y **progresivo**: degrada al arco de `border-radius` donde no hay
+ `corner-shape` (Chromium 2025+).
+- **Armonía anidada** — `[data-shape-nest]` deriva `border-radius: max(0px,
+ var(--shape-outer-radius) − var(--shape-nest-gap))`: el hijo queda concéntrico al padre (que
+ expone su radio en `--shape-outer-radius`).
+- **Eventful (dos momentos)** — la forma en reposo (`data-shape`) + el **morph** al pulsar: la
+ firma `press-squeeze` cuadra la esquina un instante (`--shape-smoothing` 2→3→2, registrado con
+ `@property` para que interpole). Cross-modal: un evento mueve escala + sombra + esquina.
+ Degrada con `prefers-reduced-motion`. No-op en familias no-`continuous`.
+- **Jaula abierta** — escala + familias config-driven (`EidosConfig.primitives.shape`); el
+ `border-radius` crudo siempre a un paso; builder runtime `ActiveEidos.applyShape(seed)` /
+ `clearShape()` (+ `buildShape` puro, exportado de `$uix/eidos`) para dialar continuidad /
+ nestGap / familias en vivo. Demo: `/temas/forma`.
+
+**Pendiente** (futuro): adopción por componentes (hoy las recipes usan `--radius-*` con arco;
+optar a `data-shape='continuous'` en las superficies rectangulares es una pasada separada, con
+cuidado de no squircle-izar avatares/píldoras).
+
---
**Última revisión**: 2026-06-05. Si algo en este doc no coincide con
diff --git a/web/routes/temas/forma/+page.svelte b/web/routes/temas/forma/+page.svelte
new file mode 100644
index 000000000..f0a65e479
--- /dev/null
+++ b/web/routes/temas/forma/+page.svelte
@@ -0,0 +1,271 @@
+
+
+
Eidos · canal de forma
+ +
+ Toda la web reduce la forma a un número: border-radius, un arco circular. La
+ esquina tiene más ejes — continuidad, familia,
+ armonía y tensión. Aquí la forma es un canal, y también
+ ocurre.
+
+ El arco circular tiene un quiebre donde el lado encuentra la curva. El squircle
+ (superelipse) fluye sin costura — lo que hace premium a iOS. En Eidos es un token:
+ --shape-smoothing. Muévelo.
+
corner-shape: superellipse(var(--shape-smoothing));
+
+ Una sola mecánica (corner-shape vía data-shape) cubre cuatro
+ familias perceptuales. Material solo tiene cut; Apple solo
+ continuous. Aquí, las cuatro.
+
+ Radios concéntricos: el interior = exterior − gap, así las esquinas quedan
+ paralelas. Sin esto, una tarjeta dentro de otra desencaja. Solo SwiftUI lo tiene;
+ aquí es data-shape-nest. Apágalo y míralo romperse.
+
+ Púlsalo: la esquina se afirma bajo el dedo (la continuidad se cuadra un instante)
+ — a la vez que baja de escala y se aplana la sombra. Un solo evento, tres canales: la
+ firma cross-modal. (Solo el botón continuous morfea; el otro es el
+ control.)
+