A checkbox that fills with a little pour of liquid before the tick draws in, and drains when you uncheck it. A select-all box can sit part full as a list gets done.
akacheckbox·checklist·todo
Run this in any project set up for the shadcn CLI. It copies the Liquid Checkbox source into your components folder, so the code is yours to change.
npx shadcn@latest add https://devl.dev/r/liquid-checkbox.jsonImport it and render it. Every prop has a typed default, so it works straight away, and you pass your own data when you’re ready.
import { LiquidCheckbox } from "@/components/liquid-checkbox";
export default function Page() {
return <LiquidCheckbox />;
}A free React component in the Liquid collection, written in TypeScript with Tailwind CSS on coss ui. MIT licensed.
Read from the Liquid Checkbox source. Everything is optional unless it says required. It also accepts Omit<CheckboxPrimitive.Root.Props, "checked" | "defaultChecked" | "onCheckedChange" | "children" | "className">.
| Prop | Type | Default |
|---|---|---|
| checked | boolean | — |
| defaultChecked | boolean | false |
| onCheckedChange | (checked: boolean) => void | — |
| fill | number | 0 |
| label | ReactNode | — |
| description | ReactNode | — |
| size | keyof typeof SIZES | "default" |
| tone | keyof typeof TONES | "primary" |
| strike | boolean | false |
| className | string | — |