About this set
Custom checkboxes for settings pages and forms, in four variants. Square tick is a 22 pixel rounded box that fills blue and draws a white tick when checked. Circular tick is the same control with a round box, suited to accept or status lists. Dash state shows a horizontal bar instead of a tick, the look people expect for a partial selection such as a select-all header. Whole row is the target turns a full settings row, with a bold title and a grey description, into one large click target with the box on the right, which is easier to hit on touch screens. Each variant keeps a real checkbox in the markup, visually hidden, so labels, keyboard use and form submission behave natively; the visible box is a sibling span styled with :checked. The Bootstrap version uses .form-check-input and a .list-group-item label for the row, and the Tailwind version uses peer-checked utilities on the same structure.
What’s included
- Square, circular, dash and full-row variants
- Tick and dash scale in when checked (SVG images in the Bootstrap version)
- Full-row label for large touch targets
- Box border darkened to #7c8aa0 so the unchecked box reaches 3:1
- Bootstrap version built on .form-check and .list-group
Accessibility
Every checkbox is named by its visible label text, including the full-row variant where the title and description form the name. Tab moves between boxes and Space checks them. Focus draws a 2px blue outline around the visible box, and the fill and tick animations are removed under prefers-reduced-motion. The dash variant is styled only; set the indeterminate property from script if you need that state announced.
Customise it
Change the border and fill colours on .bx and .cb input:checked+.bx (plain CSS), --cb-border and --cb-on on .cbx plus the --bs-list-group-* variables on .rowt (Bootstrap), or the --color-cb-* theme colours (Tailwind). The box size is the 22px width and height.






