DocsComponentsPrimitives
Collapsible
React example follows below.
ts
import { Collapsible } from "@grassroot/ui-react"; const [open, setOpen] = React.useState(true); <Collapsible title="Environment variables" open={open} onOpenChange={setOpen}> <div className="font-mono text-[12.5px]">DATABASE_URL=postgres://…</div></Collapsible>ts
<script setup lang="ts">import { ref } from "vue";import { Collapsible } from "@grassroot/ui-vue"; const open = ref(true);</script> <template> <Collapsible v-model:open="open" title="Environment variables" > <div className="font-mono text-[12.5px]">DATABASE_URL=postgres://…</div> </Collapsible></template>ts
import { Component, signal } from "@angular/core";import { GrassrootCollapsible } from "@grassroot/ui-angular"; @Component({ selector: "app-example", standalone: true, imports: [GrassrootCollapsible], template: ` <grassroot-collapsible title="Environment variables" [open]="open()" (openChange)="open.set($event)" > <div className="font-mono text-[12.5px]">DATABASE_URL=postgres://…</div> </grassroot-collapsible> `,})export class ExampleComponent { readonly open = signal(true);}ts
<script lang="ts"> import { Collapsible } from "@grassroot/ui-svelte"; let open = $state(true);</script> <Collapsible title="Environment variables" open={open} onOpenChange={(next) => (open = next)}> <div className="font-mono text-[12.5px]">DATABASE_URL=postgres://…</div></Collapsible>ts
import { createSignal } from "solid-js";import { Collapsible } from "@grassroot/ui-solid"; export function Example() { const [open, setOpen] = createSignal(true); return ( <> <Collapsible title="Environment variables" open={open()} onOpenChange={setOpen} > <div className="font-mono text-[12.5px]">DATABASE_URL=postgres://…</div> </Collapsible> </> );}Installation
bash
pnpm dlx grassroot add ui/collapsiblebash
npx grassroot@latest add ui/collapsiblebash
yarn dlx grassroot add ui/collapsiblebash
bunx grassroot add ui/collapsibleAPI Reference
| Prop | Type | Default |
|---|---|---|
titlerequiredTrigger label — typically a short heading. | React.ReactNode | — |
openControlled open state. | boolean | undefined | — |
defaultOpenUncontrolled initial state. | boolean | undefined | false |
onOpenChange | ((open: boolean) => void) | undefined | — |
childrenrequiredThe collapsible body. | React.ReactNode | — |