06 - 🎨 Componentes y estilos con CSS, Sass y Tailwind
Aprende cómo crear componentes reutilizables y aplicar estilos modernos con CSS, Sass y Tailwind en tu proyecto Next.js.
🧩 Creación de componentes reutilizables
En Next.js, los componentes son funciones que devuelven elementos de interfaz de usuario.
Se almacenan normalmente dentro de la carpeta components/ para mantener una estructura organizada.
Por ejemplo, puedes crear un componente Boton.js que pueda reutilizarse en varias páginas.
components/
└─ Boton.js
app/
└─ page.js
🎨 Estilos con CSS tradicional
Next.js permite importar archivos CSS globales o específicos de componentes.
Los estilos globales se definen en app/globals.css y los estilos locales se pueden importar directamente dentro del componente.
Ejemplo:
// app/globals.css
body {
font-family: Arial, sans-serif;
background-color: #fafafa;
margin: 0;
padding: 0;
}
// components/Boton.js
import './Boton.css';
export default function Boton({ texto }) {
return <button className="mi-boton">{texto}</button>;
}
// components/Boton.css
.mi-boton {
background-color: #0070f3;
color: white;
padding: 10px 20px;
border-radius: 8px;
border: none;
cursor: pointer;
}
💅 Estilos con Sass (SCSS)
Sass es un preprocesador de CSS que permite usar variables, anidación y mixins. Para usarlo en Next.js, solo debes instalarlo con:
npm install sass
Luego puedes crear archivos .scss dentro de tu proyecto:
/* components/Alerta.scss */
$color-principal: #e63946;
.alerta {
background-color: $color-principal;
color: white;
padding: 10px;
border-radius: 6px;
}
// components/Alerta.js
import './Alerta.scss';
export default function Alerta({ mensaje }) {
return <div className="alerta">{mensaje}</div>;
}
🌈 Estilos con Tailwind CSS
Tailwind CSS es un framework de utilidades que te permite aplicar estilos directamente desde tus archivos JSX usando clases predefinidas. Es muy rápido, moderno y se integra perfectamente con Next.js.
Para crear un proyecto con Tailwind ya configurado, puedes usar el siguiente comando:
npx create-next-app@latest myapp --example with-tailwindcss
🧩 ¿Cómo funciona className?
En React y Next.js, los elementos HTML usan el atributo className (en lugar de class tradicional de HTML)
para aplicar estilos.
Tailwind aprovecha esto para aplicar clases utilitarias que definen color, tamaño, margen, padding, sombras y mucho más.
export default function TarjetaSimple() {
return (
<div className="bg-white shadow-lg rounded-xl p-5 text-center">
<h2 className="text-2xl font-bold text-blue-600">Tarjeta con Tailwind</h2>
<p className="text-gray-700 mt-2">Diseño moderno y responsivo</p>
</div>
);
}
1️⃣ bg-white — Fondo blanco:
2️⃣ shadow-lg — Sombra grande (elevación):
3️⃣ rounded-xl — Bordes redondeados:
4️⃣ p-5 — Padding interno (espaciado):
5️⃣ text-center — Texto centrado:
6️⃣ text-2xl — Tamaño de fuente grande:
7️⃣ font-bold — Texto en negrita:
8️⃣ text-blue-600 — Color de texto azul:
9️⃣ mt-2 — Margen superior pequeño:
Este texto tiene margen superior (mt-2)
📦 Ejemplo práctico — Componente reutilizable
A continuación, un ejemplo completo de un componente que recibe props (titulo y descripcion)
y usa clases de Tailwind para aplicar estilos.
// components/Tarjeta.js
export default function Tarjeta({ titulo, descripcion }) {
return (
<div className="bg-blue-50 border border-blue-300 p-4 rounded-xl text-center shadow-md">
<h3 className="text-xl font-bold text-blue-700">{titulo}</h3>
<p className="text-gray-700 mt-2">{descripcion}</p>
</div>
);
}
// app/page.js
import Tarjeta from '../components/Tarjeta';
export default function Home() {
return (
<main className="flex flex-col items-center justify-center p-8 space-y-4">
<Tarjeta titulo="Componente con Tailwind" descripcion="Ejemplo práctico de estilo modular." />
<Tarjeta titulo="Reutilizable" descripcion="Puedes usar este componente en cualquier página." />
</main>
);
}
0 Comentarios
Si desea contactar comigo, lo puede hacer atravez deste formulario gracias