Cardiff Council Content and design system

www.cardiff.gov.uk

Forms

selecting

Select fieldRadio buttonsCheckbox

layout

Message boxNavigation buttonsValidation and Errors

input

TextEmailTelephoneTextAreaSearch boxDateTimeRangeFileNumber

Checkbox

Used to select multiple options.

How to use this component

This element should be used when asking a user to make a selection, where multiple options are allowed.

We use a custom checkbox style. We achieve this by visually hiding the native checkbox and showing a faux span element in it’s place.


Code Resource

<p>Please select all that apply to you</p>

<label class="container">One
  <input type="checkbox" value="One">
  <span class="checkmark"></span>
</label>

<label class="container">Two
  <input type="checkbox" value="Two">
  <span class="checkmark"></span>
</label>

<label class="container">Three
  <input type="checkbox" value="Three">
  <span class="checkmark"></span>
</label>

<label class="container">Four
  <input type="checkbox" value="Four">
  <span class="checkmark"></span>
</label>
/* Customize the label (the container) */
.container {
  display: block;
  position: relative;
  padding-left: 35px;
  margin-bottom: 20px;
  cursor: pointer;
  font-size: 20px;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
}

/* Hide the browser's default checkbox */
.container input {
  position: absolute;
  opacity: 0;
  cursor: pointer;
  height: 0;
  width: 0;
}

/* Create a custom checkbox */
.checkmark {
  position: absolute;
  top: 0;
  left: 0;
  height: 25px;
  width: 25px;
  background-color: #eee;
  border: 1px solid #e7e7e7;
}

.container:hover input ~ .checkmark, .container input[type='checkbox']:focus ~ .checkmark {
  background-color: #ccc;
}

/* When the checkbox is checked, add a teal background */
.container input:checked ~ .checkmark {
  background-color: #107f80;
}

/* Create the checkmark/indicator (hidden when not checked) */
.checkmark:after {
  content: "";
  position: absolute;
  display: none;
}

/* Show the checkmark when checked */
.container input:checked ~ .checkmark:after {
  display: block;
}

/* Style the checkmark/indicator */
.container .checkmark:after {
  left: 9px;
  top: 4px;
  width: 7px;
  height: 13px;
  border: solid white;
  border-width: 0 3px 3px 0;
  -webkit-transform: rotate(45deg);
  -ms-transform: rotate(45deg);
  transform: rotate(45deg);
}

Working Example

Please select all that apply to you