Apoya mi contenido: 

Tabla de contenido

Crear Componentes Reutilizables con Tailwind y shadcn/ui (Ejemplos)

shadcn/ui es una librería basada en Tailwind CSS y Radix UI que te permite tener control total sobre el código fuente de cada componente. Aquí te mostramos cómo crear y reutilizar componentes visuales modernos con esta herramienta.

¿Qué es shadcn/ui?

  • Código editable: no dependes de una librería empaquetada, puedes modificar todo.
  • Base accesible: utiliza Radix UI como base para cumplir estándares WCAG.
  • Estilizado con Tailwind: diseño consistente, ligero y fácil de personalizar.

Instalación básica

npx shadcn-ui@latest init
npx shadcn-ui@latest add button

Ejemplo 1: Botón animado con Framer Motion


// components/ui/AnimatedButton.tsx
import { Button } from "@/components/ui/button";
import { motion } from "framer-motion";

export function AnimatedButton({ label }: { label: string }) {
  return (
    <motion.div whileHover={{ scale: 1.05 }} whileTap={{ scale: 0.95 }} transition={{ duration: 0.2 }}>
      <Button className="bg-primary text-white px-4 py-2 rounded">
        {label}
      </Button>
    </motion.div>
  );
}

Uso:


<AnimatedButton label="Haz clic aquí" />

Ejemplo 2: Componente de Contenedor con variantes


import { cva, type VariantProps } from "class-variance-authority";
import { cn } from "@/lib/utils";

const containerVariants = cva("mx-auto", {
  variants: {
    variant: {
      fullMobile: "max-w-7xl sm:px-6 lg:px-8",
      narrow: "max-w-3xl px-4 sm:px-6 lg:px-8",
    },
  },
  defaultVariants: {
    variant: "fullMobile",
  },
});

type ContainerProps = VariantProps<typeof containerVariants> & {
  children: React.ReactNode;
};

export function Container({ variant, children }: ContainerProps) {
  return <div className={cn(containerVariants({ variant }))}>{children}</div>;
}

Uso:


<Container variant="narrow">
  <p>Contenido centrado y limpio</p>
</Container>

Recursos y Componentes Comunitarios

  • manfromexistence/ui: +80 componentes reutilizables listos para copiar.
  • awesome-shadcn-ui (GitHub): Galería de componentes creativos de la comunidad.

Conclusión

shadcn/ui ofrece un enfoque moderno, accesible y altamente personalizable para construir sistemas de diseño con Tailwind. Al tener el control del código, puedes iterar rápido, mantener coherencia visual y escalar tu proyecto eficientemente.

¡Comunícate con nosotros!

Ads Blocker Image Powered by Code Help Pro

Bloqueador de anuncios detectado!!!

 Por favor, apóyanos desactivando este bloqueador de anuncios para seguir creando contenido que te gusta 🙏🏼

Powered By
Best Wordpress Adblock Detecting Plugin | CHP Adblock