Checkbox

template 1 required6 optional2 slots1 a11y rule

Preview

You agree to our terms of service.

Usage

views.py
python
from djust import LiveView


class MyView(LiveView):
    template_name = "my_template.html"

    def mount(self, request, **kwargs):
        self.name = 'gallery_checkbox'
my_template.html
django
{% load theme_components %}
{% theme_checkbox name=name label='Accept terms' description='You agree to our terms of service.' %}

Props

NameTypeRequiredDefault
namestrrequired
labelstr
descriptionOptional[str]
css_prefixstr
attrsdict
slot_labelstr
slot_descriptionstr

Accessibility

RequirementElementAttributeValue
Label must reference checkbox via for attributelabelfor(present)

Slots

slot_label slot_description
Source & styles
FilePathNotes
templatedjust_theming/components/checkbox.htmlCopy it to the same path in your project, or per theme under djust_theming/themes/<theme>/components/.
Template source — checkbox.html
django
<div class="{{ css_prefix }}checkbox-group {% if attrs.class %}{{ attrs.class }}{% endif %}">
    <input
        type="checkbox"
        name="{{ name }}"
        id="{{ name }}"
        class="{{ css_prefix }}checkbox"
        {% if attrs.checked %}checked{% endif %}
        {% if attrs.required %}required{% endif %}
        {% if attrs.disabled %}disabled{% endif %}
        {% if attrs.value %}value="{{ attrs.value }}"{% endif %}
    />
    {% if slot_label %}
    {{ slot_label|safe }}
    {% elif label %}
    <label for="{{ name }}" class="{{ css_prefix }}checkbox-label">{{ label }}</label>
    {% endif %}
    {% if slot_description %}
    <div class="{{ css_prefix }}checkbox-description">{{ slot_description|safe }}</div>
    {% elif description %}
    <div class="{{ css_prefix }}checkbox-description">{{ description }}</div>
    {% endif %}
</div>