Regras e boas práticas para organização e uso de CSS
Regras para organização, estrutura e otimização de arquivos CSS.
Aplicar esta skill quando:
SEMPRE usar pasta styles/ com arquivos separados por tipo:
styles/
├── app.css
├── componentes.css
├── dashboard.css
├── table.css
├── menu.css
└── ...
Organização:
app.css - Estilos gerais da aplicaçãocomponentes.css - Estilos de componentes reutilizáveisdashboard.css - Estilos específicos do dashboardtable.css - Estilos de tabelasmenu.css - Estilos de menus/navegaçãoSEMPRE criar versão .min.css de cada arquivo:
app.css → app.min.csscomponentes.css → componentes.min.cssProcesso:
.css).min.css).min.css em produçãoRegra crítica:
.min.cssNUNCA carregar versão legível em produção:
Carregar apenas os arquivos necessários em cada página:
Exemplo:
<!-- Página de dashboard -->
<link rel="stylesheet" href="/styles/app.min.css">
<link rel="stylesheet" href="/styles/dashboard.min.css">
<!-- Página de tabela -->
<link rel="stylesheet" href="/styles/app.min.css">
<link rel="stylesheet" href="/styles/table.min.css">
NÃO carregar todos os arquivos em todas as páginas.
Desenvolvimento:
urls.py principal:from django.conf import settings
from django.conf.urls.static import static
if settings.DEBUG:
urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
Produção:
collectstatic para coletar arquivosComando:
python manage.py collectstatic
Ferramentas recomendadas:
cssnano (via postcss)clean-csscssoProcesso:
.min.css pode ser gerado)Cada arquivo deve ter responsabilidade única:
app.css - Reset, variáveis, tipografia, layout geralcomponentes.css - Botões, cards, modais, etc.dashboard.css - Layout específico do dashboardtable.css - Estilos de tabelas e listagensmenu.css - Navegação, sidebar, headerstyles/.min.css criadas para produção.min.css carregado em produçãocollectstatic configurado (se aplicável)skills/backend/django/SKILL.mdcore/templates/Estas regras são obrigatórias para todos os projetos frontend.