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