Installation
npx shadcn@latest add @iconiq/b-checkbox-groupProps
CheckboxGroupOption
Each option row is described with a plain object and rendered as an animated button.
labelstringRequired
valuestringRequired
descriptionstringgroupstringdisabledbooleandisabledReasonstringCheckboxGroup
Animated multi-select list with optimistic toggle feedback, stable output ordering, and optional disclosure for longer option sets.
optionsCheckboxGroupOption[]Required
valuestring[]Default []
onChange(value: string[]) => voidclassNamestringmaxVisiblenumbershowMoreLabelstringshowLessLabelstringThe component previews the next state immediately after a click, then re-syncs with whatever value the parent sends back.
If a selected option would be hidden by maxVisible, the list stays expanded so users do not lose track of active choices.
This Base UI version keeps checkbox-group semantics and hidden form inputs through the underlying Base UI primitives, while preserving the same visible row motion.
Motion and accessibility
The component leans on hover surfaces and AnimatePresence rather than native checkbox UI.
Selection is still represented by a Lucide Check icon instead of a filled checkbox background.
The hover surface, tap spring, check icon entrance, and disclosure behavior match the original checkbox-group motion exactly.
Base UI supplies the checkbox and group semantics underneath the same animated shell.
Registry bundle
Install the exact registry entry shown on the right when you want the component file and its declared runtime dependencies together.
Dependencies: @base-ui/react, motion, lucide-react.
This page documents the Base UI install only, because Radix UI does not ship a dedicated checkbox-group primitive.
The generated registry file is /r/b-checkbox-group.json.