shadcn.io is an independent project built on shadcn/ui
A bordered card shows a plus icon on a primary tile, the label Enable Feature, the line A short description goes here, and a switch that starts off.
Use a card when one feature needs an icon and a sentence of its own. A plain row is enough for a list of settings. If it submits with a form, a Checkbox matches that save. In React, Base UI does not store Enable Feature anywhere else.
Installation
Anatomy

Usage
<div className="flex items-start gap-3 rounded-lg border bg-background p-4">
<div className="flex size-10 shrink-0 items-center justify-center rounded-lg bg-primary text-primary-foreground">
<PlusIcon aria-hidden="true" className="size-5" />
</div>
<Field className="flex-1" orientation="horizontal">
<FieldContent>
<FieldLabel
className="font-medium"
htmlFor="switch-feature-card-toggle"
>
Enable Feature
</FieldLabel>
<FieldDescription>A short description goes here.</FieldDescription>
</FieldContent>
<Switch id="switch-feature-card-toggle" />
</Field>
</div>FAQ
How is the plus icon drawn?
PlusIcon is size-5 inside a size-10 shrink-0 rounded-lg tile with bg-primary text-primary-foreground, so it follows your theme. The card is flex items-start gap-3 rounded-lg border bg-background p-4.
How is Enable Feature tied to the switch?
A horizontal Field holds a FieldContent, with the FieldLabel and the FieldDescription, and then the Switch.
The Switch has an id, and the FieldLabel points at it with htmlFor.
How do I control this switch in React?
Nothing in this file sets the on state, so the switch starts off and keeps its own state. To control it, keep the on or off state in your own state and pass it back. To start it on, use the default prop.
The prop is defaultChecked.
Pass checked; onCheckedChange receives the new boolean.
Does this switch submit with a form?
Give it a name. When on, it submits its value, which defaults to on. When off, it submits nothing.
With Base UI, uncheckedValue sets what it submits when off.
API Reference
Field
Sets orientation="horizontal" and htmlFor="switch-feature-card-toggle". The rest is on the Field page.
Switch
Sets id="switch-feature-card-toggle". The rest is on the Switch page.




