Presets

Blocks

Get PRO

Need premium blocks and templates? Upgrade to PRO and get access.

Upgrade
JoinLogin
Presets
Monochrome
Overview
  • Introduction
  • Components
  • Installation
Components
  • Accordion
  • Alert
  • Alert Dialog
  • Aspect Ratio
  • Avatar
  • Badge
  • Breadcrumb
  • Button
  • Button Group
  • CalendarNEW
  • Card
  • CarouselNEW
  • Checkbox
  • Collapsible
  • Dialog
  • Dropdown Menu
  • Empty
  • Field
  • Input
  • Input Group
  • Item
  • Kbd
  • Label
  • Native Select
  • Scroll Area
  • SelectNEW
  • Separator
  • SwitchNEW
  • Table
  • Tabs
  • Textarea
  • TooltipNEW

Collapsible

PreviousNext

An interactive component which expands/collapses a panel.

1<script lang="ts">
2import { Button } from "@/components/ui/button"
3import {
4  Collapsible,

Installation

pnpm dlx sprawlify@latest add collapsible
npx sprawlify@latest add collapsible
yarn sprawlify@latest add collapsible
bunx --bun sprawlify@latest add collapsible

Install the following dependencies:

pnpm add @sprawlify/primitives @sprawlify/svelte
npm install @sprawlify/primitives @sprawlify/svelte
yarn add @sprawlify/primitives @sprawlify/svelte
bun add @sprawlify/primitives @sprawlify/svelte

Add the following files to your project:

collapsible/collapsible-content.svelte
1<script lang="ts">
2import { Collapsible as CollapsiblePrimitive } from "@sprawlify/svelte/collapsible"
3import type { ComponentProps } from "svelte";
4
5interface Props extends ComponentProps<typeof CollapsiblePrimitive.Content> {}
6  
7let { children, ...rest }: Props = $props()
8</script>
9
10<CollapsiblePrimitive.Content data-slot="collapsible-content" {...rest}>
11  {@render children?.()}
12</CollapsiblePrimitive.Content>
collapsible/collapsible-trigger.svelte
1<script lang="ts">
2import { Collapsible as CollapsiblePrimitive } from "@sprawlify/svelte/collapsible"
3import type { ComponentProps } from "svelte";
4
5interface Props extends ComponentProps<typeof CollapsiblePrimitive.Trigger> {}
6  
7let { children, ...rest }: Props = $props()
8</script>
9
10<CollapsiblePrimitive.Trigger data-slot="collapsible-trigger" {...rest}>
11  {@render children?.()}
12</CollapsiblePrimitive.Trigger>
collapsible/collapsible.svelte
1<script lang="ts">
2import { Collapsible as CollapsiblePrimitive } from "@sprawlify/svelte/collapsible"
3import type { ComponentProps } from "svelte";
4
5interface Props extends ComponentProps<typeof CollapsiblePrimitive.Root> {}
6  
7let { children, ...rest }: Props = $props()
8</script>
9
10<CollapsiblePrimitive.Root data-slot="collapsible" {...rest}>
11  {@render children?.()}
12</CollapsiblePrimitive.Root>
collapsible/index.ts
1export { default as Collapsible } from "./collapsible.svelte";2export { default as CollapsibleTrigger } from "./collapsible-trigger.svelte";3export { default as CollapsibleContent } from "./collapsible-content.svelte";4

Update the import paths to match your project setup.

Usage

1import {
2  Collapsible,
3  CollapsibleTrigger,
4  CollapsibleContent
5} from "@/components/ui/collapsible"
1<Collapsible>
2  <CollapsibleTrigger>Can I use this in my project?</CollapsibleTrigger>
3  <CollapsibleContent>
4    Yes. Free to use for personal and commercial projects. No attribution
5    required.
6  </CollapsibleContent>
7</Collapsible>

Examples

Basic

1<script lang="ts">
2import { Button } from "@/components/ui/button"
3import { Card, CardContent } from "@/components/ui/card"
4import {

File Tree

1<script lang="ts">
2import { Button } from "@/components/ui/button"
3import { Card, CardContent, CardHeader } from "@/components/ui/card"
4import {

Settings Panel

1<script lang="ts">
2import { Button } from "@/components/ui/button"
3import {
4  Card,

On This Page

InstallationUsageExamplesBasicFile TreeSettings Panel

Get PRO

Need premium blocks and templates? Upgrade to PRO and get access.