vi que o nome de uma classe foi escrito de uma maneira que achei extranha até o momento pra mim, sabe me explicar que padrão é esse?
app__button--add-task
vi que o nome de uma classe foi escrito de uma maneira que achei extranha até o momento pra mim, sabe me explicar que padrão é esse?
app__button--add-task
O nome app__button--add-task
segue uma convenção de nomenclatura conhecida como BEM, que significa Block, Element, Modifier (Bloco, Elemento, Modificador). BEM é uma metodologia para nomear e classificar classes CSS de uma maneira que torne o CSS mais claro, reutilizável e mais fácil de entender. Vamos quebrar app__button--add-task
de acordo com as regras do BEM:
Block (app
): Representa o nível mais alto de abstração e serve como um "bloco" de construção. Um bloco pode ser pensado como um componente ou um contêiner de alto nível que encapsula elementos relacionados. No seu caso, app
pode ser um componente grande que engloba muitos elementos relacionados ao seu aplicativo.
Element (button
): Um elemento é uma parte de um bloco que realiza uma função específica. Elementos são sempre parte de um bloco e não podem ser usados fora do contexto de seu bloco. Eles são normalmente representados após o nome do bloco e separados por dois sublinhados __
. No seu exemplo, button
é um elemento dentro do bloco app
, indicando um botão que pertence especificamente ao componente do aplicativo.
Modifier (add-task
): Modificadores indicam uma variante ou um estado diferente de um bloco ou elemento. Eles são utilizados para representar diferentes estilos ou comportamentos para um bloco ou elemento. Modificadores são adicionados ao nome do bloco ou elemento, separados por dois hifens --
. No seu caso, add-task
é um modificador para o elemento button
, sugerindo que este é um botão específico com a funcionalidade ou estilo para adicionar uma tarefa.
Portanto, app__button--add-task
pode ser interpretado como um botão (button
) que é um elemento do componente app
, e este botão tem a função ou estilo específico para "adicionar uma tarefa" (add-task
).
Embora BEM seja bastante útil para projetos grandes e complexos, ele também pode ser adotado em projetos menores para promover melhores práticas de codificação e manutenção de CSS.