Pular para o conteúdo

Collapse

Painéis de conteúdo recolhíveis para FAQs, acordeões e seções expansíveis.

import { Collapse } from 'asterui'

Collapse Básico

Painéis recolhíveis simples.

What is AsterUI?
AsterUI is a React component library built on DaisyUI and Tailwind CSS.
Run npm install asterui to get started.
Yes, AsterUI is open source and free to use.
import { Collapse } from 'asterui'

function App() {
  const items = [
    {
      key: '1',
      label: 'What is AsterUI?',
      children: 'AsterUI is a React component library built on DaisyUI and Tailwind CSS.',
    },
    {
      key: '2',
      label: 'How do I install it?',
      children: 'Run npm install asterui to get started.',
    },
    {
      key: '3',
      label: 'Is it free?',
      children: 'Yes, AsterUI is open source and free to use.',
    },
  ]
  
  return (
      <Collapse items={items} defaultActiveKey={['1']} />
    )
}

export default App

Acordeão

Apenas um painel pode estar aberto por vez.

Section 1
Content for section 1. Click another section to close this one.
Content for section 2. Only one section can be open.
Content for section 3. This is accordion behavior.
import { Collapse } from 'asterui'

function App() {
  const items = [
    {
      key: '1',
      label: 'Section 1',
      children: 'Content for section 1. Click another section to close this one.',
    },
    {
      key: '2',
      label: 'Section 2',
      children: 'Content for section 2. Only one section can be open.',
    },
    {
      key: '3',
      label: 'Section 3',
      children: 'Content for section 3. This is accordion behavior.',
    },
  ]
  
  return (
      <Collapse items={items} accordion defaultActiveKey="1" />
    )
}

export default App

Sem Borda

Collapse sem bordas.

Content without borders for a cleaner look.
Great for FAQ sections or sidebars.
import { Collapse } from 'asterui'

function App() {
  const items = [
    {
      key: '1',
      label: 'Panel 1',
      children: 'Content without borders for a cleaner look.',
    },
    {
      key: '2',
      label: 'Panel 2',
      children: 'Great for FAQ sections or sidebars.',
    },
  ]
  
  return (
      <Collapse items={items} bordered={false} />
    )
}

export default App

Conteúdo Aninhado

Collapse com conteúdo aninhado rico.

Follow these steps to get started:

  1. Install the package
  2. Import components
  3. Start building
Learn about advanced patterns and customization options.
import { Collapse, Button, Space } from 'asterui'

function App() {
  const items = [
    {
      key: '1',
      label: 'Getting Started',
      children: (
        <Space direction="vertical" size="sm">
          <p>Follow these steps to get started:</p>
          <ol className="list-decimal list-inside">
            <li>Install the package</li>
            <li>Import components</li>
            <li>Start building</li>
          </ol>
          <Button color="primary" size="sm">Read Docs</Button>
        </Space>
      ),
    },
    {
      key: '2',
      label: 'Advanced Usage',
      children: 'Learn about advanced patterns and customization options.',
    },
  ]
  
  return (
      <Collapse items={items} />
    )
}

export default App

Modo Ghost

Fundo transparente para aparência mínima.

Ghost mode removes the background color.
Great for minimalist designs.
import { Collapse } from 'asterui'

function App() {
  const items = [
    {
      key: '1',
      label: 'Transparent Background',
      children: 'Ghost mode removes the background color.',
    },
    {
      key: '2',
      label: 'Clean Look',
      children: 'Great for minimalist designs.',
    },
  ]
  
  return (
      <Collapse items={items} ghost bordered={false} />
    )
}

export default App

Ícone Plus/Minus

Use ícones plus/minus em vez de setas.

This panel uses plus/minus icons instead of arrows.
Click the plus icon to expand.
import { Collapse } from 'asterui'

function App() {
  const items = [
    {
      key: '1',
      label: 'Plus/Minus Icon',
      children: 'This panel uses plus/minus icons instead of arrows.',
    },
    {
      key: '2',
      label: 'Another Panel',
      children: 'Click the plus icon to expand.',
    },
  ]
  
  return (
      <Collapse items={items} icon="plus" />
    )
}

export default App
PropriedadeDescriçãoTipoPadrão
itemsItens de painel do collapseCollapseItemType[]-
activeKeyChaves de painel ativo controladasstring | number | (string | number)[]-
defaultActiveKeyChaves de painel ativo iniciaisstring | number | (string | number)[]-
accordionApenas um painel aberto por vezbooleanfalse
borderedMostrar borda ao redor dos painéisbooleantrue
ghostEstilo de fundo transparentebooleanfalse
sizeVariante de tamanho'sm' | 'md' | 'lg''md'
iconTipo de ícone para indicador de expansão'arrow' | 'plus' | 'none''arrow'
expandIconPlacementPosicionamento do ícone'start' | 'end''start'
onChangeHandler de mudança(activeKey: (string | number)[]) => void-
data-testidID de teste para o componentestring'collapse'
classNameClasses CSS adicionaisstring-
PropriedadeDescriçãoTipoPadrão
keyIdentificador único para o painelstring | number-
labelConteúdo do cabeçalho do painelReact.ReactNode-
childrenConteúdo do corpo do painelReact.ReactNode-
extraElemento extra no canto do cabeçalhoReact.ReactNode-
showArrowSe deve mostrar o ícone de expansãobooleantrue
collapsibleModo recolhível'header' | 'icon' | 'disabled'-
classNameNome de classe personalizado para este painelstring-
  • Cabeçalhos de painel são acessíveis via teclado com Enter e Espaço
  • Usa aria-expanded para indicar o estado do painel
  • Usa aria-disabled para painéis desabilitados
  • Painéis expõem data-state para testes e estilização