shadcn.io is an independent project built on shadcn/ui
View opens Status Bar, Activity Bar, and Panel as separate checkbox rows under Appearance. The button always reads View. The checks are only inside the menu.
Use it when several panels can be on together and should stay out of the toolbar. A choice that stays on the page can be a Switch. In React, Ark UI does not hide a real panel for you.
Installation
Anatomy

Usage
<DropdownMenu>
<DropdownMenuTrigger asChild>
<Button variant="outline">
<SlidersHorizontalIcon aria-hidden="true" data-icon="inline-start" />
View
</Button>
</DropdownMenuTrigger>
<DropdownMenuContent className="w-56">
<DropdownMenuGroup>
<DropdownMenuLabel>Appearance</DropdownMenuLabel>
<DropdownMenuSeparator />
<DropdownMenuCheckboxItem
checked={statusBar}
onCheckedChange={setStatusBar}
value="status-bar"
>
Status Bar
</DropdownMenuCheckboxItem>
<DropdownMenuCheckboxItem
checked={activityBar}
onCheckedChange={setActivityBar}
value="activity-bar"
>
Activity Bar
</DropdownMenuCheckboxItem>
<DropdownMenuCheckboxItem
checked={panel}
onCheckedChange={setPanel}
value="panel"
>
Panel
{/* The rest of the file is under Installation. */}FAQ
Which rows start checked?
Status Bar starts checked; Activity Bar and Panel start off. Each row toggles on its own.
Each DropdownMenuCheckboxItem takes checked, onCheckedChange, which receives a boolean, and a value.
Does the View button show which bars are on?
No. It always reads View, after a sliders icon. The checks inside the menu are the only place the state shows.
What wraps the label and the rows?
One DropdownMenuGroup holds the Appearance DropdownMenuLabel, a separator and the three rows, so the label names the group for screen readers.
API Reference
Dropdown Menu
Sets asChild, checked={statusBar}, onCheckedChange={setStatusBar}, value="status-bar", checked={activityBar} and onCheckedChange={setActivityBar}. The rest is on the Dropdown Menu page.
Button
Sets variant="outline". The rest is on the Button page.





