9.7k

Collapsible

PreviousNext

An interactive component which expands/collapses a panel.

Release notes

Toggle extra implementation details.

<!-- AUTO-GENERATED BY scripts/generate-custom-demos.ts. DO NOT EDIT DIRECTLY. -->
<script setup lang="ts">
import { shallowRef } from 'vue'
import VButton from '@ui-kit/src/components/Base/VButton/VButton.vue'
import {
  VCollapsible,
  VCollapsibleContent,
  VCollapsibleTrigger,
} from '@ui-kit/src/components/Base/VCollapsible'

const isOpen = shallowRef(false)
</script>

<template>
  <VCollapsible v-model:open="isOpen" class="w-full max-w-xl">
    <div class="flex items-center justify-between gap-4">
      <div>
        <p>Release notes</p>
        <p>Toggle extra implementation details.</p>
      </div>
      <VCollapsibleTrigger as-child>
        <VButton variant="outlined">
      Toggle
    </VButton>
      </VCollapsibleTrigger>
    </div>
    <VCollapsibleContent class="pt-4">
      The internal collapsible primitive is now driving this demo instead of the upstream example.
    </VCollapsibleContent>
  </VCollapsible>
</template>

Installation

pnpm dlx shadcn-vue@latest add collapsible

Usage

<script setup lang="ts">
import {
  Collapsible,
  CollapsibleContent,
  CollapsibleTrigger,
} from '@/components/ui/collapsible'
</script>

<template>
  <Collapsible>
    <CollapsibleTrigger>Can I use this in my project?</CollapsibleTrigger>
    <CollapsibleContent>
      Yes. Free to use for personal and commercial projects. No attribution
      required.
    </CollapsibleContent>
  </Collapsible>
</template>