Badge
O Badge é um componente visual usado para exibir notificações, contadores ou rótulos informativos de forma destacada. Ele pode mostrar números (com limite de 99+) ou texto curto.
Importação
import { Badge } from '@useblu/ocean-react';
Importação específica (recomendado para tree-shaking)
import { Badge } from '@useblu/ocean-react/Badge';
Importação de tipos TypeScript
import type { BadgeProps } from '@useblu/ocean-react';
// Uso em componente customizado
const MyComponent: React.FC<BadgeProps> = (props) => {
return <Badge {...props} />;
};
Playground Interativo
Explore o componente Badge no playground interativo do Storybook:
Documentação Completa
Para documentação técnica detalhada, exemplos de uso e API completa, consulte o Storybook do Badge.
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
Com contador
<Badge count={5} color="brand" />
Com texto
<Badge color="brand">Novo</Badge>
Tiny (apenas indicador)
<Badge variation="tiny" color="brand" />
Variações de tamanho
O Badge oferece três tamanhos diferentes:
Tiny
Exibe apenas um pequeno indicador visual, sem texto ou números.
<Badge variation="tiny" color="brand" />
Small (padrão)
Tamanho padrão, adequado para a maioria dos casos de uso.
<Badge variation="small" count={5} color="brand" />
Medium
Maior e mais visível, ideal para contadores importantes.
<Badge variation="medium" count={99} color="brand" />
Cores disponíveis
Veja todas as cores do Badge em ação:
Guia de uso das cores
- brand: Para notificações principais e contadores importantes
- complementary: Para informações secundárias ou categorias
- alert: Para avisos, erros ou ações urgentes
- neutral: Para informações gerais ou estados neutros
- highlight: Para destacar novidades ou itens importantes
Comportamentos especiais
Contador com limite
O Badge automaticamente exibe "99+" quando o contador excede 99:
Variação Tiny
A variação tiny mostra apenas um pequeno indicador, ignorando texto ou contador:
API
Props
| Prop | Tipo | Padrão | Descrição |
|---|---|---|---|
variation | 'tiny' | 'small' | 'medium' | 'small' | Define o tamanho do badge |
color | 'brand' | 'complementary' | 'alert' | 'neutral' | 'highlight' | - | Define a cor do badge |
count | number | - | Número a ser exibido (máximo 99+) |
children | ReactNode | - | Texto do badge (usado quando count não está definido) |
className | string | - | Classes CSS adicionais |
Comportamento das props
- Se
countfor definido, o Badge exibirá o número - Se
countnão for definido echildrenestiver presente, exibirá o texto - Se
variationfor'tiny', apenas o indicador visual será mostrado - Contadores acima de 99 são automaticamente truncados para "99+"
Acessibilidade
- ✅ Atributo
role="tag"para identificação semântica - ✅ Contraste adequado em todas as variações de cor
- ✅ Tamanhos adequados para visualização
- ✅ Suporte a screen readers
Melhores práticas
✅ Faça
- Use cores semanticamente apropriadas (alert para erros, brand para principais)
- Mantenha textos curtos e descritivos
- Use
tinypara indicadores discretos - Use
mediumpara contadores importantes que precisam chamar atenção
❌ Não faça
- Não use textos muito longos em badges
- Não misture diferentes cores sem propósito semântico
- Não use badges como únicos indicadores de informações críticas
- Não ignore a hierarquia visual ao escolher tamanhos
CSS Classes
O componente gera as seguintes classes CSS:
| Classe | Descrição |
|---|---|
.ods-badge | Classe base aplicada a todos os badges |
.ods-badge--tiny | Modificador para variação tiny |
.ods-badge--small | Modificador para variação small |
.ods-badge--medium | Modificador para variação medium |
.ods-badge--brand | Modificador para cor brand |
.ods-badge--complementary | Modificador para cor complementary |
.ods-badge--alert | Modificador para cor alert |
.ods-badge--neutral | Modificador para cor neutral |
.ods-badge--overflow | Aplicado quando count > 9 para ajustar layout |
.ods-badge__content | Container do conteúdo interno |
.ods-badge__count | Aplicado especificamente ao conteúdo numérico |
.ods-badge__text | Aplicado especificamente ao conteúdo textual |
Exemplos de uso
Notificação de mensagens
<div>
<span>Mensagens</span>
<Badge count={3} color="brand" />
</div>
Status de produto
<div>
<span>Produto</span>
<Badge color="complementary">Novo</Badge>
</div>
Indicador de erro
<div>
<span>Formulário</span>
<Badge count={2} color="alert" />
<span>erros</span>
</div>
Visão geral das variações
Veja todas as variações do Badge em ação:
Links relacionados
- Button - Para ações com badges de notificação
- Alert - Para mensagens de feedback mais detalhadas
- Storybook - Badge - Documentação técnica