Kbd
Exibe teclas de teclado com estilo consistente. Use `mk-kbd` para uma tecla isolada e `mk-kbd-combo` para atalhos com separadores automáticos.
mk-kbd exibe uma tecla de teclado com estilo visual consistente — padding, borda, raio e tipografia sans-serif. Renderiza a tag HTML nativa <kbd> internamente, preservando semântica documental. É puramente visual: não é focável, não emite eventos e não possui estados interativos. Para compor atalhos com separadores "+" automáticos, use mk-kbd-combo.
Padrão
import { MkKbd } from '@db1/makuco-ui-react';
<MkKbd>Ctrl</MkKbd><mk-kbd>Ctrl</mk-kbd>Tamanhos
Quatro tamanhos via size: sm, md (padrão) e lg. O tamanho controla altura, padding, tipografia e raio da borda.
<MkKbd size="xs">Esc</MkKbd>
<MkKbd size="sm">Tab</MkKbd>
<MkKbd size="md">Enter</MkKbd>
<MkKbd size="lg">Space</MkKbd><mk-kbd size="xs">Esc</mk-kbd>
<mk-kbd size="sm">Tab</mk-kbd>
<mk-kbd size="md">Enter</mk-kbd>
<mk-kbd size="lg">Space</mk-kbd>Rótulo descritivo
A prop label faz duas coisas: exibe um texto descritivo visível à direita da tecla e aplica aria-label no host. Use-a quando o slot contém um símbolo cujo significado não é óbvio isolado (ex.: ⌘, ⏎, ⌫).
<MkKbd label="Fechar janela">Esc</MkKbd><mk-kbd label="Fechar janela">Esc</mk-kbd>Ícone no slot
O slot default aceita qualquer conteúdo, incluindo mk-icon. Combine com label quando o ícone não tiver rótulo acessível próprio.
import { MkIcon, MkKbd } from '@db1/makuco-ui-react';
<MkKbd label="Seta para cima">
<MkIcon name="arrow-up" />
</MkKbd><mk-kbd label="Seta para cima">
<mk-icon name="arrow-up"></mk-icon>
</mk-kbd>mk-kbd-combo
mk-kbd-combo recebe keys: string[] e renderiza cada item como um mk-kbd, inserindo separadores "+" automaticamente. Quando keys está vazio, o componente não renderiza nada.
import { MkKbdCombo } from '@db1/makuco-ui-react';
<MkKbdCombo keys={['Ctrl', 'K', 'P']} /><!-- defina a prop no componente TypeScript -->
<!-- keys = ['Ctrl', 'K', 'P'] -->
<mk-kbd-combo [keys]="keys"></mk-kbd-combo>mk-kbd-combo com rótulo
A prop label exibe um texto descritivo visível à direita das teclas.
<MkKbdCombo keys={['Ctrl', 'K']} label="Abrir paleta de comandos" /><mk-kbd-combo [keys]="keys" label="Abrir paleta de comandos"></mk-kbd-combo>Tamanhos do combo
A prop size propaga para todos os mk-kbd internos e define a tipografia do separador e do label. O padrão é sm.
<MkKbdCombo keys={['Ctrl', 'K']} size="sm" label="Small" />
<MkKbdCombo keys={['Ctrl', 'K']} size="md" label="Medium" />
<MkKbdCombo keys={['Ctrl', 'K']} size="lg" label="Large" /><mk-kbd-combo [keys]="keys" size="sm" label="Small"></mk-kbd-combo>
<mk-kbd-combo [keys]="keys" size="md" label="Medium"></mk-kbd-combo>
<mk-kbd-combo [keys]="keys" size="lg" label="Large"></mk-kbd-combo>Props — mk-kbd
| Prop | Tipo | Padrão | Descrição |
|---|---|---|---|
size | "xs" | "sm" | "md" | "lg" | "md" | Escala visual (altura, padding, tipografia e raio da borda). Refletida como atributo HTML. |
label | string | — | Texto descritivo visível exibido à direita da tecla. Também aplicado como |
Props — mk-kbd-combo
| Prop | Tipo | Padrão | Descrição |
|---|---|---|---|
keys | string[] | — | Lista de teclas do atalho. Cada item vira um mk-kbd. Separadores "+" são inseridos automaticamente entre itens adjacentes. Vazio → sem output. |
size | "sm" | "md" | "lg" | "sm" | Escala visual. Propagada para todos os mk-kbd internos. Define a tipografia do separador "+" e do label. Refletida como atributo HTML. |
label | string | — | Texto descritivo do atalho exibido à direita das teclas (ex.: "Abrir paleta de comandos"). Omitido quando não fornecido. |
Slots
| Componente | Slot | Descrição |
|---|---|---|
mk-kbd | (default) | Conteúdo da tecla: texto simples ("Ctrl", "Esc"), símbolo Unicode (⌘, ⇧, ⏎, ⌫, ↑) ou mk-icon. |
Acessibilidade
mk-kbdusa a tag<kbd>nativa internamente — preserva semântica documental semroleARIA adicional.- Nenhum dos componentes é focável (
tabindexausente). Usemk-buttonpara controles interativos com atalho visível. mk-kbd: quandolabelé fornecido, é aplicado comoaria-labelno host e o texto é também renderizado visivelmente à direita da tecla.mk-kbd-combo: separadores "+" recebemaria-hidden="true"e não são anunciados por leitores de tela.- Ao usar
mk-kbddentro de um elemento que já descreve o atalho (ex.:aria-label="Salvar (Ctrl+S)"emmk-button), apliquearia-hidden="true"em um wrapper para evitar leitura duplicada. - Seleção de texto é permitida — é comum copiar atalhos de documentação.