hugo-theme-sigil is a minimal literary Hugo theme that renders Markdown content on an old-paper background using a strict three-ink color system — vermilion, ink-green, and amber — and nothing else. It is a deep customization of PaperMod, distributed under the MIT license by GitHub user ouatis, and requires Hugo v0.156.0 or newer.
What is hugo-theme-sigil?
hugo-theme-sigil is a Hugo theme that turns Markdown posts plus a hugo.toml configuration file into a static, typography-focused blog. It runs on Hugo v0.156.0 and later, is written and maintained by ouatis, and ships under the MIT license as a separate, heavily modified fork of PaperMod rather than as an upstream pull request. The output is a static site with a homepage hero and seal, posts, taxonomies, archives, RSS, and client-side search.
What makes hugo-theme-sigil stand out?
- Tufte-style sidenotes — footnotes are cloned into the margin beside their reference on screens 1280px and wider, and fall back to endnotes on narrow screens; no param is needed.
- Circular-reveal theme toggle — dark mode opens as a circle expanding from the click point through the View Transitions API, with a soft transition where that API is unsupported.
- Ghost-year archives — the archives page sets each year as a large background numeral instead of a heading row.
- Full-text RSS — the ShowFullTextinRSS param puts whole articles in the feed instead of summaries.
- CJK font subsetting — bash and Python scripts (scripts/build-fonts.sh, scripts/build-fonts.py) emit IBM Plex woff2 slices keyed by unicode-range, so Chinese and Japanese readers download kilobytes rather than megabytes.
- Three-color system — vermilion responds, ink-green informs, amber highlights; those are the only colors in the design.
- PaperMod essentials retained — Fuse.js search, taxonomies, breadcrumbs, table of contents, code copy buttons, and Open Graph / Twitter / Schema metadata.
- Built-in i18n — ships with zh-CN, English, and Japanese strings, plus a disableLangToggle param and an optional ShowDefaultLanguageContent mode for translated-UI, single-content sites.
Who should use hugo-theme-sigil?
- Technical writers and essayists publishing long-form Markdown who want footnotes rendered as margin notes and a restrained paper-and-ink palette.
- Chinese and Japanese bloggers who need IBM Plex CJK text without shipping multi-megabyte font files, using the bundled subsetting scripts.
- Existing PaperMod users who want Tufte sidenotes, ghost-year archives, and a circular-reveal dark-mode toggle without changing static-site generators.
- Developers deploying via CI — the recommended install path is a git submodule, which suits automated build pipelines.
Use cases
- Literary bloggers: publish essays with footnote references set in the margin and deliver full articles through RSS using ShowFullTextinRSS.
- Multilingual publishers: run a zh-CN, English, or Japanese site with translated UI strings, or set ShowDefaultLanguageContent to list the default language's posts on translated home, archive, search, and RSS pages.
- Writers tracking readership: show a cumulative page-view counter in the footer by supplying a data/analytics.json file with a total and a since date.
- Homepage customizers: override the hero with sgKicker, sgHomeTitle, sgSealImage, and the rotating sgReading / sgPlaying / sgMotto status line, and cap posts per page with homePageSize.
How does hugo-theme-sigil work?
Install by adding the repository to themes/hugo-theme-sigil as a git submodule or a plain clone, then set theme = "hugo-theme-sigil" in hugo.toml and point baseURL at your own domain, since the example site ships with https://example.com/. Sidenotes, the ghost-year archive background, and the circular theme toggle need no configuration; optional params such as homePageSize, ShowTotalWords, and ShowAllPagesInArchive control the rest. Regenerate Simplified-Chinese and Japanese font slices with the bash or Python build-fonts script when needed — Latin IBM Plex fonts already ship in static/fonts/ibm-plex/latin/.
Pricing
Free and open source under the MIT license. Bundled dependencies keep their own licenses: IBM Plex fonts (SIL OFL 1.1), Phosphor Icons (MIT), and Fuse.js (Apache-2.0).
FAQ
Is hugo-theme-sigil free?
Yes. The theme is released under the MIT license, so you can use, modify, and redistribute it. Its bundled third-party assets carry their own licenses: IBM Plex under SIL OFL 1.1, Phosphor Icons under MIT, and Fuse.js under Apache-2.0.
What Hugo version does hugo-theme-sigil require?
It requires Hugo v0.156.0 or newer, per the minimum-version badge in the repository. You can install it as a git submodule into themes/hugo-theme-sigil or clone it directly, then set theme = "hugo-theme-sigil" in hugo.toml.
Does hugo-theme-sigil support Chinese and Japanese?
Yes. It ships with zh-CN, English, and Japanese strings, and its build-fonts scripts emit IBM Plex woff2 slices keyed by unicode-range. Only Latin IBM Plex fonts ship in the repository, so you must regenerate the Simplified-Chinese and Japanese slices yourself before CJK readers benefit.
Do I need to configure sidenotes or the dark-mode toggle?
No. Tufte-style sidenotes, the ghost-year archive background, and the circular-reveal theme toggle are automatic and require no parameter. Sidenotes only become margin notes on screens 1280px and wider, however — narrower screens show ordinary endnotes instead.







