A Complete State Machine Made With HTML Checkboxes and CSS

State machines are typically expressed on the web in JavaScript and often through the popular XState library. But the concept of a state machine is adaptable to just about any language, including, amazingly, HTML and CSS. In this article, we’re going to do exactly that. I recently built a website that included a “no client JavaScript” constraint and I needed one particular unique interactive feature. The key to all this is using and elements to hold a … Read article “A Complete State Machine Made With HTML Checkboxes and CSS”

The post A Complete State Machine Made With HTML Checkboxes and CSS appeared first on CSS-Tricks. You can support CSS-Tricks by being an MVP Supporter.

https://css-tricks.com/a-complete-state-machine-made-with-html-checkboxes-and-css/

Created 5y | Dec 2, 2020, 7:21:13 PM


Login to add comment

Other posts in this group

The Layout Maestro Course

Layout. It’s one of those easy-to-learn, difficult-to-master things, like they say about playing bass. Not because it’s innately difficult to, say, place two elements next to each other

Jul 11, 2025, 6:50:13 PM | CSS tricks
Scroll-Driven Sticky Heading

I was playing around with scroll-driven animations, just searching for all sorts of random things you could do. That’s when I came up with the idea to animate main headings and, using scroll-driven

Jul 11, 2025, 2:20:16 PM | CSS tricks
Better CSS Shapes Using shape() — Part 4: Close and Move

This is the fourth post in a series about the new CSS shape() function. So far, we’ve covered the most common commands y

Jul 7, 2025, 12:50:19 PM | CSS tricks
The Gap Strikes Back: Now Stylable

Styling the space between layout items — the gap — has typically required some clever workarounds. But a new CSS feature changes all that with just a few simple CSS properties that make it easy, ye

Jul 1, 2025, 1:20:09 PM | CSS tricks
Using CSS Cascade Layers With Tailwind Utilities

Being the bad boy I am, I don't take Tailwind's default approach to cascade layers as the "best" one. Over a year experimenting with Tailwind and vanilla CSS, I've come across what I believe is a b

Jun 30, 2025, 2:10:12 PM | CSS tricks
CSS Blob Recipes

Blob, Blob, Blob. What's the most effective way to create blob shapes in CSS? Turns out, as always, there are many. Let's compare them together!


Jun 27, 2025, 2:10:23 PM | CSS tricks
KelpUI

KelpUI is new library that Chris Ferdinandi is developing, designed to leverage newer CSS features and Web Components. I've enjoyed following Chris as he's publishe

Jun 26, 2025, 5:20:09 PM | CSS tricks