Primitivedata-display

Kbd

Stable

Primitive de exibição para teclas e atalhos de teclado. Renderiza um <kbd> real, e o KbdGroup aninha as teclas de uma combinação como a especificação HTML pede. Funciona em texto corrido, dentro de botões e dentro do Tooltip, onde inverte junto com a superfície.

Instalação

npx up-web-ds add kbd

Preview

Default

Esc

Group

Ctrl+Shift+P

With Symbols

Command K

In Text

Pressione Esc para fechar o diálogo sem salvar as alterações.

In Button

In Tooltip

All states

Default

Esc

Group

Ctrl+Shift+P

With Symbols

Command K

In Text

Pressione Esc para fechar o diálogo sem salvar as alterações.

In Button

In Tooltip

Usage

@/components/ui/kbd
import { Kbd } from '@/components/ui/kbd'
Kbd
<Kbd>Esc</Kbd>

Props

Kbd

Estende React.ComponentProps<'kbd'>. Aceita também os atributos padrão de um elemento React (280 não listados).

KbdGroup

Estende React.ComponentProps<'kbd'>. Aceita também os atributos padrão de um elemento React (280 não listados).

Composition

Uma tecla sozinha é um Kbd; uma combinação é um KbdGroup com um Kbd por tecla.

Composição de KbdGroup

KbdGroup

  • Kbd

Metadata

Notas de acessibilidade

Não é interativo: não entra na sequência de tabulação e tem pointer-events-none, então um clique ou toque sobre a tecla chega ao controle que a contém — verificado por teste, em que Tab e Enter chegam ao botão ao redor e um clique sobre a tecla o aciona. Leitor de tela verificado por teste: é um <kbd> sem role inventado, então o que se anuncia é o texto; a origem tipava o KbdGroup como div e renderizava <kbd>, e o tipo agora acompanha o elemento. Um glifo que se lê mal em voz alta (⌘) fica com aria-hidden ao lado de um nome sr-only, e as teclas de um grupo são separadas por espaço no DOM, porque sem ele o nome acessível de um botão com atalho vira "CommandK". Dentro de um botão a tecla faz parte do rótulo visível e, portanto, do nome acessível (WCAG 2.2 SC 2.5.3); aria-keyshortcuts só entra quando a aplicação liga o atalho de verdade. Contraste: --muted-foreground sobre --muted é par verificado em AA pelo teste da Foundation; dentro do Tooltip a tecla inverte com a superfície, o que o spec confirma lendo a cor calculada, e a varredura axe cobre light e dark. Touch verificado em viewport de 375px com emulação de toque: a tecla dentro de um botão não reduz o alvo abaixo de 24x24, e o ponto sob a tecla resolve para o próprio botão (elementFromPoint), então o toque ali chega ao controle. Reduced motion verificado em navegador com prefers-reduced-motion: reduce — a tecla não anima nem tem transição.

Classificação

Layer
Primitive
Domínio
Domain-free (compartilhado)
Categoria
data-display
Status
Stable

Origem e distribuição

Fonte
shadcn registry / kbd
Licença
MIT
Distribuição
Interna

Acessibilidade

  • Teclado: revisado
  • Leitor de tela: revisado
  • Touch: revisado
  • Reduced motion: revisado

Dependências

Pacotes
Nenhuma
Ícones
Nenhum
Construído sobre
Nenhum
Usado por
Questionnaire