Skip to content

Accordion

Use the accordion component to show hidden information based on the collapse and expand state of the child elements using data attribute options

Examples

Accordion

A basic accordion function.

Code
vue
<script setup lang="ts">
import { BaseAccordion, BaseAccordionItem } from '@point-hub/papp'
</script>

<template>
  <component :is="BaseAccordion">
    <component
      :is="BaseAccordionItem"
      :item-id="1"
      title="Accordion #1"
      content="Hello World"
    ></component>
    <component
      :is="BaseAccordionItem"
      :item-id="2"
      title="Accordion #2"
      content="Hello World"
    ></component>
    <component
      :is="BaseAccordionItem"
      :item-id="3"
      title="Accordion #3"
      content="Hello World"
    ></component>
  </component>
</template>

Always Open

The Collapse component is used to create regions of content that can expand/collapse with a simple animation. It helps to hide content that's not immediately relevant to the user.

Code
vue
<script setup lang="ts">
import { BaseAccordion, BaseAccordionItem } from '@point-hub/papp'
</script>

<template>
  <component :is="BaseAccordion" :alwaysOpen="true">
    <component
      :is="BaseAccordionItem"
      :item-id="1"
      title="Accordion #1"
      content="Hello World"
    ></component>
    <component
      :is="BaseAccordionItem"
      :item-id="2"
      title="Accordion #2"
      content="Hello World"
    ></component>
    <component
      :is="BaseAccordionItem"
      :item-id="3"
      title="Accordion #3"
      content="Hello World"
    ></component>
  </component>
</template>

Using Slot

Using slot for rendering accordion item title & content

Code
vue
<script setup lang="ts">
import { BaseAccordion, BaseAccordionItem } from '@point-hub/papp'
</script>

<template>
  <component :is="BaseAccordion">
    <component :is="BaseAccordionItem" :item-id="1">
      <template #title>Accordion #1</template>
      <template #default>Hello World</template>
    </component>
    <component :is="BaseAccordionItem" :item-id="2">
      <template #title>Accordion #2</template>
      <template #default>Hello World</template>
    </component>
    <component :is="BaseAccordionItem" :item-id="3">
      <template #title>Accordion #3</template>
      <template #default>Hello World</template>
    </component>
  </component>
</template>

Accordion API

Props

NameTypeDefaultDescription
alwaysOpenbooleanfalseDisable behavior automatic close another accordion item

Slot

#default slot for rendering accordion item

Accordion Item API

Props

NameTypeDefaultDescription
item-idstringAccordion item identifier is required and should be unique. It used for calculate height each item and manage active state
titlestringAccordion item title.
contentstringAccordion item content.

Slot

#default slot for rendering accordion item content

#title slot for rendering accordion item title

Released under the MIT License.