Back to Shadcn Ui

Checkbox

apps/v4/content/docs/components/base/checkbox.mdx

latest2.4 KB
Original Source

<ComponentPreview styleName="base-nova" name="checkbox-demo" previewClassName="h-80" />

Installation

<CodeTabs> <TabsList> <TabsTrigger value="cli">Command</TabsTrigger> <TabsTrigger value="manual">Manual</TabsTrigger> </TabsList> <TabsContent value="cli">
bash
npx shadcn@latest add checkbox
</TabsContent> <TabsContent value="manual"> <Steps className="mb-0 pt-2">

<Step>Install the following dependencies:</Step>

bash
npm install @base-ui/react

<Step>Copy and paste the following code into your project.</Step>

<ComponentSource name="checkbox" title="components/ui/checkbox.tsx" styleName="base-nova" />

<Step>Update the import paths to match your project setup.</Step>

</Steps> </TabsContent> </CodeTabs>

Usage

tsx
import { Checkbox } from "@/components/ui/checkbox"
tsx
<Checkbox />

Checked State

Use defaultChecked for uncontrolled checkboxes, or checked and onCheckedChange to control the state.

tsx
import * as React from "react"

export function Example() {
  const [checked, setChecked] = React.useState(false)

  return <Checkbox checked={checked} onCheckedChange={setChecked} />
}

Invalid State

Set aria-invalid on the checkbox and data-invalid on the field wrapper to show the invalid styles.

<ComponentPreview styleName="base-nova" name="checkbox-invalid" />

Examples

Basic

Pair the checkbox with Field and FieldLabel for proper layout and labeling.

<ComponentPreview styleName="base-nova" name="checkbox-basic" />

Description

Use FieldContent and FieldDescription for helper text.

<ComponentPreview styleName="base-nova" name="checkbox-description" />

Disabled

Use the disabled prop to prevent interaction and add the data-disabled attribute to the <Field> component for disabled styles.

<ComponentPreview styleName="base-nova" name="checkbox-disabled" />

Group

Use multiple fields to create a checkbox list.

<ComponentPreview styleName="base-nova" name="checkbox-group" />

Table

<ComponentPreview styleName="base-nova" name="checkbox-table" previewClassName="p-4 md:p-8" />

RTL

To enable RTL support in shadcn/ui, see the RTL configuration guide.

<ComponentPreview styleName="base-nova" name="checkbox-rtl" direction="rtl" previewClassName="h-80" />

API Reference

See the Base UI documentation for more information.