Comparación entre la versión Astro (Saastro) y React (shadcn/ui)
🚀 saastro/ui (Astro)
Yes. It adheres to the WAI-ARIA design pattern.
Yes. It comes with default styles that match the other components' aesthetic.
Yes. It's animated by default, but you can disable it if you prefer.
⚛️ shadcn/ui (React)
Installation
Usage
---
import {
Accordion,
AccordionItem,
AccordionTrigger,
AccordionContent,
} from "@/components/ui-saastro/accordion"
---
<Accordion type="single" collapsible>
<AccordionItem value="item-1">
<AccordionTrigger>Is it accessible?</AccordionTrigger>
<AccordionContent>
Yes. It adheres to the WAI-ARIA design pattern.
</AccordionContent>
</AccordionItem>
</Accordion>
Examples
Single (default)
Only one item can be open at a time.
<Accordion type="single" collapsible>
<AccordionItem value="item-1">
<AccordionTrigger>Item 1</AccordionTrigger>
<AccordionContent>Content 1</AccordionContent>
</AccordionItem>
<AccordionItem value="item-2">
<AccordionTrigger>Item 2</AccordionTrigger>
<AccordionContent>Content 2</AccordionContent>
</AccordionItem>
</Accordion>
Multiple
Multiple items can be open at the same time.
<Accordion type="multiple">
<AccordionItem value="item-1">
<AccordionTrigger>Item 1</AccordionTrigger>
<AccordionContent>Content 1</AccordionContent>
</AccordionItem>
<AccordionItem value="item-2">
<AccordionTrigger>Item 2</AccordionTrigger>
<AccordionContent>Content 2</AccordionContent>
</AccordionItem>
</Accordion>
Default Open
Use defaultValue to set an item open by default.
<Accordion type="single" defaultValue="item-2" collapsible>
<AccordionItem value="item-1">
<AccordionTrigger>Item 1</AccordionTrigger>
<AccordionContent>Content 1</AccordionContent>
</AccordionItem>
<AccordionItem value="item-2">
<AccordionTrigger>Item 2 (open by default)</AccordionTrigger>
<AccordionContent>Content 2</AccordionContent>
</AccordionItem>
</Accordion>
Props
Accordion
| Prop | Type | Default | Description |
|---|---|---|---|
type | "single" | "multiple" | "single" | Allow single or multiple items open |
defaultValue | string | - | Value of item to open by default |
collapsible | boolean | false | Allow closing all items (single mode) |
class | string | - | Additional CSS classes |
AccordionItem
| Prop | Type | Default | Description |
|---|---|---|---|
value | string | required | Unique identifier for the item |
class | string | - | Additional CSS classes |
AccordionTrigger
| Prop | Type | Default | Description |
|---|---|---|---|
class | string | - | Additional CSS classes |
AccordionContent
| Prop | Type | Default | Description |
|---|---|---|---|
class | string | - | Additional CSS classes |
Accessibility
- Full keyboard navigation (Arrow Up/Down, Home, End)
- ARIA attributes for screen readers
- Focus management
- Semantic HTML structure
Performance
Este componente Saastro usa vanilla JavaScript en lugar de React. Prueba el benchmark interactivo para comparar el rendimiento en tiempo real:
Performance Benchmark
Bundle Size
~2.5KB vs ~175KB
98% menos
Hydration
0ms vs --
Sin hydration
Click Response
-- vs --
Interactúa para medir
Saastro (Vanilla JS)
Yes. It adheres to the WAI-ARIA design pattern.
Yes. It comes with default styles that match the other components' aesthetic.
Yes. It's animated by default, but you can disable it if you prefer.
shadcn (React)
Haz click en "Ejecutar Test" o interactúa con los componentes (click) para medir el rendimiento.