馃帹 Componentes y estilos con CSS, Sass y Tailwind

Next.js Componentes y Estilos

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:

Ejemplo de fondo blanco

2️⃣ shadow-lg — Sombra grande (elevaci贸n):

Ejemplo con sombra

3️⃣ rounded-xl — Bordes redondeados:

Ejemplo con bordes redondeados

4️⃣ p-5 — Padding interno (espaciado):

Ejemplo con padding grande

5️⃣ text-center — Texto centrado:

Este texto est谩 centrado

6️⃣ text-2xl — Tama帽o de fuente grande:

Texto m谩s grande

7️⃣ font-bold — Texto en negrita:

Texto en negrita

8️⃣ text-blue-600 — Color de texto azul:

Texto azul Tailwind

9️⃣ mt-2 — Margen superior peque帽o:

Texto 1

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>
  );
}
    
馃挕 Consejo: Tailwind permite combinar clases libremente, lo que te da un control total sobre la apariencia sin tener que crear archivos CSS separados.

Publicar un comentario

0 Comentarios