Spinner
Displays an animated loading indicator.
use radix_yew_themes::Spinner;
use yew::prelude::*;
#[function_component]
pub fn SpinnerExample() -> Html {
    html! {
        <Spinner />
    }
}
API Reference
This component is based on the span element and supports common margin props.
| Prop | Type | Default | 
|---|---|---|
| size | Responsive<1..3> | 2 | 
| loading | bool | true | 
Examples
Size
Use the size prop to control the size of the spinner.
use radix_yew_themes::{Flex, FlexAlign, Spinner};
use yew::prelude::*;
#[function_component]
pub fn SpinnerSizeExample() -> Html {
    html! {
        <Flex align={FlexAlign::Center} gap=4>
            <Spinner size=1 />
            <Spinner size=2 />
            <Spinner size=3 />
        </Flex>
    }
}
With Children
Use the § prop to control whether the spinner or its children are displayed. Spinner preserves the dimensions of children when they are hidden and disables interactive elements.
use radix_yew_themes::{Flex, Spinner, Switch};
use yew::prelude::*;
#[function_component]
pub fn SpinnerWithChildrenExample() -> Html {
    html! {
        <Flex gap=4>
            <Spinner loading={true}>
                <Switch default_checked=true />
            </Spinner>
            <Spinner loading={false}>
                <Switch default_checked=true />
            </Spinner>
        </Flex>
    }
}
With Buttons
Buttons have their own loading prop that automatically composes a spinner.
use radix_yew_themes::Button;
use yew::prelude::*;
#[function_component]
pub fn SpinnerWithButtonsExample() -> Html {
    html! {
        <Button loading=true>{"Bookmark"}</Button>
    }
}
If you have an icon inside the button, you can use the button's disabled state and wrap the icon in a standalone <Spinner> to achieve a more sophisticated design.
use radix_yew_icons::BookmarkIcon;
use radix_yew_themes::{Button, Spinner};
use yew::prelude::*;
#[function_component]
pub fn SpinnerWithButtonsDisabledExample() -> Html {
    html! {
        <Button disabled=true>
            <Spinner loading=true>
                <BookmarkIcon />
            </Spinner>
            {"Bookmark"}
        </Button>
    }
}