docs: shell theme (theme.toml) authoring guide #9

Closed
Breadway wants to merge 1 commit from docs/shell-themes-guide into main
Owner

No authoring documentation existed for the declarative shell-theme system shipped in v0.7.7 — only bread-theme describe (the JSON schema), the commented builtins, and scattered rustdoc.

Adds docs/shell-themes.md:

  • theme discovery + the shell.toml active selector
  • a quick-start with a tested minimal extends example (bread-theme diagnose exit 0)
  • extends deep-merge + the "+" slot-splice rule
  • the full [tokens] table (type / default / effect)
  • [bar.window], [bar.slots] (+ widget: aliases), [modules.*], [launcher], [surfaces.*], [compositor.*]
  • palette slots (never hex)
  • the live-switch vs restart matrix (needs_restart = modules or launcher.mode)
  • the extra.css escape hatch + the unknown-[tokens]-key {name} passthrough
  • testing / common failures

Also links it from the README Theming section and fills in the bread-theme subcommands table (layerrules, describe, diagnose were missing).

Docs-only, no code.

No authoring documentation existed for the declarative shell-theme system shipped in v0.7.7 — only `bread-theme describe` (the JSON schema), the commented builtins, and scattered rustdoc. Adds `docs/shell-themes.md`: - theme discovery + the `shell.toml` active selector - a quick-start with a **tested** minimal `extends` example (`bread-theme diagnose` exit 0) - `extends` deep-merge + the `"+"` slot-splice rule - the full `[tokens]` table (type / default / effect) - `[bar.window]`, `[bar.slots]` (+ `widget:` aliases), `[modules.*]`, `[launcher]`, `[surfaces.*]`, `[compositor.*]` - palette slots (never hex) - the **live-switch vs restart** matrix (`needs_restart` = modules or launcher.mode) - the `extra.css` escape hatch + the unknown-`[tokens]`-key `{name}` passthrough - testing / common failures Also links it from the README Theming section and fills in the `bread-theme` subcommands table (`layerrules`, `describe`, `diagnose` were missing). Docs-only, no code.
No authoring documentation existed for the declarative shell-theme
system shipped in v0.7.7 — only the machine-readable `bread-theme
describe` schema, the commented builtins, and scattered rustdoc.

Add docs/shell-themes.md: discovery + the active selector, a tested
minimal example, the `extends` / "+" splice rules, the full token
table, [bar.window]/[bar.slots]/[modules]/[launcher]/[surfaces]/
[compositor], palette slots, the live-switch vs restart matrix, the
extra.css escape hatch, and troubleshooting. Link it from the README
Theming section and fill in the missing bread-theme subcommands.
Breadway closed this pull request 2026-09-04 14:40:56 +08:00

Pull request closed

Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
Breadway/bread-ecosystem!9
No description provided.