What is Material for MkDocs?
Material for MkDocs is a popular, customizable theme for building modern, responsive, and visually appealing documentation websites using MkDocs. MkDocs is a static site generator designed for creating project documentation with Markdown files. Material for MkDocs enhances this experience by providing an opinionated design inspired by Google's Material Design principles. (ChatGPT)
Sources
I honestly don't remember where most of this stuff came from. Lots from the official documentation (linked above), some from James Willett and a lot of back and forth with ChatGPT.
docker-compose.yml
version: '3.8'
services:
mkdocs:
build:
context: .
dockerfile: Dockerfile
container_name: mkdocs
ports:
- "8005:8000"
volumes:
- /volume1/docker/mkdocs:/docs:rw
stdin_open: true
tty: true
#command: /usr/local/bin/mkdocs serve --reload -a 0.0.0.0:8000
Dockerfile
FROM squidfunk/mkdocs-material
RUN pip install --upgrade \
mkdocs \
mkdocs-material \
mkdocs-exclude \
mkdocs-material-extensions \
mkdocs-minify-plugin \
mkdocs-git-authors-plugin \
mkdocs-git-committers-plugin \
mkdocs-git-revision-date-localized-plugin \
"mkdocs-material[imaging]" \
pillow \
cairosvg
mkdocs.yml
site_name: steili.com
site_url: https://steili.com
site_description: Musings, Findings and Tech
site_author: Brandon
plugins:
- privacy
- search
- social:
cards_layout: default/invert
cards_layout_options:
background_color: "#2E2E2E" # Dark gray background
color: "#FFFFFF" # White text
font_family: Atkinson Hyperlegible
extra_javascript:
- javascripts/extra.js
extra_css:
- extra.css
# - css/logo-switch.css
- https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/css/all.min.css
theme:
name: material
custom_dir: docs/custom_theme
favicon: assets/favicon.ico
features:
# Navigation
- navigation.instant
- navigation.instant.progress
- navigation.tracking
- navigation.path
- navigation.prune
- navigation.footer
# Copy Code Blocks
- content.code.copy
- content.code.select
#search
- search.suggest
# Table of Contents
- toc.follow
# Search
- search.suggest
- search.highlight
icon:
# Custom repo icon https://squidfunk.github.io/mkdocs-material/setup/adding-a-git-repository/#repository-icon
repo: fontawesome/brands/github
copyright: Copyright © 2025 steili.com
logo: assets/logo-dark.svg
font:
text: Atkinson Hyperlegible
code: Roboto Mono
palette:
# Palette toggle for automatic mode
- media: "(prefers-color-scheme)"
toggle:
icon: material/brightness-auto
name: Switch to light mode
# Palette toggle for light mode
- media: "(prefers-color-scheme: light)"
scheme: default
primary: white
toggle:
icon: material/brightness-7
name: Switch to dark mode
# Palette toggle for dark mode
- media: "(prefers-color-scheme: dark)"
scheme: slate
primary: blue grey
accent: deep orange
toggle:
icon: material/brightness-4
name: Switch to system preference
extra:
social:
- icon: fontawesome/solid/file-lines-regular # Use FontAwesome's class for the "file-alt" icon
link: https://drive.google.com/file/d/1baUHBdyPTTu2d0v2REC0MryzZuo1UpTa/view # Point to your resume
- icon: fontawesome/brands/linkedin
link: https://linkedin.com/in/brandonsteili
- icon: fontawesome/brands/bluesky
link: https://bsky.app/profile/brandonsteili.bsky.social
# consent:
# title: Cookie consent
# description: >-
# We use cookies to recognize your repeated visits and preferences, as well
# as to measure the effectiveness of our documentation and whether users
# find what they're searching for. With your consent, you're helping us to
# make our documentation better.
markdown_extensions:
- abbr
- admonition
- pymdownx.arithmatex:
generic: true
- attr_list
- md_in_html
- pymdownx.blocks.caption
- pymdownx.emoji:
emoji_index: !!python/name:material.extensions.emoji.twemoji
emoji_generator: !!python/name:material.extensions.emoji.to_svg
- pymdownx.superfences
- pymdownx.highlight:
anchor_linenums: true
line_spans: __span
pygments_lang_class: true
- pymdownx.inlinehilite
- pymdownx.snippets
- pymdownx.tabbed:
alternate_style: true
- pymdownx.details
- pymdownx.superfences:
custom_fences:
- name: mermaid
class: mermaid
format: !!python/name:pymdownx.superfences.fence_code_format