Arquitetura CSS: OOCSS
CSS Orientado a Objeto
O CSS orientado a objetos (OOCSS) é uma metodologia de CSS desenvolvida e promovida por Nicole Sullivan.
A finalidade do OOCSS é incentivar a reutilização de código. Um objeto CSS é todo padrão visual que poderá se repetir no site ou aplicação e é identificado como uma classe, ou seja, esse objeto CSS pode ser reutilizável em todo o site.
1º principio - Separação de estrutura e visual (skin)
Podemos usar o OOCSS para modularizar o código, reaproveitando as estruturas em diversos casos, mantendo um padrão, porém, diferenciando vários comportamentos.
2º principio - Independência entre container e conteúdo
Simplesmente quebrar a dependência dos componentes de seus respectivos containers.
Veja no exemplo de código abaixo que as divs possuem a mesma estrutura, no qual foi definida na classe .box
, porém cada uma possui cores diferentes. Portanto, eu defini apenas a estrutura do box em uma classe, e criei novas classes apenas para definir o estilo.
<!-- Separação de estrutura e visual (skin) -->
<div class="box box-red">Lorem ipsum</div>
<div class="box box-green">Lorem ipsum</div>
<div class="box box-blue">Lorem ipsum</div>
<!-- Independencia entre container e conteúdo -->
<aside>
<h3 class="title">Titulo :3</h3>
</aside>
<footer>
<h3 class="title">Titulozinho :3</h3>
</footer>
/* Separação de estrutura e visual (skin) */
.box {
height: 100px;
outline: 1px solid black;
width: 100px;
}
.box-red {
background-color: #ee5e5e;
}
.box-green {
background-color: #4ddd4d;
}
.box-blue {
background-color: #5353aa;
}
/* Independencia entre container e conteúdo */
.title {
color: #e0425d;
font-family: Georgia, 'Times New Roman', Times, serif;
line-height: 1;
text-shadow: rgba(0, 0, 0, .3) 3px 3px 6px;
}
aside .title {
font-size: 2em;
text-shadow: rgba(0, 0, 0, .3) 3px 3px 6px;
}
footer .title {
font-size: 1.5em;
text-shadow: rgba(0, 0, 0, .3) 2px 2px 4px;
}
Boas práticas
Existem algumas boas práticas que fazem parte do OOCSS e que melhoram muito o planejamento e a prática do desenvolvimento web:
Modularização de código css
O objetivo é que o código CSS seja reutilizado em várias partes da produção evitando que você crie mais código. É aconselhável que se defina padrões de código para os principais elementos do layout.
Minimizar usos de seletores muito específicos
Encontre o meio termo. Não faça seletores muito específicos ou seletores muito genéricos. O CSS trabalha com especificidade: quanto mais específico, mais certeiro você é ao capturar um elemento, mas seu CSS fica mais engessado e consequentemente você usa mais código. Quanto mais genérico, mais elementos do mesmo tipo você formata, mas o risco de conflito de estilos aumenta. O ideal é encontrar o meio termo, onde você nem é tão específico e nem tão genérico.
Formatar elementos com classes modulares
A ideia é que ao criar uma nova página, você não tenha que criar novo código CSS. Se a página tiver a estrutura diferente mas os elementos tem características visuais iguais, aí está uma boa oportunidade para modularizar o código visual dos objetos.
Performance OOCSS
- Intenso reúso de código
O que significa menos código CSS, arquivos menores e transferências mais rápidas.
Comentários
Prefere comentar em ânonimo? Siga os seguintes passos:
- Clique no campo "Nome"
- Marque os itens necessários, principalmente o último: "Prefiro publicar como um visitante"
- Adicione um email
- Agora só enviar seu comentário :)