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:
Detenemos el servidor actual: Ctrl + C (dos veces para asegurar)
Ejecutamos con npm:
bash
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:
El archivo index.html está fuera de public/ - Vite lo maneja de forma diferente para mayor velocidad
Proyecto más limpio - Viene con menos archivos y comentarios innecesarios
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:
Ir a fonts.google.com
Buscar "Poppins"
Seleccionar los pesos que necesites (300, 400, 500, 600, 700)
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:
Estilos globales (index.css): Afectan a toda la aplicación
Estilos de componente (App.css): Afectan solo al componente específico
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:
index.css establece color blanco para todos los textos
App.css cambia el color a dorado para .title
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:
Crear componentes reutilizables
Organizar mejor nuestros archivos CSS
Usar CSS Modules para evitar conflictos de estilos
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
Publicar un comentario