tallyweb_components/
spinner.rs

1use leptos::*;
2
3#[component]
4pub fn Spinner(#[prop(default = 32)] size: usize) -> impl IntoView {
5    let style = format!(
6        ".loader {{
7            border: {border}px solid #f3f3f3; /* Light grey */
8            border-top: {border}px solid #555555; /* Blue */
9            border-radius: 50%;
10            width: {size}px;
11            height: {size}px;
12            animation: spin 2s linear infinite;
13        }}
14
15        @keyframes spin {{
16            0% {{ transform: rotate(0deg); }}
17            100% {{ transform: rotate(360deg); }}
18        }}",
19        border = size / 8
20    );
21    view! {
22        <style>{style}</style>
23        <div class="loader"></div>
24    }
25}