tapcn
Components

Collapsible

An interactive component that expands and collapses a section of content.

@tapcn/ui starred 3 repositories
@radix-ui/primitives
@nativewind/nativewind
@react-native/react-native

Collapsible

A component for toggling the visibility of content. Wraps @rn-primitives/collapsible with a simple trigger-based expand/collapse mechanism.

Installation

npx @tapcn/cli add collapsible

Or using shadcn directly:

npx shadcn@latest add https://tapcn.vercel.app/r/collapsible.json

Usage

import {
  Collapsible,
  CollapsibleContent,
  CollapsibleTrigger,
} from '~/components/ui/collapsible';
import { Button } from '~/components/ui/button';
import { Text } from '~/components/ui/text';

export function Example() {
  return (
    <Collapsible>
      <CollapsibleTrigger asChild>
        <Button variant="outline">
          <Text>Toggle Content</Text>
        </Button>
      </CollapsibleTrigger>
      <CollapsibleContent>
        <Text>This content can be expanded and collapsed.</Text>
      </CollapsibleContent>
    </Collapsible>
  );
}

Controlled collapsible

import { useState } from 'react';

export function ControlledCollapsible() {
  const [open, setOpen] = useState(false);

  return (
    <Collapsible open={open} onOpenChange={setOpen}>
      <CollapsibleTrigger asChild>
        <Button variant="ghost">
          <Text>{open ? 'Hide' : 'Show'} Details</Text>
        </Button>
      </CollapsibleTrigger>
      <CollapsibleContent>
        <Text>
          Here are the additional details that were hidden.
        </Text>
      </CollapsibleContent>
    </Collapsible>
  );
}

Default open

<Collapsible defaultOpen>
  <CollapsibleTrigger asChild>
    <Button variant="outline">
      <Text>Toggle</Text>
    </Button>
  </CollapsibleTrigger>
  <CollapsibleContent>
    <Text>This content is visible by default.</Text>
  </CollapsibleContent>
</Collapsible>

Sub-Components

ComponentDescription
CollapsibleRoot component, manages open/closed state
CollapsibleTriggerButton that toggles the content visibility
CollapsibleContentThe content that is shown or hidden

Props

Collapsible

PropTypeDefaultDescription
defaultOpenbooleanfalseWhether the content is visible initially
openboolean--Controlled open state
onOpenChange(open: boolean) => void--Callback when open state changes

Dependencies

  • @rn-primitives/collapsible -- underlying primitive

On this page