@vuesimple/vs-accordion

A simple vue accordion.
4,960 33
Install
npm install @vuesimple/vs-accordion
Latest Version:3.1.8
Vue:3
Older releases:2
License:MIT
Last Updated:Oct 14, 2026
Links: GitHub  ·  npm
Maintainer: ashwinkshenoy

Vue Simple Tag

🗃 A simple vue accordion. Perfect for all your accordion, faq's scenarios.

A light weight vue plugin built groundup.

npm npm

forthebadge forthebadge forthebadge forthebadge forthebadge forthebadge


📺 Live Demo

Demo: Link


🛠 Install

npm i @vuesimple/vs-accordion

🚀 Usage

<template>
  <vs-accordion :is-box="true" is-compact>
    <vs-accordion-item v-for="(n, index) in [1, 2, 3]" :key="index">
      <!-- This slot will handle the title of the accordion and is the part you click on -->
      <template slot="accordion-trigger">
        <h4>Item {{ n }}</h4>
      </template>

      <!-- Default content -->
      <div>
        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 nisi ut aliquip ex ea commodo
        consequat.
      </div>
    </vs-accordion-item>
  </vs-accordion>
</template>

<script>
  import { VsAccordion, VsAccordionItem } from '@vuesimple/vs-accordion';

  export default {
    components: {
      VsAccordion,
      VsAccordionItem,
    },
  };
</script>

🌎 CDN

<script src="https://unpkg.com/@vuesimple/vs-accordion@<version>/dist/vs-accordion.min.js"></script>
// Main/Entry file
app.use(VsAccordion.plugin);
<template>
  <vs-accordion :is-box="true" is-compact>
    <vs-accordion-item v-for="(n, index) in [1, 2, 3]" :key="index">
      <!-- This slot will handle the title of the accordion and is the part you click on -->
      <template slot="accordion-trigger">
        <h4>Item {{ n }}</h4>
      </template>

      <!-- Default content -->
      <div>
        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 nisi ut aliquip ex ea commodo
        consequat.
      </div>
    </vs-accordion-item>
  </vs-accordion>
</template>

⚙ Props

VsAccordion
Name Type Default Description
active Number - Index of the accordion to be made active/visible. Starts from 0.
is-box String - Box syle applied.
is-expandable Boolean - Enables simultaneous expansion of accordion sections.
level Boolean - Sets aria-level heading rank in the document structure.
is-compact Boolean - Applies compact styling.
disable-animate Boolean - Disable toggle animation.

🔥 Events

VsAccordionItem
Name Description
change Triggered accordion open/close click { index: 0, visible: true }
open Emitted when the accordion starts to open. Listen for it using @open.
hide Emitted when the accordion close transition completes. Listen for it using @hide.

📎 Slots

VsAccordion

You can define own item markup via slots:

Name Description
(default) Default wrapper content for vs-accordion.
accordion-non-clickable Non-Clickable content inside header
VsAccordionItem

You can define own item markup via slots:

Name Description
accordion-trigger Heading content.
accordion-icon Icon content. If not present, default icon will be shown
(default) Default accordion content section for vs-accordion-item.

Related Packages

@vuesimple/vs-alert

A simple vue alert. Perfect for all your alert scenarios.

5,598 33
@vuesimple/vs-select

A simple vue select. Perfect for all your select scenarios.

4,630 33
@vuesimple/vs-loader

A simple vue loader. Perfect for all your loader scenarios.

3,581 33
@vuesimple/vs-datepicker

A simple vue datepicker. Perfect for all your datepicker scenarios.

3,543 33

Version History

Version Released Vue License
3.1.8 ^3.2.37 MIT
3.1.7 ^3.2.37 MIT
3.1.6 ^3.2.37 MIT
3.1.5 ^3.2.37 MIT
3.1.3 ^3.2.37 MIT