|
|
|
|
@ -0,0 +1,84 @@
|
|
|
|
|
---
|
|
|
|
|
title: UIX Glossary
|
|
|
|
|
type: reference
|
|
|
|
|
audience: human + agent
|
|
|
|
|
authority: navigational — concise definitions; the linked doc is authoritative
|
|
|
|
|
status: current
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
# UIX Glossary
|
|
|
|
|
|
|
|
|
|
The framework's invented vocabulary, defined in one line each, with a pointer to
|
|
|
|
|
the authoritative doc. The **semantic** vocabulary (families, intents, verbs,
|
|
|
|
|
channels) is owned by [`CANON.md`](./CANON.md) — this glossary points there
|
|
|
|
|
rather than re-stating the values, so they cannot drift.
|
|
|
|
|
|
|
|
|
|
New here? Start at [`docs/README.md`](./README.md).
|
|
|
|
|
|
|
|
|
|
## The layers
|
|
|
|
|
|
|
|
|
|
| Term | Meaning |
|
|
|
|
|
| --- | --- |
|
|
|
|
|
| **morfo** | The declarative contract (a component's "DNA"): its public DOM surface — parts, `data-*`/ARIA, keyboard, events — declared once in a typed object. Every other layer reads it. → [`morfo/README`](../src/uix/morfo/README.md) |
|
|
|
|
|
| **soma** | The headless behavior layer: keyboard, focus, ARIA wiring, state machines, composition. No visuals. → [`soma/README`](../src/uix/soma/README.md) |
|
|
|
|
|
| **sema** | The perceptual engine: turns a declared event into sound / haptic (runtime) and a `data-event-*` projection (for eidos), via a cascade. → [`sema/README`](../src/uix/sema/README.md) |
|
|
|
|
|
| **eidos** | The visual layer: CSS recipes, tokens, themes, sizes, variants — reacts to the DOM attrs morfo promises. → [`eidos/README`](../src/uix/eidos/README.md) |
|
|
|
|
|
| **arts** | Runtime artifacts: the `Engine*` / `Active*` services (auth, cache, http, format, langs, dom, motion, …). → [`arts/README`](../src/arts/README.md) |
|
|
|
|
|
| **libs** | Pure, zero-dependency helpers (`$libs/days`, `$libs/dom`, `$reactive`, …). |
|
|
|
|
|
| **svrs** | Server-authoritative engines (`$svrs/auth`, `$svrs/perm`, `$svrs/cache`). |
|
|
|
|
|
| **active-uix** | The composition root that wires the layers — `createActiveUix` (standalone) or `attachActiveUix` (attach to an app). → [`active-uix/README`](../src/uix/active-uix/README.md) |
|
|
|
|
|
| **ActiveDom / `$adom`** | The single reactive DOM service: the only sanctioned surface for managed DOM writes, listeners, queries, focus and scroll. |
|
|
|
|
|
|
|
|
|
|
## Morfo vocabulary
|
|
|
|
|
|
|
|
|
|
| Term | Meaning |
|
|
|
|
|
| --- | --- |
|
|
|
|
|
| **part** | A named sub-element of a component (`provider`, `trigger`, `content`, …). |
|
|
|
|
|
| **archetype** | Cross-component classification of a part (`trigger`, `item`, `option`, …) — used for transversal eidos selectors and sema verbs. |
|
|
|
|
|
| **kind** | A part's visibility: `public` \| `internal` \| `private`. |
|
|
|
|
|
| **data-attr contract** | The stable markers a part emits: `data-{component}` (provider) and `data-{component}-{part}`. Never `data-soma-*`. The eidos/sema frontier. |
|
|
|
|
|
| **value sources (`v.*`)** | Typed origins for an ARIA/data value in morfo: `v.literal`, `v.stateRef`, `v.partRef`, `v.propRef`, `v.translationRef`. |
|
|
|
|
|
| **scope** | Which layers implement the component: `['soma']`, `['soma', 'eidos']`, … |
|
|
|
|
|
| **2-of-3 rule** | A morfo field is justified only if at least 2 of soma / sema / eidos consume it. |
|
|
|
|
|
| **compileMorfo** | Turns a morfo into a `CompiledMorfo` (resolved attr/keyboard/action plans + the closed set of CSS selectors), cached by morfo identity. |
|
|
|
|
|
| **expression** | How a morfo materializes its perceptual signature: `'pack'` \| `'family-default'` \| `'delegated'` \| `'none'`. |
|
|
|
|
|
|
|
|
|
|
## Soma vocabulary
|
|
|
|
|
|
|
|
|
|
| Term | Meaning |
|
|
|
|
|
| --- | --- |
|
|
|
|
|
| **provider** | The concrete state class for a component or part. The root registers context; sub-parts read it. Exported as `Xxx.Provider`. |
|
|
|
|
|
| **SomaRuntime** | The morfo interpreter in soma. `runtime.part()` registers a part; `runtime.trigger(event)` sequences prewrite → emit → handler → effect-driven attrs. |
|
|
|
|
|
| **layer (soma)** | A shared behavior class consumed by providers: `Presence`, `FocusScope`, `Dismissal`, `ScrollLock`, `Gesture`, `SafePolygon`. → [`SOMA_ARCHITECTURE`](../src/uix/soma/SOMA_ARCHITECTURE.md) §6 |
|
|
|
|
|
| **Presence** | Animation-aware mount/unmount (waits for exit animations before removing). |
|
|
|
|
|
| **Active\<T\> / State\<T\>** | Reactive containers (readonly / mutable, exposing `.current`) that let runes be passed by reference between classes. |
|
|
|
|
|
| **context convention** | The `X.create()` / `X.get()` / `X.require()` static methods every context-using class follows. |
|
|
|
|
|
| **roving vs virtual focus** | Two keyboard strategies: real DOM focus with one `tabindex=0` (roving) vs focus stays on the input and items are `data-highlighted` via `aria-activedescendant` (virtual). |
|
|
|
|
|
| **polymorphic close** | One `close` event with `allowedFamilies`; the provider chooses the family at dismiss time (used by Dialog/Drawer/Popover). |
|
|
|
|
|
| **prewrite / commit** | DOM written imperatively *before* the semantic emit (`prewrite`, e.g. `data-last-action`) vs the structural state written *after* (`commit`). |
|
|
|
|
|
|
|
|
|
|
## Sema vocabulary
|
|
|
|
|
|
|
|
|
|
The values live in [`CANON.md`](./CANON.md); these are the term shapes.
|
|
|
|
|
|
|
|
|
|
| Term | Meaning |
|
|
|
|
|
| --- | --- |
|
|
|
|
|
| **family** | One of the **8** perceptual event families (contact · commit · signal · handle · emerge · shift · sustain · delegate). → CANON |
|
|
|
|
|
| **intent** | The evaluative load of an occurrence (neutral · affirm · fulfill · risk · threat · loss) — only on valenced families. → CANON |
|
|
|
|
|
| **verb** | The specific act within a family (`tap`, `select`, `close`, …). → CANON |
|
|
|
|
|
| **channel** | An expression modality. Sema runs two at runtime (sound, haptic) and projects `visual`; eidos owns the rest (motion/presence/depth/shape/color). → CANON |
|
|
|
|
|
| **hold** | The minimum perceptible duration a signal stays projected (`data-event-*` stamped during it). |
|
|
|
|
|
| **cascade** | The 5-layer resolution of a perceptual signature (family base → intent deltas → per-event → globals → per-component / app rules). → [`sema/README`](../src/uix/sema/README.md) |
|
|
|
|
|
| **persistence** | A signal's lifecycle, distinct from hold: `transient` \| `untilAction` \| `untilFix` \| `stateBound`. |
|
|
|
|
|
|
|
|
|
|
## Eidos vocabulary
|
|
|
|
|
|
|
|
|
|
| Term | Meaning |
|
|
|
|
|
| --- | --- |
|
|
|
|
|
| **recipe** | A component's token + CSS definition (in `EidosConfig.recipes` / `{name}.css`). |
|
|
|
|
|
| **token** | A CSS custom property. Public: `--{component}-*`; private recipe-internal: `--_{component}-*`. Never `--eidos-*` / `--soma-*`. |
|
|
|
|
|
| **TSC (Token Scope Contract)** | Where each token is allowed to be emitted (`:root` / `[data-{c}]` / by color / by event) + transitivity validation. → [`TSC.md`](../src/uix/eidos/TSC.md) |
|
|
|
|
|
| **variant** | A fixed visual archetype (`solid`, `outline`, `ghost`, …). Canon of eidos — a theme cannot invent or redefine one. |
|
|
|
|
|
| **role** | One of the **9** canonical color roles (`primary`, `secondary`, `tertiary`, `neutral`, `affirm`, `fulfill`, `risk`, `threat`, `loss`). |
|
|
|
|
|
| **scaling / density** | Orthogonal structural axes: global zoom (90–110) vs spacing (compact/comfortable/spacious). |
|
|
|
|
|
| **theme** | A retint of the perceptually-fixed: it changes *which hex* is `affirm`, never *what* `outline` means. → [`THEMING`](../src/uix/eidos/THEMING.md) |
|