TL;DR: Single-file theme system using Geist Mono font, golden ratio typography, unified blue accent color, and an interactive Three.js torus knot logo. Theme lives in custom.scss, logo config in logo.inline.ts.

Singular 3 Theme (v1)


Files

Your Theme (edit this)

FileContents
quartz/styles/custom.scssEverything - fonts, colors, typography, layout

Quartz Core (don’t edit)

FilePurpose
quartz/styles/base.scssBase element styles
quartz/styles/variables.scssBreakpoints, grid
quartz/styles/callouts.scssCallout styling

Output

FileNote
public/index.cssCompiled CSS (auto-generated)

Other

FilePurpose
content/guides/design-system-v1.mdThis documentation
quartz/static/fonts/Geist Mono font files
quartz/components/scripts/logo.inline.tsThree.js logo configuration

Workflow

Edit theme: Open quartz/styles/custom.scss, make changes, rebuild

Rebuild: npx quartz build --serve

Backup: Copy design-system.md to design-system-v2.md before major changes


custom.scss Structure

1. FONTS           - @font-face declarations
2. THEME COLORS    - Light/dark CSS variables
3. TYPOGRAPHY      - Golden ratio scale, headings
4. LAYOUT          - Components, links, tables
5. RESPONSIVE      - Mobile/tablet/print overrides

Layout

BreakpointWidthSidebarCenter
Mobile< 800pxHidden100%
Tablet800-1200px220px100%
Desktop> 1200px320pxAuto

Content Width

ElementValue
articlemin(100%, 90vw)
pmin(100%, 85vw)

Tables

Default: Fit container, text wraps, no horizontal scroll

Wide tables: Wrap in <div class="table-scroll">...</div> for scroll


Typography

Base: 20px (golden ratio scale, φ = 1.618)

ElementSizeWeight
Body20px400
H152.4px700
H241.2px600
H332.4px600
H425.4px500
H5/H620px500/400
Code0.9em400

Font: Geist Mono throughout

Mobile: 17px base, scaled headings


Theme Colors

Edit these in custom.scss under :root (light) and :root[saved-theme="dark"]

Core Palette

Light Mode

VariableColorValue
--light#FFFFFF
--lightgray#E8E8E8
--gray#8E8E8E
--darkgray#4A4A4A
--dark#1A1A1A
--secondary#1D6BBE
--tertiary#2D8CFF

Dark Mode

VariableColorValue
--light#1D1F21
--lightgray#373B41
--gray#707880
--darkgray#C5C8C6
--dark#E0E0E0
--secondary#5DA5DA
--tertiary#7CB9E8

Accent Color Usage

Single unified blue accent (--secondary / --tertiary) used throughout:

ElementVariable
Links--secondary
Link hover--tertiary
TOC active--secondary
Backlinks--secondary
Tags--secondary
Blockquote border--secondary
Graph focused node--secondary
Icon active--secondary
Code values--secondary

Semantic Colors

VariableLightDarkUsage
--color-red#e93147#fb464cErrors
--color-orange#ec7500#e9973fWarnings
--color-yellow#e0ac00#e0de71Caution
--color-green#08b94e#44cf6eSuccess
--color-cyan#00bfbc#53dfddInfo
--color-blue#086ddd#027affLinks
--color-pink#d53984#fa99cdHighlight

Code Syntax

VariableLightDark
--code-keyword#d53984#fa99cd
--code-string#08b94e#44cf6e
--code-function#e0ac00#e0de71
--code-property#00bfbc#53dfdd
--code-valuevar(--secondary)var(--secondary)

Element Showcase

Typography

Heading 1

Heading 2

Heading 3

Heading 4

Regular paragraph with bold, italic, and inline code.

Internal: Home Page External: GitHub Tags: design theme

Lists

  • Unordered item
    • Nested item
  1. Ordered item
  2. Second item

Code

function fibonacci(n) {
  const phi = (1 + Math.sqrt(5)) / 2;
  return Math.round(Math.pow(phi, n) / Math.sqrt(5));
}

Callouts

Note

Info callout

Tip

Helpful suggestion

Warning

Caution message

Table

ElementFile
Everythingcustom.scss

Three.js Logo

The site uses an interactive 3D torus knot logo built with Three.js.

Configuration

Edit quartz/components/scripts/logo.inline.ts:

const LOGO_CONFIG = {
  size: 69,           // Logo size in pixels
  shader: "obsidian", // Material preset
  shape: "classic",   // Knot shape
  radius: 0.45,       // Knot radius
  tube: 0.19,         // Tube thickness
  rotationSpeed: 1,   // Base rotation speed
  showSettings: true  // Show settings panel (gear icon)
}

Features

  • Mouse tracking: Logo rotation follows cursor position
  • Interactive: Settings panel (gear icon, bottom-right) for live customization
  • Materials: chrome, obsidian, gold, holographic, neon, glass, copper, emerald, midnight, lava, silver, plasma
  • Shapes: classic, trefoil, complex, twisted, star, spiral

Disabling Settings Panel

For production, set showSettings: false to hide the gear icon.