Color check
Checkboxes and radios styled as color swatches, for picking a color in a form.
A color check is a checkbox or a radio drawn as a color swatch. The swatch takes any of the bg-* classes from the color palette.
<label class="form-colorinput">
<input name="..." type="radio" value="..." class="form-colorinput-input" />
<span class="form-colorinput-color bg-lime"></span>
</label>
With checkboxes, several colors can be picked at once:
Color Input
<div class="mb-3">
<div class="form-label">Color Input</div>
<fieldset>
<legend class="visually-hidden">Color Input</legend>
<div class="row g-2">
<div class="col-auto">
<label class="form-colorinput">
<input name="color" type="checkbox" value="dark" class="form-colorinput-input" aria-label="dark">
<span class="form-colorinput-color bg-dark"></span>
</label>
</div>
<div class="col-auto">
<label class="form-colorinput form-colorinput-light">
<input name="color" type="checkbox" value="white" class="form-colorinput-input" checked aria-label="white">
<span class="form-colorinput-color bg-white"></span>
</label>
</div>
<div class="col-auto">
<label class="form-colorinput">
<input name="color" type="checkbox" value="blue" class="form-colorinput-input" aria-label="blue">
<span class="form-colorinput-color bg-blue"></span>
</label>
</div>
<div class="col-auto">
<label class="form-colorinput">
<input name="color" type="checkbox" value="azure" class="form-colorinput-input" aria-label="azure">
<span class="form-colorinput-color bg-azure"></span>
</label>
</div>
<div class="col-auto">
<label class="form-colorinput">
<input name="color" type="checkbox" value="indigo" class="form-colorinput-input" aria-label="indigo">
<span class="form-colorinput-color bg-indigo"></span>
</label>
</div>
<div class="col-auto">
<label class="form-colorinput">
<input name="color" type="checkbox" value="purple" class="form-colorinput-input" aria-label="purple">
<span class="form-colorinput-color bg-purple"></span>
</label>
</div>
<div class="col-auto">
<label class="form-colorinput">
<input name="color" type="checkbox" value="pink" class="form-colorinput-input" aria-label="pink">
<span class="form-colorinput-color bg-pink"></span>
</label>
</div>
<div class="col-auto">
<label class="form-colorinput">
<input name="color" type="checkbox" value="red" class="form-colorinput-input" aria-label="red">
<span class="form-colorinput-color bg-red"></span>
</label>
</div>
<div class="col-auto">
<label class="form-colorinput">
<input name="color" type="checkbox" value="orange" class="form-colorinput-input" aria-label="orange">
<span class="form-colorinput-color bg-orange"></span>
</label>
</div>
<div class="col-auto">
<label class="form-colorinput">
<input name="color" type="checkbox" value="yellow" class="form-colorinput-input" aria-label="yellow">
<span class="form-colorinput-color bg-yellow"></span>
</label>
</div>
<div class="col-auto">
<label class="form-colorinput">
<input name="color" type="checkbox" value="lime" class="form-colorinput-input" aria-label="lime">
<span class="form-colorinput-color bg-lime"></span>
</label>
</div>
<div class="col-auto">
<label class="form-colorinput">
<input name="color" type="checkbox" value="green" class="form-colorinput-input" aria-label="green">
<span class="form-colorinput-color bg-green"></span>
</label>
</div>
</div>
</fieldset>
</div>Use the radio type when only one color can be picked:
Color Input
<div class="mb-3">
<div class="form-label">Color Input</div>
<fieldset>
<legend class="visually-hidden">Color Input</legend>
<div class="row g-2">
<div class="col-auto">
<label class="form-colorinput">
<input name="color-rounded" type="radio" value="dark" class="form-colorinput-input" aria-label="dark">
<span class="form-colorinput-color bg-dark rounded-circle"></span>
</label>
</div>
<div class="col-auto">
<label class="form-colorinput form-colorinput-light">
<input name="color-rounded" type="radio" value="white" class="form-colorinput-input" checked aria-label="white">
<span class="form-colorinput-color bg-white rounded-circle"></span>
</label>
</div>
<div class="col-auto">
<label class="form-colorinput">
<input name="color-rounded" type="radio" value="blue" class="form-colorinput-input" aria-label="blue">
<span class="form-colorinput-color bg-blue rounded-circle"></span>
</label>
</div>
<div class="col-auto">
<label class="form-colorinput">
<input name="color-rounded" type="radio" value="azure" class="form-colorinput-input" aria-label="azure">
<span class="form-colorinput-color bg-azure rounded-circle"></span>
</label>
</div>
<div class="col-auto">
<label class="form-colorinput">
<input name="color-rounded" type="radio" value="indigo" class="form-colorinput-input" aria-label="indigo">
<span class="form-colorinput-color bg-indigo rounded-circle"></span>
</label>
</div>
<div class="col-auto">
<label class="form-colorinput">
<input name="color-rounded" type="radio" value="purple" class="form-colorinput-input" aria-label="purple">
<span class="form-colorinput-color bg-purple rounded-circle"></span>
</label>
</div>
<div class="col-auto">
<label class="form-colorinput">
<input name="color-rounded" type="radio" value="pink" class="form-colorinput-input" aria-label="pink">
<span class="form-colorinput-color bg-pink rounded-circle"></span>
</label>
</div>
<div class="col-auto">
<label class="form-colorinput">
<input name="color-rounded" type="radio" value="red" class="form-colorinput-input" aria-label="red">
<span class="form-colorinput-color bg-red rounded-circle"></span>
</label>
</div>
<div class="col-auto">
<label class="form-colorinput">
<input name="color-rounded" type="radio" value="orange" class="form-colorinput-input" aria-label="orange">
<span class="form-colorinput-color bg-orange rounded-circle"></span>
</label>
</div>
<div class="col-auto">
<label class="form-colorinput">
<input name="color-rounded" type="radio" value="yellow" class="form-colorinput-input" aria-label="yellow">
<span class="form-colorinput-color bg-yellow rounded-circle"></span>
</label>
</div>
<div class="col-auto">
<label class="form-colorinput">
<input name="color-rounded" type="radio" value="lime" class="form-colorinput-input" aria-label="lime">
<span class="form-colorinput-color bg-lime rounded-circle"></span>
</label>
</div>
<div class="col-auto">
<label class="form-colorinput">
<input name="color-rounded" type="radio" value="green" class="form-colorinput-input" aria-label="green">
<span class="form-colorinput-color bg-green rounded-circle"></span>
</label>
</div>
</div>
</fieldset>
</div>Input color picker
For a free choice of color, use the native color input. Tabler styles it to match the other form controls.
<div class="mb-3">
<label class="form-label">Color picker</label>
<input type="color" class="form-control form-control-color" value="#066fd1" title="Choose your color" />
</div>Accessibility
- A color swatch has no name. Put the color in text inside a
visually-hiddenspan, or usearia-labelon the input, so the option is not announced as just "radio". - Colour on its own cannot be the only way to tell options apart. Keep a visible mark for the selected one - Tabler draws a checkmark inside the swatch.
- Wrap the set in a
fieldsetwith alegend, so the group has a name. See fieldsets. - Keep the real
inputin the markup. It is what makes the arrow keys, the space bar and the checked state work. - Do not use a color picker as the only way to choose something meaningful, such as a category. Offer the name as well.
