|
|
---
|
|
|
title: UIX Decision & RFC Index
|
|
|
type: index
|
|
|
audience: human + agent
|
|
|
authority: navigational — the single entry point to the design/RFC corpus
|
|
|
status: current
|
|
|
related:
|
|
|
canon: docs/CANON.md (semantic vocabulary)
|
|
|
theming: docs/theming/reference.md (eidos visual system, canonical reference)
|
|
|
---
|
|
|
|
|
|
# UIX Decision & RFC Index
|
|
|
|
|
|
This is the **entry point to the framework's design rationale** — the RFCs, the
|
|
|
per-subsystem design documents, and the decision logs. It is the E3 stratum of
|
|
|
the corpus: *why it is built the way it is*. Architecture (how the layers fit)
|
|
|
lives in [`architecture/active-architecture.md`](./architecture/active-architecture.md);
|
|
|
the semantic vocabulary lives in [`CANON.md`](./CANON.md); this file collects the
|
|
|
*decisions*.
|
|
|
|
|
|
Each entry gives the document, its status, and the one decision it records. Open
|
|
|
the document for the full argument — this index never copies it.
|
|
|
|
|
|
> **Naming note.** The eidos RFCs were renamed to `rfc-*` when they moved into
|
|
|
> `docs/rfcs/` (docs-book F7.4, 2026-07-02). The provenance anchors cited from
|
|
|
> source (e.g. `// (DEPTH_ENGINE_RFC §5)` across `src/uix/eidos/lib/*.ts`)
|
|
|
> keep resolving: every old path holds a stub pointing at the new chapter with
|
|
|
> the same section numbering. The arts design documents got the same treatment
|
|
|
> (arts-docs-reconciliation B2, 2026-07-03): they moved to
|
|
|
> `docs/decisions/design-*.md`, and every old path holds a stub so their
|
|
|
> citations (e.g. `DESIGN_TIMR §12.8` across `src/arts/timer/*`) keep resolving.
|
|
|
|
|
|
---
|
|
|
|
|
|
## Eidos — expression channels (the 8 of the book)
|
|
|
|
|
|
[`theming/channels.md`](./theming/channels.md) is the umbrella:
|
|
|
the conceptual synthesis of the book's eight expression channels (time · motion ·
|
|
|
presence · depth · shape · color · sound · haptic). The engine RFCs below take the
|
|
|
visual channels to reference-grade, one at a time, "breaking the model of the
|
|
|
references rather than copying it — with the cage open".
|
|
|
|
|
|
| RFC | Status | The decision it records |
|
|
|
| --- | --- | --- |
|
|
|
| [`rfc-color-model.md`](./rfcs/rfc-color-model.md) | RESUELTO (2026-06-02) — canon in [`theming/reference.md`](./theming/reference.md) §25 | The conceptual color model: rich palette (33 scales) + hierarchy roles by explicit alias + intents auto-derived from the palette (identity = step 9). Rejected the "intent = single-anchor" variant. |
|
|
|
| [`rfc-color-engine.md`](./rfcs/rfc-color-engine.md) | ✅ Implementado (hasta fase 4-bis) | The *physical* layer of color: OKLCH · P3 wide-gamut · APCA contrast · 1-seed generator. Changes how the color variables are produced, not which exist or what they mean. |
|
|
|
| [`rfc-typography.md`](./rfcs/rfc-typography.md) | ✅ Implementado (fases 1–5) | Typography to reference-grade, additively behind the frozen token contract (audit → compare → extend, mirroring color). |
|
|
|
| [`rfc-depth.md`](./rfcs/rfc-depth.md) | ✅ Implementado (fases 1–5) | The depth/presence channel: "depth is not something an element *has*, it is something that *happens*". Two-moment model (state + event). |
|
|
|
| [`rfc-shape.md`](./rfcs/rfc-shape.md) | ✅ Implementado (fases 1–5) | The shape channel (the book's 8th and last expression channel) as orthogonal axes on top of the untouched `--radius-*` magnitude. |
|
|
|
|
|
|
## Eidos — structural systems
|
|
|
|
|
|
| RFC | Status | The decision it records |
|
|
|
| --- | --- | --- |
|
|
|
| [`rfc-structure.md`](./rfcs/rfc-structure.md) | Propuesta | Space · density · scale as state-only structural systems (the stage, not the event): rhythm, fluidity, axis composition under the open cage. |
|
|
|
| [`rfc-scaling.md`](./rfcs/rfc-scaling.md) | ✅ IMPLEMENTADO (2026-06-02) | Splits global zoom (`scaling`: 90/95/100/105/110) from density. Scales space + control-height + font-size + icon-size; radius/border/shadow/line-height excluded on purpose. |
|
|
|
|
|
|
## Arts — subsystem design documents
|
|
|
|
|
|
Exhaustive design-and-implementation records for the harder runtime artifacts.
|
|
|
Each predates the 2026-05-14 directory-rename sweep and carries a historical-note
|
|
|
header about the old short names (`conn`/`timr`/`sess`). Moved into the corpus
|
|
|
(B2, 2026-07-03); a stub at each old `src/arts/*` path keeps the source
|
|
|
provenance citations resolving. `design-timer.md` is kept verbatim in Spanish.
|
|
|
|
|
|
| Document | Subsystem | The decision it records |
|
|
|
| --- | --- | --- |
|
|
|
| [`design-connection.md`](./decisions/design-connection.md) | `connection` | Realtime connection registry: transports, reconnect, heartbeat, request/reply, channels, session bridge. |
|
|
|
| [`design-timer.md`](./decisions/design-timer.md) | `timer` | Deterministic timer scheduler: clock injection, the race-safety contract (§12.8), one-shots, intervals, backoff. |
|
|
|
| [`design-session.md`](./decisions/design-session.md) | `session` | Session lifecycle consultation: adopt/revoke/refresh, profile loading, SSR via cookie reader. |
|
|
|
|
|
|
## Cross-cutting decision logs
|
|
|
|
|
|
| Document | The decision it records |
|
|
|
| --- | --- |
|
|
|
| [`LIBRO_VARIACIONES_Y_EXTENSIONES.md`](../src/docs/LIBRO_VARIACIONES_Y_EXTENSIONES.md) | The running log of where the implementation deviates from (or extends) the book's editorial canon — verbs, adoptions, clusters, and the D.x architectural decisions. The seed for a consolidated decision-log. |
|
|
|
| [`GESTURES.md`](../src/uix/soma/layers/gesture/GESTURES.md) | The soma gesture layer design: `Gesture.base`/`drag`/`resize`, velocity ring-buffer, axis lock, deferred pointer capture. |
|
|
|
| [`architecture/active-architecture.md` §7 + `arts/adom`/`arts/perf` READMEs](./architecture/active-architecture.md) | **Sec-dom — read-timing & token-resolution (2026-06-29).** The framework governs layout READS like it governs writes: `dom.measure` (coalesced post-layout reads), `eidos.resolveToken` (token→colour in JS, no `getComputedStyle` probe), the discoverable `uix.color`/`uix.perf` surfaces. Decided: **reject** a static grep-guard (too noisy across ~120 legit reads, and it can't catch the sync-read-after-write *ordering* nor cover routes) — the dev `uix.perf` detector (Long Animation Frames) is the runtime safety net instead. |
|