METODOLOGIA CSS BEM EXPLICADO
馃帹 ¿Qu茅 es el m茅todo BEM en CSS?
BEM es una metodolog铆a para nombrar y organizar clases en CSS que facilita la creaci贸n de componentes reutilizables y mantenibles. Su nombre proviene de las siglas Block, Element, Modifier, que representan los tres conceptos clave de esta metodolog铆a:
Bloque: Un bloque es un componente independiente y reutilizable. Por ejemplo, un bot贸n, un men煤 o una tarjeta.
Elemento: Un elemento es una parte de un bloque que no tiene sentido por s铆 solo. Por ejemplo, un t铆tulo dentro de una tarjeta o un 铆cono dentro de un bot贸n.
Modificador: Un modificador es una variaci贸n de un bloque o elemento. Por ejemplo, un bot贸n deshabilitado o una tarjeta con un fondo oscuro.
La idea principal de BEM es evitar conflictos entre estilos y hacer que el c贸digo sea m谩s legible y escalable.
馃摑 Sintaxis de BEM
La sintaxis de BEM sigue esta estructura:
Bloque:
.bloque
Elemento:
.bloque__elemento
Modificador:
.bloque--modificador
o.bloque__elemento--modificador
Guion simple (-): Se usa para separar palabras en nombres compuestos, como
.tarjeta-de-producto
o.tarjeta-de-producto__imagen-principal
.
馃捇 Ejemplo pr谩ctico de BEM en c贸digo
Imaginemos que estamos creando una tarjeta de producto. Aqu铆 tienes c贸mo se ver铆a usando BEM con nombres en espa帽ol m谩s naturales:
HTML:
<div class="tarjeta-de-producto"> <img class="tarjeta-de-producto__imagen" src="producto.jpg" alt="Producto"> <h2 class="tarjeta-de-producto__titulo">Nombre del Producto</h2> <p class="tarjeta-de-producto__descripcion">Descripci贸n breve del producto.</p> <button class="tarjeta-de-producto__boton tarjeta-de-producto__boton--principal">Comprar</button> <button class="tarjeta-de-producto__boton tarjeta-de-producto__boton--deshabilitado">Agotado</button> </div>
CSS:
/* Bloque: Tarjeta de Producto */ .tarjeta-de-producto { border: 1px solid #ccc; border-radius: 8px; padding: 16px; max-width: 300px; } /* Elemento: Imagen */ .tarjeta-de-producto__imagen { width: 100%; border-radius: 8px; } /* Elemento: T铆tulo */ .tarjeta-de-producto__titulo { font-size: 1.5rem; margin: 8px 0; } /* Elemento: Descripci贸n */ .tarjeta-de-producto__descripcion { font-size: 1rem; color: #666; } /* Elemento: Bot贸n */ .tarjeta-de-producto__boton { padding: 8px 16px; border: none; border-radius: 4px; cursor: pointer; } /* Modificador: Bot贸n principal */ .tarjeta-de-producto__boton--principal { background-color: blue; color: white; } /* Modificador: Bot贸n deshabilitado */ .tarjeta-de-producto__boton--deshabilitado { background-color: #ccc; color: #666; cursor: not-allowed; }
馃殌 ¿Cu谩ndo usar un guion simple (-)?
El guion simple (-) se utiliza para separar palabras en nombres compuestos. Por ejemplo:
Bloque con nombre compuesto:
.tarjeta-de-producto
(en lugar de.tarjetadeproducto
).Elemento con nombre compuesto:
.tarjeta-de-producto__imagen-principal
(en lugar de.tarjeta-de-producto__imagenprincipal
).Modificador con nombre compuesto:
.tarjeta-de-producto__boton--tama帽o-grande
(en lugar de.tarjeta-de-producto__boton--tama帽ogrande
).
Esto mejora la legibilidad del c贸digo y hace que los nombres sean m谩s descriptivos y naturales en espa帽ol.
馃洜️ Ventajas de usar BEM
Claridad: Los nombres de las clases son descriptivos y f谩ciles de entender.
Reutilizaci贸n: Los bloques y elementos son independientes, lo que facilita su reutilizaci贸n en otros proyectos.
Escalabilidad: Es m谩s f谩cil mantener y escalar el c贸digo, incluso en proyectos grandes.
Evita conflictos: Al usar nombres 煤nicos, se reducen los conflictos entre estilos.
馃殌 Conclusi贸n
El m茅todo BEM es una excelente herramienta para organizar tus estilos CSS de manera eficiente. Te ayuda a escribir c贸digo m谩s limpio, modular y f谩cil de mantener. Recuerda:
Usa
__
para elementos.Usa
--
para modificadores.Usa
-
para separar palabras en nombres compuestos y que suenen naturales en espa帽ol.
¡An铆mate a probarlo en tu pr贸ximo proyecto! 馃殌
Comentarios
Publicar un comentario