Hotkey
Analiza, etiqueta, anuncia y reconoce atajos de teclado, con ⌘ en plataformas Apple y Ctrl en el resto.
- Apple
- ⇧⌘K
- Windows and Linux
- Shift+Ctrl+K
- Screen readers
- Shift Command K
- parseHotkey
- [["shift","mod","k"]]
Click outside the field and press Shift Command Kmatched 0×
pnpm dlx shadcn@latest add https://hextaui.com/r/hotkey.jsonAñade la utilidad y todo aquello de lo que depende a tu proyecto.
Copia y pega el siguiente código en tu proyecto.
lib/hotkey.ts Actualiza las rutas de importación para que coincidan con la configuración de tu proyecto.
Escribe cada atajo una sola vez, como cadena, y usa esa misma cadena para mostrarlo, anunciarlo y compararlo. mod significa ⌘ en las plataformas Apple y Ctrl en todas las demás. Casi siempre es lo que quieres, ya que Ctrl+K en un Mac y ⌘K en Windows se sienten ambos fuera de lugar.
Las teclas se separan con + y no distinguen mayúsculas de minúsculas. Las teclas con nombre usan el valor KeyboardEvent.key en minúsculas, como enter, tab, pageup o f5. Usa space para la barra espaciadora.
parseHotkey devuelve un array por acorde, con los alias resueltos y los modificadores ordenados según el orden de Apple: Control, Option, Shift, Command. Cada etiqueta construida a partir de él se lee en el orden en que la gente espera verla.
Las plataformas Apple usan símbolos sin separador, como los muestran los menús. Windows y Linux usan palabras unidas por +. Los símbolos son difíciles de leer en voz alta, así que spokenKey da el nombre que un lector de pantalla debe anunciar. <Kbd keys> muestra el símbolo y pone el nombre hablado en texto oculto visualmente.
useIsApple() elige la plataforma. Devuelve true en el servidor y durante la hidratación, y luego la respuesta real, de modo que un visitante de Windows ve brevemente ⌘ antes de Ctrl en lugar de recibir un error de hidratación.
Escucha de atajos
matchesHotkey comprueba un evento keydown contra un atajo. Los modificadores deben coincidir exactamente, así que mod+b no se dispara con mod+shift+b.
- Las letras y los dígitos también coinciden por tecla física, así que
alt+kfunciona en un Mac, donde Option+K escribe˚. - Las letras con Shift coinciden:
shift+kcoincide con laKque produce Shift. - Compara un solo acorde. Para secuencias como
g i, rastrea tú mismo el acorde anterior. - Omite los atajos sin modificadores mientras el foco está en un campo de texto, para que escribir una letra nunca dispare un comando.
| Exportación | Descripción |
|---|---|
parseHotkey(hotkey) | string[][]: un array por acorde, con los alias resueltos y los modificadores ordenados. |
formatHotkey(hotkey, apple) | La etiqueta de un acorde, como ⇧⌘K o Shift+Ctrl+K. |
keyLabel(key, apple) | La etiqueta visible para el nombre de una tecla. |
spokenKey(key, apple) | El nombre que un lector de pantalla debe anunciar para una tecla. |
matchesHotkey(event, hotkey) | Si un KeyboardEvent coincide con un acorde, con modificadores exactos. |
isApplePlatform() | Lee navigator.platform. true en el servidor. |
useIsApple() | isApplePlatform como un hook seguro para la hidratación. |
Kbd y Command.
- CommandUna lista de acciones con búsqueda, en línea o como paleta ⌘K, con páginas, atajos y coincidencias resaltadas.
- KbdTeclas para atajos que muestran los símbolos correctos en cada plataforma, se leen en voz alta correctamente y se hunden como las teclas reales.
- SidebarUna barra lateral de la app que se contrae a iconos o fuera del lienzo, se mantiene fija bajo tu encabezado y se convierte en una hoja deslizable en móviles.