Skip to main content

Django Admin Grove

A forest-green theme for Django admin with rounded surfaces, light and dark modes, responsive layouts, and a print stylesheet. No JavaScript, external fonts, models, or migrations are required. Uses Django's existing theme toggle and branding.

Installation

Install directly from Codeberg:

python -m pip install git+https://codeberg.org/fsbraun/django-admin-grove

Add Grove before Django's admin app (including custom AdminConfig subclasses):

INSTALLED_APPS = [
    "django_admin_grove",
    "django.contrib.admin",
    # ...
]

Use Django's app template loader (APP_DIRS = True, or the explicit django.template.loaders.app_directories.Loader) and staticfiles as usual. Run python manage.py collectstatic for production deployments. No URL configuration or database changes are needed. Django CMS is optional.

Supports Django 5.2 and 6.0; use a Python version supported by your Django release.

Customization

Set admin.site.site_header, site_title, and index_title normally, or override admin/base_site.html in your project. Grove leaves Django's branding blocks intact. Project templates should extend admin/base.html and keep block.super when replacing the responsive block.

Load project CSS after Grove using its grove_styles block:

{% extends "admin/base.html" %}
{% load static %}
{% block grove_styles %}
<link rel="stylesheet" href="{% static 'myproject/admin.css' %}">
{% endblock %}

Override the --theme-* CSS variables for colors and surfaces. Match Grove's html[data-theme="light"] and html[data-theme="dark"] selectors when customizing both modes. System preferences apply when Django selects automatic mode. The --dca-primary and --dca-secondary variables follow the active palette.

Printing uses A4 landscape and hides admin controls. Use .report-screen-only to hide custom controls in print and .report-print-only for print-only context. Domain-specific selectors and branding belong in the consuming project.

Development

python -m pip install -e .
python -m django test tests --settings=tests.settings
python -m pip install build
python -m build

Tests run against plain Django admin with an in-memory database.

Publishing

Enable Actions in the Codeberg repository settings and make a runner with the codeberg-local label available. Add a PyPI API token as the Actions secret PYPI_API_TOKEN.

Update the version in pyproject.toml, then publish a Codeberg release with a matching tag (for example, 0.1.0 or v0.1.0). The publication workflow checks the version, runs the tests, builds and validates the wheel and source distribution, and uploads both to PyPI.

Metadata

Release files for django-admin-grove 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for django-admin-grove 0.1.0
File Size Uploaded Provenance Actions
django_admin_grove-0.1.0.tar.gz 9.3 kB Without provenance Details for django_admin_grove-0.1.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for django-admin-grove 0.1.0
File Interpreter ABI Platform Actions
django_admin_grove-0.1.0-py3-none-any.whl Python 3 none any Details for django_admin_grove-0.1.0-py3-none-any.whl

Total release size: 17.0 kB

Release files / django_admin_grove-0.1.0.tar.gz

Download URL django_admin_grove-0.1.0.tar.gz
Size 9.3 kB
Tags Source
SHA-256 checksum
How to use checksums
790ee5c23b24fb9581f374c4f4fe1072299b0468c4ed077467d990361cfc5eda
BLAKE2b-256 checksum
How to use checksums
71601efb41166c7557fdc33d1e6f6cd45af381ea92ab297303687107f892fa2c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.16

Release files / django_admin_grove-0.1.0-py3-none-any.whl

Download URL django_admin_grove-0.1.0-py3-none-any.whl
Size 7.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
ff6d878fa00c6cf5edb1c4b0367d636b7179f504c0d46eff188488817a8d3f10
BLAKE2b-256 checksum
How to use checksums
94bb872e34d855541f97d8d76798d596e84895ca33b1a426dd13027a5db9c3e1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.16

Security for django-admin-grove 0.1.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page