Skip to main content

Theme

Struct Theme 

Source
pub struct Theme {
Show 19 fields pub primary: AdaptiveColor, pub secondary: AdaptiveColor, pub accent: AdaptiveColor, pub background: AdaptiveColor, pub surface: AdaptiveColor, pub overlay: AdaptiveColor, pub text: AdaptiveColor, pub text_muted: AdaptiveColor, pub text_subtle: AdaptiveColor, pub success: AdaptiveColor, pub warning: AdaptiveColor, pub error: AdaptiveColor, pub info: AdaptiveColor, pub border: AdaptiveColor, pub border_focused: AdaptiveColor, pub selection_bg: AdaptiveColor, pub selection_fg: AdaptiveColor, pub scrollbar_track: AdaptiveColor, pub scrollbar_thumb: AdaptiveColor,
}
Expand description

A theme with semantic color slots.

Themes provide consistent styling across an application by mapping semantic names (like “error” or “primary”) to actual colors.

Fields§

§primary: AdaptiveColor

Primary accent color (e.g., buttons, highlights).

§secondary: AdaptiveColor

Secondary accent color.

§accent: AdaptiveColor

Tertiary accent color.

§background: AdaptiveColor

Main background color.

§surface: AdaptiveColor

Surface color (cards, panels).

§overlay: AdaptiveColor

Overlay color (dialogs, dropdowns).

§text: AdaptiveColor

Primary text color.

§text_muted: AdaptiveColor

Muted text color.

§text_subtle: AdaptiveColor

Subtle text color (hints, placeholders).

§success: AdaptiveColor

Success color (green).

§warning: AdaptiveColor

Warning color (yellow/orange).

§error: AdaptiveColor

Error color (red).

§info: AdaptiveColor

Info color (blue).

§border: AdaptiveColor

Default border color.

§border_focused: AdaptiveColor

Focused element border.

§selection_bg: AdaptiveColor

Selection background.

§selection_fg: AdaptiveColor

Selection foreground.

§scrollbar_track: AdaptiveColor

Scrollbar track color.

§scrollbar_thumb: AdaptiveColor

Scrollbar thumb color.

Implementations§

Source§

impl Theme

Source

pub fn builder() -> ThemeBuilder

Create a new theme builder.

Source

pub fn detect_dark_mode() -> bool

Detect whether dark mode should be used.

Detection heuristics:

  1. Check COLORFGBG environment variable
  2. Default to dark mode (most terminals are dark)

Note: OSC 11 background query would be more accurate but requires terminal interaction which isn’t always safe or fast.

Source

pub fn resolve(&self, is_dark: bool) -> ResolvedTheme

Create a resolved copy of this theme for a specific mode.

This flattens all adaptive colors to fixed colors based on the mode.

Trait Implementations§

Source§

impl Clone for Theme

Source§

fn clone(&self) -> Theme

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for Theme

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for Theme

Source§

fn default() -> Self

Returns the “default value” for a type. Read more
Source§

impl PartialEq for Theme

Source§

fn eq(&self, other: &Theme) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Eq for Theme

Source§

impl StructuralPartialEq for Theme

Auto Trait Implementations§

§

impl Freeze for Theme

§

impl RefUnwindSafe for Theme

§

impl Send for Theme

§

impl Sync for Theme

§

impl Unpin for Theme

§

impl UnsafeUnpin for Theme

§

impl UnwindSafe for Theme

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more