2026-06-10 11:01:06 +02:00
2026-06-10 11:01:06 +02:00
2026-05-19 07:56:55 +02:00
2026-06-10 11:01:06 +02:00
2026-05-19 07:56:55 +02:00

Roux

A slow-publishing fashion journal — one hundred photographs at a time.
Editorial, couture, beauty and backstage plates.

Live: roux.pivoine.art


Stack

Layer Tool
Static site generator Hugo Extended
CSS Tailwind CSS v4
JavaScript Vanilla (no framework)
Package manager pnpm
Server nginx (Docker)

Development

pnpm install
pnpm dev          # Tailwind watch + Hugo dev server (http://localhost:1313)

Build

pnpm build        # compile CSS → hugo --minify → public/

The compiled CSS at static/css/main.css is a build artefact and gitignored. Always run pnpm build:css (or pnpm build) before committing changes that affect Tailwind output.

Content

Posts live in content/posts/<slug>/ as Hugo page bundles. Each bundle contains:

  • index.md — frontmatter with plate, title, description, categories, tags, issues, optional featured: true
  • <slug>.png — the plate image (used for thumbnails, lightbox, og:image)

Issues are defined in content/issues/<id>/_index.md.

Importing posts

Content is sourced from ~/projects/ginger/posts.csv and matching images in ~/projects/ginger/images/final/selected/:

python3 scripts/import-posts.py

This creates or updates page bundles, assigns plate numbers (sorted alphabetically by filename for stability), normalises descriptions, and copies images.

Design tokens

All colours, fonts, and spacing are defined in assets/css/main.css inside @theme {} and mirrored as CSS custom properties in :root. Edit there — not in a Tailwind config file (v4 has none).

Key tokens: --color-paper --color-ink --color-roux --font-display --font-serif --font-sans --pad --gap

Deployment

The repo includes nginx.conf and a Dockerfile for containerised deployment. Build the image and serve public/ via nginx. Analytics (Umami) are injected only when HUGO_ENVIRONMENT=production.

License

All editorial content, photographs, and design © Roux MMXXVI. All rights reserved.
Contents are explicitly excluded from AI/ML training use without written consent.

S
Description
Roux is a slow-publishing fashion journal — one hundred photographs at a time. Editorial, couture, beauty and backstage plates.
https://roux.pivoine.art
Readme 1.3 GiB
Languages
HTML 42.2%
JavaScript 41.9%
CSS 12.7%
Python 2.4%
Dockerfile 0.8%