Executando verificação de segurança...
1
Rech
2 min de leitura ·

BEM (Block Element Modifier)

O BEM (Block Element Modifier) é um método de organização de código CSS que visa tornar o código mais legível, mantível e escalável. Ele é baseado na ideia de dividir o código CSS em três partes: blocos, elementos e modificadores.

As vantagens do uso do BEM incluem a facilidade de manutenção e a possibilidade de reutilizar o código de forma mais eficiente. Isso é possível porque o BEM organiza o código de forma lógica e hierárquica, o que permite que os desenvolvedores encontrem e modifiquem facilmente o código quando necessário. Além disso, o BEM também permite que os desenvolvedores criem componentes reutilizáveis de forma mais fácil, o que pode acelerar o processo de desenvolvimento.

No entanto, o BEM também tem algumas desvantagens. Uma delas é que ele pode resultar em nomes de classes CSS longos e complexos, o que pode tornar o código menos legível. Além disso, o BEM pode ser mais difícil de aprender e implementar para desenvolvedores iniciantes, pois exige um entendimento mais profundo da estrutura e da lógica do código CSS.

Para utilizar o BEM, os desenvolvedores precisam seguir algumas regras básicas. Por exemplo, os blocos devem ser identificados por um nome que descreva seu propósito geral, como header ou footer. Os elementos devem ser identificados pelo nome do bloco ao qual pertencem, seguido de um traço e um nome que descreva seu propósito específico, como header-logo ou footer-copyright. Os modificadores devem ser identificados pelo nome do bloco ou elemento ao qual pertencem, seguido de dois traços e um nome que descreva a mudança de estilo que ele causa, como header--fixed ou footer-copyright--small.

`
.header {
/* Estilos para o bloco header */
}

.header-logo {
/* Estilos para o elemento header-logo */
}

.header--fixed {
/* Estilos para o modificador header--fixed */
}

.footer {
/* Estilos para o bloco footer */
}

.footer-copyright {
/* Estilos para o elemento footer-copyright */
}

.footer-copyright--small {
/* Estilos para o modificador footer-copyright--small */
}
`

Carregando publicação patrocinada...