DEV Community

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

Posted on

1 1 2 1 1

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? ๐Ÿ’ชโœจ

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

Sentry blog image

How I fixed 20 seconds of lag for every user in just 20 minutes.

Our AI agent was running 10-20 seconds slower than it should, impacting both our own developers and our early adopters. See how I used Sentry Profiling to fix it in record time.

Read more

Top comments (0)

Qodo Takeover

Introducing Qodo Gen 1.0: Transform Your Workflow with Agentic AI

Rather than just generating snippets, our agents understand your entire project context, can make decisions, use tools, and carry out tasks autonomously.

Read full post