49 lines
2.0 KiB
Markdown
49 lines
2.0 KiB
Markdown
# Textual design guide — live theming and command palette
|
|
|
|
## Metadata
|
|
|
|
| Field | Value |
|
|
|---|---|
|
|
| Institute | Molodetz Institute — Research & Retrieval Division |
|
|
| Subject | tui-framework-design |
|
|
| Document type | Source Dossier |
|
|
| Tier | 1 |
|
|
| Source title | Textual design guide — themes and variable system |
|
|
| Source URL | https://textual.textualize.io/guide/design/ |
|
|
| Source publisher / author | Textualize (Textual project) |
|
|
| Source type | vendor docs |
|
|
| Source date (published) | Unknown — not stated |
|
|
| Date researched | 2026-10-11 |
|
|
| Researched by | tai (agent), model: Muse Spark, on behalf of retoor |
|
|
| Research method | direct page fetch |
|
|
| Confidence | Medium |
|
|
| Status | Active |
|
|
|
|
## Summary
|
|
|
|
Textual's official design documentation: theme bases generate `$`-variables and shade ramps, assigning `self.theme` applies a theme live, and the Ctrl+P command palette offers theme switching. Documents the runtime-switch behavior tai wants in miniature.
|
|
|
|
## Key findings
|
|
|
|
- Theme base colors generate `$`-variables plus shade ramps consumed throughout the widget system.
|
|
- Setting `self.theme` applies a theme live at runtime; the Ctrl+P command palette exposes theme switching to the user.
|
|
|
|
## Pros / strengths
|
|
|
|
- Official docs confirming the live-switch contract: swapping the theme pointer plus a redraw is the whole mechanism.
|
|
- Shows user-facing switching (palette UI) as a first-class feature, not an afterthought.
|
|
|
|
## Cons / limitations / caveats
|
|
|
|
- The variable/shade generation pipeline is Textual-scale machinery; tai adopts the switch contract, not the generator.
|
|
|
|
## Relevance to tai
|
|
|
|
- Backs the palette-role conclusion's switch design (`set_theme` swaps the pointer and triggers a full redraw) and the single-cycle-key user switcher as tai's miniature of the command palette entry.
|
|
|
|
## Changelog
|
|
|
|
| Date | Change |
|
|
|---|---|
|
|
| 2026-10-11 | Initial dossier created from 2026-10-11 research-pass evidence (body opened via web_fetch by researching agent). |
|