ns-ui
A checkbox and its tri-state select-all cousin whose mark is inked on by a variable-width calligraphic pen stroke — thin entry, thick corner flick, a hair of overshoot at the tip — so checked, unchecked and indeterminate read as three distinct pen gestures.
Use when checked, unchecked and indeterminate must be three unmistakable states at small size, including the parent of a partially selected group, each a distinct pen gesture with its own entry, corner and taper rather than a glyph swap; pick checkbox-tally-notch instead when the group needs a running aggregate in its header, or checkbox-domino-run when the interaction being designed is select-all across a long list.
Install
npx shadcn add https://design.helpmarq.com /r/checkbox-ink-stroke.jsonns-ui / checkbox-ink-stroke — the everyday checkbox and its select-all cousin
| Prop | Type | Default | Description |
|---|---|---|---|
| checked? | NibCheckValue | — | controlled value; omit for uncontrolled. "indeterminate" is visual/AT only — the underlying value is boolean |
| defaultChecked? | NibCheckValue | — | — |
| onCheckedChange? | (checked: boolean) => void | — | — |
| disabled? | boolean | — | — |
| label? | ReactNode | — | visible label; also becomes the accessible name via native label association |
| id? | string | — | — |
| name? | string | — | — |
| value? | string | — | — |
| className? | string | — | — |
| aria-label? | string | — | — |