Aller au contenu

Collapse

Panneaux de contenu pliables pour les FAQ, accordéons et sections extensibles.

import { Collapse } from 'asterui'

Collapse de base

Panneaux pliables 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

Accordéon

Un seul panneau peut être ouvert à la fois.

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

Sans bordure

Collapse sans bordures.

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

Contenu imbriqué

Collapse avec contenu imbriqué riche.

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

Mode fantôme

Fond transparent pour une apparence minimale.

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

Icône Plus/Moins

Utiliser des icônes plus/moins au lieu de flèches.

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
PropriétéDescriptionTypeDéfaut
itemsÉléments de panneau pliableCollapseItemType[]-
activeKeyClés de panneau actif contrôléesstring | number | (string | number)[]-
defaultActiveKeyClés de panneau actif initialesstring | number | (string | number)[]-
accordionUn seul panneau ouvert à la foisbooleanfalse
borderedAfficher la bordure autour des panneauxbooleantrue
ghostStyle de fond transparentbooleanfalse
sizeVariante de taille'sm' | 'md' | 'lg''md'
iconType d’icône pour l’indicateur d’expansion'arrow' | 'plus' | 'none''arrow'
expandIconPlacementPlacement de l’icône'start' | 'end''start'
onChangeGestionnaire de changement(activeKey: (string | number)[]) => void-
data-testidID de test pour le composantstring'collapse'
classNameClasses CSS supplémentairesstring-
PropriétéDescriptionTypeDéfaut
keyIdentifiant unique pour le panneaustring | number-
labelContenu de l’en-tête du panneauReact.ReactNode-
childrenContenu du corps du panneauReact.ReactNode-
extraÉlément supplémentaire dans le coin de l’en-têteReact.ReactNode-
showArrowAfficher ou non l’icône d’expansionbooleantrue
collapsibleMode pliable'header' | 'icon' | 'disabled'-
classNameNom de classe personnalisé pour ce panneaustring-
  • Les en-têtes de panneau sont accessibles au clavier avec Entrée et Espace
  • Utilise aria-expanded pour indiquer l’état du panneau
  • Utilise aria-disabled pour les panneaux désactivés
  • Les panneaux exposent data-state pour les tests et le style