Alliance Auth Zima Theme
A theme for Alliance Auth 5 (Django 5.2 LTS, Bootstrap 5). It ships a self-contained Bootstrap 5 build with the Zima brand palette and restyles the public/login pages, delivered as a standard Python package.
Русская версия: README.ru.md.
Features
- Dashboard theme via the AA5 theme selector. Registers two
ThemeHooks — Zima Dark and Zima Light — that appear in the user's theme picker. Both share one stylesheet and switch through Bootstrap 5.3 colour modes (data-bs-theme). - Self-contained assets. Each theme serves its own Bootstrap 5 CSS and JS bundle from this package's static files; nothing is loaded from a CDN.
- Restyled public pages. The login chain and the django-esi character-pick page are overridden with Bootstrap 5 layouts that match the theme.
- Operator-configurable strings via an optional
AA_THEME_ZIMAsettings dict — no template forking required (see Configuration). - English and Russian translation catalogues.
Requirements
- Alliance Auth
>=5,<6 - Python
>=3.10,<3.15
Installation
pip install aa-theme-zima
To install the latest unreleased changes straight from the repository instead:
pip install git+https://gitlab.com/zima-corp/aa-theme-zima.git
Open your local.py and add the following right below your INSTALLED_APPS:
# Zima Theme - https://gitlab.com/zima-corp/aa-theme-zima
INSTALLED_APPS.insert(0, "aa_theme_zima")
Then collect the static files:
python manage.py collectstatic
Once installed, each user can pick Zima Dark or Zima Light from the theme selector in their Alliance Auth profile.
Configuration
The theme works without any configuration. To override a few operator-facing
strings without forking the templates, add an optional AA_THEME_ZIMA dict to
your local.py:
AA_THEME_ZIMA = {
"OG_TITLE": "My Corp Auth",
"OG_DESCRIPTION": "Authentication for My Corp.",
}
| Key | Default | Description |
|---|---|---|
OG_TITLE |
the AA SITE_NAME |
Open Graph title for social-card previews. |
OG_DESCRIPTION |
Alliance Auth's default blurb | Open Graph description for social-card previews. |
Any key left unset keeps the theme's built-in default, so an out-of-the-box install renders exactly as shipped.
Default theme
Each user selects Zima Dark or Zima Light from their profile. Until a
user makes a choice, Alliance Auth renders the theme named by its core
DEFAULT_THEME setting (shipped as
allianceauth.theme.flatly.auth_hooks.FlatlyThemeHook). To make a Zima variant
the default for everyone who has not picked one yet, set DEFAULT_THEME in your
local.py:
# Make Zima Dark the default for users who have not chosen a theme
DEFAULT_THEME = "aa_theme_zima.auth_hooks.ZimaDarkThemeHook"
| Value | Theme |
|---|---|
aa_theme_zima.auth_hooks.ZimaDarkThemeHook |
Zima Dark |
aa_theme_zima.auth_hooks.ZimaLightThemeHook |
Zima Light |
DEFAULT_THEME is an Alliance Auth core setting, not a Zima one — it only sets
the fallback; users can still switch to any installed theme from their profile.
The public login pages are always Zima-styled regardless of this setting.
Upgrade
pip install --upgrade aa-theme-zima
python manage.py collectstatic
Using aa-gdpr
If you are using aa-gdpr, this
theme's entry needs to come after the aa-gdpr entry:
# GDPR Compliance
INSTALLED_APPS.insert(0, "aagdpr")
AVOID_CDN = True
# Zima Theme - https://gitlab.com/zima-corp/aa-theme-zima
INSTALLED_APPS.insert(0, "aa_theme_zima")
Building from source
The CSS is not edited directly — it is compiled from sass/ with a
gulp + dart-sass + PostCSS toolchain:
npm install # one-time: gulp, postcss, bootstrap (SCSS source)
npm run compile # compiles sass/ -> static CSS and vendors the Bootstrap JS bundle
The Python package is built with the uv build backend:
uv build # produces a wheel and sdist in dist/
The package version is single-sourced in pyproject.toml; __version__ is
derived at runtime from the installed distribution metadata.
Limitations
- Alliance Auth 5 only. The templates target the AA5 / Bootstrap-5 theme-hook era; Alliance Auth 4 is not supported.
- Run
collectstaticafter every install or upgrade — the theme serves its Bootstrap bundle and compiled CSS from this package's static files. - This is a presentation layer only: it adds no models, views, or URLs.
License
Distributed under the GPL-3.0-or-later license.
Changelog
See CHANGELOG.md.
Metadata
Release files for aa-theme-zima 0.4.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| aa_theme_zima-0.4.0.tar.gz | 3.3 MB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| aa_theme_zima-0.4.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 6.7 MB
Release files / aa_theme_zima-0.4.0.tar.gz
| Download URL | aa_theme_zima-0.4.0.tar.gz |
|---|---|
| Size | 3.3 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
13e006545fb4bbe50e11c247c201648879843e55722431eeb1dc44c12b9520d5
|
|
BLAKE2b-256 checksum How to use checksums |
6569c729ee9099b2dcd5c5f466a00d399630a1876106776433f04a08e097e3d3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.9.30 {"installer":{"name":"uv","version":"0.9.30","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"12","id":"bookworm","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / aa_theme_zima-0.4.0-py3-none-any.whl
| Download URL | aa_theme_zima-0.4.0-py3-none-any.whl |
|---|---|
| Size | 3.3 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
98bd5cb68cd11d5ba3093bbb24d81c4113998ab5834c44aa569ef9e0ee5c84eb
|
|
BLAKE2b-256 checksum How to use checksums |
21723a7bb20afa79c4f478f23ca997c62306b6ed288e4277430b49d6b0ece0e7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.9.30 {"installer":{"name":"uv","version":"0.9.30","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"12","id":"bookworm","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Security for aa-theme-zima 0.4.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.