feat(theme): expand Theme palette with named slots for richer UI states#275
Merged
Conversation
…slots Adds 35 new named slots to the Theme struct so upcoming UI features can bind to semantic colours rather than hard-coded hex codes: - shimmer variants (success/error/warning/accent/muted) for animated states - dimmed and word-level diff intensities (added/removed) - 8 stable subagent identification colours - rate-limit fill/empty for the budget bar - selection / message-action / per-message-kind backgrounds - 7-band rainbow keyword highlighting - plan / brief / fast mode tag colours plus a fast-mode shimmer Every theme (midnight, daybreak, midnight_muted, daybreak_muted, terminal, dark_colorblind, light_colorblind, dark_ansi, light_ansi) gains palette-consistent values. Colourblind themes restrict new slots to Okabe-Ito plus black/white; ANSI themes stay within the 16 standard codes. The theme runtime facade adapts the new slots through color_emit alongside the existing ones. Render-code consumers will bind to these slots in follow-up PRs; this change only adds the slots, populates them, and tests that each theme defines every one.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Themestruct so upcoming UI features can bind to semantic colours rather than hard-coded hex codes.midnight,daybreak,midnight_muted,daybreak_muted,terminal,dark_colorblind,light_colorblind,dark_ansi,light_ansi) and threads the new slots through thetheme_runtimefacade so they get adapted bycolor_emitalongside the existing ones.docs/configuration/themes.mdxand registers the page in the docs nav.Slot list
success_shimmer,error_shimmer,warning_shimmer,accent_shimmer,muted_shimmerdiff_added_dimmed,diff_removed_dimmed,diff_added_word,diff_removed_wordsubagent_red/blue/green/yellow/purple/orange/pink/cyanrate_limit_fill,rate_limit_emptyselection_bg,message_action_bg,user_message_bg,bash_message_bg,memory_message_bgrainbow_red/orange/yellow/green/blue/indigo/violetplan_mode,brief_mode,fast_mode,fast_mode_shimmerConstraints honoured
subagent_pink/subagent_orangeoverlap with their nearest neighbours inlight_ansifor the same reason.Test Plan
cargo check --all-targetscargo test --all-targets(the only failures are pre-existing bwrap sandbox tests that need uid-mapping permissions on this machine; unrelated)cargo clippy --all-targets -- -D warningscargo fmt --all -- --checkColor::Reset) for every theme