Moodinary/UI

Accordion

Preguntas frecuentes o ajustes poco usados. Flechas arriba/abajo entre títulos.

Lista de secciones que se abren y cierran, ideal para preguntas frecuentes.

Instalación

shadcn
npx shadcn@latest add https://design.moodinary.com/r/accordion.json
import
import { Accordion, AccordionItem, AccordionTrigger, AccordionContent } from "@moodinary/ui/components/accordion";

Ejemplos

Preguntas frecuentes

Por defecto se abre una sola a la vez.

Sí. Respondés sin nombre ni cuenta. La lectura es del grupo, no de cada persona.

Código
faq.tsx
import {
	Accordion,
	AccordionContent,
	AccordionItem,
	AccordionTrigger,
} from "@moodinary/ui/components/accordion";

export default function AccordionFaq() {
	return (
		<Accordion defaultValue={["anonymous"]}>
			<AccordionItem value="anonymous">
				<AccordionTrigger>¿Los pulsos son anónimos?</AccordionTrigger>
				<AccordionContent>
					Sí. Respondés sin nombre ni cuenta. La lectura es del grupo, no de
					cada persona.
				</AccordionContent>
			</AccordionItem>
			<AccordionItem value="fog">
				<AccordionTrigger>¿Qué pasa si hay pocas respuestas?</AccordionTrigger>
				<AccordionContent>
					Con menos de 8 pulsos en la semana, la lectura entra en Niebla. El
					promedio es provisional y no se muestra una tendencia.
				</AccordionContent>
			</AccordionItem>
			<AccordionItem value="frequency">
				<AccordionTrigger>
					¿Tengo que responder una vez por semana?
				</AccordionTrigger>
				<AccordionContent>
					No. Podés responder cuando quieras, sin una frecuencia mínima.
				</AccordionContent>
			</AccordionItem>
		</Accordion>
	);
}

Varias abiertas

multiple permite abrir varias. Un item puede estar deshabilitado.

4.º A y 5.º B son equipos ilustrativos.

Equipo Ventas y Equipo Soporte son equipos ilustrativos.

Código
multiple.tsx
import {
	Accordion,
	AccordionContent,
	AccordionItem,
	AccordionTrigger,
} from "@moodinary/ui/components/accordion";

export default function AccordionMultiple() {
	return (
		<Accordion defaultValue={["school", "company"]} multiple>
			<AccordionItem value="school">
				<AccordionTrigger>Ejemplo para una escuela</AccordionTrigger>
				<AccordionContent>
					4.º A y 5.º B son equipos ilustrativos.
				</AccordionContent>
			</AccordionItem>
			<AccordionItem value="company">
				<AccordionTrigger>Ejemplo para una empresa</AccordionTrigger>
				<AccordionContent>
					Equipo Ventas y Equipo Soporte son equipos ilustrativos.
				</AccordionContent>
			</AccordionItem>
			<AccordionItem disabled value="soon">
				<AccordionTrigger>Configuración no disponible</AccordionTrigger>
				<AccordionContent>
					Esta opción está deshabilitada en el ejemplo.
				</AccordionContent>
			</AccordionItem>
		</Accordion>
	);
}

Props

Accordion

PropTipoDefaultDescripción
defaultValuestring[]-Items abiertos al inicio.
valuestring[]-Items abiertos controlados.
onValueChange(value: string[]) => void-Se llama al abrir o cerrar.
multiplebooleanfalsePermite varios abiertos.
classNamestring-Clases extra.

AccordionItem

PropTipoDefaultDescripción
valuestring-Identificador.
disabledbooleanfalseBloquea el item.

AccordionTrigger, AccordionContent

PropTipoDefaultDescripción
childrenReactNode-Pregunta y respuesta.
classNamestring-Clases extra.

Cuándo sí y cuándo no

Hacé
  • Escribí la pregunta como la haría alguien.
  • Respuestas cortas.
  • Abrí la más importante por defecto.
Evitá
  • No escondas información obligatoria.
  • No anides acordeones.
  • No uses acordeón para un solo item; usá Collapsible.

Accesibilidad

  • Enter y Espacio abren y cierran.
  • Flechas arriba y abajo, Home y End recorren los encabezados.