Collapsible
A component that toggles the visibility of a content panel on user interaction.
vue
<script setup lang="ts">
import {
CollapsibleRoot,
CollapsibleTrigger,
CollapsibleContent,
} from '@typlog/ui'
</script>
<template>
<div class="flex flex-col gap-4">
<CollapsibleRoot>
<CollapsibleTrigger>
What is @typlog/ui?
</CollapsibleTrigger>
<CollapsibleContent>
<p><code>@typlog/ui</code> extends <code>reka-ui</code> with pre-styled components and uses Radix Colors for consistent theming.</p>
</CollapsibleContent>
</CollapsibleRoot>
</div>
</template>
API Reference
CollapsibleRoot
Prop | Default | Type |
---|---|---|
color | – | |
radius | – | "none""small""medium""large""full" |
size | – | "1""2""3""4" |
variant | – | "soft""surface""ghost" |
CollapsibleTrigger
Prop | Default | Type |
---|---|---|
indicator | – | "none""right""left" |
CollapsibleContent
Examples
Size
vue
<script setup lang="ts">
import {
CollapsibleRoot,
CollapsibleTrigger,
CollapsibleContent,
} from '@typlog/ui'
</script>
<template>
<div class="flex flex-col gap-4">
<CollapsibleRoot variant="soft" size="1">
<CollapsibleTrigger>
What is @typlog/ui?
</CollapsibleTrigger>
<CollapsibleContent>
<p><code>@typlog/ui</code> extends <code>reka-ui</code> with pre-styled components and uses Radix Colors for consistent theming.</p>
</CollapsibleContent>
</CollapsibleRoot>
<CollapsibleRoot variant="soft" size="2">
<CollapsibleTrigger>
What is @typlog/ui?
</CollapsibleTrigger>
<CollapsibleContent>
<p><code>@typlog/ui</code> extends <code>reka-ui</code> with pre-styled components and uses Radix Colors for consistent theming.</p>
</CollapsibleContent>
</CollapsibleRoot>
<CollapsibleRoot variant="soft" size="3">
<CollapsibleTrigger>
What is @typlog/ui?
</CollapsibleTrigger>
<CollapsibleContent>
<p><code>@typlog/ui</code> extends <code>reka-ui</code> with pre-styled components and uses Radix Colors for consistent theming.</p>
</CollapsibleContent>
</CollapsibleRoot>
</div>
</template>
Variant
vue
<script setup lang="ts">
import {
CollapsibleRoot,
CollapsibleTrigger,
CollapsibleContent,
} from '@typlog/ui'
</script>
<template>
<div class="flex flex-col gap-4">
<CollapsibleRoot variant="ghost">
<CollapsibleTrigger>
What is @typlog/ui?
</CollapsibleTrigger>
<CollapsibleContent>
<p><code>@typlog/ui</code> extends <code>reka-ui</code> with pre-styled components and uses Radix Colors for consistent theming.</p>
</CollapsibleContent>
</CollapsibleRoot>
<CollapsibleRoot variant="soft">
<CollapsibleTrigger>
What is @typlog/ui?
</CollapsibleTrigger>
<CollapsibleContent>
<p><code>@typlog/ui</code> extends <code>reka-ui</code> with pre-styled components and uses Radix Colors for consistent theming.</p>
</CollapsibleContent>
</CollapsibleRoot>
<CollapsibleRoot variant="surface">
<CollapsibleTrigger>
What is @typlog/ui?
</CollapsibleTrigger>
<CollapsibleContent>
<p><code>@typlog/ui</code> extends <code>reka-ui</code> with pre-styled components and uses Radix Colors for consistent theming.</p>
</CollapsibleContent>
</CollapsibleRoot>
</div>
</template>
Color
vue
<script setup lang="ts">
import {
CollapsibleRoot,
CollapsibleTrigger,
CollapsibleContent,
} from '@typlog/ui'
</script>
<template>
<div class="flex flex-col gap-4">
<CollapsibleRoot variant="soft" color="gray">
<CollapsibleTrigger>
What is @typlog/ui?
</CollapsibleTrigger>
<CollapsibleContent>
<p><code>@typlog/ui</code> extends <code>reka-ui</code> with pre-styled components and uses Radix Colors for consistent theming.</p>
</CollapsibleContent>
</CollapsibleRoot>
<CollapsibleRoot variant="soft" color="green">
<CollapsibleTrigger>
What is @typlog/ui?
</CollapsibleTrigger>
<CollapsibleContent>
<p><code>@typlog/ui</code> extends <code>reka-ui</code> with pre-styled components and uses Radix Colors for consistent theming.</p>
</CollapsibleContent>
</CollapsibleRoot>
<CollapsibleRoot variant="soft" color="red">
<CollapsibleTrigger>
What is @typlog/ui?
</CollapsibleTrigger>
<CollapsibleContent>
<p><code>@typlog/ui</code> extends <code>reka-ui</code> with pre-styled components and uses Radix Colors for consistent theming.</p>
</CollapsibleContent>
</CollapsibleRoot>
</div>
</template>