Minhas considerações sobre OOCSS

Por RamonPage

EU SOU UM aficionado por semântica. Entendo que uma boa marcação, além de um bom stylesheet, são cruciais para a performance de qualquer projeto. Porém eu tenho um argumento polêmico a fazer: é preciso cuidado com a ideia de OOCSS.

Eu tenho percebido que esse conceito tem ganhado força e muita gente começou a falar sobre. Nesse meio tempo eu tenho me perguntado se as pessoas realmente estão pensando na qualidade dos seus estilos ou simplesmente estão seguindo mais um modismo.

O que me intriga é: a ideia criada pela Nicole Sullivan faz todo sentido, mas pouco tem a ver com Orientação a Objetos. Primeiro porque CSS não envolve programação (em essência) e segundo porque é preciso bem mais do que reutilização de código (evitando o chamado DRY) para tornar qualquer CSS “modelável”.

Sendo mais claro, é preciso alguns princípios básicos para que exista Orientação a Objetos, tais como:

1 — É bom lembrar que classes CSS pouco (quiçá nada) têm a ver com classes de Orientação a Objeto.

Onde eu quero chegar…

Talvez eu seja rígido demais na minha opinião sobre o assunto. Na verdade eu concordo com muitas das premissas levantadas pela Nicole. Porém eu atento para a abordagem de remoção de seletores ineficientes ou desnecessários, que é de grande importância para alta-performance em projetos e que pode contradizer a implementação desenfreada do OOCSS.

Sendo assim, antes de pensar em OOCSS eu sugiro que pensemos no equilíbrio da marcação, levando em conta o contexto de trabalho. Não saia adicionando classes a torto e a direito achando que vai tornar seu CSS melhor reutilizável. É preciso descobrir a realidade de cada projeto, pensando com cuidado sobre a forma de implementar a marcação.

Recomendo fortemente a leitura deste artigo do Zeldman (em inglês): http://www.zeldman.com/2012/11/21/in-defense-of-descendant-selectors-and-id-elements/

Finalizo dizendo que não existe semântica completamente certa ou errada. O que existe é semântica ruim, boa ou ótima, independentemente de como é elaborada e mantida.

Atualização 20/04/2013: O Daniel Lopes tweetou hoje uma visão importante sobre OOCSS ao dizer que “desenvolvedores front-end que tentam aplicar princípios de POO em CSS sem saber realmente o que é POO podem facilmente cair na armadilha de criar abstração muito cedo”. Estou de acordo.

Atualização 07/08/2013: Jens O. Meiert publicou ontem sua visão sobre Object-Oriented HTML e OOCSS. Ele deixa claro que não há nada de errado com IDs e seletores descendentes.

Marcado em: ,

* * *