Arquitetando CSS
Segunda-feira, 03/10/2011 às 11h00, por Ben Liebert
Existe um grande problema com o CSS, que é sua falta de “estrutura”. Quando você tem um projeto de 20 páginas, tudo bem – jogue tudo em um arquivo. Quando você tem centenas de paginas, em dezenas de agências de design diferentes, as coisas começam a ficar bastante bagunçadas.
E eu não gosto de bagunça.
Um cliente meu está nessa situação. Por três anos, eles tiverem seis designers diferentes, cada um com estilos visuais diferentes – mas, o que é mais importante para mim – cada um com diferentes requisitos e implementações CSS.
O impacto disso tem me incomodado desde que eu comecei, mas eu sempre tive mais problemas “arquiteturais” para lidar. No entanto, eu decidi que era o suficiente quando percebi que nossa carga total paga de CSS era de 1 MB, e nosso maior arquivo CSS possuía mais de 5 mil linhas.
Arquitetando o CSS
Existem algumas coisas que quero do meu CSS:
Ultimamente, sou em maior parte um desenvolvedor C#, então eu gosto da coisa orientada a objeto – eu entendo, é organizado e reutilizável.
A parte de “cascata” do CSS é maravilhosa, mas é uma espada de dois gumes. Quando algum designer insere uma stylesheet com uma tag como “.main h2”, ela irá inevitavelmente afetar porções do site que não estavam envolvidas.
Os problemas com o CSS somente se manifestam quando você de fato os visualiza – em outras palavras, eles são erros de execução. E quando você tem centenas de páginas no site, geralmente é o usuário que reporta um problema de estilo, não nossos “testadores”.
Perto, mas não perto o suficiente
Infelizmente, não posso afirmar que sou capaz de consertar nenhum desses problemas. Admiro a ambição de projetos como o.less (www.dotlesscss.org/), mas há algo neles que não parece certo para mim. Acho que é porque não existe suporte para mainstream (suporte para mainstream é muito importante para mim, pois tenho um stream constante de novos desenvolvedores entrando – padrões são meus amigos).
Eu também li muitas opiniões de pessoas sobre CSS – como precisamos nos afastar da semântica, como precisamos nos aproximar da semântica etc… mas, mais uma vez, preciso de algo que tenha amplo suporte da comunidade na internet, e que meus novos desenvolvedores serão capazes de acompanhar.
The document has moved here.