Juicer
English

Configuration

site.toml keys juicergallery reads, per-page gallery frontmatter, and the [juicergallery] palette table.

juicergallery reads its configuration from three places:

  • A small set of top-level site keys (the same ones every juicer theme uses, plus a few gallery-specific ones for the topbar / footer).
  • A namespaced [juicergallery] table for theme-specific palette + sizing overrides.
  • Per-section frontmatter — galleries are top-level sections whose _index.md carries cover, summary, and photos: lists.

Quick example

title    = "Hella Studio"
tagline  = "Photography, Reykjavík"
author   = "Hella Carlsen"
baseURL  = "https://hellastudio.example"
theme    = "juicergallery"

[images]
enabled = true
widths  = [480, 960, 1600]
formats = ["webp", "original"]
quality = 78

[[topnav]]
label = "Work"
url   = "/"

[[topnav]]
label = "About"
url   = "/about/"

[contact]
email    = "studio@hellastudio.example"
location = "Reykjavík, Iceland"

A minimal gallery (content/iceland-2024/_index.md):

---
title: Iceland 2024
date: 2024-09-15
cover: /img/iceland/cover.jpg
summary: A two-week loop around the ring road.
photos:
  - src: /img/iceland/skogafoss.jpg
    alt: Skógafoss at golden hour
    caption: Skógafoss, day one
  - /img/iceland/diamond-beach.jpg
---

Optional prose body — context, equipment notes, trip narrative.

And a root index that opts into the home cover-grid (content/_index.md):

---
title: Hella Studio
layout: home
---

Optional intro paragraph shown above the cover grid.

That’s enough to render the home grid, each gallery detail, and a static prose page or two.

Top-level keys

Standard juicer keys plus a few gallery-specific ones.

KeyTypeDefaultNotes
titleStringrequiredBrand text in topbar + footer; <title> element.
taglineStringunsetItalic subtitle next to the brand in the topbar; appended to <title> when the page title equals the site title.
descriptionStringunsetDefault <meta name="description"> for pages that don’t set their own summary.
authorStringunsetFooter name + copyright line. Falls back to title.
baseURLStringrequiredStandard juicer key.
themeStringrequiredSet to "juicergallery".
faviconStringunsetPath to a favicon.
hideJuicerCreditBooleanfalseSet true to remove the “Built with juicer” line in the footer.
topnav[[topnav]]unsetArray of {label, url} entries shown in the topbar.
contactTableunset{email, location} — shown in the footer brand block.
links[[links]]unsetArray of {label, url} entries shown in the footer.
[images]TableunsetEnables the image-variants pipeline. See the reference for the full surface — required for responsive <picture> markup.
KeyTypeWhat
titleStringRequired — the gallery’s display name.
dateStringUsed for sort order on the home cover-grid (newest first).
coverStringPath to the cover image. Required for the gallery to appear on the home grid.
coverAltStringAlt text for the cover image. Falls back to the title.
summaryStringShort description shown on the cover card and as <meta name="description">.
photosListList of photos. Each entry is either a string (path) or a {src, alt, caption} map.

[juicergallery] palette + typography overrides

[juicergallery]
brand        = "#1f2937"   # ink near-black# ink near-black
brandStrong  = "#0b1220"
accent       = "#b45309"   # amber hover accent# amber hover accent
fontSans     = "'Inter', system-ui, sans-serif"
fontSerif    = "'Cormorant Garamond', Georgia, serif"
gutter       = "0.6rem"    # tighter gutter → denser masonry# tighter gutter → denser masonry

# Dark-mode overrides (applied under [data-theme="dark"])# Dark-mode overrides (applied under [data-theme="dark"])
brandDark        = "#f3f1ec"
brandStrongDark  = "#ffffff"
accentDark       = "#f59e0b"
TokenDefaultWhat
brand#1f2937Primary ink color.
brandStrong#0b1220Hover / emphasis ink.
brandSoft#e5e7ebSoft surface tint.
accent#b45309Hover / focus accent (amber).
fontSanssystem stackBody + UI font.
fontSerifsystem serifHeadings + brand.
gutter1remMasonry column gap. Drop to 0.5rem for a denser feel.

See Reference → Theming for the shared theming model — the [<theme>] table contract, the customCSS chain, file-replacement override pattern.

Search

Esc
to navigate to open Esc to close