customization

How Salon is put together

salon

Everything so far has been about config_schema. This post is for the rest: what Salon's templates actually do, and a couple of things you can override from your own stylesheet.

Templates

  • default — a plain page: title, then the markdown body.
  • post — centered title, date, tags, optional cover image.
  • blog — featured lead post plus a card grid. Used for home (with a limit) and the full /blog archive.
  • archives — every post grouped by year and month.
  • search / error — themed search form and 404/500 pages.

Frontmatter that shapes the magazine look

Posts can set cover for the featured hero and card thumbnails, plus taxonomy.tag (or tags) for the pill badges. The first post in the collection becomes the large featured lead; the rest fill the grid.

This demo vendors a few Unsplash photos under themes/salon/static/demo/ (downloaded, not hotlinked) with photographer credit lines at the foot of each post — see that folder's CREDITS.md.

CSS variables

Salon's look is mostly a few custom properties on :root:

  • --font / display stack — Source Sans 3 for body, Playfair Display for titles
  • --accent / --bg / --bg-alt / --code-bg — from the active color_scheme (light and dark variants)
  • --text, --muted, --border — light palette; dark mode swaps via data-theme (and a prefers-color-scheme fallback)

Override any of these from a site stylesheet loaded after the theme to re-skin without forking the package.


Cover photo by Aaron Burden on Unsplash.