DEV Community

Cover image for Como usar o BEM na Refatoraรงรฃo de codigos com CSS/Sass
Andressa Santos
Andressa Santos

Posted on

Como usar o BEM na Refatoraรงรฃo de codigos com CSS/Sass

๐™ƒ๐™ค๐™Ÿ๐™š ๐™š๐™ ๐™™๐™ž๐™– ๐™™๐™š ๐™ข๐™–๐™ก๐™™๐™–๐™™๐™š? ๐™ฃ๐™–๐™ค ๐™จ๐™š๐™ž, ๐™จ๐™ค๐™ ๐™จ๐™š๐™ž ๐™ฆ๐™ช๐™š ๐™ซ๐™–๐™ข๐™ค๐™จ ๐™›๐™–๐™ก๐™–๐™ง ๐™™๐™ค ๐˜ฝ๐™€๐™ˆ!

๐ŸŒŸ Vamos falar sobre algo que pode transformar sua abordagem ao desenvolvimento frontend: ๐™– ๐™š๐™จ๐™ฉ๐™ž๐™ก๐™ž๐™ฏ๐™–๐™˜๐™–๐™ค!

Vocรช jรก parou para pensar na importรขncia do CSS na experiรชncia do usuรกrio? Se sim, prepare-se para mergulhar no padrรฃo BEM!

BEM, que significa ๐—•๐—น๐—ผ๐—ฐ๐—ธ, ๐—˜๐—น๐—ฒ๐—บ๐—ฒ๐—ป๐˜, ๐— ๐—ผ๐—ฑ๐—ถ๐—ณ๐—ถ๐—ฒ๐—ฟ, รฉ uma metodologia incrรญvel para nomear suas classes em CSS. Pense assim:

  • ๐—•๐—น๐—ผ๐—ฐ๐—ธ: A base, como um header ou container.
  • ๐—˜๐—น๐—ฒ๐—บ๐—ฒ๐—ป๐˜: As partes que fazem sentido dentro do bloco, como menu__item.
  • ๐— ๐—ผ๐—ฑ๐—ถ๐—ณ๐—ถ๐—ฒ๐—ฟ: As variaรงรตes, como menu--hidden.

๐™‹๐™ค๐™ง ๐™ฆ๐™ช๐™š ๐™ซ๐™ค๐™˜๐™šฬ‚ ๐™™๐™š๐™ซ๐™š ๐™ช๐™จ๐™–๐™ง ๐˜ฝ๐™€๐™ˆ? Aqui vรฃo algumas razรตes:

  • ๐—Ÿ๐—ฒ๐—ด๐—ถ๐—ฏ๐—ถ๐—น๐—ถ๐—ฑ๐—ฎ๐—ฑ๐—ฒ: Suas classes falam por si mesmas, tornando a relaรงรฃo entre CSS e HTML clara.
  • ๐—œ๐—ป๐—ฑ๐—ฒ๐—ฝ๐—ฒ๐—ป๐—ฑ๐—ฒฬ‚๐—ป๐—ฐ๐—ถ๐—ฎ: Blocos que podem ser reutilizados sem se preocupar com interferรชncias.
  • ๐—ฆ๐—ฒ๐—บ ๐—–๐—ฎ๐˜€๐—ฐ๐—ฎ๐˜๐—ฎ: Adeus, sobreposiรงรตes indesejadas!

Imagine que vocรช estรก trabalhando em uma equipe grande. Com ๐—•๐—˜๐— , ๐—ฐ๐—ฎ๐—ฑ๐—ฎ ๐—ฑ๐—ฒ๐˜€๐—ฒ๐—ป๐˜ƒ๐—ผ๐—น๐˜ƒ๐—ฒ๐—ฑ๐—ผ๐—ฟ ๐—ฐ๐—ผ๐—ป๐˜€๐—ฒ๐—ด๐˜‚๐—ฒ ๐—ฒ๐—ป๐˜๐—ฒ๐—ป๐—ฑ๐—ฒ๐—ฟ ๐—ฎ ๐—ฒ๐˜€๐˜๐—ฟ๐˜‚๐˜๐˜‚๐—ฟ๐—ฎ ๐—ฑ๐—ผ ๐—ฐ๐—ผ๐—ฑ๐—ถ๐—ด๐—ผ ๐—ฟ๐—ฎ๐—ฝ๐—ถ๐—ฑ๐—ฎ๐—บ๐—ฒ๐—ป๐˜๐—ฒ, sem medo de quebrar estilos.

