Link's-Awakening-flavoured theme for the bragi CMS, used by zelda.eelcowesemann.nl
Project description
bragi-theme-zelda
A Link's-Awakening-flavoured theme for the bragi CMS, deployed at zelda.eelcowesemann.nl.
This is a site-specific theme. The visual choices are opinionated for one Zelda fan site (primarily Link's Awakening walkthroughs with secondary Ocarina of Time coverage) and are not intended as a general-purpose Zelda theme.
Theme highlights
- Game Boy LCD palette: 4-shade GB green light mode, 4-shade GB Pocket greyscale dark
mode. Two real handheld LCDs under one roof;
prefers-color-schemedetermines which. - Pixel headings over readable body: Press Start 2P for short strings (headings, labels, UI chrome), Inter for body text, JetBrains Mono for code.
- MAP-styled sidebar tree: Current section's siblings and children visible at a glance, styled as a pause-menu MAP panel. Walkthrough hierarchy (game, dungeon, room) navigable without hunting through a top-level nav.
- OoT section chrome flip: Royal-blue + gold accent shift in the Ocarina of Time section
via
data-section="oot". Body stays GB-green for cohesion; chrome (top bar, image frames, links) signals the switch. - GB Pocket greyscale dark mode: A real GB Pocket palette (light grey on near-black), not a colour inversion. Different hardware era, coherent aesthetic family.
- Seven cosplay motifs: text-box callouts (Owl / Marin / Tarin / Ulrira portraits),
rupee counter, PUSH START splash, item-acquired flourish between sections, pause-menu
inventory homepage, ZZZZZ 404, heart-container
<hr>, inventory-row pinned posts. prefers-reduced-motionrespected: Any animation that moves (ZZZZZ float, item- acquired scroll, PUSH START blink) switches to a static render.
Status: v0.1.1
v0.1.1 is the first PyPI-published release. It ships the same full visual system as v0.1.0 (MAP sidebar, chrome, pause-menu home, ZZZZZ 404, all four cosplay JS motifs, and subsetted woff2 fonts). Character portraits, item tiles, the heart-container, and the 404 scene art are still placeholder PNGs (Pillow-generated text-on-coloured-square). The CSS / JS / templates reference the correct sprite filenames, so a future release swaps in real art via per-file PNG replacement with no code changes.
Asset provenance
Fonts and sprites are documented row-by-row in ASSETS.md. No ROM-ripped Nintendo assets; see ASSETS.md for the full sourcing and licence detail.
Installing
The theme is installed into a downstream bragi deployment via a thin Dockerfile that
builds on the published bragi images and pip installs this package. From v0.1.1 the
package is published to PyPI on every GitHub Release; v0.1.0 is git-tag-only.
Delivery container
FROM ghcr.io/sgaduuw/bragi-delivery:v1.26.0
# Install from PyPI (pin to a specific version).
RUN pip install --no-cache-dir bragi-theme-zelda==0.1.1
# For development against an unreleased commit, use the git+https form instead:
# RUN pip install --no-cache-dir \
# "git+https://github.com/sgaduuw/bragi-theme-zelda.git@v0.1.0"
Admin container
FROM ghcr.io/sgaduuw/bragi-admin:v1.26.0
# Install from PyPI (pin to a specific version).
RUN pip install --no-cache-dir bragi-theme-zelda==0.1.1
# For development against an unreleased commit, use the git+https form instead:
# RUN pip install --no-cache-dir \
# "git+https://github.com/sgaduuw/bragi-theme-zelda.git@v0.1.0"
Both containers need the package so template lookups work from the admin preview path and from the public delivery path. Restart both after installation to pick up the plugin.
Replace the version pin with the version to deploy. v0.1.1 is the first PyPI-published release; v0.1.0 is git-tag-only.
Development
Prerequisites
- Python 3.14+
- Poetry
Install
poetry install
Run against a bragi dev checkout (editable install)
# From this project's directory, install into bragi's venv as an editable package:
cd ../bragi && poetry run pip install -e ../bragi-theme-zelda
# Then in bragi's working tree, point the Zelda site's theme to "zelda"
# via the admin UI or CLI, and reload the delivery process to pick up template changes.
Commands
# Run the test suite
poetry run pytest
# Lint
poetry run ruff check src/ tests/
# Format-check
poetry run ruff format --check src/ tests/
# Type-check
poetry run mypy src/
License
MIT. See LICENSE. Theme code and original assets are MIT-licensed. Third-party fonts are under their respective open-source licences; see ASSETS.md.
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 bragi_theme_zelda-0.1.1.tar.gz.
File metadata
- Download URL: bragi_theme_zelda-0.1.1.tar.gz
- Upload date:
- Size: 142.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
13d0345a0b079108a11b24b82d88bf79ab6abaed941c46b489b03fbfe8f93cc8
|
|
| MD5 |
27d424b6c9d3f854d43ce8e7c778d600
|
|
| BLAKE2b-256 |
744f597ef865d13779aaae5e53d8077f76db4ed41e0d07a73d9110d6b1a76795
|
Provenance
The following attestation bundles were made for bragi_theme_zelda-0.1.1.tar.gz:
Publisher:
release.yml on sgaduuw/bragi-theme-zelda
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
bragi_theme_zelda-0.1.1.tar.gz -
Subject digest:
13d0345a0b079108a11b24b82d88bf79ab6abaed941c46b489b03fbfe8f93cc8 - Sigstore transparency entry: 1731707129
- Sigstore integration time:
-
Permalink:
sgaduuw/bragi-theme-zelda@ca08b04aeaba5cfad816622d2b2ddd05b1b308d4 -
Branch / Tag:
refs/tags/v0.1.1 - Owner: https://github.com/sgaduuw
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@ca08b04aeaba5cfad816622d2b2ddd05b1b308d4 -
Trigger Event:
release
-
Statement type:
File details
Details for the file bragi_theme_zelda-0.1.1-py3-none-any.whl.
File metadata
- Download URL: bragi_theme_zelda-0.1.1-py3-none-any.whl
- Upload date:
- Size: 145.8 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 |
599835de35e54605927ce355bc49b68b50c826dd3a7d2970059b2acf66c1505b
|
|
| MD5 |
52da7c75fa94c8a9fc0e28b115e54056
|
|
| BLAKE2b-256 |
360096660aa2a7d347d524942bf9d12d783e36d8de41ed3c3374d12657f1a182
|
Provenance
The following attestation bundles were made for bragi_theme_zelda-0.1.1-py3-none-any.whl:
Publisher:
release.yml on sgaduuw/bragi-theme-zelda
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
bragi_theme_zelda-0.1.1-py3-none-any.whl -
Subject digest:
599835de35e54605927ce355bc49b68b50c826dd3a7d2970059b2acf66c1505b - Sigstore transparency entry: 1731707189
- Sigstore integration time:
-
Permalink:
sgaduuw/bragi-theme-zelda@ca08b04aeaba5cfad816622d2b2ddd05b1b308d4 -
Branch / Tag:
refs/tags/v0.1.1 - Owner: https://github.com/sgaduuw
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@ca08b04aeaba5cfad816622d2b2ddd05b1b308d4 -
Trigger Event:
release
-
Statement type: