# V popover 12

> Accent Color Picker

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

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

## Install

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

## Files

### `registry/default/variants/v-popover-12.tsx`

```tsx
import { KeyboardIcon } from "lucide-react";
import { Button } from "@/registry/default/ui/button";
import { Kbd } from "@/registry/default/ui/kbd";
import {
  Popover,
  PopoverContent,
  PopoverTrigger,
} from "@/registry/default/ui/popover";

const groups = [
  {
    label: "Navigation",
    shortcuts: [
      { description: "Go to home", keys: ["G", "H"] },
      { description: "Go to projects", keys: ["G", "P"] },
      { description: "Go to settings", keys: ["G", "S"] },
    ],
  },
  {
    label: "Actions",
    shortcuts: [
      { description: "Open command menu", keys: ["⌘", "K"] },
      { description: "Create new item", keys: ["⌘", "N"] },
      { description: "Toggle shortcuts", keys: ["⌘", "/"] },
    ],
  },
] as const;

export function Pattern() {
  return (
    <div className="flex min-h-25 items-center justify-center">
      <Popover>
        <PopoverTrigger render={<Button variant="outline" />}>
          <KeyboardIcon aria-hidden="true" />
          Shortcuts
        </PopoverTrigger>
        <PopoverContent align="center" className="w-64 gap-0 p-0">
          <div className="border-b px-0 py-3">
            <h4 className="font-semibold text-sm">Keyboard Shortcuts</h4>
            <p className="mt-0.5 text-muted-foreground text-xs">
              Speed up your workflow.
            </p>
          </div>
          <div className="divide-y">
            {groups.map((group) => (
              <div className="space-y-2 px-0 py-3" key={group.label}>
                <p className="font-semibold text-[10px] text-muted-foreground uppercase tracking-wider">
                  {group.label}
                </p>
                <div className="space-y-2">
                  {group.shortcuts.map(({ keys, description }) => (
                    <div
                      className="flex items-center justify-between gap-4"
                      key={description}
                    >
                      <span className="text-muted-foreground text-sm">
                        {description}
                      </span>
                      <div className="flex shrink-0 items-center gap-1">
                        {keys.map((key) => (
                          <Kbd key={key}>{key}</Kbd>
                        ))}
                      </div>
                    </div>
                  ))}
                </div>
              </div>
            ))}
          </div>
          <div className="border-t px-0 py-2.5">
            <p className="flex items-center gap-1 text-muted-foreground text-xs">
              Press <Kbd>⌘</Kbd> <Kbd>/</Kbd> to open anytime.
            </p>
          </div>
        </PopoverContent>
      </Popover>
    </div>
  );
}
```
