Acordeón con NextUI y Tailwind
Creado el: 28 de febrero de 2025
Creado el: 28 de febrero de 2025
Código que permita Desarrollar un componente de acordeón que permita expandir y colapsar secciones de contenido. Utilizar Tailwind CSS para el diseño y NextUI para las animaciones.
Características:
Crea un componente de acordeón con secciones que se puedan expandir y colapsar dinámicamente.
Usa Tailwind CSS para estilizar el acordeón (bordes, colores, márgenes, etc.).
Implementa animaciones suaves al expandir y colapsar las secciones usando NextUI.
Asegúrate de que el componente sea accesible (por ejemplo, que se pueda navegar con el teclado).
Aquí tienes un componente de acordeón en React utilizando Tailwind CSS para los estilos y NextUI para las animaciones. El componente es accesible y permite la navegación con el teclado.
Si aún no tienes NextUI en tu proyecto, instálalo con:
bashnpm install @nextui-org/react
Accordion.tsx
tsx"use client"; import { useState } from "react"; import { Accordion, AccordionItem } from "@nextui-org/react"; const sections = [ { id: "1", title: "Sección 1", content: "Contenido de la Sección 1." }, { id: "2", title: "Sección 2", content: "Contenido de la Sección 2." }, { id: "3", title: "Sección 3", content: "Contenido de la Sección 3." }, ]; export default function CustomAccordion() { return ( <div className="max-w-md mx-auto my-10 p-4 bg-white shadow-lg rounded-lg border border-gray-200"> <h2 className="text-2xl font-semibold text-center mb-4">Acordeón</h2> <Accordion selectionMode="multiple" variant="bordered"> {sections.map((section) => ( <AccordionItem key={section.id} title={section.title} className="rounded-lg bg-gray-50 text-gray-800" > {section.content} </AccordionItem> ))} </Accordion> </div> ); }
Accordion
y AccordionItem
de NextUI para gestionar el acordeón.bg-white shadow-lg rounded-lg border
para el contenedor.text-gray-800 bg-gray-50
en los elementos.selectionMode="multiple"
.En un archivo como page.tsx
o cualquier otro componente de Next.js, importa y usa:
tsximport CustomAccordion from "@/components/Accordion"; export default function Home() { return ( <div className="flex justify-center items-center min-h-screen bg-gray-100"> <CustomAccordion /> </div> ); }
Este código renderiza un acordeón estilizado con animaciones suaves de NextUI, que es accesible y fácil de usar. ¿Necesitas personalizaciones adicionales?