Por que o CSS não suporta nativamente variáveis ​​e hierarquia?

11

Eu sou novo no desenvolvimento da interface do usuário, mas me sinto muito desconfortável com o funcionamento do CSS.

Meu caso de uso é que eu queria aplicar alguns estilos específicos dentro de um determinado item divem uma página.

Tentativa de CSS:

div.class1 {
    font: normal 12px arial, helvetica, sans-serif;
    font-color: #f30;
}
div.class1 div.class2 {
    border: 1px solid #f30;
}

MENOS tentativa:

@red: #f30;
@font-family: arial, helvetica, sans-serif;
div.class1 {
    font: normal 12px @font-family;
    font-color: @red;
    div.class2 {
        border: 1px solid @red;
    }

A versão CSS pode induzir erros, uma vez que o força a repetir #f30e div.class2toda vez que você tenta atingir a hierarquia e a reutilização de variáveis.

Minhas perguntas:

  • Por que esse CSS dificulta as coisas?
  • MENOS não faz nada de especial - apenas faz melhorias óbvias e traduz para CSS?
  • O que é que o CSS deseja motivar nos usuários por causa do qual promove um estilo de codificação tão redundante?

Eu acredito fortemente que CSS deve ser o que é MENOS. Definitivamente, estou ignorando algumas vantagens óbvias de por que as coisas são feitas dessa maneira em CSS. Eu pensei que era um problema legado, mas fiquei surpreso quando não vi nenhuma tentativa de resolver isso com o CSS3.

Por favor, ajude-me a entender como devo abordar o CSS?

Yugal Jindle
fonte

Respostas:

15

O CSS não está tentando dificultar as coisas de propósito, foi projetado com um objetivo muito mais simples em mente, variáveis ​​e hierarquias dificilmente são suas únicas deficiências. LESS e Sass existem especificamente para solucionar essas deficiências e, até que qualquer recurso seja suportado nativamente, você deve permanecer com elas.

Dito isto, o Grupo de Trabalho CSS do W3C está trabalhando em rascunhos para variáveis ​​e hierarquias de CSS:

Não há absolutamente nenhuma maneira de saber quando um rascunho estará pronto para implementação ou em quanto tempo os principais navegadores os adotarão. Tudo o que posso dizer é que o rascunho de Variáveis ​​CSS está mais próximo de ser adotado. Você já pode testar variáveis ​​CSS de unidade no Chrome, Safari e Firefox, mas lembre-se de que o suporte nos três navegadores é considerado experimental e sujeito a alterações. Leia Usando variáveis ​​CSS no MDN para obter mais detalhes.

yannis
fonte
1
Ótima resposta, pensei que estava perdendo algo realmente óbvio. :)
Yugal Jindle
1
@YugalJindle Confira dev.w3.org/csswg para tudo o que o CSS Working Group está trabalhando - algumas coisas bem interessantes por lá.
precisa saber é