open-design/design-systems
Tom Huang aefba56a3f
feat(skills): open-design-landing rename, kami skills, landing OG (#428)
* feat(skills): open-design-landing rename, kami skills, landing OG

- Rename editorial-collage skills to open-design-landing and -deck; refresh examples and compose script layout
- Add kami-deck and kami-landing skills with HTML examples
- Landing page: og.astro, index wiring, and style tweaks; package.json bump
- Web i18n: German and Russian copy for renamed and new skills
- Daemon test: update skill-asset-rewrite expectations for new paths
- Design systems: README and atelier-zero doc touch-ups
- Cross-skill SKILL.md reference updates

Co-authored-by: Cursor <cursoragent@cursor.com>

* docs(landing-page): document version-slot invariant and deprecation timeline

Address P3 review notes on PR #428:
- Note the `data-github-version` wrapper invariant (version string only)
  near the canonical URL block in `app/page.tsx`.
- Expand the `formatVersion` helper comment in `app/pages/index.astro`
  with concrete `release.name` / `tag_name` example shapes for each
  branch of the regex fallback.
- Tighten the `EditorialCollageDeckInputs` deprecation in
  `skills/open-design-landing-deck/schema.ts` to a specific removal
  version (v0.4.0) and add a "Migrating from editorial-collage-deck"
  section to the skill README.

Generated-By: looper 0.4.0 (runner=fixer, agent=claude-code)

* docs(landing-page, skills): clarify version slot script and rename migrations

- Describe GitHub version slots as driven by the inline enhancement script,
  not React hydration.
- Add editorial-collage → open-design-landing migration notes; fix README
  link copy (Astro static landing app).
- Extend deck README migration table with shared asset path renames.

Co-authored-by: Cursor <cursoragent@cursor.com>

* fix(daemon): alias deprecated editorial-collage skill ids

The PR renames the editorial-collage / editorial-collage-deck skills
to open-design-landing / open-design-landing-deck, but the daemon
persists exact skill_id strings on projects and resolves them via
listSkills().find((s) => s.id === storedId). After the rename, any
project saved against an old id silently composes without the intended
skill prompt because the listing no longer exposes that id.

Add a SKILL_ID_ALIASES map in skills.ts plus a findSkillById() helper
that rewrites deprecated ids to their current canonical form, then
route every server-side lookup (skill detail, example HTML, asset
proxy, system-prompt composer) through it. Cover the alias map, the
resolver, and end-to-end resolution against a temp skills directory
with a regression test.

Generated-By: looper 0.4.0 (runner=fixer, agent=claude-code)

* fix(kami-deck): route host od:slide messages through local go()

The host bridge classifies kami-deck as class-driven because go() toggles
.slide.active, but the visible slide is moved by deck.style.transform
which the bridge cannot drive. Listen for od:slide messages and dispatch
them through the local go() so toolbar next/prev and initialSlideIndex
restore actually shift the deck.

Generated-By: looper 0.4.0 (runner=fixer, agent=claude-code)

* fix(kami-deck): sync deck transform with host-driven .active changes

The previous fix added a local od:slide listener but the host bridge in
apps/web/src/runtime/srcdoc.ts also listens for the same message and
calls setActive() (toggles .slide.active) without driving the deck
transform. Both listeners fired, the bridge re-read the just-toggled
active class, and overshot by one — and the bridge's restoreInitialSlide
path could move .active without a message at all, leaving the deck on
the original transform.

Stop the bridge from double-handling by calling stopImmediatePropagation
in the local listener (registered first because the bridge script is
appended to </body>), and add a MutationObserver that pulls the deck
transform onto whichever slide currently carries .active so the bridge's
direct setActive calls (notably the initial-slide restore) move the deck
too.

Generated-By: looper 0.4.0 (runner=fixer, agent=claude-code)

* fix(i18n): align French content with renamed/new skills

PR #434 (French localization) merged into main with French copy for the
old editorial-collage / editorial-collage-deck skill ids; this branch
renamed those to open-design-landing / open-design-landing-deck and
added kami-deck and kami-landing. Update content.fr.ts to track the
rename and add French copy for the new kami skills so the
LOCALIZED_CONTENT_IDS coverage test passes once main is merged.

Generated-By: looper 0.4.0 (runner=fixer, agent=claude-code)

* fix(open-design-landing-deck): sync deck transform with host-driven .active changes

Apply the same fix that landed in skills/kami-deck/example.html
(commits 96b255b, 8cbca30) to the open-design-landing-deck composer
runtime: the host bridge classifies this deck as class-driven because
go() toggles .slide.active, but the visible slide is moved by
deck.style.transform which the bridge can't drive. Add an od:slide
message listener that calls stopImmediatePropagation() and routes nav
through the local go(), plus a MutationObserver that pulls the deck
transform onto whichever slide carries .active so the bridge's direct
setActive calls (notably restoreInitialSlide) move the deck too.

Regenerates example.html via scripts/compose.ts; the regeneration also
picks up upstream nav-cta and brand-meta CSS additions in the sister
open-design-landing styles.css that the example had drifted from.

Generated-By: looper 0.4.0 (runner=fixer, agent=claude-code)

* docs(open-design-landing): align deploy story with Astro landing app

- Update SKILL contract: apps/landing-page is Astro static; clarify
  nextjs-app output_format as a historical enum label and <out>/nextjs
  as a legacy folder name.
- Replace optional-deploy section with fork + pnpm --filter landing-page build.
- Fix styles.css header and regenerate landing + deck example.html so
  inlined comments match.

Co-authored-by: Cursor <cursoragent@cursor.com>

* fix(deck-runtime): bypass interaction lock for host/observer slide sync

The slide deck runtimes for kami-deck and open-design-landing-deck
gate go() behind a 700ms `lock` so wheel/key/touch input bursts can't
overshoot the transform transition. But applying the same gate to the
host bridge's od:slide messages and the MutationObserver watching
`.slide.active` creates a startup race: go(0) at the end of init sets
lock=true, and any host-driven `.active` change inside that window
(notably restoreInitialSlide) fires the observer, which calls go(i),
which exits at the lock guard — leaving the visible deck on slide 1
while the host counter advances to N.

Split the actual state update into an unthrottled `applySlide(n)`
helper that updates transform, `.active`, dot nav, and the progress
bar. Keep `lock` only on the user-input path through `go()`. Route
the message listener, the MutationObserver, and the initial render
through `applySlide` directly so host-driven sync always reaches the
deck transform regardless of the throttle state.

Generated-By: looper 0.4.0 (runner=fixer, agent=claude-code)

---------

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-04 19:22:46 +08:00
..
agentic update: add 57 DESIGN.md files from awesome-design-skills (#92) 2026-05-01 16:57:25 +08:00
airbnb Add initial project structure with essential files 2026-04-28 12:25:59 +08:00
airtable Add initial project structure with essential files 2026-04-28 12:25:59 +08:00
ant update: add 57 DESIGN.md files from awesome-design-skills (#92) 2026-05-01 16:57:25 +08:00
apple Add initial project structure with essential files 2026-04-28 12:25:59 +08:00
application update: add 57 DESIGN.md files from awesome-design-skills (#92) 2026-05-01 16:57:25 +08:00
arc feat(web): add brand design systems, card thumbnails, and DESIGN.md side-by-side preview (#289) 2026-05-02 23:19:00 +08:00
artistic update: add 57 DESIGN.md files from awesome-design-skills (#92) 2026-05-01 16:57:25 +08:00
atelier-zero feat(skills): open-design-landing rename, kami skills, landing OG (#428) 2026-05-04 19:22:46 +08:00
bento update: add 57 DESIGN.md files from awesome-design-skills (#92) 2026-05-01 16:57:25 +08:00
binance Add initial project structure with essential files 2026-04-28 12:25:59 +08:00
bmw Add initial project structure with essential files 2026-04-28 12:25:59 +08:00
bold update: add 57 DESIGN.md files from awesome-design-skills (#92) 2026-05-01 16:57:25 +08:00
brutalism update: add 57 DESIGN.md files from awesome-design-skills (#92) 2026-05-01 16:57:25 +08:00
bugatti Add initial project structure with essential files 2026-04-28 12:25:59 +08:00
cafe update: add 57 DESIGN.md files from awesome-design-skills (#92) 2026-05-01 16:57:25 +08:00
cal Add initial project structure with essential files 2026-04-28 12:25:59 +08:00
canva feat(web): add brand design systems, card thumbnails, and DESIGN.md side-by-side preview (#289) 2026-05-02 23:19:00 +08:00
claude Add initial project structure with essential files 2026-04-28 12:25:59 +08:00
clay Add initial project structure with essential files 2026-04-28 12:25:59 +08:00
claymorphism update: add 57 DESIGN.md files from awesome-design-skills (#92) 2026-05-01 16:57:25 +08:00
clean update: add 57 DESIGN.md files from awesome-design-skills (#92) 2026-05-01 16:57:25 +08:00
clickhouse Add initial project structure with essential files 2026-04-28 12:25:59 +08:00
cohere Add initial project structure with essential files 2026-04-28 12:25:59 +08:00
coinbase Add initial project structure with essential files 2026-04-28 12:25:59 +08:00
colorful update: add 57 DESIGN.md files from awesome-design-skills (#92) 2026-05-01 16:57:25 +08:00
composio Add initial project structure with essential files 2026-04-28 12:25:59 +08:00
contemporary update: add 57 DESIGN.md files from awesome-design-skills (#92) 2026-05-01 16:57:25 +08:00
corporate update: add 57 DESIGN.md files from awesome-design-skills (#92) 2026-05-01 16:57:25 +08:00
cosmic update: add 57 DESIGN.md files from awesome-design-skills (#92) 2026-05-01 16:57:25 +08:00
creative update: add 57 DESIGN.md files from awesome-design-skills (#92) 2026-05-01 16:57:25 +08:00
cursor Add initial project structure with essential files 2026-04-28 12:25:59 +08:00
dashboard update: add 57 DESIGN.md files from awesome-design-skills (#92) 2026-05-01 16:57:25 +08:00
default Add initial project structure with essential files 2026-04-28 12:25:59 +08:00
discord feat(web): add brand design systems, card thumbnails, and DESIGN.md side-by-side preview (#289) 2026-05-02 23:19:00 +08:00
dithered update: add 57 DESIGN.md files from awesome-design-skills (#92) 2026-05-01 16:57:25 +08:00
doodle update: add 57 DESIGN.md files from awesome-design-skills (#92) 2026-05-01 16:57:25 +08:00
dramatic update: add 57 DESIGN.md files from awesome-design-skills (#92) 2026-05-01 16:57:25 +08:00
duolingo feat(web): add brand design systems, card thumbnails, and DESIGN.md side-by-side preview (#289) 2026-05-02 23:19:00 +08:00
editorial update: add 57 DESIGN.md files from awesome-design-skills (#92) 2026-05-01 16:57:25 +08:00
elegant update: add 57 DESIGN.md files from awesome-design-skills (#92) 2026-05-01 16:57:25 +08:00
elevenlabs Add initial project structure with essential files 2026-04-28 12:25:59 +08:00
energetic update: add 57 DESIGN.md files from awesome-design-skills (#92) 2026-05-01 16:57:25 +08:00
enterprise update: add 57 DESIGN.md files from awesome-design-skills (#92) 2026-05-01 16:57:25 +08:00
expo Add initial project structure with essential files 2026-04-28 12:25:59 +08:00
expressive update: add 57 DESIGN.md files from awesome-design-skills (#92) 2026-05-01 16:57:25 +08:00
fantasy update: add 57 DESIGN.md files from awesome-design-skills (#92) 2026-05-01 16:57:25 +08:00
ferrari Add initial project structure with essential files 2026-04-28 12:25:59 +08:00
figma Add initial project structure with essential files 2026-04-28 12:25:59 +08:00
flat update: add 57 DESIGN.md files from awesome-design-skills (#92) 2026-05-01 16:57:25 +08:00
framer Add initial project structure with essential files 2026-04-28 12:25:59 +08:00
friendly update: add 57 DESIGN.md files from awesome-design-skills (#92) 2026-05-01 16:57:25 +08:00
futuristic update: add 57 DESIGN.md files from awesome-design-skills (#92) 2026-05-01 16:57:25 +08:00
github feat(web): add brand design systems, card thumbnails, and DESIGN.md side-by-side preview (#289) 2026-05-02 23:19:00 +08:00
glassmorphism update: add 57 DESIGN.md files from awesome-design-skills (#92) 2026-05-01 16:57:25 +08:00
gradient update: add 57 DESIGN.md files from awesome-design-skills (#92) 2026-05-01 16:57:25 +08:00
hashicorp Add initial project structure with essential files 2026-04-28 12:25:59 +08:00
huggingface feat(web): add brand design systems, card thumbnails, and DESIGN.md side-by-side preview (#289) 2026-05-02 23:19:00 +08:00
ibm Add initial project structure with essential files 2026-04-28 12:25:59 +08:00
intercom Add initial project structure with essential files 2026-04-28 12:25:59 +08:00
kami feat(design-systems): integrate kami as editorial paper system + deck starter (#226) 2026-05-02 11:00:56 +08:00
kraken Add initial project structure with essential files 2026-04-28 12:25:59 +08:00
lamborghini Add initial project structure with essential files 2026-04-28 12:25:59 +08:00
levels update: add 57 DESIGN.md files from awesome-design-skills (#92) 2026-05-01 16:57:25 +08:00
linear-app Add initial project structure with essential files 2026-04-28 12:25:59 +08:00
lingo update: add 57 DESIGN.md files from awesome-design-skills (#92) 2026-05-01 16:57:25 +08:00
lovable Add initial project structure with essential files 2026-04-28 12:25:59 +08:00
luxury update: add 57 DESIGN.md files from awesome-design-skills (#92) 2026-05-01 16:57:25 +08:00
mastercard Add initial project structure with essential files 2026-04-28 12:25:59 +08:00
material update: add 57 DESIGN.md files from awesome-design-skills (#92) 2026-05-01 16:57:25 +08:00
meta Add initial project structure with essential files 2026-04-28 12:25:59 +08:00
minimal update: add 57 DESIGN.md files from awesome-design-skills (#92) 2026-05-01 16:57:25 +08:00
minimax Add initial project structure with essential files 2026-04-28 12:25:59 +08:00
mintlify Add initial project structure with essential files 2026-04-28 12:25:59 +08:00
miro Add initial project structure with essential files 2026-04-28 12:25:59 +08:00
mistral-ai Add initial project structure with essential files 2026-04-28 12:25:59 +08:00
modern update: add 57 DESIGN.md files from awesome-design-skills (#92) 2026-05-01 16:57:25 +08:00
mongodb Add initial project structure with essential files 2026-04-28 12:25:59 +08:00
mono update: add 57 DESIGN.md files from awesome-design-skills (#92) 2026-05-01 16:57:25 +08:00
neobrutalism update: add 57 DESIGN.md files from awesome-design-skills (#92) 2026-05-01 16:57:25 +08:00
neon update: add 57 DESIGN.md files from awesome-design-skills (#92) 2026-05-01 16:57:25 +08:00
neumorphism update: add 57 DESIGN.md files from awesome-design-skills (#92) 2026-05-01 16:57:25 +08:00
nike Add initial project structure with essential files 2026-04-28 12:25:59 +08:00
notion Add initial project structure with essential files 2026-04-28 12:25:59 +08:00
nvidia Add initial project structure with essential files 2026-04-28 12:25:59 +08:00
ollama Add initial project structure with essential files 2026-04-28 12:25:59 +08:00
openai feat(web): add brand design systems, card thumbnails, and DESIGN.md side-by-side preview (#289) 2026-05-02 23:19:00 +08:00
opencode-ai Add initial project structure with essential files 2026-04-28 12:25:59 +08:00
pacman update: add 57 DESIGN.md files from awesome-design-skills (#92) 2026-05-01 16:57:25 +08:00
paper update: add 57 DESIGN.md files from awesome-design-skills (#92) 2026-05-01 16:57:25 +08:00
perspective update: add 57 DESIGN.md files from awesome-design-skills (#92) 2026-05-01 16:57:25 +08:00
pinterest Add initial project structure with essential files 2026-04-28 12:25:59 +08:00
playstation Add initial project structure with essential files 2026-04-28 12:25:59 +08:00
posthog Add initial project structure with essential files 2026-04-28 12:25:59 +08:00
premium update: add 57 DESIGN.md files from awesome-design-skills (#92) 2026-05-01 16:57:25 +08:00
professional update: add 57 DESIGN.md files from awesome-design-skills (#92) 2026-05-01 16:57:25 +08:00
publication update: add 57 DESIGN.md files from awesome-design-skills (#92) 2026-05-01 16:57:25 +08:00
raycast Add initial project structure with essential files 2026-04-28 12:25:59 +08:00
refined update: add 57 DESIGN.md files from awesome-design-skills (#92) 2026-05-01 16:57:25 +08:00
renault Add initial project structure with essential files 2026-04-28 12:25:59 +08:00
replicate Add initial project structure with essential files 2026-04-28 12:25:59 +08:00
resend Add initial project structure with essential files 2026-04-28 12:25:59 +08:00
retro update: add 57 DESIGN.md files from awesome-design-skills (#92) 2026-05-01 16:57:25 +08:00
revolut Add initial project structure with essential files 2026-04-28 12:25:59 +08:00
runwayml Add initial project structure with essential files 2026-04-28 12:25:59 +08:00
sanity Add initial project structure with essential files 2026-04-28 12:25:59 +08:00
sentry Add initial project structure with essential files 2026-04-28 12:25:59 +08:00
shadcn update: add 57 DESIGN.md files from awesome-design-skills (#92) 2026-05-01 16:57:25 +08:00
shopify Add initial project structure with essential files 2026-04-28 12:25:59 +08:00
simple update: add 57 DESIGN.md files from awesome-design-skills (#92) 2026-05-01 16:57:25 +08:00
skeumorphism update: add 57 DESIGN.md files from awesome-design-skills (#92) 2026-05-01 16:57:25 +08:00
sleek update: add 57 DESIGN.md files from awesome-design-skills (#92) 2026-05-01 16:57:25 +08:00
spacex Add initial project structure with essential files 2026-04-28 12:25:59 +08:00
spacious update: add 57 DESIGN.md files from awesome-design-skills (#92) 2026-05-01 16:57:25 +08:00
spotify Add initial project structure with essential files 2026-04-28 12:25:59 +08:00
starbucks Add initial project structure with essential files 2026-04-28 12:25:59 +08:00
storytelling update: add 57 DESIGN.md files from awesome-design-skills (#92) 2026-05-01 16:57:25 +08:00
stripe Add initial project structure with essential files 2026-04-28 12:25:59 +08:00
supabase Add initial project structure with essential files 2026-04-28 12:25:59 +08:00
superhuman Add initial project structure with essential files 2026-04-28 12:25:59 +08:00
tesla Add initial project structure with essential files 2026-04-28 12:25:59 +08:00
tetris update: add 57 DESIGN.md files from awesome-design-skills (#92) 2026-05-01 16:57:25 +08:00
theverge Add initial project structure with essential files 2026-04-28 12:25:59 +08:00
together-ai Add initial project structure with essential files 2026-04-28 12:25:59 +08:00
uber Add initial project structure with essential files 2026-04-28 12:25:59 +08:00
vercel Add initial project structure with essential files 2026-04-28 12:25:59 +08:00
vibrant update: add 57 DESIGN.md files from awesome-design-skills (#92) 2026-05-01 16:57:25 +08:00
vintage update: add 57 DESIGN.md files from awesome-design-skills (#92) 2026-05-01 16:57:25 +08:00
vodafone Add initial project structure with essential files 2026-04-28 12:25:59 +08:00
voltagent Add initial project structure with essential files 2026-04-28 12:25:59 +08:00
warm-editorial Add initial project structure with essential files 2026-04-28 12:25:59 +08:00
warp Add initial project structure with essential files 2026-04-28 12:25:59 +08:00
webflow Add initial project structure with essential files 2026-04-28 12:25:59 +08:00
wired Add initial project structure with essential files 2026-04-28 12:25:59 +08:00
wise Add initial project structure with essential files 2026-04-28 12:25:59 +08:00
x-ai Add initial project structure with essential files 2026-04-28 12:25:59 +08:00
xiaohongshu docs(xiaohongshu): address review feedback from #24 (#54) 2026-05-01 10:38:19 +08:00
zapier Add initial project structure with essential files 2026-04-28 12:25:59 +08:00
README.md feat(skills): open-design-landing rename, kami skills, landing OG (#428) 2026-05-04 19:22:46 +08:00

Design Systems

Each subfolder is a portable design system in DESIGN.md format. Pick one in the top-bar Design system dropdown and every skill will read it as part of its system prompt.

What's bundled

  • default/ — Neutral Modern. Hand-authored starter for the OD spec.
  • warm-editorial/ — Warm Editorial. Hand-authored serif starter.
  • atelier-zero/ — Atelier Zero. Hand-authored magazine-grade collage system: warm paper canvas, plaster-and-architecture imagery, oversized italic-mixed display type, Roman-numeral section markers, side rails of rotated micro-text, coordinate annotations, single coral accent. Pairs with skills/open-design-landing/ and skills/open-design-landing-deck/ for the canonical landing-page and slide-deck renderings.
  • kami/ — 紙 / 纸. Editorial paper system distilled from tw93/kami (MIT). Warm parchment canvas, ink-blue accent, serif at one weight, no italic, no cool grays. Pairs with the templates/kami-deck.html starter for slide work.
  • 57 design skills, sourced from bergside/awesome-design-skills and added directly as normalized 9-section DESIGN.md files.
  • 70 product systems, imported from VoltAgent/awesome-design-md (the getdesign@latest npm package, MIT-licensed). One folder per brand:
    Category Systems
    AI & LLM claude · cohere · elevenlabs · minimax · mistral-ai · ollama · opencode-ai · replicate · runwayml · together-ai · voltagent · x-ai
    Developer Tools cursor · expo · lovable · raycast · superhuman · vercel · warp
    Productivity & SaaS cal · intercom · linear-app · mintlify · notion · resend · zapier
    Backend & Data clickhouse · composio · hashicorp · mongodb · posthog · sanity · sentry · supabase
    Design & Creative airtable · clay · figma · framer · miro · webflow
    Fintech & Crypto binance · coinbase · kraken · mastercard · revolut · stripe · wise
    E-Commerce & Retail airbnb · meta · nike · shopify · starbucks
    Media & Consumer apple · ibm · nvidia · pinterest · playstation · spacex · spotify · theverge · uber · vodafone · wired · xiaohongshu
    Automotive bmw · bugatti · ferrari · lamborghini · renault · tesla

Folders use ASCII slugs — dotted brands are normalized (linear.applinear-app, x.aix-ai, etc.).

File shape

The first H1 is the title shown in the picker. The line immediately after the H1 is parsed for > Category: <name> and used to group the dropdown:

# Design System Inspired by Cohere

> Category: AI & LLM
> Enterprise AI platform. Vibrant gradients, data-rich dashboard aesthetic.

## 1. Visual Theme & Atmosphere
...

Both the boilerplate prefix Design System Inspired by and the > Category: ... line are stripped from the dropdown label and the summary preview at runtime — they're only metadata.

Adding your own

Drop a new folder containing a DESIGN.md and it shows up on next refresh. Add a > Category: <Group> line to slot it under an existing group, or use any new label and it lands at the bottom of the dropdown.

Refreshing the bundled set

The 70 product systems are pulled from the upstream npm package. To re-sync to the latest hashes:

curl -sL $(npm view getdesign dist.tarball) -o /tmp/getdesign.tgz
tar -xzf /tmp/getdesign.tgz -C /tmp
node --experimental-strip-types scripts/sync-design-systems.ts

For now, the original importer lives at the top of the excessive-climb branch — re-run it against a fresh tarball.

Attribution

The 70 product systems are sourced from VoltAgent/awesome-design-md (MIT, © VoltAgent contributors). They are aesthetic inspirations — none of them are official assets of the brands they reference.

The kami/ system adapts tokens, type rules, and the "ten invariants" from tw93/kami (MIT, © Tw93 and contributors), a Claude skill for typesetting professional documents and slide decks.

The 57 design skills are sourced from bergside/awesome-design-skills.