Skip to content

Checkbox

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

Usage

To create a checkbox, import <Checkbox> and set the checked and onCheckedChange props. Checkboxes can be true, false, or "indeterminate".

import { Checkbox } from "stylus-ui/Checkbox";
import { useState } from "react";
export default () => {
const [checked, setChecked] = useState("indeterminate");
return <Checkbox checked={checked} onCheckedChange={setChecked} />;
};

Label

An accessible label can be displayed alongside a checkbox by passing a label.

import { Checkbox } from "stylus-ui/Checkbox";
import { useState } from "react";
export default () => {
const [checked, setChecked] = useState(false);
return (
<Checkbox
checked={checked}
onCheckedChange={setChecked}
label="Accept terms and conditions"
/>
);
};

Help text

Display informative, secondary text beneath a label by passing helpText.

You agree to our Terms of Service and Privacy Policy.

import { Checkbox } from "stylus-ui/Checkbox";
import { useState } from "react";
export default () => {
const [checked, setChecked] = useState(false);
return (
<div className="max-w-[260px]">
<Checkbox
checked={checked}
onCheckedChange={setChecked}
label="Accept terms and conditions"
helpText="You agree to our Terms of Service and Privacy Policy."
/>
</div>
);
};

Sizing

A smaller version of the checkbox may be used by passing size="sm".

You agree to our Terms of Service and Privacy Policy.

import { Checkbox } from "stylus-ui/Checkbox";
import { useState } from "react";
export default () => {
const [checked, setChecked] = useState(false);
return (
<div className="max-w-[260px]">
<Checkbox
checked={checked}
onCheckedChange={setChecked}
label="Accept terms and conditions"
helpText="You agree to our Terms of Service and Privacy Policy."
size="sm"
/>
</div>
);
};

API Reference

Checkbox

Inherits properties from HTMLButtonElement.

Prop
Type
Default
align "left""right" "left"
asChild boolean false
checked boolean"indeterminate"
defaultChecked boolean"indeterminate"
disabled boolean
helpText string
label string
name string
onCheckedChange (checked: boolean | "indeterminate") => void
required boolean
size "default""sm" "default"
value string