- Prop
open- Type
boolean | undefined- Default
- —
- Requirement
- optional
- Description
- Controlled open state.
Docs Components Primitives
Collapsible
React example follows below.
Vue example follows below.
Angular example follows below.
Svelte example follows below.
Solid example follows below.
- parts
- —
- nodes
- —
- size
- —
- part
- —
ts
const collapsibleFixture = { id: "collapsible", title: "Advanced deployment settings", body: "Retries are limited to one automatic rollback.", defaultOpen: false,} satisfies { id: string; title: string; body: string; defaultOpen: boolean }; import { Collapsible } from "@grassroot/ui-react"; export default function CollapsibleDemo() { return ( <div> <Collapsible id={`${collapsibleFixture.id}-react`} defaultOpen={collapsibleFixture.defaultOpen} title={collapsibleFixture.title} > {collapsibleFixture.body} </Collapsible> </div> );}- parts
- —
- nodes
- —
- size
- —
- part
- —
ts
<script setup lang="ts">import { Collapsible } from "@grassroot/ui-vue";const collapsibleFixture = { id: "collapsible", title: "Advanced deployment settings", body: "Retries are limited to one automatic rollback.", defaultOpen: false,} satisfies { id: string; title: string; body: string; defaultOpen: boolean }; </script> <template> <div> <Collapsible :id="`${collapsibleFixture.id}-vue`" :title="collapsibleFixture.title" :default-open="collapsibleFixture.defaultOpen" > {{ collapsibleFixture.body }} </Collapsible> </div></template>- parts
- —
- nodes
- —
- size
- —
- part
- —
ts
import { Component } from "@angular/core";import { GrassrootCollapsible } from "@grassroot/ui-angular";const collapsibleFixture = { id: "collapsible", title: "Advanced deployment settings", body: "Retries are limited to one automatic rollback.", defaultOpen: false,} satisfies { id: string; title: string; body: string; defaultOpen: boolean }; @Component({ selector: "app-collapsible-demo", standalone: true, imports: [GrassrootCollapsible], template: ` <div> <grassroot-collapsible [id]="id" [title]="fixture.title" [defaultOpen]="fixture.defaultOpen"> {{ fixture.body }} </grassroot-collapsible> </div> `,})export class CollapsibleDemoComponent { protected readonly fixture = collapsibleFixture; protected readonly id = `${collapsibleFixture.id}-angular`;} export default CollapsibleDemoComponent;- parts
- —
- nodes
- —
- size
- —
- part
- —
ts
<script lang="ts"> import { Collapsible } from "@grassroot/ui-svelte"; const collapsibleFixture = { id: "collapsible", title: "Advanced deployment settings", body: "Retries are limited to one automatic rollback.", defaultOpen: false, } satisfies { id: string; title: string; body: string; defaultOpen: boolean }; </script> <div> <Collapsible id={`${collapsibleFixture.id}-svelte`} title={collapsibleFixture.title} defaultOpen={collapsibleFixture.defaultOpen} > {collapsibleFixture.body} </Collapsible></div>- parts
- —
- nodes
- —
- size
- —
- part
- —
ts
/** @jsxImportSource solid-js */import { Collapsible } from "@grassroot/ui-solid";const collapsibleFixture = { id: "collapsible", title: "Advanced deployment settings", body: "Retries are limited to one automatic rollback.", defaultOpen: false,} satisfies { id: string; title: string; body: string; defaultOpen: boolean }; export default function CollapsibleDemo() { return ( <div> <Collapsible id={`${collapsibleFixture.id}-solid`} title={collapsibleFixture.title} defaultOpen={collapsibleFixture.defaultOpen} > {collapsibleFixture.body} </Collapsible> </div> );}Installation
API Reference
Import
import { Collapsible } from "@grassroot/ui-react";
Props
Prop
Type
Default
Requirement
Description
openboolean | undefined—
optional
Controlled open state.
defaultOpenboolean | undefinedfalseoptional
Uncontrolled initial state.
onOpenChange((open: boolean) => void) | undefined—
optional
—
disabledboolean | undefined—
optional
—
- Prop
defaultOpen- Type
boolean | undefined- Default
false- Requirement
- optional
- Description
- Uncontrolled initial state.
- Prop
onOpenChange- Type
((open: boolean) => void) | undefined- Default
- —
- Requirement
- optional
- Description
- —
- Prop
disabled- Type
boolean | undefined- Default
- —
- Requirement
- optional
- Description
- —
Events
| Event | Payload |
|---|---|
onOpenChange | ((open: boolean) => void) | undefined |
Content regions
childrentitle
Native attributes
Standard DOM and ARIA attributes not listed above spread onto the root element.
Import
import { Collapsible } from "@grassroot/ui-vue";
Props
Prop
Type
Default
Requirement
titlestring—
required
openboolean | undefinedundefinedoptional
defaultOpenboolean | undefinedfalseoptional
disabledboolean | undefinedfalseoptional
idstring | undefined—
optional
- Prop
title- Type
string- Default
- —
- Requirement
- required
- Prop
open- Type
boolean | undefined- Default
undefined- Requirement
- optional
- Prop
defaultOpen- Type
boolean | undefined- Default
false- Requirement
- optional
- Prop
disabled- Type
boolean | undefined- Default
false- Requirement
- optional
- Prop
id- Type
string | undefined- Default
- —
- Requirement
- optional
Events
| Event | Payload |
|---|---|
update:open | [open: boolean] |
Content regions
defaulttitle
Import
import { Component } from "@angular/core";
import { GrassrootCollapsible } from "@grassroot/ui-angular";
Props
Prop
Type
Default
Requirement
titlestring—
required
defaultOpenbooleanfalseoptional
disabledbooleanfalseoptional
idstring"grassroot-collapsible"optional
openboolean | undefinedundefinedoptional
- Prop
title- Type
string- Default
- —
- Requirement
- required
- Prop
defaultOpen- Type
boolean- Default
false- Requirement
- optional
- Prop
disabled- Type
boolean- Default
false- Requirement
- optional
- Prop
id- Type
string- Default
"grassroot-collapsible"- Requirement
- optional
- Prop
open- Type
boolean | undefined- Default
undefined- Requirement
- optional
Events
| Event | Payload |
|---|---|
openChange | boolean | undefined |
Content regions
defaulttitle
Import
import { Collapsible } from "@grassroot/ui-svelte";
Props
Prop
Type
Default
Requirement
openboolean—
optional
defaultOpenbooleanfalseoptional
disabledbooleanfalseoptional
idstring—
optional
classNamestring—
optional
onOpenChange(open: boolean) => void—
optional
- Prop
open- Type
boolean- Default
- —
- Requirement
- optional
- Prop
defaultOpen- Type
boolean- Default
false- Requirement
- optional
- Prop
disabled- Type
boolean- Default
false- Requirement
- optional
- Prop
id- Type
string- Default
- —
- Requirement
- optional
- Prop
className- Type
string- Default
- —
- Requirement
- optional
- Prop
onOpenChange- Type
(open: boolean) => void- Default
- —
- Requirement
- optional
Events
| Event | Payload |
|---|---|
onOpenChange | (open: boolean) => void |
Content regions
childrentitle
Import
import { Collapsible } from "@grassroot/ui-solid";
Props
Prop
Type
Default
Requirement
openboolean—
optional
defaultOpenboolean—
optional
onOpenChange(open: boolean) => void—
optional
disabledboolean—
optional
classNamestring—
optional
idstring—
optional
- Prop
open- Type
boolean- Default
- —
- Requirement
- optional
- Prop
defaultOpen- Type
boolean- Default
- —
- Requirement
- optional
- Prop
onOpenChange- Type
(open: boolean) => void- Default
- —
- Requirement
- optional
- Prop
disabled- Type
boolean- Default
- —
- Requirement
- optional
- Prop
className- Type
string- Default
- —
- Requirement
- optional
- Prop
id- Type
string- Default
- —
- Requirement
- optional
Events
| Event | Payload |
|---|---|
onOpenChange | (open: boolean) => void |
Content regions
childrentitle