1
resposta

Dúvida - Aplicação da definição de classes BEM

Boa tarde pessoal! Tudo bem com vocês?

Estou fazendo esse módulo de curso em sequência do "CSS Construindo Layouts responsivos com Grid" e me surgiu uma dúvida acerca das definições de classes usando o BEM como referência:

  1. No curso anterior, era normal serem utilizadas classes com nome grandes, como nav__menu__item-logo, para delimitar com eficiência os filhos dos respectivos pais.
  2. Neste curso, vejo que a estrutura das classes é um pouco diferente - temos a "nav" com a "nav__list" sendo a lista que pertence à <nav>, porém o próximo filho se chama "menu__toggle", no lugar de algo como "nav__list__toggle".

Sendo assim, qual a melhor maneira para delimitar estes nomes de forma a tanto facilitar a manutenção quanto garantir que não tenhamos classes com 50 caracteres que podem confundir a leitura do código?

1 resposta

Boa tarde, Adilson! Tudo bem com você?

No seu exemplo, navmenuitem-logo pode acabar sendo longo demais sem necessidade. O BEM permite que você use nomes mais curtos e sem tanto encadeamento quando faz sentido. No caso do menu__toggle, ele provavelmente é um componente reutilizável do menu, então não precisa estar diretamente vinculado a nav__list. Se fosse algo exclusivo da lista de navegação, um nome como nav__list__toggle poderia ser justificável.

O importante é garantir que os nomes sejam claros e intuitivos. Se perceber que uma classe está ficando longa demais, pode ser um sinal de que um novo bloco ou elemento independente seria uma escolha melhor. No fim das contas, priorize a legibilidade e a organização do código!

Espero ter ajudado!