Sistema automatizado para carregamento de folhas de estilo
Esta documentação aborda o uso prático da classe Stylesheets no desenvolvimento de templates e extensões.
O foco está na organização dos arquivos, funcionamento automático e estrutura utilizada pelo sistema.
Estrutura:
template/?/
└── assets/
└── css/
├── block/
│ ├── style.css
│ ├── is-page.css
│ └── is-home.css
│
├── late/
│ └── style.css
│
└── linked/
├── footer.css
├── header.css
└── hello-world.min.css
Folhas de estilo condicionais
A classe Stylesheets inclui automaticamente arquivos CSS condicionais com base na rota atual.
Basta criar arquivos com nomes específicos dentro do diretório block/.
| Arquivo | Condição | Descrição |
|---|---|---|
is-404.css |
is_404() |
Páginas de erro 404 |
is-categories.css |
is_categories() |
Listagens de categorias |
is-listing.css |
is_listing() |
Listagens em geral |
is-home.css |
is_home() |
Página inicial |
is-page.css |
is_page() |
Páginas comuns |
is-post.css |
is_post() |
Posts individuais |
is-user.css |
is_user() |
Perfis de usuário |
Exemplo:
assets/css/block/is-home.css
O arquivo será carregado automaticamente apenas na página inicial.
Notas:
-
Arquivos no diretório
block/são comprimidos e inseridos diretamente no documento HTML. -
Arquivos no diretório
late/também são comprimidos e inseridos diretamente no documento HTML, porém no fim do documento antes do fechamento da tag</body>. -
O sistema utiliza cache interno para evitar múltiplas inclusões do mesmo arquivo CSS.
-
Arquivos no diretório
linked/são combinados e servidos como arquivos únicos. -
Arquivos CSS maiores que
100KBno diretóriolinked/são automaticamente divididos em múltiplos arquivos. O nome dos arquivos é o slug do título do site seguido por.min.css, part-2.min.css, part-3.min.csse assim por diante. -
Stylesheets::late_block()ainda não suporta folhas de estilos condicionais. -
Stylesheets::block()seguido deStylesheets::linked()são chamados dentro da funçãohead().Stylesheets::late_block()é chamado dentro da funçãofoot()antes de outros ativos. -
Todo CSS processado pela classe
Stylesheetsé automaticamente comprimido antes da saída final.