design/
design/
This directory is the design workshop for The Kindness Flywheel. It contains:
- The brand philosophy (
PHILOSOPHY.md) - The canonical design tokens (
tokens.yml) - The logo source code and master SVG files (
logo/) - The exploration PDFs documenting design decisions (
logo/exploration/)
This directory is not built by Jekyll. It’s the workshop. Built outputs are mirrored to:
_data/design.yml— Jekyll-readable token mirrorassets/css/_design-tokens.scss— CSS variables for stylesheetsassets/images/brand/— deployed logo files (SVG + PNG)
Quick start
To regenerate everything from source:
cd design
./build.sh
This script:
- Reads
tokens.yml - Writes
_data/design.ymlandassets/css/_design-tokens.scss - Runs
logo/build_svg.py→ writes masters tologo/masters/ - Runs
logo/build_raster.py→ writes PNGs/PDFs tologo/exports/ - Copies the right subset of files into
assets/images/brand/
The script is idempotent. Run it after any token or logo change.
Editing the logo
The spiral mark is generated from logo/spiral.py. The single configuration that defines the production mark is the PRODUCTION_SPIRAL constant near the bottom of that file.
To change the mark:
- Edit
PRODUCTION_SPIRALinlogo/spiral.py - Optionally edit
tokens.ymlif colors are changing - Run
./build.sh - Visually verify by opening
logo/masters/mark.svgandlogo/exports/og-image.png - Commit all changes together (source + outputs) so the repo is always consistent
Always change the source. Never hand-edit the generated SVGs in logo/masters/ — they will be overwritten.
Exploring alternatives
logo/explore_spiral.py generates a multi-page PDF showing six candidate expressions of the production spiral. These are the legitimate alternatives — naked (no terminus dot), monochrome, inverted, open-tail, heavy-stroke.
python logo/explore_spiral.py logo/exploration/spiral_exploration.pdf
To propose a different production variant, modify PRODUCTION_SPIRAL and re-run the exploration to see how it lives in the family.
Why this structure?
design/ is the source. _data/, assets/, and any built artifacts are derivative. If design/ and the derivatives ever disagree, design/ wins and the build script reconciles them.
The spiral is code. Logos drawn in Illustrator drift. Logos generated from a parameter set don’t. Every spiral on every surface comes from the same six numbers — growth rate, revolutions, phase, stroke start, stroke end factor, dot factor. Change one, regenerate everything, ship.
SVG is the master format. Vector, resolution-independent, version-control-friendly, browser-native. PNGs and PDFs are derivatives generated from the SVG.
Tokens are the contract. Templates, stylesheets, and Python all read from the same tokens.yml (via mirrors). Changing a color in one place changes it everywhere.
File map
design/
├── README.md ← this file
├── PHILOSOPHY.md ← Considered Warmth — the brand compass
├── tokens.yml ← canonical design tokens (colors, type, spacing)
├── build.sh ← regenerate all derived outputs
└── logo/
├── spiral.py ← spiral geometry library (single source of truth)
├── build_svg.py ← SVG master generator
├── build_raster.py ← PNG and PDF export generator
├── explore_spiral.py ← multi-candidate exploration PDF
├── masters/ ← generated SVG masters (committed)
│ ├── mark.svg
│ ├── mark-dark.svg
│ ├── favicon.svg
│ ├── lockup-horizontal.svg
│ ├── lockup-horizontal-dark.svg
│ ├── lockup-stacked.svg
│ ├── lockup-stacked-dark.svg
│ ├── wordmark.svg
│ └── wordmark-dark.svg
├── exports/ ← generated PNG and PDF (committed)
│ ├── mark-{16,32,64,256,512,1024}.png
│ ├── mark-dark-{256,512,1024}.png
│ ├── lockup-{horizontal,stacked}-{600,1200}.png
│ ├── lockup-{horizontal,stacked}.pdf
│ ├── apple-touch-icon.png
│ ├── og-image.pdf
│ └── og-image.png
└── exploration/ ← decision-record PDFs (committed)
└── spiral_exploration.pdf
License
All design assets are CC-BY 4.0. Use them, build on them, just credit the publication.