Collapsible
<script lang="ts" setup>import { NNCollapsible } from "@fronntui/vue";</script>
<template> <NNCollapsible :speed="300"> <template #header> Header </template> <div> Lorem ipsum dolor sit amet consectetur, adipisicing elit. Ab, sit. Deserunt dignissimos libero excepturi. Non, ut eveniet laudantium sint totam, nihil distinctio facere molestiae provident voluptates laborum. Sit, fuga illum? </div> </NNCollapsible></template>
Accordion
The component exposes the methods open
, close
and toggle
to control the
state from the outside.
Itβs easy to build an accordion component by handling the expanded-state.
<script lang="ts" setup>import { onMounted, ref } from "vue";import { NNCollapsible } from "@fronntui/vue";
const accordion1 = ref();const accordion2 = ref();const accordion3 = ref();
const handleAccordion = (openEntry: string) => { if (openEntry !== "accordion1") { accordion1.value.close(); } if (openEntry !== "accordion2") { accordion2.value.close(); } if (openEntry !== "accordion3") { accordion3.value.close(); }};onMounted(() => { accordion1.value.open();});</script>
<template> <div class="my-accordion"> <NNCollapsible ref="accordion1" :speed="200" @open="handleAccordion('accordion1')" > <template #header> Header </template> <div> Lorem ipsum dolor sit amet consectetur, adipisicing elit. Ab, sit. Deserunt dignissimos libero excepturi. Non, ut eveniet laudantium sint totam, nihil distinctio facere molestiae provident voluptates laborum. Sit, fuga illum? </div> </NNCollapsible> <NNCollapsible ref="accordion2" :speed="200" @open="handleAccordion('accordion2')" > <template #header> Header </template> <div> Lorem ipsum dolor sit amet consectetur, adipisicing elit. Ab, sit. Deserunt dignissimos libero excepturi. Non, ut eveniet laudantium sint totam, nihil distinctio facere molestiae provident voluptates laborum. Sit, fuga illum? </div> </NNCollapsible> <NNCollapsible ref="accordion3" :speed="200" @open="handleAccordion('accordion3')" > <template #header> Header </template> <div> Lorem ipsum dolor sit amet consectetur, adipisicing elit. Ab, sit. Deserunt dignissimos libero excepturi. Non, ut eveniet laudantium sint totam, nihil distinctio facere molestiae provident voluptates laborum. Sit, fuga illum? </div> </NNCollapsible> </div></template>
<style lang="scss">.my-accordion { .nn-collapsible:not(:last-of-type) { &::after { content: ""; display: block; background: var(--nn-color-gray-100); height: 1px; margin-top: var(--nn-spacing-6); margin-bottom: var(--nn-spacing-5); } }}</style>
Props
Name
Type
speed
number
Animation speed. Defaults to 0
(no animation)
Events
Name
Payload
open
Fired after the collapsible has been opened
open
Fired after the collapsible has been closed
toggle
boolean
Fired after the collapsible has been changed. The parameter tells the current state.
Slots
Name
Payload
default
β
Content
header
β
Header