Explore Theme logo Explore Theme

A minimal, text-heavy theme for Hugo

  • Posts
  • About
  • Contact
  1. Home
  2. All Posts
  3. Customizing Your Theme

Customizing Your Theme

Aug 17, 2025 Theme Guide , Getting Started Rain Doctor

One of the quiet pleasures of setting up a new site is choosing how it looks. Not the content — that comes later, and is a different kind of pleasure — but the typeface, the colors, the width of the column. The small decisions that determine whether a page feels like a well-set book or a photocopied handout.

“The details are not the details. They make the design.”

– Charles Eames

Explore gives you a few deliberate knobs to turn. This guide covers each one.

Font Presets

The theme ships with two self-hosted font presets. No external requests are made — all font files live in the theme’s static/fonts/ directory.

Inter (Default)

Role Typeface Weights
Sans-serif Inter 400, 700
Monospace JetBrains Mono 400

Inter is a clean, neutral typeface designed for screens. If you have no strong preference, this is a solid default.

Google Sans

Role Typeface Weights
Sans-serif Google Sans Flex 400, 700
Monospace Google Sans Code 400

Google Sans Flex is a friendlier, more geometric face. It gives the site a slightly warmer, more modern feel.

To switch presets, set a single line in your config.toml:

[params.style]
  fontPreset = "google-sans"

That’s it. The entire site — body text, headings, code blocks — updates to use the new preset’s families.

Color Palettes

Explore includes four named color palettes. Each palette defines its own primary and accent colors for both light and dark modes, so contrast is maintained regardless of the user’s preference.

Palette Light Primary Light Accent Feel
default #1a73e8 #1e8e3e Familiar blue and green. Dependable.
ocean #0077b6 #00838f Deep teal tones. Calm and professional.
forest #2d6a4f #52b788 Rich greens. Warm and organic.
slate #475569 #64748b Muted grays. Understated, editorial.

To apply a palette:

[params.style]
  palette = "forest"

When a named palette is active, it overrides any primary or accent values you may have set. The palette owns the colors.

Custom Colors

If none of the built-in palettes suit you, set palette = "default" and define your own primary and accent colors:

[params.style]
  palette = "default"
  primary = "#6C3DBF"
  accent  = "#5FA8A3"

These values are injected as CSS custom properties (--color-primary and --color-accent) and propagate throughout the theme — links, buttons, hover states, the reading progress bar, and more.

A few things to keep in mind when choosing custom colors:

  • Contrast: Ensure your primary color has at least a 4.5:1 contrast ratio against the background for WCAG AA compliance.
  • Dark mode: Custom colors are used in both light and dark modes. The theme brightens them slightly in dark mode, but very dark primaries may not look right. Test in both modes.
  • Accent usage: The accent color is used sparingly — hover states, highlights, a few decorative elements. It doesn’t need to be bold.

Container Width & Typography

Two settings control how wide the content spreads:

[params.style]
  containerMaxWidth = "1280px"
  maxWidthCh = 75
  • containerMaxWidth is the overall page width (header, footer, sidebar grid). Any valid CSS value works: "1280px", "80rem", "90vw".
  • maxWidthCh is the max width of the readable content column, measured in ch units (roughly the width of the character “0”). 75 characters is a comfortable reading measure for most typefaces.

The type scale uses a Minor Third ratio (1.2x), producing a harmonious progression from small labels to large headings. This isn’t configurable — it’s baked into the design tokens — but the fluid spacing system ensures it looks right at any viewport width.

Design Token Architecture

Under the hood, all visual values are expressed as CSS custom properties organized into three tiers:

  1. Primitive tokens — raw values: color scales, spacing values, font stacks, shadow definitions. These are the building blocks and are never used directly in component styles.

  2. Semantic tokens — purpose-based aliases: --color-primary, --color-text, --space-m, --font-body. These are what components reference. In dark mode, semantic tokens are remapped to different primitives.

  3. Component tokens — scoped overrides: --header-bg, --card-border, --callout-info-bg. These let individual components diverge from the semantic defaults without breaking the system.

You don’t need to understand this architecture to use the theme — fontPreset, palette, primary, and accent in your config.toml are enough. But if you ever want to extend or override styles in a custom stylesheet, knowing the token layers makes it straightforward to do so without fighting the cascade.

“Perfection is achieved, not when there is nothing more to add, but when there is nothing left to take away.”

– Antoine de Saint-Exupery

guide style typography features

Table of Contents

  • Font Presets
    • Inter (Default)
    • Google Sans
  • Color Palettes
  • Custom Colors
  • Container Width & Typography
  • Design Token Architecture

Recent Posts

  • Hello World: A Guide to Getting Started Aug 20, 2025
  • Explore Theme Features Aug 19, 2025
  • Markdown & Typography Guide Aug 18, 2025
  • Customizing Your Theme Aug 17, 2025
  • Interactive Features Aug 16, 2025

Categories

  • Features2
  • Getting Started2
  • Theme Guide2
  • Demo Content1
  • Hugo1
  • Layouts1

Tags

  • Demo
  • Features
  • Documentation
  • Guide
  • Hugo
  • Style
  • Typography
  • Markdown
  • Sidebar
  • Welcome
  • Widgets
← Interactive Features Markdown & Typography Guide →

Related Posts

  • Markdown & Typography Guide Aug 18, 2025
  • Hello World: A Guide to Getting Started Aug 20, 2025
  • Explore Theme Features Aug 19, 2025
  • Interactive Features Aug 16, 2025
Powered by Hugo & Explore Theme.