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
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
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-hidden span, or use aria-label on 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 fieldset with a legend, so the group has a name. See fieldsets.
  • Keep the real input in 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.

On this page

130 sleek illustrations for your startup's visual identity.