TuMarca

Collapsible

An interactive component which expands/collapses a panel.

stable
Tipo: ui
Versión: 1.0.0
interactive layout collapsible expand collapse toggle panel

Comparación entre la versión Astro (Saastro) y React (shadcn/ui)

🚀 saastro/ui (Astro)

@peduarte starred 3 repositories

@radix-ui/primitives
⚛️ shadcn/ui (React)

Installation

Usage

---
import {
  Collapsible,
  CollapsibleTrigger,
  CollapsibleContent,
} from "@/components/ui-saastro/collapsible"
---

<Collapsible>
  <CollapsibleTrigger>Toggle</CollapsibleTrigger>
  <CollapsibleContent>
    Content that can be shown or hidden.
  </CollapsibleContent>
</Collapsible>

Examples

Basic

<Collapsible>
  <CollapsibleTrigger>
    <Button variant="ghost">Click to expand</Button>
  </CollapsibleTrigger>
  <CollapsibleContent>
    <p>This content is collapsible.</p>
  </CollapsibleContent>
</Collapsible>

Default Open

Use defaultOpen to have the collapsible open by default.

<Collapsible defaultOpen>
  <CollapsibleTrigger>
    <Button variant="ghost">Click to collapse</Button>
  </CollapsibleTrigger>
  <CollapsibleContent>
    <p>This content is visible by default.</p>
  </CollapsibleContent>
</Collapsible>

With Custom Styling

<Collapsible class="w-[350px] space-y-2">
  <div class="flex items-center justify-between">
    <h4 class="text-sm font-semibold">Settings</h4>
    <CollapsibleTrigger>
      <Button variant="outline" size="sm">Toggle</Button>
    </CollapsibleTrigger>
  </div>
  <CollapsibleContent class="space-y-2">
    <div class="rounded-md border p-4">
      <p>Advanced settings content...</p>
    </div>
  </CollapsibleContent>
</Collapsible>

Components

Collapsible

The root container that manages the open/closed state.

CollapsibleTrigger

The button that toggles the collapsible state.

CollapsibleContent

The content that is shown or hidden.

Props

Collapsible

PropTypeDefaultDescription
defaultOpenbooleanfalseWhether the collapsible is open by default
openboolean-Controlled open state
classstring-Additional CSS classes

CollapsibleTrigger

PropTypeDefaultDescription
classstring-Additional CSS classes

CollapsibleContent

PropTypeDefaultDescription
classstring-Additional CSS classes

Data Attributes

Collapsible

AttributeValuesDescription
data-state"open" | "closed"The current state of the collapsible

CollapsibleContent

AttributeValuesDescription
data-state"open" | "closed"The current state of the content

Accessibility

  • Trigger uses aria-expanded to indicate state
  • Trigger uses aria-controls to reference the content element
  • Content visibility is controlled via the hidden attribute
  • Keyboard accessible - trigger can be activated with Enter/Space

Performance

Performance Benchmark

Bundle Size

~2KB vs ~180KB

99% menos

Hydration

0ms vs --

Sin hydration

Toggle Response

-- vs --

Interactúa para medir

Saastro (Vanilla JS)

@peduarte starred 3 repositories

@radix-ui/primitives
shadcn (React)

Haz click en "Ejecutar Test" o interactúa con los componentes (click) para medir el rendimiento.