HeroUI v3 CheckboxGroup manages a set of related checkboxes as a single form field with a shared label, description and validation. Built on the real @heroui/react package with @heroui/styles, it supports controlled selection, an indeterminate "select all" parent, disabled state, required-field validation via Form/FieldError, a Surface variant, custom check indicators, a custom render function, and rich card-style add-on rows. A thin re-export of the upstream component so consumers install and render the genuine HeroUI primitive.
Built with React and Tailwind. Copy the prompt and paste it into Claude Code, Cursor or Lovable: your agent adds HeroUI Checkbox Group to your project and fits it to your theme.
Code
How HeroUI Checkbox Group is used: the demo's code. The component's own source comes with a free account.
Usage.tsx
"use client"
import { Button, Checkbox, FieldError, Form, Label } from "@heroui/react"
import { CheckboxGroup } from "@/components/ui/heroui-checkbox-group"
export function Validation() {
return (
<Form
className="flex flex-col gap-4 px-4"
onSubmit={(e) => {
e.preventDefault();
const formData = new FormData(e.currentTarget);
const values = formData.getAll("preferences");
alert(`Selected preferences: ${values.join(", ")}`);
}}
>
<CheckboxGroup isRequired name="preferences">
<Label>Preferences</Label>
<Checkbox value="email">
<Checkbox.Content>
<Checkbox.Control>
<Checkbox.Indicator />
</Checkbox.Control>
Email notifications
</Checkbox.Content>
</Checkbox>
<Checkbox value="sms">
<Checkbox.Content>
<Checkbox.Control>
<Checkbox.Indicator />
</Checkbox.Control>
SMS notifications
</Checkbox.Content>
</Checkbox>
<Checkbox value="push">
<Checkbox.Content>
<Checkbox.Control>
<Checkbox.Indicator />
</Checkbox.Control>
Push notifications
</Checkbox.Content>
</Checkbox>
<FieldError>Please select at least one notification method.</FieldError>
</CheckboxGroup>
<Button type="submit">Submit</Button>
</Form>
);
}
export default Validation
















