¿Quieres reducir el tiempo de desarrollo de tus proyectos web? Aprende BEM y OOCSS

CSS es un lenguaje de hojas de estilo que se utiliza para dar estilo y formato a una página web. A medida que los sitios web se han vuelto más complejos, se han desarrollado diferentes metodologías para organizar y escribir el código CSS de manera eficiente.

OOCSS (Object-Oriented CSS)

Una de las metodologías más populares es OOCSS (Object-Oriented CSS). Esta metodología se basa en la idea de que el CSS debe ser escrito como un conjunto de objetos reutilizables, en lugar de una lista de reglas específicas de una sola página. Esto permite crear componentes de estilo reutilizables que se pueden aplicar a diferentes secciones de un sitio web.
Por ejemplo, si tienes varios botones en tu sitio web, en lugar de escribir varios estilos para cada botón, puedes crear un objeto de estilo "botón" y reutilizarlo en todas partes del sitio. El código podría verse así:

code ooccs

BEM (Block-Element-Modifier)

Esta metodología se basa en la idea de dividir el código CSS en bloques, elementos y modificadores. Los bloques representan componentes de estilo independientes, los elementos representan partes específicas de un bloque y los modificadores representan estilos diferentes de un bloque o elemento.
ejemplo de BEM

Beneficios de utilizar BEM:

  • Modularidad: Los estilos de los bloques no deberían tener dependencias con otros elementos de la página, de esta manera evitaremos problemas de cambios en cascada.
    Además, estos módulos/bloques pueden ser reutilizados para otros proyectos.
  • Reutilización: Componer bloques independientes y reutilizarlos reduce la cantidad de código CSS a mantener.
  • Estructura: BEM otorga una estructura simple y comprensible a tu código CSS.

Otras metodologías

SMACSS (Scalable and Modular Architecture for CSS)


Desarrollado en 2011 por Jonathan Snook, SMACSS funciona mediante organización de las reglas CSS en 5 categorías. (Base, Maquetación, Módulo, Estado y tema):
  • Base: son reglas básicas para establecer los estilos por defecto de los elementos HTML individuales, los típicos selectores CSS de este tipo son: reset, html, body, button, h1, etc.
  • Maquetación: son las reglas de estilo que están relacionados con el diseño estructural de la página, por ejemplo los contenedores, grid, etc. normalmente estos se escriben con el prefijo layout- o l-
  • Módulos: estas son para elementos que pueden ser reusables, modulares e independientes del contexto.
  • Estados: son las reglas de estilo que especifican el estado actual de algún elemento de la interfaz.
  • Temas: son estilos que afectan al layout y módulos. Estas reglas son opcionales.
Por ejemplo, puedes crear categorías para "layout", "estado" y "tipografía", y dividir tu código en estas categorías. El código podría verse así:
code

ITCSS (Inverted Triangle CSS)

ITCSS (Inverted Triangle CSS) es una metodología de organización de archivos CSS que se basa en la idea de dividir los estilos en diferentes capas, desde los estilos generales hasta los estilos específicos. Esto permite una mejor organización y control del código CSS.
Un ejemplo implementando esto podría verse así:
code
En conclusión, existen varias metodologías y arquitecturas para organizar y escribir el código CSS de manera eficiente. Cada una tiene sus propias ventajas y desventajas, y es importante elegir la que mejor se adapte a las necesidades de su proyecto.