Padrões de nomenclatura CSS
Convenções de Nomenclatura no CSS: Entendendo o BEM (Bloco, Elemento, Modificador)
Quem já parou para pensar em como nomear classes no CSS? Se você está começando ou quer aprimorar suas habilidades, é importante entender as convenções que podem ajudar a organizar seu código e torná-lo mais eficiente. Hoje, vamos explorar o BEM (Bloco, Elemento, Modificador), uma metodologia amplamente utilizada na comunidade de tecnologia para padronizar a nomenclatura de classes no CSS.
O que Ă© o BEM CSS?
O BEM foi desenvolvido pela empresa russa Yandex e serve como um padrão para criar convenções de nomenclatura. A ideia é ajudar os desenvolvedores a entender melhor o relacionamento entre o HTML, o CSS e as estruturas do projeto. O nome “BEM” é uma abreviação de “Bloco”, “Elemento” e “Modificador”.
Bloco
O Bloco Ă© a entidade mais alta no BEM. Ele serve como um componente independente que pode conter outros elementos. Um exemplo comum Ă© um botĂŁo (btn). O bloco btn nĂŁo tem uma função especĂfica, mas serve como um container para os elementos filhos.
<div class="btn">
<span class="elemento">BotĂŁo</span>
</div>Elemento
O Elemento Ă© a segunda camada na hierarquia BEM. Ele representa uma parte especĂfica de um bloco e nĂŁo possui uma funcionalidade intrĂnseca. O nome do elemento geralmente está associado ao que ele representa, como link para um link ou list-item para um item de lista.
<div class="menu">
<ul class="menu__list">
<li class="menu__item">Item 1</li>
<li class="menu__item">Item 2</li>
</ul>
</div>Modificador
Os Modificadores sĂŁo usados para modificar um bloco ou um elemento, alterando sua aparĂŞncia ou estado. Eles podem representar variantes de cores, estilos especĂficos ou atĂ© mesmo estados como “ativo” ou “inativo”. Um exemplo Ă© btn--primary para um botĂŁo primário ou menu__item--active para um item ativo em uma navegação.
<div class="menu">
<ul class="menu__list">
<li class="menu__item menu__item--active">Item Ativo</li>
<li class="menu__item">Item Inativo</li>
</ul>
</div>Prática: Como aplicar o BEM CSS em um Projeto
Vamos criar um exemplo prático para ilustrar como usar as classes no BEM CSS. Imagine que você está trabalhando em uma página web com uma barra de navegação:
Estrutura HTML e CSS
<!DOCTYPE html>
<html lang="pt-br">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>BEM CSS - Exemplo</title>
<style>
.menu {
background-color: rgb(30, 30, 30);
}
.menu__list {
margin: 0px;
padding: 24px 0 ;
}
.menu__item {
display: inline-block;
color: white;
margin: 0 16px;
border-radius: 4px;
padding: 8px;
}
.menu__link {
color: white;
background: linear-gradiente(90deg, #FC4668 0%, #3FSEF8 100%);
padding: 12px 14px;
border-radius: 4px;
text-decoration: none;
}
.menu__item--active {
font-weight: bold;
color: #00d9ff;
}
</style>
</head>
<body>
<nav class="menu">
<ul class="menu__list">
<li class="menu__item menu__item--activie">InĂcio</li>
<li class="menu__item">Sobre NĂłs</li>
<li class="menu__item">Contato</li>
<a href="http://jocile.com" class=menu__link">Site</a>
</ul>
</nav>
</body>
</html>ConclusĂŁo
O BEM CSS Ă© uma convenção poderosa para organizar as classes no CSS, tornando o cĂłdigo mais legĂvel e manejável. Ao usar blocos, elementos e modificadores de forma consistente, vocĂŞ pode criar um sistema de nomes que sejam fáceis de entender e aplicar em diferentes projetos.
Se você está começando com o BEM CSS, lembre-se de:
- Manter os nomes de classes menores: Evite nomes muito longos para manter a hierarquia clara.
- Ser consistente: Use as mesmas convenções em todo o projeto para evitar confusão.
- Testar e ajustar: Sempre revise os resultados no navegador para garantir que suas classes estejam funcionando como vocĂŞ espera.
Para saber mais acesse: Padrões CSS - Blog do André Felizardo