[ANN] MaterialDocs.jl - A Documenter.jl writer plugin that generates Material Design 3 documentation sites

Hello! MaterialDocs.jl is a Documenter.jl writer for folks who want a modern docs site, but don’t want to change how their docs are built or deployed. Simply add it to your docs environment, replace Documenter.HTML(...) in docs/make.jl with Material3(...), and it just works:

using Documenter, MaterialDocs, MyPackage

makedocs(
    sitename = "MyPackage.jl",
    modules  = [MyPackage],
    format   = Material3(theme = :ocean_depth, dark_mode = :toggle),
)

deploydocs(repo = "github.com/you/MyPackage.jl")

Check out the docs here to see what a MaterialDocs.jl docs site looks like.

As the name suggests, it leverages Material Design 3 principles, Google’s open source design system. Every color on the site (all 34 MD3 roles in light and dark, as well as the syntax highlighting) is generated from one seed color, placed at tones chosen for WCAG AA contrast. It comes with twelve built-in themes, but building your own from a single seed color is quick and easy with MaterialDocs.editor(), which rebuilds your docs, serves them locally and injects an editor panel that you can use to tweak the appearance of your pages. From there, just save the theme to docs/.materialdocs.toml where it will be picked up automatically, or use ThemeConfig() with your preferred options.

Please feel free to open issues/PRs or just provide feedback. Also note that the amazing DocumenterVitepress.jl package offers a lot of features that MaterialDocs.jl currently does not - the primary advantage to MaterialDocs.jl is that it is more of a drop-in replacement. It keeps every Documenter.HTML keyword argument, leaves deploydocs untouched, and there’s no Node.js in the loop.

6 Likes