Skip to main content

Tema índigo simples para o Django Admin: paleta navy/azul + linha de alerta de Admin.

Project description

django-admindigo

CI PyPI Python Django License: MIT

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.
  • 🔆 Botão de tema (claro/escuro/automático) também na tela de login, que o admin normalmente esconde para usuários anônimos.
  • ⚙️ Zero código: configurável apenas por settings.

Django Admin com o tema django-admindigo

Dashboard do admin com o tema aplicado e o branding padrão (Administração). O texto é configurável via ADMINDIGO_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 loader APP_DIRS=True, o Django procura templates na ordem do INSTALLED_APPS, então o admindigo precisa 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.py do projeto que defina admin.site.site_header tem prioridade sobre ADMINDIGO_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 bloco extrastyle).
  • 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::before fixo de 3px.
  • Os títulos do admin são preenchidos por um AppConfig.ready() a partir das settings ADMINDIGO_*.

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

django_admindigo-0.1.1.tar.gz (8.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

django_admindigo-0.1.1-py3-none-any.whl (9.4 kB view details)

Uploaded Python 3

File details

Details for the file django_admindigo-0.1.1.tar.gz.

File metadata

  • Download URL: django_admindigo-0.1.1.tar.gz
  • Upload date:
  • Size: 8.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for django_admindigo-0.1.1.tar.gz
Algorithm Hash digest
SHA256 462977b9e464d2337e9a9b44f0a2e4aadee627579dbd97a57c6b6bb2a394d91d
MD5 72445baebff93d61f85cbdf41965382d
BLAKE2b-256 8146668b072c3c2e5f9804fa3b8a4cb14315a6a22d867d98643917963943a87a

See more details on using hashes here.

Provenance

The following attestation bundles were made for django_admindigo-0.1.1.tar.gz:

Publisher: publish.yml on LisandroGuerra/django-admindigo

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file django_admindigo-0.1.1-py3-none-any.whl.

File metadata

File hashes

Hashes for django_admindigo-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 e8d3b81f7319d0b6663aa92ade08a80cbd466699f12259ab0d40f1488fb85b04
MD5 4a4a118ec64ba26e219489ed4c3b44ba
BLAKE2b-256 af2c87a70034f6d5cf377811532097ed7dfbf481b40551dc244fb9aec84685a5

See more details on using hashes here.

Provenance

The following attestation bundles were made for django_admindigo-0.1.1-py3-none-any.whl:

Publisher: publish.yml on LisandroGuerra/django-admindigo

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page