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.2.tar.gz (8.7 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.2-py3-none-any.whl (9.9 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: django_admindigo-0.1.2.tar.gz
  • Upload date:
  • Size: 8.7 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.2.tar.gz
Algorithm Hash digest
SHA256 710ed1bef1b85b87eb2998d2e4da01694fab39872da82406a0e2806e70b3dd19
MD5 112921de864c465ed78b8d089c4fec8c
BLAKE2b-256 2b2dffcd7cbd423733a6f3c28429e70358fd4f86b1335d7f472c14550c1bb196

See more details on using hashes here.

Provenance

The following attestation bundles were made for django_admindigo-0.1.2.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.2-py3-none-any.whl.

File metadata

File hashes

Hashes for django_admindigo-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 fdb880314964a0d8b602ab1080eccc3c30f5c921bb7c5024fd60e3fbcf844221
MD5 2efa6a2548edf257688a2818ea0cfb15
BLAKE2b-256 0bc0052a87782e4b2fffe6895ea62ba4d5b227866e408fb586e2cdf298eeee0b

See more details on using hashes here.

Provenance

The following attestation bundles were made for django_admindigo-0.1.2-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