36. 2 Dando estilos

 

Tutorial 36.2: Dando estilos a nuestro proyecto

Importancia del archivo package.json

Es importante fijarnos siempre en el archivo package.json de cualquier proyecto. Este archivo nos da información crucial sobre cómo fue creado el proyecto y cómo debemos manejarlo.

Identificando el empaquetador

En nuestro proyecto 01-peliculas, si miramos el package.json, veremos:

json

{

  "name": "01-peliculas",

  "private": true,

  "version": "0.0.0",

  "type": "module",

  "scripts": {

    "dev": "vite",

    "build": "vite build",

    "preview": "vite preview"

  },

  "dependencies": {

    "react": "^18.2.0",

    "react-dom": "^18.2.0"

  },

  "devDependencies": {

    "@types/react": "^18.0.27",

    "@types/react-dom": "^18.0.10",

    "@vitejs/plugin-react": "^3.1.0",

    "vite": "^4.1.0"

  }

}

Lo más importante aquí es que dice que se ha creado con Vite (fíjate en los scripts que usan vite).

Ejecutando el proyecto con diferentes gestores

Con Yarn (el que usamos)

bash

yarn dev

Con npm (alternativa)

bash

npm run dev

Diferencia: Con npm necesitas agregar run antes del nombre del script.

Probemos ambas formas:

  1. Detenemos el servidor actual: Ctrl + C (dos veces para asegurar)

  2. Ejecutamos con npm:

  3. bash

  4. npm run dev
    Hace exactamente lo mismo que yarn dev, solo que con una palabra extra (run).

¿Por qué es importante identificar el empaquetador?

Porque diferentes empaquetadores tienen diferentes configuraciones:

  • Create React App: En el package.json verás "react-scripts start"

  • Vite: En el package.json verás "vite"

Ventaja de Vite: Es mucho más rápido, especialmente útil si eres impaciente (como yo) o si tu computadora no tiene los mejores recursos.

Estructura del proyecto Vite

Vamos a explorar la estructura que nos creó Vite:

text

01-peliculas/

├── public/

│   └── vite.svg

├── src/

│   ├── assets/

│   │   └── react.svg

│   ├── App.css

│   ├── App.jsx

│   ├── index.css

│   └── main.jsx

├── index.html

├── package.json

└── vite.config.js

Diferencias con Create React App:

  1. El archivo index.html está fuera de public/ - Vite lo maneja de forma diferente para mayor velocidad

  2. Proyecto más limpio - Viene con menos archivos y comentarios innecesarios

  3. Extensión .jsx obligatoria - Vite te obliga a usar la extensión correcta para archivos JSX

Modificando nuestra aplicación

Paso 1: Limpiar el archivo App.jsx

Vamos a src/App.jsx y eliminamos todo el contenido por defecto:

jsx

function App() {

  return (

    <div className="App">

      {/* Vamos a agregar nuestro contenido aquí */}

    </div>

  );

}


export default App;

Paso 2: Agregar un header con título

jsx

function App() {

  return (

    <div className="App">

      <header>

        <h1 className="title">Películas 🎬</h1>

      </header>

    </div>

  );

}

Aplicando estilos

Paso 3: Limpiar y organizar los archivos CSS

src/index.css - Estilos globales:

css

/* Importar fuente de Google Fonts */

@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;600;700&display=swap');


/* Reset de estilos */

* {

  margin: 0;

  padding: 0;

  box-sizing: border-box;

}


/* Estilos del body */

body {

  font-family: 'Poppins', sans-serif;

  background-color: #1a1a2e;

  color: #ffffff;

  line-height: 1.6;

}

src/App.css - Estilos específicos del componente:

css

/* Estilos para el título */

.title {

  text-align: center;

  font-size: 3rem;

  margin: 2rem 0;

  color: #ffd700; /* Color dorado tipo React */

  text-shadow: 0 0 10px rgba(255, 215, 0, 0.3);

}


/* Estilos para el header */

header {

  padding: 1rem;

  background: linear-gradient(135deg, #16213e 0%, #0f3460 100%);

  border-bottom: 3px solid #ffd700;

}

Paso 4: Importar Google Fonts

Para usar la fuente Poppins, puedes:

  1. Ir a fonts.google.com

  2. Buscar "Poppins"

  3. Seleccionar los pesos que necesites (300, 400, 500, 600, 700)

  4. Copiar el link del @import

O simplemente usar:

css

@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;600;700&display=swap');

Jerarquía de estilos en React

Es importante entender cómo funcionan los estilos en React:

  1. Estilos globales (index.css): Afectan a toda la aplicación

  2. Estilos de componente (App.css): Afectan solo al componente específico

  3. Estilos en línea: Usando el atributo style en los elementos

Ejemplo de especificidad:

jsx

// En App.jsx

<h1 className="title" style={{ fontStyle: 'italic' }}>

  Películas 🎬

</h1>

El orden de aplicación sería:

  1. index.css establece color blanco para todos los textos

  2. App.css cambia el color a dorado para .title

  3. El estilo en línea agrega cursiva

Resultado final

Después de aplicar todos estos cambios, tendrás una aplicación con:

  • Un fondo oscuro elegante

  • Un header con gradiente azul

  • Un título dorado centrado con sombra

  • Fuente Poppins en toda la aplicación

  • Reset de márgenes y paddings para consistencia

Próximos pasos

En el siguiente tutorial aprenderemos a:

  1. Crear componentes reutilizables

  2. Organizar mejor nuestros archivos CSS

  3. Usar CSS Modules para evitar conflictos de estilos

  4. Implementar un sistema de diseño coherente

Consejo: Siempre mantén tu código CSS organizado y comentado, especialmente cuando trabajes en proyectos grandes.

¡Perfecto! Ahora tienes una base sólida para empezar a construir tu aplicación de películas con estilos profesionales


Comentarios

Entradas más populares de este blog

11. Creando un proyecto react con create-react-app

29. useEffect

38. 4 Routers