Pular para o conteúdo principal

Accordion

O componente Accordion permite organizar conteúdo em seções expansíveis e recolhíveis, melhorando a experiência do usuário ao navegar por grandes quantidades de informação.

Importação

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

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

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

Importação de tipos TypeScript

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

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

Playground Interativo

Explore o componente Accordion no playground interativo do Storybook:

Documentação Completa

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

No Storybook você encontrará:

  • Controles interativos para testar todas as props
  • API gerada automaticamente com tipagem completa
  • Exemplos visuais de diferentes cenários de uso
  • Playground para experimentação rápida

Uso básico

<Accordion
title="Título do Accordion"
description="Este é o conteúdo que será exibido quando o accordion for expandido."
/>

Múltiplos Accordions

Veja como múltiplos accordions funcionam independentemente:

Diferentes tipos de conteúdo

Conteúdo longo

<Accordion
title="Accordion com Conteúdo Longo"
description="Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris."
/>

Conteúdo curto

<Accordion
title="Accordion com Conteúdo Curto"
description="Conteúdo breve e direto."
/>

API

Props

PropTipoPadrãoDescrição
titlestring-O título do accordion exibido no cabeçalho
descriptionstring-O conteúdo descritivo exibido quando expandido
classNamestring-Classes CSS adicionais para customização

Comportamento

  • O accordion inicia sempre no estado recolhido
  • Clique no cabeçalho alterna entre expandido/recolhido
  • Cada accordion mantém seu próprio estado independentemente

Acessibilidade

  • ✅ Suporte completo a navegação por teclado
  • ✅ Atributo aria-expanded para indicar estado
  • ✅ Botão semântico para interação
  • ✅ Estados de foco visíveis
  • ✅ Suporte a screen readers
TeclaFunção
TabMove o foco para o accordion
Space / EnterExpande/recolhe o accordion

Classes CSS

Classe GlobalDescrição
.ods-accordionEstilos aplicados ao elemento raiz
.ods-accordion__headerEstilos aplicados ao cabeçalho do elemento
.ods-accordion__header--collapsedEstilos aplicados ao cabeçalho quando recolhido
.ods-accordion__iconEstilos aplicados ao ícone
.ods-accordion__icon--rotatedEstilos aplicados ao ícone quando recolhido
.ods-accordion__contentEstilos aplicados ao conteúdo
.ods-accordion__content--collapsedEstilos aplicados ao conteúdo quando recolhido
.ods-accordion__descriptionEstilos aplicados à descrição

Melhores práticas

✅ Faça

  • Use títulos claros e descritivos
  • Mantenha o conteúdo organizado e conciso
  • Use accordions para agrupar informações relacionadas
  • Considere o estado inicial baseado na importância do conteúdo

❌ Não faça

  • Não aninhes accordions muito profundamente
  • Não use para conteúdo crítico que deve estar sempre visível
  • Não sobrecarregue com muito conteúdo em um único accordion
  • Não esconda informações essenciais dentro de accordions