Las anidaciones son una locura, dejan el código mas entendible, en CSS se implemento el nesting para las anidaciones y ya es soportado en un 72.89% Chrome lo maneja Firefox aun no.
Fundamentos de Arquitectura en CSS
¿Qué son las arquitecturas CSS?
SOLID, DRY e Inmutabilidad en CSS
BEM
BEM
Casos prácticos de BEM
Errores comunes al implementar BEM
Usando BEM en un proyecto de HTML, CSS y JS
Usando BEM en un proyecto de Vue
Usando BEM y Styled Components en un proyecto de React
Atomic Design
Atomic Design
Usando Atomic Design en un proyecto de React
Usando Atomic Design en un proyecto de Vue
OOCSS
OOCSS
Usando OOCSS y SASS en un proyecto de Angular
SMACSS
SMACSS
Usando SMACSS y SASS en un proyecto de Angular
ITCSS
ITCSS
Usando ITCSS en un proyecto de Vue
TailwindCSS
Frameworks de CSS - TailwindCSS
Diferencias entre las metodologías y arquitecturas CSS
No tienes acceso a esta clase
¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera
Adquiere por un año todos los cursos, escuelas y certificados por un precio especial.
Antes: $249
Paga en 4 cuotas sin intereses
Termina en:
Aportes 7
Preguntas 1
Las anidaciones son una locura, dejan el código mas entendible, en CSS se implemento el nesting para las anidaciones y ya es soportado en un 72.89% Chrome lo maneja Firefox aun no.
Problema uno
Tengo un componente A
que ya tiene sus propias clases y deseo añadirlo a un nuevo componente B
. Debo agregar una nueva conveción para el componente A
que está dentro de B
?
Respuesta:
No necesariamente por que, lo que estoy tratando es de no repetir codigo y a mi parecer esto lo que haria es verme con la necesidad de escribir o extender el codigo de otra clase.
Problema dos
En mi estructura de html tengo padres, hijos, nietos, tataranietos, etc;
Pero BEM
sólo deja usar 3 niveles
. Que hago con los elementos nietos y sus descendientes?
Respuesta:
Simplemente los trataria a todos como si fueran hijos.
Problema tres
Quiero utilizar la propiedad display: none
para ocultar desde js un componente de card y componente de botón. Debo crear una clase para cáda componente siguiendo su propia estructura de BEM
(card—hidden
y button—hidden
).
Respuesta:
Idealmente no, si lo que hace es ocultar con que cree una clase que se llamehidden
que contenga eldisplay: none
seria suficiente.
Los proyecto que usan BEM
son:
BEM
permite personalizar sus reglas y nomenclaturas.
Me encantaron los ejemplos. Lo de la representación de niveles me quedo más claro con ello.
Me queda una duda dice que reducimos 2 lineas de codigo pero la &__image no reemplaza al elemento card o como se veria el html con este ejemplo si lo anidamos, no me quedo muy claro
class="card">
<imgclass="card__image"src="/image.png"alt="Crew Dragon" />
<buttonclass="button button--active">button>
div>
Donde, el CSS se ve de la siguiente forma:
.card {
…
}
.card__image {
…
}
.button {
…
}
.button–active {
…
}
Pero si usamos SASS, nuestros estilos se verían de la siguiente forma:
.card {
&__image {
…
}
}
.button {
&–active {
…
}
}
jajaja este es uno de mis mas grandes errores que yo cometo
y aparte me enrredo mas poniendo por ejemplo:
main_card-producto__texto_ejemplo-de-german–primary–azul
jajaja soy lo peor en BEM jajaja
empeze a entenderlo mejor cuando mejor junte las palabras tipo nomenclatura camello, ejemplo:
mainCardProducto__textoEjemploDeGerman–primaryAzul
Anidacion BEM 4 generacion o profundidad de clases
<div class=“padre”
<div class=“hijo1”></div>
<div class=“hijo2”>
<p class=“hijo2__nieto”><p>
<img class=“hijo2__bisnieto” src=“xxx” alt=""/>
</div>
</div>
Caso 1: Creo que no (necesariamente) se debería cambiar las clases.
Caso 2: No representar el nivel de profundidad con BEM
Caso 3: Sí, se debería crear las clases específicas para cada caso (?)
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?
o inicia sesión.