Começando a organizar seu CSS
4 minutos de leitura


Autor(a)
Marco Bruno
Inscreva-se em nossa Newsletter
Fique por dentro de conteúdos, insights e oportunidades do universo tech. Receba novidades e lançamentos direto no seu e-mail.
4 minutos de leitura

Autor(a)
Fique por dentro de conteúdos, insights e oportunidades do universo tech. Receba novidades e lançamentos direto no seu e-mail.
Você já deve ter aberto um CSS com 2.000 linhas com o nome de styles.css, dentro de uma pasta chamada css. Esse é um bom momento em focar um tempo para estudar um dos modelo de arquitetura de CSS:

Vale a pena ler os cinco modelos de arquitetura e em seguida definir com sua equipe a melhor maneira de organizar o seu CSS. Foi o que realizamos na Caelum, antes de começar a desenvolver a parte interna do nossa plataforma de curso online, o Alura.
Após ler as cinco arquiteturas de CSS, o time de desenvolvedores (Back end e Front end) se reuniu durante 3 dias por uma hora diariamente focado em resolver os seguintes pontos:
Durante a discussão decidimos tomar os seguintes cuidados para definir o nome de uma class:
Utilizando os pontos acima como base, vamos dar nome para os elementos do seguinte layout:

<section class="cardCourse">
<img loading="lazy" class="cardCourse-icon" src="iconHtmlCss.png">
<h3 class="cardCourse-title">Avançado a HTML e CSS</h3>
<div class="progressBar">
<span class="prgressBar-value">50%</span>
<progressbar class="progressBar-bar"> Seu progresso é de 50%. </progressbar>
</div>
</section>
O time curtiu a organização criada pelo BEM. Seguindo o exemplo do layout apresentado acima, criamos uma pasta css, dentro dela criamos outra pasta com o nome de block. Todos os seletores dos blocos cardCourse e progressBar, ficam dentro de um arquivo com o nome de cardCourse.css e progressBar.css, que fica salvo dentro da pasta block. E qualquer arquivo CSS que não for um bloco fica na raiz da pasta css, como o famoso arquivo reset.css. Quando temos um CSS que vai ser utilizado apenas em uma página, colocamos ele dentro da pasta page.

Ter seletores com valores altos de especificidade torna a manutenção do CSS mais custosa. A melhor forma de resolver isso é utilizar seletores com baixo valor e especificidade. Pra escrever seletores com um baixo valor de especificidade, vamos entender melhor como funciona esse negócio de especificidade:
Id #card
Class .cardCourse
Pseudo-class :first-child
Tag section
Seletores avançados > + ~ e :not()
100
10
1
0
Cada seletor CSS tem um valor conforme foi apresentado na tabela acima. Para entender um pouco melhor vamos ver uns exemplos:
/* Valor de especificidade: 100 */
#card { ... }
/* Valor de especificidade: 10 */
.cardCourse { ... }
/* Valor de especificidade: 1 */
section { ... }
/* Valor de especificidade: 10 + 10 = 20 */
.cardCourse
.cardCourse-title { ... }
/* Valor de especificidade: 10 + 10 + 1 = 21 */
.cardCourse
h3.cardCourse-title { ... }
/* Valor de especificidade: 10 + 10 = 20 */
.cardCourse:nth-of-type(2n) { ... }
Para não termos muitos problemas com valores altos de especificidades optamos em seguir as seguintes regras:
Com técnicas como essa conseguimos deixar nosso CSS no Alura muito mais modular e de fácil manutenção. A produtividade da equipe aumentou muito. E você, como faz no seu trabalho? Tem outras dicas de como melhorar a forma que organizamos nosso CSS?
Avalie este artigo