Prácticamente todos los sitios ahora se construyen con al menos un guiño al diseño web responsivo. La forma en que estructuramos estos estilos responsivos tiene una relación directa con la complejidad de mantener y editar el proyecto en el futuro a medida que se realicen actualizaciones y el proyecto crezca en tamaño.

A pesar de esto, parece que los desarrolladores aún no han adoptado de manera consistente un enfoque ampliamente aceptado sobre cómo y dónde estructurar estos estilos responsivos. Aunque no es tan malo como “los viejos tiempos” de CSS, antes de los preprocesadores y las metodologías de nombres, esto está provocando un enfoque inconsistente y a menudo desordenado para estructurar los estilos responsivos de los elementos.

.encabezado {fondo: #000000; }; .título {tamaño de fuente: 16px; }; .title_small { tamaño de fuente: 14px; } .title_alt { familia de fuentes: sans-serif; }

.encabezado { fondo: $negro; } .heading__title { tamaño de fuente: 16px; &.heading__title–small { tamaño de fuente: 14px; } } .post__title–alt { font-family: sans-serif; }

Duplica estilos y dificulta el proceso de mantener y encontrar todos los estilos relevantes para un componente. Debe buscar en varias ubicaciones o archivos para obtener una imagen completa de los estilos de un elemento. El elemento ya no es autónomo. No puede reutilizarlo fácilmente en otro proyecto o eliminarlo/modificarlo con confianza sin efectos adversos o sin que quede código persistente. Para cada nuevo proyecto, se pierde tiempo descubriendo cómo ese proyecto aborda los estilos responsivos. Cambiar entre proyectos se vuelve más difícil porque tiene que cambiar entre se acerca en tu cabeza. Esto puede llevar a que los proyectos tengan accidentalmente una combinación de enfoques, lo que nuevamente conduce a un CSS desordenado.

.encabezado { fondo: $negro; Pantalla solo @media y (ancho mínimo: 640 px) { fondo: $blanco; } }

.heading__title { tamaño de fuente: 16px; @pantalla solo de medios y (ancho mínimo: 640 px) { tamaño de fuente: 18 px; } &.heading__title–small { tamaño de fuente: 14px; @pantalla solo de medios y (ancho mínimo: 640 px) { tamaño de fuente: 16 px; } } }