OpenDesign's brand-story deck for partners and press: why it exists, what it believes, and where design is going. Built as a decision-grade marketing & GTM deck for partners, press, community.
Sister skill to open-design-landing. Same
Atelier Zero visual system (warm paper, Inter Tight + Playfair Display,
italic-serif emphasis, coral dots), but paginated as a horizontal
magazine-style swipe deck instead of a long scrolling page.
The navigation model is intentionally borrowed from the
guizang-ppt skill — ←/→ arrow keys, wheel /
swipe, ESC for the overview grid — so it feels like a print magazine
flipping page by page rather than a web slide deck scrolling.
inputs.json + ../open-design-landing/styles.css
│
└──────────► scripts/compose.ts
│
▼
<out>/index.html
(one viewport per slide, horizontal swipe)
←/→ · ↑/↓ · PageUp/PageDown · Space ·
Home/End.01 / 11).guizang-ppt's overview UX.| Kind | Use it for |
| :---------- | :------------------------------------------------------------ |
| cover | Title plate at the start. 2-column copy + collage art. |
| section | Roman-numeral divider between chapters. Centered, full-bleed. |
| content | Eyebrow + title + body + bullets + optional collage art. |
| stats | Up to 4 large stat cells (value · label · sub-label). |
| quote | Pull quote + author. Optional portrait collage on the right. |
| cta | Closing pitch + 1-2 buttons. |
| end | Mega italic-serif kicker word + signature footer. |
A typical 11-slide pitch:
1. cover — title plate, hero collage
2. section — "I. The problem"
3. content — about / manifesto, bullets
4. content — capabilities, bullets
5. stats — 4 numbers
6. section — "II. How it feels"
7. content — method, bullets
8. content — selected work
9. quote — customer testimonial
10. cta — primary + secondary action
11. end — mega kicker + signature
inputs.jsonStart from inputs.example.json (the Open
Design pitch deck). The brand block, image strategy, and assets path
mirror the sister skill — if you already filled out an
open-design-landing brief, copy brand and imagery over verbatim.
For each slide, pick a kind and fill the typed fields from
schema.ts. MixedText (sans-serif baseline +
italic-serif emphasis spans + coral terminating dot) is the same
encoding used by the sister skill — see its inputs.example.json.
This skill does not ship its own image generator or placeholder
script — it shares the 16-slot library from open-design-landing. To
regenerate or stub:
# generate via gpt-image-2 (fal.ai)
FAL_KEY=... npx tsx ../open-design-landing/scripts/imagegen.ts ../open-design-landing/inputs.example.json --out=../open-design-landing/assets/
# or paper-textured SVG placeholders
npx tsx ../open-design-landing/scripts/placeholder.ts ../open-design-landing/assets/
Set your deck's inputs.imagery.assets_path to wherever those PNGs
live (default in the example: ../open-design-landing/assets/).
npx tsx scripts/compose.ts inputs.json out/index.html
The composer reads inputs.json, loads the canonical Atelier Zero
stylesheet from ../open-design-landing/styles.css, layers
deck-specific rules on top (horizontal flex track, slide layouts,
HUD, dot nav, ESC overview, keyboard / wheel / touch handlers), and
writes one self-contained HTML file.
01 / N.→ (or Space, or scroll-down). Smoothly slides one
viewport to the right; dot nav advances; the coral progress bar
ticks forward.End. Jumps to the final slide.Home. Returns to slide 1.Esc. Overview grid appears with scaled thumbnails;
click any tile to jump and dismiss the overview.prefers-reduced-motion: reduce (DevTools → Rendering): page
transitions stay snappy and don't induce motion sickness.../open-design-landing/styles.css at compile time. Do not
maintain a duplicate copy here; if Atelier Zero tokens evolve, edit
them once in the sister skill.open-design-landing — landing page sister skill.guizang-ppt — the magazine-deck navigation
pattern this skill borrows.design-systems/atelier-zero/DESIGN.md — token spec.Copy a source-pinned command for your client. You run it yourself.
Destination: .claude/skills/open-design-landing-deck · pinned to the source commit
# Run from your project root
git clone https://github.com/nexu-io/open-design.git .skillboard-tmp
git -C .skillboard-tmp checkout 9881cff70e02be86c2a58130af512011ba23d4af
mkdir -p ".claude/skills"
cp -r ".skillboard-tmp/plugins/_official/examples/open-design-landing-deck" ".claude/skills/"
rm -rf .skillboard-tmpReview the source before running. This copies files into your project; it is not a one-click install and does not verify runtime safety.
sudo apt update && sudo apt install -y gitnpm install -g @anthropic-ai/claude-code# Run from your project root
git clone https://github.com/nexu-io/open-design.git .skillboard-tmp
git -C .skillboard-tmp checkout 9881cff70e02be86c2a58130af512011ba23d4af
mkdir -p ".claude/skills"
cp -r ".skillboard-tmp/plugins/_official/examples/open-design-landing-deck" ".claude/skills/"
rm -rf .skillboard-tmpDestination: .claude/skills/open-design-landing-deck
Scanner static-checks@0.1.0 · commit 9881cff70e02. Static checks cannot prove runtime safety – review the source and the exact diff before installing. How checks work.
References parent-directory traversal, which can escape a target directory.
Evidence: ../· fingerprint fa08499e14d0113b