ns-ui

Checkbox Domino Run

Select-all where the change propagates like a domino run: flip the master and a wavefront tips down the list, each row's checkbox flipping and shoving the next — click any row mid-run to halt the wave there, leaving the rest untouched.

Use when a bulk select-all/mark-all-read/enable-all over a visible list, where users routinely want 'all except a few' — clicking any row mid-run halts the propagating wave there, leaving rows beyond it untouched, so there's no all-then-undo. Prefer a plain checked-count select-all when the list is never long enough for mid-toggle interruption to matter; prefer this when it is.

Install

npx shadcn add https://design.helpmarq.com/r/checkbox-domino-run.json
  • checkbox
  • select-all
  • bulk-action
  • list
  • form
  • micro-interaction

ns-ui / checkbox-domino-run

Flip the master checkbox — a wavefront tips down the list, marking each row read as it passes. Click any row while the wave is live to halt it there; everything below stays untouched.

Props

PropTypeDefaultDescription
itemsToppleRunItem[]Rows the master toggle governs, top to bottom = wave direction.
label?stringLabel for the master control. @default "Select all"
defaultChecked?string[]Ids checked on mount. @default []
onChange?(checkedIds: string[]) => voidFires whenever the checked set changes, including mid-run commits.
className?string