About this set
Switches designed for dark interfaces, where a switch made for a light theme loses its edges. Accent glow is a dark track with a grey knob that turns blue with a soft glow when on, for primary settings in dark apps. Ghost outline is a transparent track with a thin border that switches to cyan, for dense lists where filled tracks would be heavy. Status switch is red when off and green when on, with a caption beside it such as Service enabled, for monitoring screens and admin panels where the state matters more than the setting. Each switch is a checkbox with role=”switch”, visually hidden inside a label, followed by an element that draws the track and knob, with every colour change handled by :checked. The track borders are lightened to #56617a so the off state still shows its outline on the #0e1116 page. The Bootstrap version restyles .form-switch with CSS variables, and the Tailwind version keeps the palette in theme colours.
What’s included
- Accent glow, ghost outline and red to green status variants
- Glow and ghost track borders lightened to reach 3:1 on a near-black page
- Status switch named by its visible caption through aria-labelledby
- Cyan focus outline that stands out on dark backgrounds
- Colours kept in variables or theme tokens for easy re-theming
Accessibility
The glow and ghost switches have an aria-label, and the status switches take their name from the caption beside them through aria-labelledby. All use role="switch", respond to Tab and Space, and show a 2px cyan focus outline. The status variant also moves its knob, so red and green are not the only cue. Transitions are removed under prefers-reduced-motion.
Customise it
Edit the track, border and knob colours in .dk, .gh and .st (plain CSS), the --dk-* variables on the .dk wrapper (Bootstrap) or the --color-dk-* theme colours (Tailwind). The glow is the box-shadow on the checked track.






