From 97eda62a144cee73e42b4c6f324ec4dc16c5c191 Mon Sep 17 00:00:00 2001 From: dev Date: Sat, 6 Jun 2026 13:32:40 +0200 Subject: [PATCH] docs(pendiente): full theme anatomy beyond the visual channels (deferred) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit applyTheme(seed) covers only the 5 visual channels. Recorded the complete theme model by layer (visual=eidos, sema=sound/haptic separate+nullable, iconography=art, variants=canon/preview-only), the architectural note that a full cross-layer theme belongs at active-uix (uix.applyBrand) not eidos, and the framing debt: /temas/tema overclaims "un tema" — it's the visual channels. Three reopen options (reframe copy / richer page / applyBrand). Deferred. Co-Authored-By: Claude Opus 4.8 (1M context) --- pendiente.md | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/pendiente.md b/pendiente.md index 4ac0db31b..f708d9a41 100644 --- a/pendiente.md +++ b/pendiente.md @@ -46,3 +46,34 @@ soporte de Safari/Firefox periódicamente y subir el listón cuando lleguen. `--depth-{plane}-scrim` existe como token pero sin regla cableada; el backdrop dim de los modales lo gestiona hoy cada componente. Cablear una regla `[data-depth][data-scrim]` si emerge un consumidor que lo necesite fuera de dialog/drawer. + +## Tema completo — más allá de los canales visuales (diferido) + +`eidos.applyTheme(seed)` (capstone, hecho) compone **solo los 5 canales visuales** (color · +tipografía · profundidad · forma · espacio). Un **tema** en sentido pleno es más, y reparte por +capas — esto hay que tenerlo claro antes de construir una página de construcción de tema "de +verdad": + +| Dimensión | Define | Capa | ¿En applyTheme? | +|---|---|---|---| +| **Visual** | color · tipo · depth · shape · space | eidos (`applyTheme`) | ✅ | +| **Semántica** | firmas de sonido + háptica, packs por componente, intents | sema (`EngineSemantic`) | ❌ otra capa | +| **Iconografía** | set / estilo de iconos | art (icon) | ❌ | +| **Variantes** | control/selection/chip/marker/tabs | **canon** de eidos (`EIDOS_VARIANTS`) | ⚠️ no se definen — se retintan + previsualizan | + +Claves: +- **`applyTheme` está bien acotado a eidos (visual).** Un tema *completo* es **cross-layer**; su + sitio natural es `active-uix`, p. ej. `uix.applyBrand({ visual, sema, icons })` que compone + `eidos.applyTheme` + perfil sema + iconos. NO meter sema dentro de eidos (rompe eidos≠sema). +- **La capa sema es opcional / nullable.** Un tema puede traer perfil completo, afinado, o + **silencioso** (`events: { sound: false, haptic: false }` / sin packs). No es caso especial: es + ausencia de perfil (sema es ornamental, el runtime va sin ella). +- **Variantes = canon, no theme-extensible** (THEMING §19). Un tema las retinta, no las inventa. + Lo que faltó en el demo: **previsualizarlas** (matriz botones × 4 variantes × intents, selección, + chips…) para ver el tema sobre todo el vocabulario, no una sola mini-tarjeta. + +**Deuda de encuadre**: el demo `/temas/tema` ("Un tema, una semilla") **sobre-promete** — es, con +precisión, *los canales visuales* de un tema. Es válido para ese alcance (decisión consciente), +pero al retomar: o (A) reencuadrar el copy a "canales visuales del tema", o (B) ampliar la página +(control de perfil sema completo/afinado/silencioso + matriz de variantes + iconografía), o (C) +subir a `uix.applyBrand` cross-layer (lo arquitectónicamente completo). Decidir al reabrir.