Struct StyleProvider

Source
pub struct StyleProvider<T> { /* private fields */ }
Expand description

Manages dynamically inserted styles. You should usually have exactly one. Generated classnames are only unique for a fixed StyleProvider.

You will typically use StyleProvider in comination with the crate::make_styles! macro.

§Example

make_styles! {
    (_theme: EmptyTheme) -> MyClasses {
        ".my_class > span" {
            color: "red",
        },
    }
}

fn main() {
    let style_provider = StyleProvider::quickstart_web(EmptyTheme);
     
    // inject the css styles
    let cls = style_provider.add_classes::<MyClasses>();
    let elem: &web_sys::Element = todo!(); // Some element
    elem.set_class_name(&cls.my_class);
     
    // inject it again; no change; will return the same classes
    let cls2 = style_provider.add_classes::<MyClasses>();
    assert_eq!(cls.my_class, cls2.my_class);
}

Implementations§

Source§

impl<T: Theme> StyleProvider<T>

Source

pub fn quickstart_web(theme: T) -> Self

Quickly sets up a StyleProvider for the given theme at the active document. It will create a new style tag to the head and use it to mount new styles.

Source

pub fn add_classes<C>(&self) -> C
where C: Classes<Theme = T>,

Mount new styles and returns the dynamically generated classnames. If this style is already mounted, it won’t be mounted again. The classnames will be the same as last time.

Source

pub fn update_theme(&self, theme: T)

Change the theme. All styles will be recomputed, but the classnames will not change.

Source

pub fn use_styles<'a, C>(&self, cx: &'a ScopeState) -> &'a C
where C: Classes<Theme = T>,

Available on crate feature dioxus only.

A convenience hook to mount styles and cache the classnames. Note that the style will only be mounted once, even if you use this hook from multiple components or your components will be used multiple times. The classnames will be the same every time, as long as the same StyleProvider is used.

Trait Implementations§

Source§

impl<T: Clone> Clone for StyleProvider<T>

Source§

fn clone(&self) -> StyleProvider<T>

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

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

Performs copy-assignment from source. Read more

Auto Trait Implementations§

§

impl<T> Freeze for StyleProvider<T>

§

impl<T> !RefUnwindSafe for StyleProvider<T>

§

impl<T> !Send for StyleProvider<T>

§

impl<T> !Sync for StyleProvider<T>

§

impl<T> Unpin for StyleProvider<T>

§

impl<T> !UnwindSafe for StyleProvider<T>

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> To for T
where T: ?Sized,

Source§

fn to<T>(self) -> T
where Self: Into<T>,

Converts to T by calling Into<T>::into.
Source§

fn try_to<T>(self) -> Result<T, Self::Error>
where Self: TryInto<T>,

Tries to convert to T by calling TryInto<T>::try_into.
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