Robert Helewka r

heluca-sphinx (0.1.0)

Published 2026-08-30 00:25:04 +00:00 by r

Installation

pip install --index-url https://git.helu.ca/api/packages/r/pypi/simple/ --extra-index-url https://pypi.org/simple heluca-sphinx

About this package

Heluca Design System theme for Sphinx documentation — the brand layer for the Clio docs estate

heluca-sphinx

The Heluca Design System theme for Sphinx documentation — the brand layer for the Clio docs estate. A thin Furo-derived HTML theme that maps the Heluca DS tokens (amber primary, Marcellus display headings, Literata prose, the self-hosted DS webfonts) onto Furo's CSS custom properties.

Usage

Add it to the project's docs dependencies (it publishes to the Gitea PyPI registry) and select the theme — that's the whole integration:

# pyproject.toml
[project.optional-dependencies]
docs = [
    "sphinx>=9.0,<10",
    "myst-parser>=5.0,<6",
    "heluca-sphinx>=0.1,<1.0",
]
# docs/conf.py
html_theme = "heluca"

Install with the registry as an extra index:

pip install heluca-sphinx --extra-index-url https://git.helu.ca/api/packages/r/pypi/simple/

Selecting the theme is enough — Sphinx loads the module via its sphinx.html_themes entry point, registers the theme directory, and links the DS stylesheet on top of Furo's. No html_static_path copies, no html_css_files list, nothing to drift.

Furo's own options still apply (html_theme_options for light_logo, dark_logo, source_repository, announcement, …).

What it maps

Surface Light (paper) Dark (ink)
Brand primary #ffa415 amber #ffa415 amber
Content links #4b96ff blue #58c0ff blue
Page background #ffffff #131118
Sidebar background #f4f1ea paper #17151d

Headings render in Marcellus, chrome in Public Sans, long-form prose in Literata, code in JetBrains Mono — all self-hosted latin woff2, no external font host.

Provenance

The @font-face block and DS token values in heluca_sphinx/theme/heluca/static/heluca.css are derived from @heluca/svelte tokens — the same source django-heluca-themis vendors. They are a committed copy, not a live render: re-sync both blocks when the upstream tokens change.

Releasing

Bump version in pyproject.toml, commit to main, then push a matching bare-version tag (e.g. 0.1.0). The publish workflow smoke-builds the sample docs, asserts the theme assets are in the wheel, and uploads to the registry.

Requirements

Requires Python: >=3.10
Details
PyPI
2026-08-30 00:25:04 +00:00
4
MIT
546 KiB
Assets (2)
Versions (3) View all
0.3.0 2026-09-01
0.2.0 2026-08-30
0.1.0 2026-08-30