Tema índigo simples para o Django Admin: paleta navy/azul + linha de alerta de Admin.
Project description
django-admindigo
Tema índigo simples para o Django Admin, empacotado como app reutilizável.
Aplica uma identidade visual azul/navy (#002133 / #00314D, acento #1B5589)
ao admin e adiciona uma linha fina vermelha fixa no topo, alertando que você
está no ambiente administrativo.
- 🎨 Cabeçalho, breadcrumbs, botões, títulos e links na paleta índigo.
- 🛡️ Linha de alerta vermelha persistente no topo (você está no Admin!).
- 🏷️ Logo padrão neutro na marca do admin (substituível).
- 🌓 Funciona nos temas claro e escuro do admin do Django.
- ⚙️ Zero código: configurável apenas por
settings.
Dashboard do admin com o tema aplicado e o branding padrão (
Administração). O texto é configurável viaADMINDIGO_SITE_HEADER.
Requisitos
- Python ≥ 3.10
- Django ≥ 4.2
Instalação
1. Instale o pacote
Via PyPI:
pip install django-admindigo
Direto do GitHub (última versão da branch main):
pip install "git+https://github.com/LisandroGuerra/django-admindigo.git"
De uma tag/versão específica:
pip install "git+https://github.com/LisandroGuerra/django-admindigo.git@v0.1.0"
Local, para desenvolvimento (modo editável):
git clone https://github.com/LisandroGuerra/django-admindigo.git
pip install -e ./django-admindigo
Em pyproject.toml (uv / PEP 621):
dependencies = ["django-admindigo"]
# durante o desenvolvimento, apontando para um diretório local:
[tool.uv.sources]
django-admindigo = { path = "../django-admindigo" }
2. Registre o app antes de django.contrib.admin
# settings.py
INSTALLED_APPS = [
"admindigo", # <-- OBRIGATÓRIO: antes do admin
"django.contrib.admin",
"django.contrib.auth",
"django.contrib.contenttypes",
"django.contrib.sessions",
"django.contrib.messages",
"django.contrib.staticfiles",
# seus apps...
]
Por que antes? O tema sobrescreve
admin/base_site.html. Com o loaderAPP_DIRS=True, o Django procura templates na ordem doINSTALLED_APPS, então oadmindigoprecisa aparecer antes do admin para ter prioridade.
3. Garanta o serviço de arquivos estáticos
django.contrib.staticfiles deve estar no INSTALLED_APPS e STATIC_URL
definido. Em produção, rode collectstatic e sirva os estáticos por um
servidor real (ex.: WhiteNoise ou nginx):
python manage.py collectstatic --noinput
Pronto. Acesse /admin/.
Configuração
Tudo via settings.py — sem escrever templates:
ADMINDIGO_SITE_HEADER = "Meu Sistema · Administração" # marca no topo + <title>
ADMINDIGO_SITE_TITLE = "Meu Sistema Admin" # <title> da aba
ADMINDIGO_INDEX_TITLE = "Painel" # título do dashboard
ADMINDIGO_LOGO = "minhaapp/img/logo.svg" # caminho em static/ ou URL
| Setting | Padrão | Descrição |
|---|---|---|
ADMINDIGO_SITE_HEADER |
"Administração" |
Texto da marca + título |
ADMINDIGO_SITE_TITLE |
"Admin" |
<title> das páginas |
ADMINDIGO_INDEX_TITLE |
"Painel administrativo" |
Título do dashboard |
ADMINDIGO_LOGO |
logo neutro embutido | Caminho em static/ ou URL absoluta / iniciada por / |
Um
admin.pydo projeto que definaadmin.site.site_headertem prioridade sobreADMINDIGO_SITE_HEADER(o tema só preenche o padrão).
Personalizar as cores
As cores vêm de CSS custom properties. Para ajustar, carregue um CSS próprio
depois do tema (ex.: criando seu admin/base_site.html que estende o do tema e
adiciona um <link> no bloco extrastyle), sobrescrevendo:
:root {
--admindigo-primary: #002133; /* cabeçalho / títulos */
--admindigo-secondary: #00314D; /* breadcrumbs / botões */
--admindigo-accent: #1B5589; /* hover / links */
--admindigo-alert: #c62828; /* linha de alerta no topo */
}
Como funciona
- Sobrescreve
admin/base_site.html(marca + injeção do CSS via blocoextrastyle). - Mapeia as variáveis nativas do admin (
--header-bg,--primary, …) e reforça com seletores diretos, cobrindo tema claro e escuro. - A linha de alerta é um
body::beforefixo de 3px. - Os títulos do admin são preenchidos por um
AppConfig.ready()a partir das settingsADMINDIGO_*.
Desenvolvimento
git clone https://github.com/LisandroGuerra/django-admindigo.git
cd django-admindigo
pip install -e ".[test]"
pytest
Veja CONTRIBUTING.md para detalhes (build, testes e release).
Licença
MIT © Lisandro Guerra
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file django_admindigo-0.1.0.tar.gz.
File metadata
- Download URL: django_admindigo-0.1.0.tar.gz
- Upload date:
- Size: 6.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1ea9c7ea8046dca26baa953bcf8cc6dc704c7ad326a2fc467699a740d9421205
|
|
| MD5 |
88cb95261a7d2863784c946dad4c4c3d
|
|
| BLAKE2b-256 |
c2a8a93d6342967a42a8bb43c2a267e07fb54767e105906a8a1e5946df6a795b
|
Provenance
The following attestation bundles were made for django_admindigo-0.1.0.tar.gz:
Publisher:
publish.yml on LisandroGuerra/django-admindigo
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
django_admindigo-0.1.0.tar.gz -
Subject digest:
1ea9c7ea8046dca26baa953bcf8cc6dc704c7ad326a2fc467699a740d9421205 - Sigstore transparency entry: 2026103831
- Sigstore integration time:
-
Permalink:
LisandroGuerra/django-admindigo@3a681897a24a4aaec94b8b976365d988968c26e2 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/LisandroGuerra
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@3a681897a24a4aaec94b8b976365d988968c26e2 -
Trigger Event:
release
-
Statement type:
File details
Details for the file django_admindigo-0.1.0-py3-none-any.whl.
File metadata
- Download URL: django_admindigo-0.1.0-py3-none-any.whl
- Upload date:
- Size: 8.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2062d2af1a9fd95f9ba67bd00934526866120b2b8b957c7b664b5c926ed09fc5
|
|
| MD5 |
f115841d0adbed00e785a72b149bfcba
|
|
| BLAKE2b-256 |
caa89ef2c33a3749a5f5194ff07093c66f3068875badeec5d907024b41adf278
|
Provenance
The following attestation bundles were made for django_admindigo-0.1.0-py3-none-any.whl:
Publisher:
publish.yml on LisandroGuerra/django-admindigo
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
django_admindigo-0.1.0-py3-none-any.whl -
Subject digest:
2062d2af1a9fd95f9ba67bd00934526866120b2b8b957c7b664b5c926ed09fc5 - Sigstore transparency entry: 2026103934
- Sigstore integration time:
-
Permalink:
LisandroGuerra/django-admindigo@3a681897a24a4aaec94b8b976365d988968c26e2 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/LisandroGuerra
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@3a681897a24a4aaec94b8b976365d988968c26e2 -
Trigger Event:
release
-
Statement type: