Glass + NothingOS Design Language for MkDocs
Void is a custom MkDocs theme that blends the translucent, layered aesthetics of Glass design system with the minimal, industrial clarity of NothingOS. It combines pure black canvas, glass morphism panels, dot-matrix typography, and Nothing Red accents into a cohesive documentation experience.
More screenshots: View all screenshots
- Key Features
- Installation
- Quick Start
- Configuration
- Usage Examples
- Documentation
- Interface
- Architecture
- Requirements
- Prerequisites
- Development
- Community
- Acknowledgments
- Glass Morphism — Translucent glass panels with
backdrop-filterblur and configurable intensity (light / medium / heavy) - NothingOS Canvas — Pure black (#000000) background with monochrome palette and Nothing Red (#ff3030) accents
- Dot-Matrix Overlay — Subtle dot pattern texture inspired by NothingOS
- Dark & Light Modes — Toggle between slate (dark) and default (light) color schemes
- Typography — Space Grotesk for display/body, Space Mono for code/labels via Google Fonts
- Responsive Layout — Sidebar navigation, sticky header, and mobile-friendly drawer
- Table of Contents — Auto-generated TOC with active section tracking
- Full-Screen Search — Instant search with keyboard shortcut (
/) and result highlighting - Code Blocks — Syntax highlighting with one-click copy button
- Admonitions — Styled note, warning, tip, and danger callouts
- Tabbed Content — Alternating-style tabs for grouped content
- Task Lists — Interactive checkbox lists
- Reading Progress Bar — Visual indicator of scroll position
- Back-to-Top Button — Appears on scroll for quick navigation
- Page Feedback — "Was this page helpful?" widget that opens a prefilled GitHub issue (no analytics, no tracking)
- Announcement Bar — Dismissable one-line banner above the header, remembered per site
- Privacy-First Cookie Consent — Banner appears only when a real integration is configured; a single accept/decline flag, nothing tracked
- Opt-in Comments (giscus) — Consent-gated comments with palette-synced theme
- Keyboard Navigation — Shortcuts for search (
/), help (?), and close (Esc) - Reduced Motion Support — Animations disabled when
prefers-reduced-motionis active - SCSS Build Pipeline — Sass compilation with PostCSS autoprefixer and cssnano minification
pip install mkdocs-voidThis installs both the Void theme and the companion MkDocs plugin automatically.
-
Install the package:
pip install mkdocs-void
-
Create a new MkDocs project:
mkdocs new my-docs cd my-docs -
Set the theme in
mkdocs.yml:site_name: My Docs theme: name: void
-
Start the dev server:
mkdocs serve
-
Open http://127.0.0.1:8000 in your browser.
theme:
name: voidtheme:
name: void
favicon: assets/images/favicon.svg
language: en
palette:
- scheme: slate
primary: black
accent: red
toggle:
name: Switch to light mode
- scheme: default
primary: white
accent: red
toggle:
name: Switch to dark mode
font:
text: Space Grotesk
code: Space Mono
features: # Material-compatible passthrough (always-on, no gating)
- navigation.sections
- navigation.top
- navigation.footer
- content.code.copy
- search.suggest
- search.highlight
void:
glass: medium
dot_matrix: true
animation: normal
border: thin
plugins:
- search
- void| Option | Values | Default | Description |
|---|---|---|---|
void.glass |
"light", "medium", "heavy" |
"medium" |
Glass panel blur intensity |
void.dot_matrix |
true, false |
true |
Dot-matrix background pattern |
void.animation |
"normal", "none" |
"normal" |
Entrance and hover animations |
void.border |
"thin", "thick", "none" |
"thin" |
Glass panel border style |
!!! note "Glass Note"
This is a styled admonition with the Void design.
!!! warning "Accent Warning"
This uses the Nothing Red accent color.
!!! tip "Pro Tip"
Glass effects adapt to your color scheme choice.```python
def hello():
print("Hello from Void")
```=== "Python"
```python
pip install mkdocs-void
```
=== "Node.js"
Not applicable — Void is a Python package.- [x] Install Void
- [x] Configure mkdocs.yml
- [ ] Deploy documentation| Page | Description |
|---|---|
| Getting Started | Installation and setup guide |
| Configuration | Full theme configuration reference |
| Design System Overview | How the design language works |
| Colors | Color tokens and palette reference |
| Typography | Font system and type scale |
| Glass Effects | Glass morphism implementation details |
| Buttons | Button component variants |
| Cards | Card component with glass effects |
| Forms | Form elements and validation |
| Void Plugin | Plugin configuration and options |
| Architecture | Project structure and internals |
| Development | Contributing and dev workflow |
| Deployment | Build and deployment guide |
| Troubleshooting | Common issues and fixes |
| Benchmarks | CI-regenerated page-weight + Lighthouse receipts |
| FAQ | Frequently asked questions |
| Screenshots | Visual gallery of the theme |
| About | Credits and license |
Void is a MkDocs theme — it provides HTML templates, CSS, and JavaScript that render your Markdown documentation as a styled website.
- Logo and site name (left)
- Hamburger menu toggle (mobile)
- Dark/light mode toggle
- Search button
- Repository link
- Collapsible navigation tree with section grouping
- Active page highlighting
- Toggle buttons for expanding/collapsing sections
- Markdown content with typeset typography
- Code blocks with syntax highlighting and copy button
- Admonitions, tabs, tables, task lists
- Table of contents (right side on wide screens)
| Key | Action |
|---|---|
/ |
Open search |
? |
Show keyboard shortcuts |
Esc |
Close overlay |
mkdocs-void/
├── void/ # Python package
│ ├── __init__.py # Version (0.1.2)
│ ├── plugins/
│ │ └── void_plugin.py # MkDocs plugin (theme defaults)
│ ├── templates/
│ │ ├── base.html # Root HTML template
│ │ ├── main.html # Content wrapper
│ │ ├── 404.html # Error page
│ │ ├── mkdocs_theme.yml # Theme registration
│ │ ├── partials/
│ │ │ ├── header.html # Sticky header
│ │ │ ├── nav.html # Sidebar navigation
│ │ │ ├── content.html # Content renderer
│ │ │ ├── toc.html # Table of contents
│ │ │ ├── footer.html # Prev/next + copyright
│ │ │ ├── palette.html # Dark/light toggle
│ │ │ ├── search.html # Search modal
│ │ │ ├── progress.html # Reading progress bar
│ │ │ └── javascripts/
│ │ │ └── palette.html # FOUC prevention script
│ │ └── assets/
│ │ ├── void.css # Compiled CSS
│ │ ├── stylesheets/
│ │ │ ├── void.scss # Design tokens + base
│ │ │ └── components.scss # Component styles
│ │ ├── javascripts/
│ │ │ └── void.js # Theme JS (vanilla ES6+)
│ │ └── images/
│ │ ├── logo.svg # Theme logo
│ │ └── favicon.svg # Browser favicon
│ ├── extensions/ # Reserved for future use
│ └── utilities/ # Reserved for future use
├── docs/ # Documentation source
├── logo/
│ └── logo.svg # Project logo (512x512)
├── tools/
│ ├── build.js # SCSS build pipeline
│ └── screenshots_gen.py # Screenshot generator
├── Screenshots/ # Generated screenshots
├── mkdocs.yml # MkDocs configuration
├── pyproject.toml # Python package config
├── package.json # Node.js dependencies
└── requirements.txt # Python dependencies
graph TD
A[Markdown Files] --> B[MkDocs]
B --> C[void_plugin.py]
C --> D[HTML Templates]
D --> E[base.html]
E --> F[partials/header.html]
E --> G[partials/nav.html]
E --> H[partials/content.html]
E --> I[partials/toc.html]
E --> J[partials/footer.html]
E --> K[partials/search.html]
E --> L[assets/void.css]
E --> M[assets/javascripts/void.js]
N[void.scss] --> O[tools/build.js]
O --> P[void.css]
The stylesheet is organized in layers:
- Design Tokens (
void.scss:root) — CSS custom properties for colors, spacing, typography, glass, shadows, z-index, animations - Light Mode Overrides (
[data-md-color-scheme="default"]) — Token overrides for light theme - Glass Intensity Variants — Light/medium/heavy glass via
data-md-void-glassattribute - Base Resets — Box-sizing, font smoothing, reduced motion
- Dot Matrix Overlay — Radial gradient pattern
- Glass Components —
.void-glass,.void-card - Typography — Display, labels, body, code
- Components (
components.scss) — Layout, header, nav, content, TOC, footer, search, tabs, admonitions, code blocks, tables, and more
- Python 3.8 or higher
- MkDocs 1.5 or higher
- Node.js 18 or higher (for building CSS)
- A modern browser with support for
backdrop-filter
pip(Python package manager)npm(Node.js package manager)- A text editor or IDE
git clone https://github.com/rkriad585/mkdocs-void.git
cd mkdocs-void
pip install -e .
npm installnpm run buildnpm run startnpm run devmkdocs serveruff check void/rm -rf site/ dist/ build/ *.egg-info .ruff_cache/
find . -type d -name __pycache__ -exec rm -rf {} +Or use Make:
make install # Install dependencies
make build # Build CSS
make dev # Dev mode
make serve # Serve docs
make lint # Run linter
make clean # Remove build artifacts
make help # Show all commands- Discussions — ask questions and share showsites at github.com/rkriad585/mkdocs-void/discussions
- Good first issues — browse
issues labeled
good first issueto start contributing - Translations — see the Translating Void guide
- Sponsor — fund development via GitHub Sponsors
- MkDocs — the static site generator this theme is built for
- Space Grotesk and Space Mono — the typefaces used throughout the theme
- Nothing Technology — for the NothingOS design identity
Developed with ♥ by rkriad585
Make documentation feel app-like — fast, private, distinctive.
GitHub · Docs · Changelog · Discussions
