Contenido del curso
0:00/5:10
Metodología BEM en CSS explicada
Suscríbete para ver másErrores comunes de BEM en HTML
Suscríbete para ver másSoluciones a problemas comunes de BEM
Suscríbete para ver másRefactorización de Código con Metodología BEM en Proyectos Reales
Suscríbete para ver másBEM en el footer de un proyecto Vue
Suscríbete para ver másBEM con Styled Components en React
Suscríbete para ver másOrganizar estilos en un proyecto Angular puede volverse caótico rápidamente si no existe una estructura clara. Aplicar la metodología SMACSS junto con Sass permite separar responsabilidades, reducir archivos dentro de cada componente y mantener un código escalable desde el primer commit.
¿Cómo se estructura un proyecto Angular antes del refactor con SMACSS?
El punto de partida es un proyecto típico de Angular donde cada componente vive dentro de una carpeta Components [0:14]. Dentro se encuentran subcarpetas como Calendar y ReminderCalendar, cada una con sus archivos de HTML y Sass. Los estilos están escritos directamente en el archivo .scss del componente, con valores quemados —colores y tamaños escritos sin variables— lo que dificulta la reutilización y el mantenimiento.
Visualmente el proyecto muestra un calendario sencillo, sin estilos complejos [1:02]. Esa simplicidad es una ventaja a la hora de hacer el refactor, porque permite concentrarse en la organización sin preocuparse por la complejidad visual.
¿Qué cambia al aplicar SMACSS en la arquitectura de estilos?
El refactor consiste en crear una carpeta llamada Styles fuera de los componentes [1:47]. Dentro de ella se generan archivos que corresponden a las categorías de SMACSS: base, layout, module, state y theme, más un archivo de variables. Los archivos Sass de cada componente quedan prácticamente vacíos: solo importan lo que necesitan desde esta estructura centralizada.
¿Qué contiene cada categoría de SMACSS?
title, al que se le asigna un font-weight y un width [2:30].is-selected con un color light blue [2:48]. Aunque el archivo sea pequeño, tener los estados separados facilita encontrarlos y modificarlos.datepicker, list, reminder y fillreminder [3:05].L- como L-center, L-vertical-center, L-column y L-full-width [3:18]. Este prefijo es una convención propia de SMACSS que indica que la clase controla la disposición general de la página: centrar elementos, definir columnas o establecer anchos completos.h1 e input [3:45]. Son reglas que afectan a toda la aplicación de forma uniforme.¿Por qué reducir los estilos dentro de cada componente?
Al mover los estilos a la carpeta Styles, los componentes Calendar y ReminderCalendar conservan únicamente su HTML y un archivo Sass mínimo que importa las categorías necesarias [1:35]. Esto trae beneficios concretos:
state; si necesitas ajustar la distribución, vas a layout.¿Qué significa el prefijo L- en SMACSS y cómo se usa en layout?
SMACSS establece que toda clase relacionada con la disposición de página debe llevar el prefijo L- [3:25]. Esto la distingue visualmente de las clases de módulo o de estado. En el proyecto, las clases L-center y L-column controlan cómo se posicionan los elementos a nivel macro, mientras que las clases de módulo como datepicker se encargan de la apariencia interna de cada bloque.
Esta separación es fundamental porque permite que un desarrollador nuevo identifique de inmediato la intención de cada clase solo con leer su nombre.
El pull request de referencia se encuentra en el repositorio bajo la rama curso/arquitectura/CSS/proyecto_7 [0:54]. Si tienes una forma diferente de aplicar SMACSS a este mismo proyecto, comparte tu solución en los comentarios y cuéntanos cómo organizaste las categorías.
Jinny jose Cardenas labrador
Brandon Lee Aguero Fernandez
Jose Luis Bedoya
Brandon Lee Aguero Fernandez
Dennis Alexi
Pablo Alejandro Figueroa
Alejandro Mantilla
Porque todos los repositorios en gitHub tienen un monton de Warn? y se tienen que correr siempre el "npm audit"
67 vulnerabilities (1 low, 26 moderate, 30 high, 10 critical)
en este caso es cuando le hice el :
git clone https://github.com/platzi/curso-arquitecturas-css-proyecto-7.git
son paginas ya de dos años atras
Eso sucede porque el proyecto esta desactualizado
efectivamente, es porque el proyecto no está usando las últimas versiones de las herramientas que implementa. A menos de que sea una mejora sustancial o algo que necesites de la versión superior, lo mejor es mantener las dependencias así!
Esta es la solución diferente que propongo
soy el unico que cree que este curso es una perdida de tiempo? Quiero a profesor Diego de Granda de regreso.
Home - Scalable and Modular Architecture for CSS (smacss.com)
Mucha teoria y casi no entendi:(