Skip to content
Back to skills

Mkdocs Style

ASecurity

Install or refresh the shared MkDocs Material style layer (Ink & Indigo on warm paper). Use when setting up or restyling a docs project.

  • 8 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added September 3, 2026
ai-agentspythongogit

Security analysis

A100/100

Scanned September 3, 2026

npx -y skills add edjchapman/claude-code-config --skill mkdocs-style --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Mkdocs Style?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Mkdocs Style
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/edjchapman-mkdocs-style/badge)](https://www.skillsdirectory.com/skills/edjchapman-mkdocs-style)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: mkdocs-style
description: Install or refresh the shared MkDocs Material style layer (Ink & Indigo on warm paper). Use when setting up or restyling a docs project.
argument-hint: "[--css-dest <path>] [--check]"
---

Install or update the shared MkDocs style layer in the current project, then
reconcile the project's `mkdocs.yml` with it.

## Arguments

`$ARGUMENTS`

- `--css-dest <path>` — where `custom.css` lands, relative to the project root.
  Only needed for non-standard layouts; see step 2.
- `--check` — report drift only: dry-run the installer and diff the vendored
  files against the payload. Make no changes.

## How the layer works

The canonical assets live in the claude-code-config repo under `tooling/mkdocs/`:
a partial parent config (`mkdocs.style.yml`: theme, features, palette, fonts,
markdown_extensions, `extra_css`, `extra.generator: false`) and the palette
stylesheet (`custom.css`). A project consumes them via MkDocs native config
inheritance — `INHERIT: mkdocs.style.yml` at the top of its `mkdocs.yml`.

MkDocs merges the child config **onto** the parent: mappings merge per-key
(child wins), but **lists replace wholesale**. So the project must not redefine
`theme.features`, `theme.palette`, `theme.font`, `markdown_extensions`, or
`extra_css` — unless it deliberately owns the whole list (and then `extra_css`
must still include `stylesheets/custom.css`). Per-project branding keys
(`theme.favicon`, `theme.logo`, `theme.icon.logo`) merge safely and stay in the
project.

## Steps

1. Resolve the config repo: `CONFIG_REPO="$(dirname "$(readlink ~/.claude/skills)")"`
   (the skills directory is a symlink into the repo). Run
   `git -C "$CONFIG_REPO" pull --ff-only` first so the payload is current.

2. Determine the css destination if `--css-dest` was not given:

   - Default: `docs/stylesheets/custom.css`.
   - Generated-docs projects (e.g. a `scripts/build-docs-tree.sh` that symlinks
     assets into a git-ignored `docs/`): use the committed source directory that
     is exposed as `stylesheets/` in the docs tree (career-portfolio:
     `mkdocs-theme/stylesheets/custom.css`).

3. Run the installer:
   `"$CONFIG_REPO/scripts/install-mkdocs-style.sh" --target . [--css-dest <path>]`
   (add `--dry-run` under `--check`, then also `diff` the two vendored files
   against the payload and report; stop here in check mode).

4. Reconcile `mkdocs.yml` — the judgment work the script only warns about:

   - Delete keys now owned by the parent: `theme.name`, `theme.features`,
     `theme.palette`, `theme.font`, `theme.icon.repo`, the whole
     `markdown_extensions` block, `extra_css` (unless the project needs extra
     stylesheets — then keep it as a deliberate whole-list override with
     `stylesheets/custom.css` first and a comment saying so), and
     `extra.generator`.
   - Keep: `INHERIT`, site metadata, plugins, nav, `extra.social`/`extra.tags`,
     validation, docs_dir/site_dir, dev_addr, and branding keys
     (`theme.favicon`, `theme.logo`, `theme.icon.logo`).
   - Delete any superseded palette CSS the project carried before.
   - Check logo/favicon contrast: the light header is warm paper (`#faf8f3`) —
     a white or very light logo asset becomes invisible. Prefer
     `theme.icon.logo` with a Material icon (inline SVG, `currentColor`, adapts
     to both schemes) over a fixed-colour image.
   - If the project's content might use `--8<--` literally, grep for it —
     `pymdownx.snippets` in the shared layer activates include syntax.

5. Verify:
   - Strict build via the project's own entry point (`make check`, `make ci`,
     `make docs-build`, or `uv run mkdocs build --strict`).
   - Spot-check the merged config:
     `uv run python -c "from mkdocs.config import load_config; c = load_config(); print(c['theme'].name, len(c['markdown_extensions']))"`
   - Show `git diff --stat` and summarise what changed visually (palette,
     features gained/lost) so the user can sign off.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…