This collection is your complete guide to CSS toggle switches. At the core of each example is a robust and accessible pattern: a hidden checkbox, a styled <label>, and the :checked pseudo-class, which smoothly moves the thumb using transform: translateX. Smooth animation is achieved with transition, while CSS Custom Properties allow for easy color theming and integration into any design system. But it goes further, demonstrating how to add icons (like a sun/moon) to create intuitive theme switchers and how to use the general sibling selector to control the styles of other elements on the page. This is your guide to turning a simple checkbox into a powerful, interactive, and fully customizable UI component without a single line of JavaScript.
144 CSS Toggle Switches
Viking Rune Wood Toggle
demo & codeThis Viking Rune Wood Toggle demonstrates how far CSS styling can go without JavaScript. It recreates a physical artifact - a wooden switch with bronze inlays and magical runes - perfect for RPG game interfaces or fantasy-themed websites. The switch features a “fire” state when active, complete with pulsating runes and floating ember particles, creating an immersive, tactile experience.
Skeuomorphic Wood Texture Toggles
demo & codeThis collection of Skeuomorphic Wood Texture Toggles brings a tactile, nostalgic feel to digital interfaces. It showcases four distinct variations of toggle switches (sliding, dotted handle, separated track, and embedded text), all unified by a realistic wood grain texture and intricate lighting effects. The implementation demonstrates the power of modern CSS features like :has() to control complex state changes without a single line of JavaScript.
Pure CSS Morphing Dark Mode Toggle
demo & codeThis Pure CSS Morphing Dark Mode Toggle is a sophisticated implementation of a theme switcher that eliminates the need for JavaScript. By utilizing the modern CSS :has() relational selector and complex transform logic, the component morphs a sun icon into a moon icon seamlessly. It offers a premium feel through the use of custom cubic-bezier timing and modular CSS construction.
Pure CSS Mix-Blend-Mode Dark Toggle
demo & codeThis Pure CSS Mix-Blend-Mode Dark Toggle offers a lightweight, JavaScript-free solution for theming. Instead of manually redefining colors for a dark theme, it utilizes a full-screen “curtain” overlay with a specific blending mode to mathematically invert the page’s color palette. The result is a smooth, wiping transition that instantly creates a high-contrast dark mode.
Smart Home Lighting Multi-State Switch
A minimalist dimmer slider that increases brightness (white bar width) with each click and resets to off after reaching the maximum level.
See the Pen Smart Home Lighting Multi-State Switch.
Ergonomic Toggle (CSS)
A hyper-realistic skeuomorphic toggle switch crafted entirely in CSS using advanced box-shadows and gradients to simulate depth and lighting.
See the Pen Ergonomic Toggle (CSS).
Skull Toggle (CSS)
A playful skeleton toggle switch animated purely with CSS. The skull handle slides via @keyframes triggered by the :checked state, while a complex hand assembly - constructed from gradients and box-shadows - slides in to “push” the toggle, creating a whimsical, interactive narrative without JavaScript.
See the Pen Skull Toggle (CSS).
Pure CSS Dark Mode Toggle Switch
This is a toggle switch that allows selecting between skeuomorphic and neumorphic design styles. It also features a dark/light theme change triggered by toggling the switch itself.
See the Pen Pure CSS Dark Mode Toggle Switch.
Volumetric 3D CSS Toggle Switch
A volumetric 3D toggle switch orchestrated via the CSS Checkbox Hack and sibling combinators, requiring minimal JavaScript. The segmented background creates a cascading flip effect using rotateX and inline transition-delay, while keyframes drive two spheres in a complex orbital path through depth using translateZ and perspective to swap positions.
See the Pen Volumetric 3D CSS Toggle Switch.
Metallic Skeuomorphic Toggle Switches
A skeuomorphic toggle design achieved by combining multiple linear-gradients for the body and box-shadow to create a volumetric effect. The smooth switching animation and “glow” in the active state are implemented via transition with a custom cubic-bezier curve.
See the Pen Metallic Skeuomorphic Toggle Switches.
Minimalist CSS Toggle Switch
This is a pure CSS toggle switch, utilizing :before and :after pseudo-elements to render the track and thumb. It demonstrates effective state management via the :checked pseudo-selector and smooth transitions on all elements for a highly responsive and clean effect.
See the Pen Minimalist CSS Toggle Switch.
3D Neon Toggle On/Off Switch
An advanced 3D toggle switch simulating a physical button with a neon glow. The effect is implemented in pure CSS using an <input type="checkbox">, and the state transition (ON/OFF) is achieved through a complex interplay of box-shadow and 3D transforms.
See the Pen 3D Neon Toggle On/Off Switch.
3D Toggle On/Off Switch v2
The use of gradients to create a realistic metallic effect and highlights on the button. Various types of linear-gradient and radial-gradient are applied to create a multi-layered background, and clip-path precisely clips the shapes of the pseudo-elements.
See the Pen 3D Toggle On/Off Switch v2.
Dark Mode Toggle Switch
A toggle switch implemented using a single <input type="checkbox"> and pseudo-elements. The “button” effect and its movement are achieved through complex, multi-layered box-shadow and the shifting of the ::before element.
See the Pen Dark Mode Toggle Switch.
Glowing On/Off Buttons
A skeuomorphic toggle button where the entire press effect is implemented in pure CSS using box-shadow and transform: scale(). JavaScript is only used to toggle the WAI-ARIA attribute aria-pressed on click.
See the Pen Glowing On/Off Buttons.
Animated Day/Night Toggle Switch
An implementation of a complex animated switcher in pure CSS, where a single line of JS is only used to toggle the .is-active class - the rest is the magic of transform and custom properties.
See the Pen Animated Day/Night Toggle Switch.
Life Paradox CSS Toggle Checkboxes
This demo shows a CSS-only custom toggle checkbox design with a dynamic visual effect, where a minimal JavaScript function cbChange(obj) enforces the ‘Life Paradox’ rule: only one box can be unchecked at any time by setting all others to checked state.
See the Pen Life Paradox CSS Toggle Checkboxes.
Neumorphic Soft UI Radio Buttons and Checkboxes
This demo explores the Neumorphic or Soft UI design trend, implementing a complete set of custom radio buttons, checkboxes, and toggle switches using only pure CSS box-shadow properties to achieve the signature concave/convex 3D-like effect, while a concise Vanilla JS script manages the dynamic background gradient on state change.
See the Pen Neumorphic Soft UI Radio Buttons and Checkboxes.
Pro-Mode Toggle Switch w/ Guard
Dual input[type="checkbox"] system for two-step activation, showcasing mastery in creating logic without JavaScript and detailed UI using a repeating-linear-gradient background and complex pseudo-elements."
See the Pen Pro-Mode Toggle Switch w/ Guard.
Pro-Mode Toggle Switch with Guard (Softer)
A technically complex stylized toggle switch utilizing advanced CSS capabilities: box-shadow for realistic depth, perspective for a 3D casing effect, and a dynamic glowing effect via the hue-rotate filter.
See the Pen Pro-Mode Toggle Switch with Guard (Softer).
Vertical Rocker Switch
A tactilely realistic vertical toggle, created using advanced CSS variable techniques and multiple box-shadow layers to mimic three-dimensional depth, combined with smooth cubic-bezier animations.
See the Pen Vertical Rocker Switch.
3D Tilt Toggle Switch
A realistic 3D toggle effect implemented entirely using pure CSS transforms (perspective, translate3d) and complex multi-step @keyframes animations to simulate press physics.
See the Pen 3D Tilt Toggle Switch.
Light/Dark Theme Switch with CSS Color-Scheme
A magnificent theme switch featuring a day-night effect, leveraging advanced CSS capabilities like color-scheme: light-dark and &:has(input:checked) to automatically invert background colors and gradients.
See the Pen Light/Dark Theme Switch with CSS Color-Scheme.
Elastic Checkboxes with Pure CSS
A demonstration of creating custom, highly styled checkbox toggles using pure CSS, featuring complex conic-gradient functions to render the tick mark and a sophisticated background with a subtle repeating pattern.
See the Pen Elastic Checkboxes with Pure CSS.
Cyberpunk CSS Switch
This cyberpunk-styled CSS switch is a great example of creating complex UI elements without JavaScript. The effect is built on CSS variables for easy customization and pseudo-elements for rendering animated on/off states using @keyframes and box-shadow.
See the Pen Cyberpunk CSS Switch.
Day-Night Toggle Switch
This switch demonstrates advanced CSS capabilities, combining radial and linear gradients with multiple backgrounds to simulate animated motion. The state change is achieved by adjusting background-position on the :checked pseudo-class.
See the Pen Day-Night Toggle Switch.
Rolling Theme Switch
An advanced Dark Mode switcher built with pure CSS, utilizing the :has() pseudo-class for seamless global theme updates. This snippet features animated SVG icons and smooth transitions, delivering a high-performance and accessible (A11y) UI component for modern frontend projects.