Token-driven design system for foreveryone.berlin, an open, inclusive community space in Berlin. Design tokens, generated CSS, and a Next.js prototype that pulls it all together.
Live prototype: design.foreveryone.berlin
- Tokens: W3C DTCG JSON (
tokens/*.json) with$value,$type,$description. - Build: Node script
scripts/build-css.jsgeneratescss/custom-properties.css. - CSS: Authored layers in
css/*.css(variables only, no raw values). - Prototype: Next.js 15 + TypeScript (App Router) in
prototype/. - Hosting: Vercel at
design.foreveryone.berlin(legacyfe-design-system.vercel.app301-redirects there). - Production target: WordPress + Elementor Pro on
foreveryone.berlin(global colors, global fonts, custom CSS). - CI: GitHub Actions for token build + test + prototype build, and auto-release on
v*.*.*tag.
# Build CSS custom properties from tokens
node scripts/build-css.js
# Run the prototype locally
cd prototype && npm install && npm run dev
# → http://localhost:3000Root package.json script aliases: npm run build, npm test, npm run prototype:dev, npm run prototype:build, npm run prototype:lint.
- Token values live in
tokens/*.json(W3C DTCG shape:$value,$type,$description). scripts/build-css.jsreadstokens/index.jsonimports.- The script generates
css/custom-properties.css(the:rootblock). Do not hand-edit it. - Authored layers in
css/*.cssconsume variables viavar(--…). - The marketing site and the Next.js prototype both read from the same generated file.
scripts/build-css.test.js validates the DTCG shape and smoke-checks the generated CSS.
foreveryone-design-system/
├── tokens/ # Source-of-truth token JSON (DTCG)
├── css/ # Generated + authored CSS
├── scripts/ # Build, test, and PR helpers
├── prototype/ # Next.js preview app
├── elementor/ # Global colors / fonts / custom CSS for the marketing site
├── figma/ # Tokens Studio sync notes
├── docs/ # Guides, ADRs, agent contracts
│ ├── AGENTS.md # ↳ full docs index + domain rules
│ └── skills/ # ↳ repeatable workflows (tokens, releases)
├── AGENTS.md # Repo-root mirror of docs/AGENTS.md
├── CLAUDE.md # Claude Code session entry
└── CHANGELOG.md
- Figma + Tokens Studio:
figma/sync-guide.mdandfigma/token-export-instructions.md. - Marketing site: Global colors
elementor/global-colors.md, global fontselementor/global-fonts.md, CSS setupelementor/custom-css-setup.md. Reference docs:docs/official-references.md. - Visual styles (icons, blobs, photography, category icon set):
docs/visual-styles.md. - Logo usage (X measurement, safe zone, min sizes, white-on-orange exception):
docs/logo-usage.md. - Color audit (2026 brand-guide alignment + approved bg ⇄ text combinations):
docs/color-audit-2026.md.
mainis the default branch (protected, release-ready).developis the integration branch.- Branch from
developusingfeature/*,fix/*,docs/*,chore/*. - Use Conventional Commits.
- PRs use
.github/PULL_REQUEST_TEMPLATE.md. - Solo flow:
bash scripts/pr-and-merge.shpushes the current branch, opens a PR, and merges it. - Tag
mainwithvX.Y.Zat release; seedocs/skills/release.md.
- Canonical context:
docs/AGENTS.md(full documentation index + domain rules). - Repo-root mirror:
AGENTS.mdfor tools that only auto-load root-levelAGENTS.md. - Cursor:
.cursor/AGENTS.md+ path-scoped rules in.cursor/rules/. - Claude Code:
CLAUDE.md+ path-scoped rules in.claude/rules/. - Agent contract + runtime policy:
docs/agents/. - Repeatable workflows:
docs/skills/.
See docs/contributing.md for workflow, commit conventions, and PR expectations.
This design system is a community effort. Built with care by the people who make ForEveryone Berlin what it is: a warm, open space where everyone belongs.
With thanks to Didem, Pedram, Rie, and Angelina.
Dual-licensed in a single LICENSE file:
- Software (
scripts/,prototype/): MIT. - Design system (
tokens/,css/,figma/,elementor/,docs/, agent docs,.claude/and.cursor/rules): CC BY-NC 4.0 (summary).
Full history in CHANGELOG.md. GitHub Releases for each tag mirror the changelog entry.

