CSS-only Tailwind CSS kbd component for displaying keyboard shortcuts and key combinations. Size variants. WCAG AA accessible, works with Django, HTMX, Laravel, React, and any stack.
Keyboard key components visually represent keyboard input, useful for documenting shortcuts, hotkeys, and keyboard navigation. Built with semantic HTML, kbd elements communicate user actions and interaction patterns. The Frutjam kbd system supports multiple sizes and styles—ideal for shortcut documentation, tutorial overlays, and keyboard guides.
CSS-only, no JavaScript required. WCAG AA accessible and framework-agnostic — works with Django, HTMX, Laravel, React, and any stack.
| Class | Type | Description |
|---|---|---|
| kbd | Base | Keyboard key styled with raised border and shadow |
| kbd-xs | Size | Extra small (0.75rem font) |
| kbd-sm | Size | Small (0.8125rem font) |
| kbd-md | Size | Medium (0.875rem font, default) |
| kbd-lg | Size | Large (1rem font) |
| kbd-xl | Size | Extra large (1.125rem font) |
Basic Usage
1 2 3 | <kbd class="kbd">A</kbd> <kbd class="kbd">B</kbd> <kbd class="kbd">C</kbd> |
1 2 3 | <kbd className="kbd">A</kbd> <kbd className="kbd">B</kbd> <kbd className="kbd">C</kbd> |
Key Combinations
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | <div class="space-y-2"> <div> <span class="text-sm">Copy:</span> <kbd class="kbd">Ctrl</kbd> <span>+</span> <kbd class="kbd">C</kbd> </div> <div> <span class="text-sm">Paste:</span> <kbd class="kbd">Ctrl</kbd> <span>+</span> <kbd class="kbd">V</kbd> </div> <div> <span class="text-sm">Undo:</span> <kbd class="kbd">Ctrl</kbd> <span>+</span> <kbd class="kbd">Z</kbd> </div> </div> |
Key Sizes
1 2 3 4 | <kbd class="kbd kbd-xs">Xs</kbd> <kbd class="kbd kbd-sm">Sm</kbd> <kbd class="kbd kbd-md">Md</kbd> <kbd class="kbd kbd-lg">Lg</kbd> |
Special Keys
1 2 3 4 5 6 7 8 | <div class="space-x-2"> <kbd class="kbd">Enter</kbd> <kbd class="kbd">Tab</kbd> <kbd class="kbd">Shift</kbd> <kbd class="kbd">Alt</kbd> <kbd class="kbd">Esc</kbd> <kbd class="kbd">Space</kbd> </div> |
Arrow Keys
1 2 3 4 5 6 7 8 | <div class="inline-grid grid-cols-3 gap-1"> <div></div> <kbd class="kbd">↑</kbd> <div></div> <kbd class="kbd">←</kbd> <kbd class="kbd">↓</kbd> <kbd class="kbd">→</kbd> </div> |
Keyboard Shortcut Guide
Keyboard Shortcuts
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | <div class="card bg-base-100 shadow-xl max-w-md"> <div class="card-content"> <h2 class="card-title text-lg">Keyboard Shortcuts</h2> <div class="space-y-2 text-sm"> <div class="flex justify-between"> <span>Search</span> <div><kbd class="kbd kbd-sm">Ctrl</kbd> + <kbd class="kbd kbd-sm">K</kbd></div> </div> <div class="flex justify-between"> <span>Focus</span> <div><kbd class="kbd kbd-sm">/</kbd></div> </div> <div class="flex justify-between"> <span>New</span> <div><kbd class="kbd kbd-sm">Ctrl</kbd> + <kbd class="kbd kbd-sm">N</kbd></div> </div> </div> </div> </div> |
Using Claude Code, Cursor, or another AI editor?
Cherry MCP gives your AI editor the exact KBD class names and structure on demand. No more hallucinated classes.