Skip to main content

Shortcut

O componente Shortcut é usado para criar atalhos de navegação rápida com ícones, labels e descrições opcionais.

Importação

import { Shortcut } from '@useblu/ocean-react';

Importação específica (recomendado para tree-shaking)

import { Shortcut } from '@useblu/ocean-react/Shortcut';

Importação de tipos TypeScript

import type { ShortcutProps } from '@useblu/ocean-react';

// Uso em componente customizado
const MyComponent: React.FC<ShortcutProps> = (props) => {
return <Shortcut {...props} />;
};

Playground Interativo

Explore o componente Shortcut no playground interativo do Storybook:

Documentação Completa

Para documentação técnica detalhada, exemplos de uso e API completa, consulte o Storybook do Shortcut.

No Storybook você encontrará:

  • Controles interativos para testar todas as props
  • API gerada automaticamente com tipagem completa
  • Exemplos visuais de todas as variantes e estados
  • Playground para experimentação rápida

Uso básico

O Shortcut é usado para criar atalhos de navegação:

<Shortcut
label="Meu Atalho"
description="Descrição do atalho"
icon={<PlaceholderOutline />}
/>

Tamanhos

O Shortcut está disponível em três tamanhos diferentes:

Tiny

<Shortcut label="Tiny" icon={<PlaceholderOutline />} size="tiny" />

Small

<Shortcut label="Small" icon={<PlaceholderOutline />} size="small" />

Medium (padrão)

<Shortcut
label="Medium"
description="Com descrição"
icon={<PlaceholderOutline />}
size="medium"
/>

Veja todos os tamanhos juntos:

Orientação

O Shortcut pode ser exibido em orientação horizontal ou vertical:

Horizontal (padrão)

<Shortcut
label="Horizontal"
description="Orientação horizontal"
icon={<PlaceholderOutline />}
orientation="horizontal"
/>

Vertical

<Shortcut
label="Vertical"
description="Orientação vertical"
icon={<PlaceholderOutline />}
orientation="vertical"
/>

Comparação entre orientações:

Estados

Normal

<Shortcut label="Normal" icon={<PlaceholderOutline />} />

Bloqueado

<Shortcut label="Bloqueado" icon={<PlaceholderOutline />} blocked />

Desabilitado

<Shortcut label="Desabilitado" icon={<PlaceholderOutline />} disabled />

Veja todos os estados:

Badge e Tag

O Shortcut pode exibir um badge numérico ou uma tag. As propriedades count e tag são mutuamente exclusivas - você deve usar apenas uma por vez.

Com Badge

O badge exibe um número e aparece no canto superior do atalho:

<Shortcut label="Com Badge" icon={<PlaceholderOutline />} count={5} />

Com Tag

A tag exibe um texto e sua posição depende da orientação do atalho:

Tag em orientação horizontal

Na orientação horizontal (padrão), a tag aparece ao lado do label, dentro do conteúdo:

<Shortcut
label="Com Tag"
icon={<PlaceholderOutline />}
tag="Novo"
orientation="horizontal"
/>

Tag em orientação vertical

Na orientação vertical, a tag aparece acima do conteúdo:

<Shortcut
label="Com Tag"
icon={<PlaceholderOutline />}
tag="Novo"
orientation="vertical"
/>

Exemplos de Badge e Tag:

Full Width

Use a prop fullWidth para fazer o Shortcut ocupar toda a largura disponível:

<div style={{ width: '300px' }}>
<Shortcut
label="Atalho Normal"
description="Sem fullWidth"
icon={<PlaceholderOutline />}
/>
<Shortcut
label="Atalho Full Width"
description="Com fullWidth ativado"
icon={<PlaceholderOutline />}
fullWidth
/>
</div>

Comparação Full Width:

API

Props

PropTipoPadrãoDescrição
labelstring-Texto do label do atalho
descriptionstring-Descrição adicional (apenas para size medium)
iconReactNode-Ícone do atalho
size'tiny' | 'small' | 'medium''medium'O tamanho do componente de atalho
orientation'horizontal' | 'vertical''horizontal'A orientação do layout do atalho
blockedbooleanfalseDefine se o atalho está bloqueado
disabledbooleanfalseDesabilita o atalho
fullWidthbooleanfalseFaz o atalho ocupar toda a largura disponível
countnumber-Número exibido no badge do atalho (mutuamente exclusivo com tag)
tagstring-Tag exibida no atalho (mutuamente exclusivo com count). Posição varia com orientation
classNamestring-Classes CSS adicionais

Classes CSS

O componente Shortcut utiliza as seguintes classes CSS para customização:

Classes principais

ClasseDescrição
.ods-shortcutClasse base do componente
.ods-shortcut--tinyTamanho tiny do atalho
.ods-shortcut--smallTamanho small do atalho
.ods-shortcut--mediumTamanho medium do atalho (padrão)
.ods-shortcut--horizontalOrientação horizontal (padrão)
.ods-shortcut--verticalOrientação vertical
.ods-shortcut--blockedEstado bloqueado do atalho
.ods-shortcut--disabledEstado desabilitado do atalho
.ods-shortcut--full-widthAtalho ocupa toda a largura disponível
.ods-shortcut--with-badgeAtalho com badge numérico

Classes de elementos internos

ClasseDescrição
.ods-shortcut__iconContainer do ícone
.ods-shortcut__contentContainer do conteúdo (ícone + label)
.ods-shortcut__content--horizontalLayout horizontal do conteúdo
.ods-shortcut__content--verticalLayout vertical do conteúdo
.ods-shortcut__labelTexto do label
.ods-shortcut__descriptionTexto da descrição
.ods-shortcut__badgeContainer do badge numérico
.ods-shortcut__tagContainer da tag (posição varia)
.ods-shortcut__blockedContainer do ícone de bloqueio

Acessibilidade

  • ✅ Suporte completo a navegação por teclado
  • ✅ Estados de foco visíveis
  • ✅ Atributos ARIA apropriados
  • ✅ Suporte a screen readers
  • ✅ Contraste adequado em todos os estados
TeclaFunção
TabMove o foco para o atalho
Space / EnterAtiva o atalho

Melhores práticas

✅ Faça

  • Use labels claros e concisos que descrevam a ação
  • Use ícones que representem visualmente a funcionalidade
  • Use descrições apenas quando necessário para esclarecimento
  • Use badges para notificações numéricas importantes
  • Use tags para destacar status ou categorias importantes
  • Escolha a orientação adequada ao layout (horizontal ou vertical)
  • Considere a posição da tag ao escolher a orientação

❌ Não faça

  • Não use textos muito longos nos labels
  • Não use ícones que não representem a funcionalidade
  • Não use badge (count) e tag (tag) ao mesmo tempo - são mutuamente exclusivos
  • Não omita o estado disabled quando apropriado
  • Não use Shortcut para ações que não são navegação

Visão geral completa

Veja todas as variantes do Shortcut em ação: