1. You can use what you make here in personal and client work.
2. Please don't resell the components themselves.
3. We may update these terms, and we will tell you when we do.
4. That's all. Thanks for reading to the end.
Press and drag down the boxes
Markup where the component goes, CSS in your stylesheet, script before </body>. In Vue, Svelte or Angular, call initCbSweep(el) on the mounted element instead.
Paste into Claude, ChatGPT or Cursor after filling in {{USER_STACK}}, {{USER_STYLING}} and {{USER_CONSTRAINTS}}. Neutral keeps the greys you see here; Match my project asks the model to map them onto your own colour tokens.
Needs a free account token. Get a token
npx shadcn@latest add @movin/checkbox-sweepPress on a box and drag down the column: every box you pass takes the same state, ticked or cleared, like painting. Works with a finger too.
Keyboard and screen readers
Every row is a native checkbox inside a <label>, in a role="group" with a name, so Tab and Space work one box at a time.
Reduced motion
The boxes do not pop.
Use it in anything you build, commercial and client work included. Licence
1. You can use what you make here in personal and client work.
2. Please don't resell the components themselves.
3. We may update these terms, and we will tell you when we do.
4. That's all. Thanks for reading to the end.