TuMarca

Accordion

A vertically stacked set of interactive headings that each reveal a section of content.

stable
Tipo: ui
Versión: 1.0.0
layout disclosure interactive collapsible accessibility vanilla-js

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

🚀 saastro/ui (Astro)

⚛️ 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

PropTypeDefaultDescription
type"single" | "multiple""single"Allow single or multiple items open
defaultValuestring-Value of item to open by default
collapsiblebooleanfalseAllow closing all items (single mode)
classstring-Additional CSS classes

AccordionItem

PropTypeDefaultDescription
valuestringrequiredUnique identifier for the item
classstring-Additional CSS classes

AccordionTrigger

PropTypeDefaultDescription
classstring-Additional CSS classes

AccordionContent

PropTypeDefaultDescription
classstring-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)

shadcn (React)

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