use leptos::prelude::*; use tw_merge::*; use crate::components::hooks::use_random::use_random_id_for; #[component] pub fn Shimmer( /// Controls shimmer visibility (works with any bool signal) #[prop(into)] loading: Signal, /// Color of the shimmer wave (default: "rgba(255,255,255,0.15)") #[prop(into, optional)] shimmer_color: Option, /// Background color of shimmer blocks (default: "rgba(255,255,255,0.08)") #[prop(into, optional)] background_color: Option, /// Animation duration in seconds (default: 1.5) #[prop(optional)] duration: Option, /// Fallback border-radius for text elements in px (default: 4) #[prop(optional)] fallback_border_radius: Option, /// Additional classes #[prop(into, optional)] class: String, /// Children to wrap children: Children, ) -> impl IntoView { let shimmer_id = use_random_id_for("Shimmer"); let merged_class = tw_merge!("relative", class); view! {
{children()}
} }