UI

Accordion

Lista de seções que expandem e recolhem, ideal para perguntas frequentes e detalhes de serviços.

Instalação

npx shadcn@latest add @lenstech/accordion

Uso

import {
  Accordion,
  AccordionContent,
  AccordionItem,
  AccordionTrigger,
} from "@/components/ui/accordion"
<Accordion>
  <AccordionItem id="horarios">
    <AccordionTrigger>Qual o horário de funcionamento?</AccordionTrigger>
    <AccordionContent>Segunda a sexta, das 8h às 19h.</AccordionContent>
  </AccordionItem>
</Accordion>

Exemplos

Várias seções abertas

Por padrão só uma seção fica aberta por vez. Use allowsMultipleExpanded para permitir várias e defaultExpandedKeys para definir quais começam abertas.

Registro na Junta Comercial, CNPJ, inscrição municipal e alvará em até 15 dias úteis.

Apuração de impostos, folha de pagamento e envio das obrigações acessórias.

Item desabilitado

Enviamos para todo o Brasil. Frete grátis em compras acima de R$ 199.

Controlado

Com expandedKeys + onExpandedChange você abre e fecha seções a partir do seu código. Os valores são os ids dos AccordionItem.

Nome, CPF e telefone de quem vai acompanhar o paciente.

Seção única

Um AccordionItem também funciona sozinho, fora do Accordion — é o equivalente ao Disclosure do React Aria.

Accordion ou Disclosure?

O Accordion é um DisclosureGroup do React Aria e cada AccordionItem é um Disclosure. Use o grupo quando as seções são irmãs (FAQ) e o item sozinho para um único "ver mais". Para controlar, use expandedKeys/defaultExpandedKeys — não existem type="single" nem value como no Radix.

Quando usar

  • Use em FAQ, detalhes de planos/serviços e formulários longos divididos em seções.
  • Não use para esconder informação essencial — o que o usuário sempre precisa ver deve ficar visível.
  • Para alternar conteúdos do mesmo nível sem empilhar, use Tabs.
  • Para agrupar conteúdo sempre visível, use Card.

API

Accordion

Aceita todas as props do DisclosureGroup do React Aria:

Prop

Type

AccordionItem

Aceita todas as props do Disclosure do React Aria:

Prop

Type

AccordionTrigger

Prop

Type

AccordionContent

Prop

Type

On this page