Kbd
Teclas para atajos que muestran los símbolos correctos en cada plataforma, se leen en voz alta correctamente y se hunden como las teclas reales.
Press Command K to search, or hold Shift and watch the keys.
pnpm dlx shadcn@latest add https://hextaui.com/r/kbd.jsonAñade el componente, los tokens del tema de HextaUI y los componentes de HextaUI de los que depende.
Añade los tokens del tema a tu CSS global, si aún no lo has hecho.
Instala las dependencias.
pnpm add @base-ui/react class-variance-authority cnCopia y pega el siguiente código en tu proyecto.
components/ui/kbd.tsx lib/hotkey.ts Actualiza las rutas de importación para que coincidan con la configuración de tu proyecto.
Escribe los atajos una vez con keys y se mostrarán como ⌘K en Mac y Ctrl K en Windows y Linux. O pasa cualquier contenido como children para tener control total.
Variantes
keycap tiene un borde fino y un labio de 1px para que parezca una tecla física. flat es un relleno discreto para lugares densos como los menús.
Tamaños
sm va en texto pequeño, default junto al texto del cuerpo y lg en títulos o por sí solo.
Atajos
<KbdGroup /> divide una combinación en una tecla por cada cap. Un espacio inicia una secuencia, unida por separator. <Kbd /> con keys mantiene toda la combinación en un solo cap.
Teclas en vivo
Con listen, un cap se hunde mientras su tecla real está pulsada. Solo observa, así que nunca bloquea, retrasa ni cambia lo que escribes. Las letras se comparan por tecla física, por lo que Option y Shift no se confunden.
En un botón
Dentro de un botón, el cap toma sus colores del texto del botón, así que encaja con todas las variantes.
Iconos y acciones
Pon iconos en un cap para acciones sin nombre de tecla, y dales una etiqueta visualmente oculta.
De derecha a izquierda
Los atajos mantienen el orden de izquierda a derecha dentro de texto de derecha a izquierda, tal como están impresos en el teclado.
- Símbolos como ⌘ y ⇧ se ocultan a los lectores de pantalla y se sustituyen por sus nombres, así que
keys="mod+shift+p"se lee como "Command Shift P". - Los caps se renderizan como
<kbd>, y un grupo los anida dentro de otro<kbd>, que es como HTML marca una combinación de teclas. - Mostrar un atajo no lo asigna. Registra tú mismo el manejador de la tecla.
- El efecto de pulsación es decorativo, con un cambio de color en lugar de movimiento cuando el movimiento reducido está activado. Antes de la hidratación, todas las plataformas ven los símbolos de Apple.
Ambas partes renderizan un <kbd> y aceptan render y sus atributos.
| Prop | Tipo | Predeterminado |
|---|---|---|
keysTeclas unidas con +, como "mod+shift+p". mod es ⌘ en dispositivos Apple y Ctrl en el resto. Nombres como alt, enter, escape, up y space se convierten en símbolos o palabras cortas, y reciben un nombre hablado para los lectores de pantalla. | string | – |
variantSe hereda de KbdGroup cuando no se define. | "keycap" | "flat" | "keycap" |
sizeSe hereda de KbdGroup cuando no se define. | "sm" | "default" | "lg" | "default" |
listenHunde el cap mientras su tecla real está pulsada. Funciona con keys o con un nombre de tecla simple como children. | boolean | false |
render | ReactElement | (props, state) => ReactElement | <kbd> |
| Atributo | Descripción |
|---|---|
data-slot="kbd" | Apunta a los caps en CSS. |
data-variant | La variante actual. |
data-size | El tamaño actual. |
data-pressed | Presente mientras la tecla real está pulsada. |
| Prop | Tipo | Predeterminado |
|---|---|---|
keysTeclas unidas con +, como "mod+shift+p". mod es ⌘ en dispositivos Apple y Ctrl en el resto. Nombres como alt, enter, escape, up y space se convierten en símbolos o palabras cortas, y reciben un nombre hablado para los lectores de pantalla. Los espacios separan los pasos de una secuencia. | string | – |
separatorSe muestra entre los pasos de una secuencia. | ReactNode | "then" |
variantSe pasa a cada cap del interior. | "keycap" | "flat" | – |
sizeSe pasa a cada cap del interior. | "sm" | "default" | "lg" | – |
listenSe pasa a cada cap del interior. | boolean | – |
render | ReactElement | (props, state) => ReactElement | <kbd> |
| Atributo | Descripción |
|---|---|
data-slot="kbd-group" | Apunta a los grupos en CSS. |
data-slot="kbd-separator" | El texto entre los pasos de una secuencia. |
- HotkeyAnaliza, etiqueta, anuncia y reconoce atajos de teclado, con ⌘ en plataformas Apple y Ctrl en el resto.
- useHeldKeysLas teclas que alguien mantiene pulsadas ahora mismo, compartidas por todos los suscriptores mediante un único conjunto de listeners en window.
- AvatarFotos de usuario con iniciales como alternativa, insignias de estado y grupos apilados que se colapsan en un contador.
- BadgeEtiquetas de estado con puntos de color, tags eliminables que se deslizan al cerrarse y contadores que ruedan hasta su nuevo valor.
- CardUna superficie para agrupar contenido, con tres variantes, contenido multimedia de borde a borde, radios concéntricos y enlaces en toda la tarjeta.
- ChartGráficos de Recharts con colores del tema, un tooltip y una leyenda que leen las etiquetas de una sola configuración, y navegación con teclado con un anillo de foco visible.
Usado en bloques
Bloques que se construyen sobre Kbd.
- Prompt InputUn compositor de chat que empieza como una línea tranquila, crece hasta convertirse en una tarjeta mientras escribes y baja cuando empieza la conversación. Enter envía, de forma segura con entrada en japonés y chino. Pega, suelta o elige archivos con vistas previas, progreso y reintento. @ añade archivos y / ejecuta comandos desde un menú junto al cursor. Un selector de modelo con teclas numéricas, un control deslizante de esfuerzo que cobra vida en Max, un anillo de contexto, dictado con forma de onda en vivo, chips de herramientas, una cola para los mensajes escritos mientras se transmite una respuesta y borradores que sobreviven a una recarga.
- Agent TodosMuestra el plan de un agente mientras trabaja. Cada paso pasa de pendiente a por hacer, en curso y hecho, con tiempos en vivo, fallos y las llamadas a herramientas detrás. Una píldora de estado para sobre el compositor, cambios del plan que puedes ver y un paso de revisión para editar el plan antes de ejecutarlo.
- ArtifactEl panel junto a un chat de IA que muestra lo que creó el modelo. Páginas web, SVG, documentos y código llegan en streaming y luego pasan a una vista previa en sandbox, con versiones que puedes comparar y restaurar, una división redimensionable y una hoja inferior en móviles.
- Chat SidebarLa barra lateral de una app de chat. Logo, búsqueda y Nuevo chat arriba, tus propios enlaces debajo, chats fijados, proyectos que se expanden para mostrar sus chats, recientes agrupados por día y filas con menús al pasar el cursor y con clic derecho, renombrado en línea, eliminación con deshacer y estados de respuesta en vivo.