Comparación entre la versión Astro (Saastro) y React (shadcn/ui)
🚀 saastro/ui (Astro)
@peduarte starred 3 repositories
@radix-ui/primitives
@radix-ui/colors
@stitches/react
⚛️ 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
| Prop | Type | Default | Description |
|---|---|---|---|
defaultOpen | boolean | false | Whether the collapsible is open by default |
open | boolean | - | Controlled open state |
class | string | - | Additional CSS classes |
CollapsibleTrigger
| Prop | Type | Default | Description |
|---|---|---|---|
class | string | - | Additional CSS classes |
CollapsibleContent
| Prop | Type | Default | Description |
|---|---|---|---|
class | string | - | Additional CSS classes |
Data Attributes
Collapsible
| Attribute | Values | Description |
|---|---|---|
data-state | "open" | "closed" | The current state of the collapsible |
CollapsibleContent
| Attribute | Values | Description |
|---|---|---|
data-state | "open" | "closed" | The current state of the content |
Accessibility
- Trigger uses
aria-expandedto indicate state - Trigger uses
aria-controlsto reference the content element - Content visibility is controlled via the
hiddenattribute - 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
@radix-ui/colors
@stitches/react
shadcn (React)
Haz click en "Ejecutar Test" o interactúa con los componentes (click) para medir el rendimiento.