Quartz is an open-source Jekyll theme for blogs that packages a minimal design with built-in support for math rendering, comments, analytics, and archive pages. It takes standard Jekyll content — posts, pages, and YAML data files — and outputs a static blog styled with Sass, requiring no JavaScript framework. The theme is published by vfvong under the MIT License and is distributed both as a Ruby gem (jekyll-theme-quartz) and through the jekyll-remote-theme plugin for GitHub Pages.
What makes Quartz stand out?
- Light and dark mode — Automatically follows the visitor's operating system preference using the CSS media query
prefers-color-scheme; no manual toggle needed. - MathJax support — Render LaTeX math on any page by setting
math: truein that page's front matter; MathJax is disabled by default to keep pages lightweight. - Disqus comments — Enable by adding your Disqus shortname to
_config.yml; the integration loads the Disqus embed where the layout places it. - Google Analytics 4 — Add a Measurement ID (format
G-XXXXXXXXXX) to_config.ymland the theme injects the GA4 snippet into the site head. - Pure Liquid archive pages — Create archive pages grouped by years, categories, or tags by creating a page with
layout: archiveandtype: years(orcategories/tags) in front matter; no JavaScript or plugins required. - Font Awesome icons — Social links defined in
_data/social.ymlreference Font Awesome icon classes (e.g.fab fa-twitter), so you don't need to bundle custom SVG files. - Easy head customization — Add a
_includes/custom-head.htmlfile to your repository and its contents are automatically merged into the theme's<head>without copying the entire head include. - Sass variable overrides — Change colors and fonts by copying
_sass/quartz/_variables.scssinto your project and editing the variable values, rather than overriding whole stylesheets.
Who should use Quartz?
- Jekyll bloggers who want a minimal, text-focused theme and are comfortable editing YAML data files for navigation and social links.
- Technical writers who need MathJax for equations and a clean layout for code-heavy posts.
- GitHub Pages users who want a free theme installed via
remote_themewith no Gemfile overhead. - Developers building a personal site who want light/dark mode, comments, and analytics pre-integrated without writing those services from scratch.
What can you do with Quartz?
- Publish a personal blog — Configure navigation in
_data/navigation.ymland social links in_data/social.yml, then write posts in Markdown with front matter. - Create category and tag archives — Use the
archivelayout withtypeset tocategoriesortags, and link them from posts viacategories_pathandtags_pathin_config.yml. - Enhance posts with math — Set
math: trueon individual posts to enable MathJax for inline and display equations. - Add engagement and tracking — Plug in Disqus for comments and Google Analytics 4 for visitor metrics by setting two simple keys in
_config.yml.
How does Quartz work?
Quartz is installed like any Jekyll theme: add gem "jekyll-theme-quartz" to your Gemfile, set theme: jekyll-theme-quartz in _config.yml, and run bundle. For GitHub Pages, add the jekyll-remote-theme plugin and set remote_theme: vfvong/jekyll-theme-quartz instead. The theme then reads your posts, front matter, and _data files to generate static pages, applying the configured layout, navigation, and integrations during Jekyll's build step.




