Hammerheart source of truth: palette.toml + generator. Edit here; platform repos are generated.
  • Python 55.1%
  • HTML 33.1%
  • Shell 11.8%
Find a file
abdo 442c84ccff
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
fix: correct palette attribution and finish manifest before publishing
Drop the fabricated "cmuxthemes" credit. The Black Metal Bathory palette
is by metalelf0 (Andrea Schiavini), per the upstream base16 scheme and
neovim theme, so correct palette.toml and remove the bogus "downstream
redistribution" clause from LICENSE.

Remove em dashes from all prose and generated metadata (README, palette
comments, the Nova store description, CSS header) to match house style.

Add license (MIT) and min_runtime to the Nova manifest so the Extension
Library listing is complete.
2026-05-29 08:59:31 -04:00
brand feat: add the hammer-in-heart logo and app icon 2026-05-29 02:04:30 -04:00
build fix: correct palette attribution and finish manifest before publishing 2026-05-29 08:59:31 -04:00
preview feat: add Hammerheart theme with palette source of truth and generator 2026-05-28 21:14:07 -04:00
.gitignore refactor: restructure into core source-of-truth with generated platform repos 2026-05-28 23:41:13 -04:00
.woodpecker.yml ci: add Woodpecker pipeline (validate + auto-publish) 2026-05-29 01:43:25 -04:00
CHANGELOG.md feat(website): reskin Zola code blocks with a JSON highlight theme 2026-05-28 21:14:07 -04:00
LICENSE fix: correct palette attribution and finish manifest before publishing 2026-05-29 08:59:31 -04:00
palette.toml fix: correct palette attribution and finish manifest before publishing 2026-05-29 08:59:31 -04:00
README.md fix: correct palette attribution and finish manifest before publishing 2026-05-29 08:59:31 -04:00

Hammerheart: core

CI

The source of truth for Hammerheart: a warm-monochrome dark theme anchored on International Orange (#f56020). Edit the palette here; every platform repo is generated from it.

The palette's colour values derive from the Black Metal Bathory theme by metalelf0 (Andrea Schiavini), expanded with ochre tones and a small set of muted brand accents for syntax legibility. Named for the Bathory song Hammerheart (the closing track of their 1991 album Twilight of the Gods, which adapts Holst's Jupiter) and the International Orange that also carries the Refugee Nation Flag.

Variant: Balanced. Functions, variables, and members each get their own brand-accent tone, while everything else stays on the warm anchors.

How it works

palette.toml          ← edit colours here (single source of truth)
build/generate.py     ← palette.toml -> dist/<platform>/
build/publish.sh      ← regenerate + push each dist/<platform> to its repo
brand/                ← logo source (svg) + raster + icon assets
dist/                 ← generated output (gitignored)
python3 build/generate.py   # build into dist/
build/publish.sh            # build + push the platform repos (needs the Forgejo token)
build/publish.sh --sites    # also sync + push the websites (abdo.wtf, abdodaoud.com)

CI: .woodpecker.yml (Woodpecker at ci.abdo.wtf) validates the generated output on push to main and auto-publishes the platform repos. Needs the repo enabled in Woodpecker and a forgejo_token secret (a token that can push to the hammerheart/* repos).

Platform repos (generated, do not edit directly)

Platform Repo Channel
Nova hammerheart/nova Panic Extension Library
Obsidian (Minimal) hammerheart/obsidian CSS snippet / Style Settings
Xcode hammerheart/xcode install.sh / manual copy
Web (Zola/serene) no repodist/web/ consumed by abdo.wtf / abdodaoud.com

Palette

Role Colour Source
Background / chrome #1a1a1a / #0f0f0f
Plain text #c1c1c1
Keyword / boolean / tag / heading #f56020 International Orange
Type / class #d4a76c ochre
Function / method #47976f brand: tip
Variable / parameter / link #9776cd brand: important
Property / member / attribute #ad7a52 brand: warning
Number / constant #b48a5e dark ochre
String / character / regex #fbcb97 peach
Comment #5f8787 teal (reserved)
Error / invalid #d06161 brand: caution

License

MIT. See LICENSE. The "Hammerheart" name and International Orange (#f56020) are reserved brand identity, not covered by the MIT grant (forks welcome under their own name). Palette lineage credited in LICENSE; only colour values are reused, so it is courtesy attribution.