Sabil UI

Search documentation

Search for a command to run...

Components

Checkbox

A control that allows the user to toggle between checked and not checked.

By clicking this checkbox, you agree to the terms.

Installation#

  1. Install the dependencies

    npm install cn radix-ui lucide-react
  2. Copy the source into your project

    components/ui/checkbox.tsx
    "use client"import * as React from "react"import { cn } from "cn"import { Checkbox as CheckboxPrimitive } from "radix-ui"import { CheckIcon } from "lucide-react"function Checkbox({  className,  ...props}: React.ComponentProps<typeof CheckboxPrimitive.Root>) {  return (    <CheckboxPrimitive.Root      data-slot="checkbox"      className={cn(        "peer relative flex size-4 shrink-0 items-center justify-center rounded-[4px] border border-input transition-colors outline-none group-has-disabled/field:opacity-50 group-has-[:focus-visible]/field-label:ring-0 group-has-[:focus-visible]/field-label:not-data-checked:border-input after:absolute after:-inset-x-3 after:-inset-y-2 focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 aria-invalid:aria-checked:border-primary dark:bg-input/30 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 data-checked:border-primary data-checked:bg-primary data-checked:text-primary-foreground group-has-[:focus-visible]/field-label:data-checked:border-primary dark:data-checked:bg-primary",        className      )}      {...props}    >      <CheckboxPrimitive.Indicator        data-slot="checkbox-indicator"        className="grid place-content-center text-current transition-none [&>svg]:size-3.5"      >        <CheckIcon        />      </CheckboxPrimitive.Indicator>    </CheckboxPrimitive.Root>  )}export { Checkbox }
  3. Make sure the foundation is in place

    Components read their colors, radius and surfaces from the tokens in app/globals.css. See Theming.

Usage#

import { Checkbox } from "@/components/ui/checkbox"

Examples#

Basic

Description

By clicking this checkbox, you agree to the terms and conditions.

Disabled

Group

Show these items on the desktop:

Select the items you want to show on the desktop.

Invalid

Table

NameEmailRole
Sarah Chensarah.chen@example.comAdmin
Marcus Rodriguezmarcus.rodriguez@example.comUser
Priya Patelpriya.patel@example.comUser
David Kimdavid.kim@example.comEditor