A control that allows the user to toggle between checked, unchecked, and optionally indeterminate states.
biji-ui = { version = "0.5.0", features = ["checkbox"] }
use leptos::prelude::*;
use biji_ui::components::checkbox;
#[component]
pub fn MyCheckbox() -> impl IntoView {
view! {
<checkbox::Root class="flex items-center justify-center w-5 h-5 rounded border border-border data-[state=checked]:bg-primary data-[state=checked]:border-primary">
<checkbox::Indicator class="hidden data-[state=checked]:block text-primary-foreground">
// Checkmark icon
</checkbox::Indicator>
</checkbox::Root>
}
}
use leptos::prelude::*;
use biji_ui::components::checkbox;
#[component]
pub fn LabeledCheckbox() -> impl IntoView {
let root_class = "flex items-center justify-center w-5 h-5 rounded border-2 border-border \
transition-colors data-[state=checked]:bg-primary data-[state=checked]:border-primary";
let indicator_class = "hidden data-[state=checked]:flex text-primary-foreground";
view! {
<label class="flex gap-3 items-center cursor-pointer select-none">
<checkbox::RootWith class={root_class} let:cb>
<checkbox::Indicator class={indicator_class}>
// Checkmark icon
</checkbox::Indicator>
<span class="sr-only">{move || cb.data_state.get()}</span>
</checkbox::RootWith>
<span class="text-sm font-medium">
{move || /* use_checkbox() or pass cb as prop */ "Accept terms"}
</span>
</label>
}
}