Checkboxes are great for toggling an item on / off, or selecting multiple items from a list.
Basic checkboxes can be rendered with or without a label through standard
heirarchy means, or by utilizing the start
and end
wrappers.
While the
LabelableComponent
Concern does implement a floating_label
attribute, it is not relevant
for checkboxes and is not implemented.
.my-2.flex.flex-col.gap-4
%div
= daisy_checkbox(name: "checkbox_no_label", id: "checkbox_no_label")
.tooltip.tooltip-warning{ "data-tip": "CANNOT click the text to activate" }
Checkbox with no label
= daisy_label(for: "checkbox_with_label") do
= daisy_checkbox(name: "checkbox_with_label", id: "checkbox_with_label")
Checkbox with regular label
= daisy_checkbox(name: "checkbox_end", id: "checkbox_end", checked: true, end: "Checkbox using end wrapper")
= daisy_checkbox(name: "checkbox_start", id: "checkbox_start", checked: true, start: "Checkbox using start wrapper")
= daisy_checkbox(name: "checkbox_end_block", id: "checkbox_end_block", checked: true) do |checkbox|
- checkbox.with_end do
:markdown
Checkbox using `end` block
= daisy_checkbox(name: "checkbox_both_labels", id: "checkbox_both_labels", checked: true) do |checkbox|
- checkbox.with_start(css: "flex flex-row items-center") do
Using
= daisy_badge(css: "mx-1 badge-secondary badge-sm") do
start
- checkbox.with_end(css: "flex flex-row items-center") do
and
= daisy_badge(css: "mx-1 badge-secondary badge-sm") do
end
blocks
Checkboxes can be styled with different colors using DaisyUI's color classes.
Uses checkbox-neutral
with dark backgrounds for dark mode compatibility.
.my-2.grid.grid-cols-1.md:grid-cols-2.gap-4
= daisy_label(for: "checkbox_dark_mode") do
= daisy_checkbox(name: "checkbox_dark_mode", id: "checkbox_dark_mode", css: "checkbox-neutral theme-controller", value: "dark", checked: false)
Enable Dark Mode
= daisy_label(for: "checkbox_primary") do
= daisy_checkbox(name: "checkbox_primary", css: "checkbox-primary", id: "checkbox_primary", checked: true)
Primary
= daisy_label(for: "checkbox_secondary") do
= daisy_checkbox(name: "checkbox_secondary", css: "checkbox-secondary", id: "checkbox_secondary", checked: true)
Secondary
= daisy_label(for: "checkbox_accent") do
= daisy_checkbox(name: "checkbox_accent", css: "checkbox-accent", id: "checkbox_accent", checked: true)
Accent
= daisy_label(for: "checkbox_success") do
= daisy_checkbox(name: "checkbox_success", css: "checkbox-success", id: "checkbox_success", checked: true)
Success
= daisy_label(for: "checkbox_warning") do
= daisy_checkbox(name: "checkbox_warning", css: "checkbox-warning", id: "checkbox_warning", checked: true)
Warning
= daisy_label(for: "checkbox_error") do
= daisy_checkbox(name: "checkbox_error", css: "checkbox-error", id: "checkbox_error", checked: true)
Error
= daisy_label(for: "checkbox_info") do
= daisy_checkbox(name: "checkbox_info", css: "checkbox-info", id: "checkbox_info", checked: true)
Info
Checkboxes come in different sizes using DaisyUI's size classes.
.my-2.flex.flex-col.gap-8
.flex.items-center.gap-4
= daisy_label(for: "checkbox_extra_small") do
= daisy_checkbox(name: "checkbox_extra_small", id: "checkbox_extra_small", css: "checkbox-xs", checked: true)
Extra Small
.flex.items-center.gap-4
= daisy_label(for: "checkbox_small") do
= daisy_checkbox(name: "checkbox_small", id: "checkbox_small", css: "checkbox-sm", checked: true)
Small
.flex.items-center.gap-4
= daisy_label(for: "checkbox_medium") do
= daisy_checkbox(name: "checkbox_medium", id: "checkbox_medium", css: "checkbox-md", checked: true)
Medium (Default)
.flex.items-center.gap-4
= daisy_label(for: "checkbox_large") do
= daisy_checkbox(name: "checkbox_large", id: "checkbox_large", css: "checkbox-lg", checked: true)
Large
.flex.items-center.gap-4
= daisy_label(for: "checkbox_extra_large") do
= daisy_checkbox(name: "checkbox_extra_large", id: "checkbox_extra_large", css: "checkbox-xl", checked: true)
Extra Large
You can combine both color and size classes to create different variations.
.my-2.grid.grid-cols-1.md:grid-cols-2.lg:grid-cols-3.gap-6
= daisy_label(for: "checkbox_primary_small") do
= daisy_checkbox(name: "checkbox_primary_small", id: "checkbox_primary_small", css: "checkbox-primary checkbox-sm", checked: true)
Primary Small
= daisy_label(for: "checkbox_secondary_medium") do
= daisy_checkbox(name: "checkbox_secondary_medium", id: "checkbox_secondary_medium", css: "checkbox-secondary checkbox-md", checked: true)
Secondary Medium
= daisy_label(for: "checkbox_accent_large") do
= daisy_checkbox(name: "checkbox_accent_large", id: "checkbox_accent_large", css: "checkbox-accent checkbox-lg", checked: true)
Accent Large
= daisy_label(for: "checkbox_info_small") do
= daisy_checkbox(name: "checkbox_info_small", id: "checkbox_info_small", css: "checkbox-info checkbox-sm", checked: true)
Info Small
= daisy_label(for: "checkbox_success_medium") do
= daisy_checkbox(name: "checkbox_success_medium", id: "checkbox_success_medium", css: "checkbox-success checkbox-md", checked: true)
Success Medium
= daisy_label(for: "checkbox_warning_large") do
= daisy_checkbox(name: "checkbox_warning_large", id: "checkbox_warning_large", css: "checkbox-warning checkbox-lg", checked: true)
Warning Large
Checkboxes can be set to an indeterminate state to indicate that the value is neither checked nor unchecked. This is commonly used for "Select All" checkboxes where some items are selected and others are not.
You must set the indeterminate
attribute through JavaScript.
Checkboxes can be disabled using the disabled
attribute.
Checkboxes can be given a custom ID using the id
attribute.
The built-in Form Builder extension provides an even easier way to use checkboxes in your pages by extracting the name and ID attributes from the form object and attributes.
You can also use the Label component directly with checkboxes for fully custom approach.
.my-2.flex.flex-col.gap-4
.flex.items-center.space-x-2
= daisy_checkbox(name: "agree", id: "agree")
= daisy_label(for: "agree", title: "I agree to the terms of service")
.flex.items-center.space-x-2.mt-4
= daisy_checkbox(name: "updates", id: "updates", toggle: true)
= daisy_label(for: "updates") do
Receive product updates
Create virtual credit / debit cards to keep your real info safe.
Get $5 when you sign up — free to start!
Everything you need to grow your business with confidence!
CRM, Lead Generation, Project Management, Contracts, Online Payments, and more!
The ads above are affiliate links to products I regularly use and highly
recommend.
I may receive a commission if you decide to purchase.