Sobes.tech
Junior

¿Qué es la metodología BEM?

sobes.tech AI

Respuesta de la IA

BEM (Bloque, Elemento, Modificador) — es una metodología de nombramiento de clases en CSS para crear código escalable y mantenible. Su objetivo es hacer que los componentes sean independientes, reutilizables y fáciles de modificar.

Principios básicos:

  • Bloque: Componente independiente, con un nombre único. Puede contener elementos y otros bloques.
    <div class="card">...</div>
    
  • Elemento: Parte del bloque que no tiene significado independiente fuera del contexto del bloque. El nombre del elemento se separa del nombre del bloque mediante dos guiones bajos (__).
    <div class="card">
      <h2 class="card__title">...</h2>
      <p class="card__text">...</p>
    </div>
    
  • Modificador: Añade estado o cambia la apariencia/comportamiento del bloque o elemento. El nombre del modificador se separa del nombre del bloque o elemento mediante dos guiones (--).
    <button class="button button--primary button--disabled">...</button>
    <div class="card card--featured">...</div>
    

Ventajas:

  • Legibilidad: Las clases son fáciles de entender, se ve la estructura del componente.
  • Reutilización: Los componentes son independientes y pueden usarse en diferentes partes del proyecto.
  • Mantenibilidad: Los cambios en un componente afectan mínimamente a otros.
  • Escalabilidad: Adecuado para grandes equipos y proyectos.

Ejemplo de estructura:

.card {
  /* Estilos del bloque */
}

.card__title {
  /* Estilos del elemento */
}

.card__text {
  /* Estilos del elemento */
}

.card--featured {
  /* Estilos del modificador del bloque */
}

.button {
  /* Estilos del bloque */
}

.button--primary {
  /* Estilos del modificador del bloque */
}

.button--disabled {
  /* Estilos del modificador del bloque */
}