馃摝 Uso de m贸dulos CSS en React para estilos encapsulados
Los CSS Modules son una t茅cnica para escribir CSS en React de forma que los estilos est茅n encapsulados en un componente espec铆fico, evitando conflictos con otros estilos del proyecto.
1️⃣ ¿C贸mo crear un m贸dulo CSS?
Basta con nombrar tu archivo con la extensi贸n .module.css:
/* Boton.module.css */
.boton {
background-color: #27ae60;
color: white;
padding: 10px 20px;
border-radius: 6px;
border: none;
cursor: pointer;
}
.boton:hover {
background-color: #2ecc71;
}
2️⃣ C贸mo usar CSS Modules en React
Importa el m贸dulo CSS en tu componente y usa la clase como propiedad:
/* Boton.js */
import styles from './Boton.module.css';
function Boton() {
return <button className={styles.boton}>Click aqu铆</button>;
}
export default Boton;
3️⃣ Ventajas de CSS Modules
- ✅ Encapsula estilos en componentes, evitando conflictos globales.
- ✅ Facilita la reutilizaci贸n de componentes con estilos propios.
- ✅ Permite combinar con CSS tradicional o CSS-in-JS seg煤n necesidad.
- ✅ Genera nombres de clases 煤nicos autom谩ticamente para evitar colisiones.
4️⃣ Ejemplo avanzado: varios estilos
/* Tarjeta.module.css */
.tarjeta {
border: 1px solid #ccc;
border-radius: 8px;
padding: 20px;
text-align: center;
background-color: #f7f7f7;
}
.titulo {
color: #34495e;
font-size: 20px;
margin-bottom: 10px;
}
/* Tarjeta.js */
import styles from './Tarjeta.module.css';
function Tarjeta({ titulo, contenido }) {
return (
<div className={styles.tarjeta}>
<h2 className={styles.titulo}>{titulo}</h2>
<p>{contenido}</p>
</div>
);
}
export default Tarjeta;
T铆tulo de la tarjeta
Contenido de ejemplo dentro de la tarjeta.
5️⃣ Buenas pr谩cticas
- ✅ Usar nombres descriptivos para los m贸dulos y las clases.
- ✅ Evitar estilos globales innecesarios.
- ✅ Mantener consistencia en la nomenclatura y la organizaci贸n de archivos.
6️⃣ Resumen
Los CSS Modules ofrecen una forma segura y limpia de aplicar estilos en React. Permiten encapsular cada estilo dentro de su componente, evitando conflictos y facilitando el mantenimiento.
7️⃣ Ejemplo avanzado: botones con distintos colores
Puedes crear varios botones con estilos diferentes usando CSS Modules:
/* Botones.module.css */
.verde {
background-color: #27ae60;
color: white;
padding: 10px 20px;
border-radius: 6px;
border: none;
cursor: pointer;
}
.azul {
background-color: #2980b9;
color: white;
padding: 10px 20px;
border-radius: 6px;
border: none;
cursor: pointer;
}
.rojo {
background-color: #c0392b;
color: white;
padding: 10px 20px;
border-radius: 6px;
border: none;
cursor: pointer;
}
/* Botones.js */
import styles from './Botones.module.css';
function Botones() {
return (
);
}
export default Botones;
8️⃣ Ejemplo avanzado: varias cards con colores diferentes
Cada card puede tener su propio color de fondo usando CSS Modules:
/* Cards.module.css */
.card {
border-radius: 8px;
padding: 20px;
color: white;
text-align: center;
}
.azul { background-color: #3498db; }
.naranja { background-color: #e67e22; }
.morada { background-color: #9b59b6; }
/* Cards.js */
import styles from './Cards.module.css';
function Cards() {
return (
Card Azul
Contenido de ejemplo para la card azul.
Card Naranja
Contenido de ejemplo para la card naranja.
Card Morada
Contenido de ejemplo para la card morada.
);
}
export default Cards;
Card Azul
Contenido de ejemplo para la card azul.
Card Naranja
Contenido de ejemplo para la card naranja.
Card Morada
Contenido de ejemplo para la card morada.
0 Comentarios
Si desea contactar comigo, lo puede hacer atravez deste formulario gracias