tallyweb_components/
spinner.rs1use 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}