# V drawer 6

> Filter & Sort Panel

A shadcn/ui block from the [@cnippet](https://ui.cnippet.dev/) registry, listed on [shadcn.exchange](https://shadcn.exchange/r/cnippet/v-drawer-6).

- Page, with a live preview: https://shadcn.exchange/r/cnippet/v-drawer-6
- Screenshot: https://abzjhwgwpdpz7ua5.public.blob.vercel-storage.com/shots/cnippet/v-drawer-6-light-2a32e3a55898e9ab.png
- Registry item: https://ui.cnippet.dev/r/v-drawer-6.json
- Categories: drawer
- Listed: 2026-10-13, source last changed 2026-10-13

## Install

```bash
npx shadcn@latest add https://ui.cnippet.dev/r/v-drawer-6.json
```

Run it in a project that has shadcn/ui set up. It adds the files below and installs what they depend on.

## Dependencies

- Registry items: `@cnippet/drawer`

## Files

### `registry/default/variants/v-drawer-6.tsx`

```tsx
import { SlidersHorizontalIcon } from "lucide-react";
import { Button } from "@/registry/default/ui/button";
import {
  Drawer,
  DrawerClose,
  DrawerFooter,
  DrawerHeader,
  DrawerMenu,
  DrawerMenuCheckboxItem,
  DrawerMenuGroup,
  DrawerMenuGroupLabel,
  DrawerMenuRadioGroup,
  DrawerMenuRadioItem,
  DrawerMenuSeparator,
  DrawerPanel,
  DrawerPopup,
  DrawerTitle,
  DrawerTrigger,
} from "@/registry/default/ui/drawer";

export default function Component() {
  return (
    <Drawer position="right">
      <DrawerTrigger render={<Button variant="outline" />}>
        <SlidersHorizontalIcon className="size-4" />
        Filters
      </DrawerTrigger>
      <DrawerPopup showCloseButton variant="straight">
        <DrawerHeader>
          <DrawerTitle>Filter & Sort</DrawerTitle>
        </DrawerHeader>
        <DrawerPanel>
          <DrawerMenu>
            <DrawerMenuGroup>
              <DrawerMenuGroupLabel>Category</DrawerMenuGroupLabel>
              <DrawerMenuCheckboxItem defaultChecked>
                Design
              </DrawerMenuCheckboxItem>
              <DrawerMenuCheckboxItem defaultChecked>
                Engineering
              </DrawerMenuCheckboxItem>
              <DrawerMenuCheckboxItem>Marketing</DrawerMenuCheckboxItem>
              <DrawerMenuCheckboxItem>Product</DrawerMenuCheckboxItem>
            </DrawerMenuGroup>
            <DrawerMenuSeparator />
            <DrawerMenuGroup>
              <DrawerMenuGroupLabel>Status</DrawerMenuGroupLabel>
              <DrawerMenuCheckboxItem defaultChecked>
                Active
              </DrawerMenuCheckboxItem>
              <DrawerMenuCheckboxItem>Archived</DrawerMenuCheckboxItem>
              <DrawerMenuCheckboxItem>Draft</DrawerMenuCheckboxItem>
            </DrawerMenuGroup>
            <DrawerMenuSeparator />
            <DrawerMenuGroup>
              <DrawerMenuGroupLabel>Sort by</DrawerMenuGroupLabel>
              <DrawerMenuRadioGroup defaultValue="newest">
                <DrawerMenuRadioItem value="newest">Newest</DrawerMenuRadioItem>
                <DrawerMenuRadioItem value="oldest">Oldest</DrawerMenuRadioItem>
                <DrawerMenuRadioItem value="name">Name A–Z</DrawerMenuRadioItem>
                <DrawerMenuRadioItem value="popular">
                  Most popular
                </DrawerMenuRadioItem>
              </DrawerMenuRadioGroup>
            </DrawerMenuGroup>
          </DrawerMenu>
        </DrawerPanel>
        <DrawerFooter>
          <DrawerClose render={<Button variant="ghost" />}>Reset</DrawerClose>
          <DrawerClose render={<Button />}>Apply filters</DrawerClose>
        </DrawerFooter>
      </DrawerPopup>
    </Drawer>
  );
}
```
