CSS BEM - Saiba tudo sobre essa metodologia!

4298 ๋‹จ์–ด programmingcsscareerwebdev


๐Ÿค” Vocรช em algum momento de sua carreira deve ter ouvido falar sobre a metodologia BEM em CSS, e caso nรฃo nunca tenha ouvido falar, ou muito menos sabia que ela existe, fique neste artigo atรฉ o final para entender a real importรขncia da sua utilizaรงรฃo.

์™œ ๋ฒฐ?



BEM์€ Block, Element ๋ฐ Modifier์˜ ์•ฝ์–ด์ด๋ฉฐ Bloco, Elemento ๋ฐ Modificador๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. Criada em volta de 2005 por um buscador russo bem famoso chamada Yandex, com o objetivo de padronizar o cรณdigo em vรกrios em vรกrios projetos, te auxiliando a criar cรณdigos reutilizรกveis โ€‹โ€‹e sustentรกveis โ€‹โ€‹por meio da nomeaรงรฃo de classes. Fazendo com que vocรช tenta total autonomia na na escrita e manutenรงรฃo de qualquer tipo de projeto.

Qual o significado da abreviaรงรฃo?



Cada bloco desta metodologia sรฃo divididos em 3 pilares importantes, que sรฃo:

๋ธ”๋กœ์ฝ”
ร‰ um componente independente de uma aplicaรงรฃo, que tem o seu prรณprio significado. O Bloco รฉ um container, que contรฉm elementos de marcaรงรฃo HTML como seu conteรบdo, ou atรฉ mesmo, outros blocos iguais.

Um bom exemplo de bloco sรฉria

<div class="menu">
   <h1>Conteรบdo do elemento...</h1>
</div>



์—˜๋ ˆ๋ฉ˜ํ† 

O elemento filho faz parte de um bloco, sendo semanticamente ligado ao elemento pai, nรฃo podendo ser utilizado fora desse bloco, como estรฃo semper atrelados a esse bloco, geralmente o nome do elemento รฉ separado, contendo o nome do bloco, 2 underlinhas (__ ) e nome do elemento.

.menu{} /*Bloco*/ 

.menu__link{} /*Elemento*/



์ˆ˜์‹์–ด

Como o prรณprio nome diz, ele modifica os comportamentos, estados e aparรชncia dos blocos e/ou elementos.

.menu{} /* Bloco */

.menu__link{} /* Elemento */

.menu_ChangeColor{} /* Modificador */ 


Qual รฉ a ideia por trรกs e quais sรฃo as suas boas prรกticas



A ideia por trรกs da utilizaรงรฃo da estrutura da metodologia BEM รฉ fazer com que as informaรงรตes sejam mais fรกceis de entender tanto para vocรช, quanto para outros desenvolvedores terem uma maior facilidade de entender o seu cรณdigo.

<div class="card">
    <div class="card__header">
        <h2>Tรญtulo do Card</h2>
    </div>
    <div class="card__boxRed">
        <img src="" alt="" class="card__img">
        <p>Lorem ipsum dolor sit, amet consectetur adipisicing elit. Assumenda, alias ipsum. Qui eius error doloribus earum est explicabo ullam iure quo, consequatur nemo magnam voluptatem doloremque distinctio! Sit, obcaecati quidem?</p>
    </div>
    <div class="card__boxBlue">
        <img src="" alt="" class="card__img">
        <p>Lorem ipsum dolor sit, amet consectetur adipisicing elit. Assumenda, alias ipsum. Qui eius error doloribus earum est explicabo ullam iure quo, consequatur nemo magnam voluptatem doloremque distinctio! Sit, obcaecati quidem?</p>
    </div>
    <div class="card__boxGreen">
        <img src="" alt="" class="card__img">
        <p>Lorem ipsum dolor sit, amet consectetur adipisicing elit. Assumenda, alias ipsum. Qui eius error doloribus earum est explicabo ullam iure quo, consequatur nemo magnam voluptatem doloremque distinctio! Sit, obcaecati quidem?</p>
    </div>
</div>


Principais Vantagens


  • Reutilizaรงรฃo de Cรณdigo
  • Ajuda na nomeaรงรฃo do cรณdigo CSS sem esforรงo e complicaรงรฃo
  • Melhor Compreensรฃo do cรณdigo
  • Desenvolvimento mais rรกpido com resultados duradouros
  • arquitetura garante a longevidade e a sustentabilidade para o desenvolvimento
  • Menos problemas com o avanรงo do cรณdigo HTML
  • Facilita na manutenรงรฃo do cรณdigo
  • Cria uma estrutura escalรกvel
  • ์ข‹์€ ์›นํŽ˜์ด์ง€ ์ฆ๊ฒจ์ฐพ๊ธฐ