Skip to content
Nesta Página

Nomenclatura

Regras que devemos utilizar para criar os nomes das classes CSS.

Nome

  • Nomes podem ser formados por mais de uma palavra.
  • Use camelCase para destacar múltiplas palavras em um mesmo nome.
  • Isso serve para IDs também, mesmo não sendo utilizados dentro do CSS.
scss
.card {
}

.blogCard {
}

.myBlogCard {		
}

Nome por herança

  • São classes de elementos que herdam o nome da classe de um elemento superior.
  • Elementos superiores podem ser páginas, componentes ou blocos.
  • Utilize underline _ para indicar que a classe está herdando um nome.

Benefícios

  • Especificidade baixa
  • Pouca repetição de código para responsividade

Exemplos

html
<li class="blogCard"> <!-- componente -->
	<div class="blogCard_header"> <!-- bloco de estruturação -->
		<h3 class="blogCard_title"> <!-- unidade -->
			Title
		</h3>
	</div>
	<p class="blogCard_tagName"></p> <!-- unidade -->
</li>
scss
.blogCard_header {
}

.blogCard_title {
}

.blogCard_tagName {
}

@media (max-width: 20rem) {
	.blogCard_title {
	}
}

Não faça isso!

  • Especificidade muito alta
  • Mais difícil de manter
  • Repete a estrutura toda vez que é necessário ajustar a responsividade.
html
<li class="blogCard">
	<div class="header">
		<h3 class="title">
			Title
		</h3>
	</div>
	<p class="tagName"></p>
</li>
scss
.blogCard {
	> .header {		
		> .title {			
		}	
	}

	> .tagName {			
	}
}

@media (max-width: 20rem) {
	.blogCard {
		> .header {		
			> .title {			
			}	
		}
	}
}

Encadeamento

Utilize encadeamento de herança para evitar elementos com nome de classe duplicado.

Benefícios

  • Baixa especificidade
  • Fácil de manter
  • Probabilidade de conflitos é muito menor

Exemplos

html
<li class="blogCard"> <!-- componente -->
	<h2 class="blogCard_title">Title</h2> <!-- unidade -->
	<div class="blogCard_header"> <!-- bloco hereditário -->
		<h3 class="blogCard_header_title"> <!-- unidade -->
			Title
		</h3>
	</div>
</li>
scss
.blogCard_title {		
}

.blogCard_header_title {
}

Não faça isso!

  • Especificidade desnecessária
  • Mais difícil de manter
  • Probabilidade de conflitos é muito maior
html
<li class="blogCard">
	<h2 class="blogCard_title">Title</h2>
	<div class="blogCard_header">
		<h3 class="blogCard_title">
			Title
		</h3>
	</div>
</li>
scss
.blogCard {
	> .blogCard_title {		
	}
}	

.blogCard_header {
	.blogCard_title {			
	}
}

TIP

O encadeamento de herança pode ser utilizado mesmo não tendo a possibilidade de existirem nomes de classe duplicados, porém dessa forma você estará criando nomes longos sem necessidade.

Released under the MIT License.