Arquitetura CSS: ITCSS
Criar uma boa estrutura para nossos arquivos CSS não é tão simples quanto parece, geralmente vamos encontrar algumas dificuldades ao decorrer do caminho, nos forçando à partir para práticas (não muito aceitas), como por exemplo: O uso do famoso !important
.
E os problemas não param por aí, cada vez será mais dificil criar seletores com maior especifidade para sobreescrever os outros seletores ou alguma regra.
Nesse post vou falar um pouco sobre o ITCSS (Inverted Triangle CSS).
O que é ITCSS?
O ITCSS é uma estrutura para que tenhamos uma arquitetura CSS mais organizada. Basicamente a ideia é visualizar o CSS em diferentes camadas separadas, que, ao serem montadas formam um triângulo de cabeça para baixo.
Repare que as camadas estão organizadas das mais genéricas para as mais específicas.
Settings
Aqui é onde vamos colocar as configurações básicas do projeto. Normalmente é onde serão definidas as variáveis globais do nosso CSS, seja para definir cores, espaçamentos ou qualquer outra necessidade que precise de uma variável.
Tools
Aqui é onde vamos colocar e criar nossos mixins ou funções para a construção dos nossos estilos e layouts.
Generic
Aqui finalmente começamos aplicar códigos CSS. Essa é a primeira camada, nessa camada informamos regras genéricas e com a menor especifidade possível. Em geral, é onde vamos aplicar os nossos reset’s.
Elements
Nessa camada vamos definir seletores básicos, é a última camada que irá usar seletores por tags. Atenção, nessa camada, nada de usar seletores por id
ou classes
, apenas seletores por tag (elementos).
Objects
Seguindo os princípios de OOCSS(CSS Orientado a Objetos), aqui é onde vamos começar a criar nossos pequenos objetos. Um detalhe importante é que nessa camada só é permitido a utilização de seletores por classes.
Components
Aqui já começamos a criar nossos componentes (como o próprio nome já diz) de maneira mais específica. Aqui ainda é restrito para apenas o uso de classes.
Trumps
Essa camada é responsável pela maior especificidade das demais, permitindo o uso de !important
. Normalmente a ideia para utilização dos trumps é que eles sejam usados para estilos onde independe de tudo o mesmo seja aplicado e não sobreescrito.
Para saber mais
O ITCSS pode ser usado em conjunto com metodologias e outros padrões, por exemplo: BEM, SMACSS, DRY, OOCSS, etc…
Caso você precise aplicar alguma validação de cores para os elementos ou componentes, você pode estar criando uma nova camada entre components
e trumps
chamada theme
:
Conclusão
Nesse post vimos uma maneira de organizar a estrutura dos nossos arquivos e pastas CSS, dessa maneira, conseguimos criar uma organização maior dos mesmos.
E ae, você já conhecia o ITCSS? Não deixe de comentar, caso tenha gostado do post e gostaria de ficar por dentro das novidades, não deixe de assinar nossa newsletter.
Abraços, até a próxima.