Mkdocs style
Install or refresh the shared MkDocs Material style layer (Ink & Indigo on warm paper). Use when setting up or restyling a docs project.From its SKILL.md
npx -y skills add edjchapman/claude-code-config --skill mkdocs-styleAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 8 stars8 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
3.9 KB, as published. Nobody here has run it
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>— wherecustom.csslands, 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
-
Resolve the config repo:
CONFIG_REPO="$(dirname "$(readlink ~/.claude/skills)")"(the skills directory is a symlink into the repo). Rungit -C "$CONFIG_REPO" pull --ff-onlyfirst so the payload is current. -
Determine the css destination if
--css-destwas not given:- Default:
docs/stylesheets/custom.css. - Generated-docs projects (e.g. a
scripts/build-docs-tree.shthat symlinks assets into a git-ignoreddocs/): use the committed source directory that is exposed asstylesheets/in the docs tree (career-portfolio:mkdocs-theme/stylesheets/custom.css).
- Default:
-
Run the installer:
"$CONFIG_REPO/scripts/install-mkdocs-style.sh" --target . [--css-dest <path>](add--dry-rununder--check, then alsodiffthe two vendored files against the payload and report; stop here in check mode). -
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 wholemarkdown_extensionsblock,extra_css(unless the project needs extra stylesheets — then keep it as a deliberate whole-list override withstylesheets/custom.cssfirst and a comment saying so), andextra.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. Prefertheme.icon.logowith 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.snippetsin the shared layer activates include syntax.
- Delete keys now owned by the parent:
-
Verify:
- Strict build via the project's own entry point (
make check,make ci,make docs-build, oruv 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 --statand summarise what changed visually (palette, features gained/lost) so the user can sign off.
- Strict build via the project's own entry point (