pub struct ThemePalette {Show 13 fields
pub accent: PackedRgba,
pub accent_alt: PackedRgba,
pub bg: PackedRgba,
pub fg: PackedRgba,
pub surface: PackedRgba,
pub hint: PackedRgba,
pub border: PackedRgba,
pub user: PackedRgba,
pub agent: PackedRgba,
pub tool: PackedRgba,
pub system: PackedRgba,
pub stripe_even: PackedRgba,
pub stripe_odd: PackedRgba,
}Fields§
§accent: PackedRgba§accent_alt: PackedRgba§bg: PackedRgba§fg: PackedRgba§surface: PackedRgba§hint: PackedRgba§border: PackedRgba§user: PackedRgba§agent: PackedRgba§tool: PackedRgba§system: PackedRgba§stripe_even: PackedRgbaAlternating stripe colors for zebra-striping results (sux.6.3)
stripe_odd: PackedRgbaImplementations§
Source§impl ThemePalette
impl ThemePalette
Sourcepub fn title_subtle(self) -> Style
pub fn title_subtle(self) -> Style
Subtle title style - less prominent headers
Sourcepub fn hint_style(self) -> Style
pub fn hint_style(self) -> Style
Hint text style - for secondary/muted information
Sourcepub fn border_style(self) -> Style
pub fn border_style(self) -> Style
Border style - for unfocused elements
Sourcepub fn border_focus_style(self) -> Style
pub fn border_focus_style(self) -> Style
Focused border style - for active elements (theme-aware)
Sourcepub fn surface_style(self) -> Style
pub fn surface_style(self) -> Style
Surface style - for cards, modals, elevated content
Sourcepub fn agent_pane(agent: &str) -> PaneTheme
pub fn agent_pane(agent: &str) -> PaneTheme
Per-agent pane colors - distinct tinted backgrounds with consistent text colors.
Design philosophy: Each agent gets a visually distinct background color that makes it immediately clear which tool produced the result. Accent colors are chosen to complement the background while remaining cohesive.
Sourcepub fn agent_icon(agent: &str) -> &'static str
pub fn agent_icon(agent: &str) -> &'static str
Returns a small, legible icon for the given agent slug. Icons favor deterministic single-width glyphs to avoid layout jitter and emoji fallback artifacts in terminal renderers.
Sourcepub fn role_style(self, role: &str) -> Style
pub fn role_style(self, role: &str) -> Style
Get a role-specific style for message rendering
Sourcepub fn role_theme(self, role: &str) -> RoleTheme
pub fn role_theme(self, role: &str) -> RoleTheme
Get a complete RoleTheme for a message role with full styling options.
Includes foreground, background tint, border, and badge colors for comprehensive role-aware message rendering.
Sourcepub fn header_gradient(&self) -> GradientShades
pub fn header_gradient(&self) -> GradientShades
Get the gradient shades for header backgrounds
Sourcepub fn pill_gradient(&self) -> GradientShades
pub fn pill_gradient(&self) -> GradientShades
Get the gradient shades for pills/badges
Sourcepub fn adaptive_borders(&self, cols: u16) -> AdaptiveBorders
pub fn adaptive_borders(&self, cols: u16) -> AdaptiveBorders
Get adaptive borders for the given terminal width
Sourcepub fn adaptive_borders_focused(&self, cols: u16) -> AdaptiveBorders
pub fn adaptive_borders_focused(&self, cols: u16) -> AdaptiveBorders
Get focused adaptive borders for the given terminal width
Sourcepub fn highlight_style(self) -> Style
pub fn highlight_style(self) -> Style
Highlighted text style - for search matches Uses high-contrast background with theme-aware foreground for visibility
Sourcepub fn selected_style(self) -> Style
pub fn selected_style(self) -> Style
Selected item style - for list selections (theme-aware)
Sourcepub fn code_style(self) -> Style
pub fn code_style(self) -> Style
Code block background style (theme-aware)
Source§impl ThemePalette
impl ThemePalette
Sourcepub fn catppuccin() -> Self
pub fn catppuccin() -> Self
Catppuccin Mocha theme - warm, pastel colors https://github.com/catppuccin/catppuccin
Sourcepub fn dracula() -> Self
pub fn dracula() -> Self
Dracula theme - purple-tinted dark theme https://draculatheme.com/
Sourcepub fn nord() -> Self
pub fn nord() -> Self
Nord theme - arctic, cool blue tones https://www.nordtheme.com/
Sourcepub fn high_contrast() -> Self
pub fn high_contrast() -> Self
High Contrast theme - maximum contrast for accessibility
Designed to meet WCAG AAA standards (7:1 contrast ratio). Uses pure black/white with saturated accent colors for maximum visibility.
Sourcepub fn colorblind() -> Self
pub fn colorblind() -> Self
Colorblind-accessible theme - Tokyo Night base with deuteranopia/protanopia-safe colors.
Replaces green (#9ece6a) with blue (#7aa2f7) and orange (#ff9e64) with yellow (#e0af68) so that role colors remain distinguishable for red-green colorblind users. Red (#f7768e) is replaced with magenta/purple (#bb9af7). Background, text, and accent colors are unchanged from Tokyo Night.
pub fn solarized_dark() -> Self
pub fn solarized_light() -> Self
pub fn monokai() -> Self
pub fn gruvbox_dark() -> Self
pub fn one_dark() -> Self
pub fn rose_pine() -> Self
pub fn everforest() -> Self
pub fn kanagawa() -> Self
pub fn ayu_mirage() -> Self
pub fn nightfox() -> Self
pub fn cyberpunk_aurora() -> Self
pub fn synthwave_84() -> Self
Trait Implementations§
Source§impl Clone for ThemePalette
impl Clone for ThemePalette
Source§fn clone(&self) -> ThemePalette
fn clone(&self) -> ThemePalette
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreimpl Copy for ThemePalette
Auto Trait Implementations§
impl Freeze for ThemePalette
impl RefUnwindSafe for ThemePalette
impl Send for ThemePalette
impl Sync for ThemePalette
impl Unpin for ThemePalette
impl UnsafeUnpin for ThemePalette
impl UnwindSafe for ThemePalette
Blanket Implementations§
Source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
Source§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>, which can then be
downcast into Box<dyn ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>, which can then be further
downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> DowncastSend for T
impl<T> DowncastSend for T
Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, _span: NoopSpan) -> Self
fn instrument(self, _span: NoopSpan) -> Self
Source§fn in_current_span(self) -> Self
fn in_current_span(self) -> Self
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more