Skip to main content

Palette

Struct Palette 

Source
pub struct Palette {
    pub colors: HashMap<Arc<str>, Color>,
}
Expand description

Named-color palette modeled on libadwaita’s @accent_color, @window_bg_color, … bus. Keys are stable Adwaita role names stored as Arc<str> so repeated lookups share one allocation.

Override individual roles with Self::with before feeding Self::root_vars into the loader, or build one from scratch with Self::new, to change just accent_color without restating the whole table. See the module doc comment for what “feeding the loader” means today and what it does not yet do.

Fields§

§colors: HashMap<Arc<str>, Color>

Role-name -> Color map. Names follow libadwaita’s @accent_color, @window_bg_color, … convention (no leading @; the parser strips it before lookup).

Implementations§

Source§

impl Palette

Source

pub fn new() -> Self

Empty palette. Useful as a base before Self::with chains.

Source

pub fn adwaita_light() -> Self

Default light palette from libadwaita defaults-light.css.

Values mirror libadwaita 1.5 defaults; alpha-bearing roles (@shade_color, @scrollbar_outline_color, @borders) use the alpha(...) channel libadwaita ships, baked at table-init time. The Adwaita @card_bg_color is alpha(@window_fg, 0.05); here it is pre-resolved against the light @window_fg_color.

Source

pub fn adwaita_dark() -> Self

Default dark palette from libadwaita defaults-dark.css.

Source

pub fn with(self, name: impl Into<Arc<str>>, color: impl Into<Color>) -> Self

Register or override a named color and return self so calls can chain. Names should match libadwaita’s @accent_color / @window_bg_color / … convention.

Accepts anything Into<Color> - hex literal ("#rrggbb"), RGB tuple (u8, u8, u8), or an explicit Color.

Source

pub fn lookup(&self, name: &str) -> Option<Color>

Look up a named color. name matches with or without the leading @ so callers can pass "accent_color" (from a parser that already stripped the sigil) or "@accent_color" (raw token) interchangeably.

Source

pub fn root_vars(&self) -> HashMap<String, String>

Every named color as a CSS custom-property name (---free, matching the CSS var() resolver’s key convention in lumen-ir) mapped to its #rrggbbaa hex value: "accent_color" becomes "accent-color" (hyphenated, the standard CSS custom-property spelling), values unchanged otherwise. Lossless and mechanical - this does not rename any role onto Lumen’s own --lumen-* vocabulary, which is a separate, opinionated mapping this method deliberately leaves undecided.

The runtime’s app loader (lumen-runtime, which depends on this crate - not the other way around, so it cannot be linked from here) merges the result as the lowest-precedence :root layer: beneath the always-on UA baseline, beneath any opted-in skin, and beneath the app’s own main.css. So var(--accent-color) resolves wherever a --lumen-* token does, and a skin or app that redeclares the same name still wins.

Trait Implementations§

Source§

impl Clone for Palette

Source§

fn clone(&self) -> Palette

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

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

Performs copy-assignment from source. Read more
Source§

impl Component for Palette
where Self: Send + Sync + 'static,

Source§

const STORAGE_TYPE: StorageType = bevy_ecs::component::StorageType::SparseSet

A constant indicating the storage type used for this component.
Source§

type Mutability = Mutable

A marker type to assist Bevy with determining if this component is mutable, or immutable. Mutable components will have Component<Mutability = Mutable>, while immutable components will instead have Component<Mutability = Immutable>. Read more
Source§

fn register_required_components( _requiree: ComponentId, required_components: &mut RequiredComponentsRegistrator<'_, '_>, )

Registers required components. Read more
Source§

fn clone_behavior() -> ComponentCloneBehavior

Called when registering this component, allowing to override clone function (or disable cloning altogether) for this component. Read more
Source§

fn relationship_accessor() -> Option<ComponentRelationshipAccessor<Self>>

Returns [ComponentRelationshipAccessor] required for working with relationships in dynamic contexts. Read more
§

fn on_add() -> Option<for<'w> fn(DeferredWorld<'w>, HookContext)>

Gets the on_add [ComponentHook] for this Component if one is defined.
§

fn on_insert() -> Option<for<'w> fn(DeferredWorld<'w>, HookContext)>

Gets the on_insert [ComponentHook] for this Component if one is defined.
§

fn on_discard() -> Option<for<'w> fn(DeferredWorld<'w>, HookContext)>

Gets the on_discard [ComponentHook] for this Component if one is defined.
§

fn on_remove() -> Option<for<'w> fn(DeferredWorld<'w>, HookContext)>

Gets the on_remove [ComponentHook] for this Component if one is defined.
§

fn on_despawn() -> Option<for<'w> fn(DeferredWorld<'w>, HookContext)>

Gets the on_despawn [ComponentHook] for this Component if one is defined.
§

fn map_entities<E>(_this: &mut Self, _mapper: &mut E)
where E: EntityMapper,

Maps the entities on this component using the given EntityMapper. This is used to remap entities in contexts like scenes and entity cloning. When deriving Component, this is populated by annotating fields containing entities with #[entities] Read more
Source§

impl Debug for Palette

Source§

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

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

impl Default for Palette

Source§

fn default() -> Palette

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

impl PartialEq for Palette

Source§

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

Tests for self and other values to be equal, and is used by ==.
1.0.0 (const: unstable) · 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 Resource for Palette
where Self: Send + Sync + 'static,

Source§

impl StructuralPartialEq for Palette

Auto Trait Implementations§

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
§

impl<C> Bundle for C
where C: Component,

§

fn component_ids( components: &mut ComponentsRegistrator<'_>, ) -> impl Iterator<Item = ComponentId> + use<C>

§

fn get_component_ids( components: &Components, ) -> impl Iterator<Item = Option<ComponentId>>

Return a iterator over this Bundle’s component ids. This will be None if the component has not been registered.
§

impl<C> BundleFromComponents for C
where C: Component,

§

unsafe fn from_components<T, F>(ctx: &mut T, func: &mut F) -> C
where F: for<'a> FnMut(&'a mut T) -> OwningPtr<'a>,

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
§

impl<C> DynamicBundle for C
where C: Component,

§

type Effect = ()

An operation on the entity that happens after inserting this bundle.
§

unsafe fn get_components( ptr: MovingPtr<'_, C>, func: &mut impl FnMut(StorageType, OwningPtr<'_>), ) -> <C as DynamicBundle>::Effect

Moves the components out of the bundle. Read more
§

unsafe fn apply_effect( _ptr: MovingPtr<'_, MaybeUninit<C>>, _entity: &mut EntityWorldMut<'_>, )

Applies the after-effects of spawning this bundle. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> FromTemplate for T
where T: Clone + Default + Unpin,

§

type Template = T

The Template for this type.
§

impl<T> FromWorld for T
where T: Default,

§

fn from_world(_world: &mut World) -> T

Creates Self using default().

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.

§

impl<T> IntoResult<T> for T

§

fn into_result(self) -> Result<T, RunSystemError>

Converts this type into the system output type.
§

impl<T> Template for T
where T: Clone + Default + Unpin,

§

type Output = T

The type of value produced by this Template.
§

fn build_template( &self, _context: &mut TemplateContext<'_, '_>, ) -> Result<<T as Template>::Output, BevyError>

Uses this template and the given entity context to produce a Template::Output.
§

fn clone_template(&self) -> T

Clones this template. See Clone.
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.
§

impl<T> ConditionalSend for T
where T: Send,