Overview
Get Started
A component for displaying keyboard shortcuts.
⌘⇧⌥⌃Ctrl+B
import { Kbd, KbdGroup } from "@/components/ui/kbd";
export function KbdDemo() {
return (
<div className="flex flex-col items-center gap-4">
<KbdGroup>
<Kbd>⌘</Kbd>
<Kbd>⇧</Kbd>
<Kbd>⌥</Kbd>
<Kbd>⌃</Kbd>
</KbdGroup>
<KbdGroup>
<Kbd>Ctrl</Kbd>
<span>+</span>
<Kbd>B</Kbd>
</KbdGroup>
</div>
);
}Installation
import { cn } from "@/lib/cn";
function Kbd({ className, ...props }: React.ComponentProps<"kbd">) {
return (
<kbd
data-slot="kbd"
className={cn(
"pointer-events-none inline-flex h-5 min-w-5 select-none items-center justify-center gap-1 rounded-sm bg-muted px-1 font-medium font-mono text-muted-foreground text-xs [&_svg:not([class*='size-'])]:size-3",
className
)}
{...props}
/>
);
}
function KbdGroup({ className, ...props }: React.ComponentProps<"div">) {
return (
<kbd
data-slot="kbd-group"
className={cn("inline-flex items-center gap-1", className)}
{...props}
/>
);
}
export { Kbd, KbdGroup };Usage
import { Kbd } from "@/components/ui/kbd";<Kbd>Ctrl</Kbd>Examples
Kbd group
Use Ctrl + BCtrl + K to open the command palette
import { Kbd, KbdGroup } from "@/components/ui/kbd";
export function KbdDemo() {
return (
<p className="text-muted-foreground text-sm">
Use{" "}
<KbdGroup>
<Kbd>Ctrl + B</Kbd>
<Kbd>Ctrl + K</Kbd>
</KbdGroup>{" "}
to open the command palette
</p>
);
}With button
import { Button } from "@/components/ui/button";
import { Kbd } from "@/components/ui/kbd";
export function KbdDemo() {
return (
<Button variant="outline">
Accept{" "}
<Kbd data-icon="inline-end" className="translate-x-0.5">
⏎
</Kbd>
</Button>
);
}With tooltip
import { Button } from "@/components/ui/button";
import { ButtonGroup } from "@/components/ui/button-group";
import { Kbd, KbdGroup } from "@/components/ui/kbd";
import { Tooltip, TooltipPopup, TooltipTrigger } from "@/components/ui/tooltip";
export function KbdDemo() {
return (
<div className="flex flex-wrap gap-4">
<ButtonGroup>
<Tooltip>
<TooltipTrigger render={<Button variant="outline">Save</Button>} />
<TooltipPopup>
Save Changes <Kbd>S</Kbd>
</TooltipPopup>
</Tooltip>
<Tooltip>
<TooltipTrigger render={<Button variant="outline">Print</Button>} />
<TooltipPopup>
Print Document{" "}
<KbdGroup>
<Kbd>Ctrl</Kbd>
<Kbd>P</Kbd>
</KbdGroup>
</TooltipPopup>
</Tooltip>
</ButtonGroup>
</div>
);
}With input group
Use the Kbd component inside a InputGroupAddon component to display a keyboard key inside an input group.
⌘K
import { IconSearch } from "@tabler/icons-react";
import { InputGroup, InputGroupAddon, InputGroupInput } from "@/components/ui/input-group";
import { Kbd } from "@/components/ui/kbd";
export function KbdDemo() {
return (
<div className="flex w-full max-w-xs flex-col gap-6">
<InputGroup>
<InputGroupInput placeholder="Search..." />
<InputGroupAddon>
<IconSearch />
</InputGroupAddon>
<InputGroupAddon align="inline-end">
<Kbd>⌘</Kbd>
<Kbd>K</Kbd>
</InputGroupAddon>
</InputGroup>
</div>
);
}