๐Ÿ”ง E se vocรช estรก utilizando frameworks como ๐—ฅ๐—ฒ๐—ฎ๐—ฐ๐˜, ๐—ฉ๐˜‚๐—ฒ ๐—ผ๐˜‚ ๐—”๐—ป๐—ด๐˜‚๐—น๐—ฎ๐—ฟ, BEM se encaixa perfeitamente na sua jornada de componentizaรงรฃo, mantendo a consistรชncia e a escalabilidade.

Quer um exemplo prรกtico? Dรช uma olhada nesta estrutura de card na imagem com o cรณdigo

Image description

Mesmo sem o CSS, dรก para ver a lรณgica clara por trรกs da estrutura, certo?

E vocรช deve estar se perguntando: "๐— ๐—ฎ๐˜€ ๐—ฒ ๐—ผ ๐—ง๐˜†๐—ฝ๐—ฒ๐—ฆ๐—ฐ๐—ฟ๐—ถ๐—ฝ๐˜?" A mรกgica acontece quando vocรช combina a lรณgica do TypeScript com a estilizaรงรฃo do ๐—•๐—˜๐— .

O resultado? Um ๐˜ค๐˜ฐ๐˜ฅ๐˜ช๐˜จ๐˜ฐ ๐˜ง๐˜ณ๐˜ฐ๐˜ฏ๐˜ต๐˜ฆ๐˜ฏ๐˜ฅ ๐˜ณ๐˜ฐ๐˜ฃ๐˜ถ๐˜ด๐˜ต๐˜ฐ, ๐˜ฎ๐˜ข๐˜ฏ๐˜ถ๐˜ต๐˜ฆ๐˜ฏ๐˜ช๐˜ท๐˜ฆ๐˜ญ ๐˜ฆ ๐˜ด๐˜ถ๐˜ฑ๐˜ฆ๐˜ณ ๐˜ญ๐˜ฆ๐˜จ๐˜ช๐˜ท๐˜ฆ๐˜ญ.

E vocรช jรก conhecia ou jรก adotou o ๐—•๐—˜๐—  nos seus cรณdigos? ๐Ÿ’ชโœจ

๐˜ผ๐™Ÿ๐™ช๐™™๐™š ๐™˜๐™ค๐™ข๐™ฅ๐™–๐™ง๐™ฉ๐™ž๐™ก๐™๐™–๐™ฃ๐™™๐™ค ๐™ค ๐™ฅ๐™ค๐™จ๐™ฉ. ๐˜พ๐™ค๐™ข๐™š๐™ฃ๐™ฉ๐™š ๐™š ๐™™๐™š๐™ž๐™ญ๐™š ๐™จ๐™ช๐™– ๐™ค๐™ฅ๐™ž๐™ฃ๐™ž๐™–ฬƒ๐™ค, ๐™ฅ๐™ค๐™ž๐™จ ๐™ข๐™ช๐™ž๐™ฉ๐™ค ๐™ž๐™ข๐™ฅ๐™ค๐™ง๐™ฉ๐™–๐™ฃ๐™ฉ๐™š ๐™ฅ๐™–๐™ง๐™– ๐™ฉ๐™ง๐™–๐™ฏ๐™š๐™ง ๐™ข๐™–๐™ž๐™จ ๐™˜๐™ค๐™ž๐™จ๐™–๐™จ.

Top comments (0)