Como o CSS não é uma linguagem de programação, é o arquivo de configuração que contém os dados variáveis do seu programa.
Atualmente, o CSS é tão poderoso que você pode realmente programar nele, mas isso está além do ponto. Em essência, ainda é uma linguagem de folha de estilo .
Vamos dar um passo atrás. Imagine que temos uma linguagem de programação que pode desenhar em uma tela. Imagine que queremos programá-lo para pintar uma página da web.
Inicialmente, inseriríamos toneladas de números mágicos em nosso código. A largura da margem, a altura do texto, os recuos, etc., etc.
jump(100) // The margin
drawTable(500, 500)
writeText("Hello World", 12)
Então, extraímos os números mágicos e os colocamos em cima do nosso arquivo.
int margin = 100
int table = 500
int text_size = 12
jump(margin) // The margin
drawTable(table, table)
writeText("Hello World", text_size)
Agora isso é um pouco feio. Preferimos ler nossos números de variáveis em um arquivo de configuração.
margin 100
table 500
text size 12
Hum, isso é um pouco claro ... O que esses números significam? O que esses nomes significam? Vamos formalizar um pouco.
margin_left 10em
table_width 500px
table_height 500px
font_size 12px
Mas você sabe, queremos expandir um pouco nosso programa. Também queremos que ele desenhe páginas com várias tabelas, páginas sem tabelas, páginas com parágrafos ou botões e mais. Vamos adicionar seletores ao nosso arquivo de configuração para que possamos especificar qual parágrafo deve ter uma fonte maior ou uma cor de texto diferente, talvez possamos suportar elementos aninhados, talvez possamos usar uma propriedade geral em nosso arquivo de configuração e substituí-la por uma específica um em alguns elementos aninhados.
Você sente aonde isso está indo e, eventualmente, você chega como CSS. (E um navegador para renderizá-lo.)
Devemos então adicionar recursos ao nosso arquivo de configuração para que possamos evitar números mágicos novamente? Adicionar variáveis? Adicionar um arquivo de configuração para o nosso arquivo CSS? Parece um pouco inútil se você se lembrar do nosso arquivo CSS já é o mesmo arquivo de configuração.
Mas isso não é verdade, é claro; seu arquivo CSS aumenta cada vez mais e, eventualmente, você se depara com os mesmos problemas dos números mágicos originais, o mesmo número repetido em todo o lugar, às vezes com pequenas transformações etc.
CSS moderno, no entanto, permite muitas maneiras de evitar essa repetição. Você pode usar classes que se aplicam a muitos elementos, definir estilo para todos os div
s, mas substituir um especificamente, e o CSS 3 ainda permite algum tipo de uso de variável.
Isso não significa que você precise começar a usar a variável CSS em todos os locais possíveis. Use-o onde fizer sentido e use-o para evitar duplicação ou onde outras técnicas também estão disponíveis.
No final, você também não deseja muitos números mágicos no seu arquivo de configuração :-)