# V sheet 14

> Keyboard Shortcuts Reference

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

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

## Install

```bash
npx shadcn@latest add https://ui.cnippet.dev/r/v-sheet-14.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/sheet`

## Files

### `registry/default/variants/v-sheet-14.tsx`

```tsx
import { KeyboardIcon } from "lucide-react";
import { Badge } from "@/registry/default/ui/badge";
import { Button } from "@/registry/default/ui/button";
import { Separator } from "@/registry/default/ui/separator";
import {
  Sheet,
  SheetClose,
  SheetDescription,
  SheetFooter,
  SheetHeader,
  SheetPanel,
  SheetPopup,
  SheetTitle,
  SheetTrigger,
} from "@/registry/default/ui/sheet";

const shortcuts = [
  {
    items: [
      { keys: ["⌘", "K"], label: "Open command palette" },
      { keys: ["⌘", "P"], label: "Quick file open" },
      { keys: ["⌘", "Shift", "F"], label: "Search in project" },
      { keys: ["⌘", "/"], label: "Toggle comment" },
    ],
    section: "General",
  },
  {
    items: [
      { keys: ["⌘", "S"], label: "Save file" },
      { keys: ["⌘", "Z"], label: "Undo" },
      { keys: ["⌘", "Shift", "Z"], label: "Redo" },
      { keys: ["⌘", "D"], label: "Duplicate line" },
    ],
    section: "Editor",
  },
  {
    items: [
      { keys: ["⌘", "B"], label: "Toggle sidebar" },
      { keys: ["⌘", "J"], label: "Toggle panel" },
      { keys: ["⌘", "`"], label: "Toggle terminal" },
    ],
    section: "View",
  },
];

export default function Particle() {
  return (
    <Sheet>
      <SheetTrigger render={<Button variant="outline" />}>
        <KeyboardIcon aria-hidden="true" />
        Shortcuts
      </SheetTrigger>
      <SheetPopup>
        <SheetHeader>
          <SheetTitle>Keyboard Shortcuts</SheetTitle>
          <SheetDescription>
            A quick reference for available keyboard shortcuts.
          </SheetDescription>
        </SheetHeader>
        <SheetPanel className="space-y-4">
          {shortcuts.map(({ items, section }, i) => (
            <div key={section}>
              {i > 0 && <Separator className="mb-4" />}
              <p className="mb-2 font-medium text-muted-foreground text-xs uppercase tracking-wide">
                {section}
              </p>
              <div className="space-y-1">
                {items.map(({ keys, label }) => (
                  <div
                    className="flex items-center justify-between py-1"
                    key={label}
                  >
                    <span className="text-sm">{label}</span>
                    <div className="flex items-center gap-1">
                      {keys.map((k) => (
                        <Badge
                          className="h-5 rounded px-1.5 font-mono text-[10px]"
                          key={k}
                          variant="outline"
                        >
                          {k}
                        </Badge>
                      ))}
                    </div>
                  </div>
                ))}
              </div>
            </div>
          ))}
        </SheetPanel>
        <SheetFooter>
          <SheetClose render={<Button className="w-full" variant="outline" />}>
            Close
          </SheetClose>
        </SheetFooter>
      </SheetPopup>
    </Sheet>
  );
}
```
