JSFiddle - React, Tailwind, and code Playground
by Tyler N.
HTML
<div class="container">
<div class="form-element">
<input type="checkbox" id="option-1" />
<label for="option-1">Option 1</label>
</div>
<div class="form-element">
<input type="checkbox" id="option-2" />
<label for="option-2">Option 2</label>
</div>
<div class="form-element">
<input type="checkbox" id="option-3" />
<label for="option-3">Opt 3</label>
</div>
<div class="form-element">
<input type="checkbox" id="option-4" />
<label for="option-4">Option 4</label>
</div>
<div class="form-element">
<input type="checkbox" id="option-5" />
<label for="option-5">Option 5</label>
</div>
<div class="form-element">
<input type="checkbox" id="option-6" />
<label for="option-6">Opt 6</label>
</div>
<div class="form-element">
<input type="checkbox" id="option-7" />
<label for="option-7">Opt 7</label>
</div>
<div class="form-element">
<input type="checkbox" id="option-8" />
<label for="option-8">Option 8</label>
</div>
</div>
CSS
.container {
width: 100%;
display: flex;
direction: row;
flex-wrap: wrap;
}
.form-element {
position: relative;
}
input {
visibility: hidden;
}
label {
display: inline-block;
background-color: lightblue;
text-align: center;
padding: 8px 20px 8px 26px;
margin-bottom: 16px;
border-radius: 1em;
cursor: pointer;
position: relative;
}
label::before {
content: '+';
display: block;
position: absolute;
top: 50%;
left: 8px;
transform: translateY(-50%);
}
input:checked + label {
/* checked styles */
background-color: hotpink;
}
input:checked + label::before {
content: '—';
}