Intility's Bifrost design system as a Material for MkDocs plugin.
A pip-installable MkDocs plugin that applies Intility's Bifrost design system to Material for MkDocs. The plugin is batteries-included: colors, typography, component styling, markdown extensions, theme features, and message icons are all configured automatically.
Start from the bifrost-mkdocs-template for a preconfigured project, or add the plugin to an existing one:
uv pip install intility-bifrost-mkdocsSet the theme to material and add intility-bifrost to your mkdocs.yml plugins:
theme:
name: material
plugins:
- intility-bifrost
- searchThat's the whole setup. The plugin configures the markdown extensions, theme features, fonts, icons, and a light/dark palette toggle for you.
To pick a different theme color, set a version badge, or build navigation from
.nav.yml files, see the
Quick Start in the docs.
Adding intility-bifrost to your plugins list gives you:
- Bifrost design system - Colors, typography, and component styling matching the Intility design system
- Light/dark mode - Automatic theme switching with Bifrost color variables
- Theme colors - teal, purple, pink, yellow (set via
primaryin your palette config) - Typography - Satoshi for all text, JetBrains Mono for code (both self-hosted, no Google Fonts)
- Markdown extensions - Messages, code highlighting, tabs, mermaid diagrams, emoji, task lists, and more
- Theme features - Instant navigation, search suggestions (with a
⌘ K/Ctrl Khotkey), code copy buttons, and more - Message icons - Custom FontAwesome icons for all message types
- Version badge - Set
extra.versioninmkdocs.ymlto show a Bifrost-styled version badge in the header - Bundled plugins -
mkdocs-awesome-navandmkdocs-git-revision-date-localized-pluginare installed alongside; opt in by adding them to yourplugins:list - GitHub-style alerts -
markdown-calloutsis bundled and auto-enabled, so> [!NOTE]blocks render as Bifrost Messages
All defaults are injected only when the user hasn't provided their own config, so you can override anything by setting it explicitly in your mkdocs.yml.
This project uses mise for tooling and just as a task runner:
mise install # installs uv, Python, Node, just and lefthook
just setup # syncs dev dependencies and installs git hooks
just dev # serve the docs site locallyRun just to see all available recipes. The demo site at docs/index.md uses
the plugin directly. See CONTRIBUTING.md for the full
workflow.