# open-design-landing Reusable skill that produces a world-class editorial landing page in the **Atelier Zero** design language — the warm-paper, italic-serif, collage-on-grid aesthetic shared by Monocle, Apartamento, and Études. The skill is parameterized: fill one typed `inputs.json`, run one script, get a self-contained HTML file. Optionally generate 16 surreal collage assets with `gpt-image-2`, or fall back to paper-textured SVG placeholders so the layout still feels intentional with zero image budget. > **Read first** — the agent contract, inputs schema, and self-check > live in [`SKILL.md`](./SKILL.md). This README is the human > quick-start. ## 30-second tour ```bash # 1. Paper-textured placeholders so the layout renders immediately. npx tsx scripts/placeholder.ts ./out/assets/ # 2. Compose the standalone HTML from the worked example. npx tsx scripts/compose.ts inputs.example.json ./out/index.html # 3. Open it. open ./out/index.html ``` That's it. Three commands, full editorial landing page, no API keys. To brand it for yourself, copy `inputs.example.json` to `inputs.json`, edit the fields (the schema is self-documenting — see [`schema.ts`](./schema.ts)), and re-run step 2. ## The three image strategies | Strategy | Cost | Latency | When | | :-------------- | :----- | :------ | :---------------------------------------- | | `placeholder` | $0 | <1s | First pass, demo, internal review. | | `generate` | ~$0.40 | ~6 min | Final delivery; original collage plates. | | `bring-your-own`| $0 | 0s | You have art direction PNGs ready to drop in. | Set `inputs.imagery.strategy` to one of the three. ```bash # generate mode (requires FAL_KEY in env) FAL_KEY=fal-... npx tsx scripts/imagegen.ts inputs.json --out=./out/assets/ ``` Without `FAL_KEY`, the imagegen script prints the prompts so you can route them through the `/gpt-image-fal` slash-command skill manually. ## Layout at a glance 8 numbered Roman-numeral sections, all responsive at 1280 / 1080 / 880 / 560: ``` I. Hero — display headline + 3 stat rings + 4-step index + collage plate II. About — manifesto + studio stamp + tilted side-note III. Capabilities — 4 cards (skills / systems / adapters / BYOK) + ribbon IV. Labs — 5 portrait cards + filter pills + progress bar V. Method — 4 numbered steps with thumbnails on hairline timeline VI. Selected work — dark slab, 2 tilted cards (one rotated -1.2°, one +2.4°) VII. Testimonial — pull quote + 5 partner glyphs VIII. CTA — closing pitch + ribbon + email pill Footer — 4 link columns + huge italic-serif kicker word ``` Every section has scroll-reveal motion (IntersectionObserver, respects `prefers-reduced-motion`). ## Files ```text skills/open-design-landing/ ├── SKILL.md # ← agent contract (read this first) ├── README.md # ← you are here ├── schema.ts # typed inputs (single source of truth) ├── styles.css # Atelier Zero stylesheet (single source of truth) ├── inputs.example.json # Open Design as the worked example ├── example.html # canonical rendering, regenerable from inputs.example.json ├── scripts/ │ ├── compose.ts # inputs.json + styles.css → index.html │ ├── imagegen.ts # gpt-image-2 wrapper (fal.ai backend) │ └── placeholder.ts # SVG paper-textured frames └── assets/ ├── *.png # 16 collage plates (Open Design instance) ├── image-manifest.json # slot → file / dimensions / prompt mapping └── imagegen-prompts.md # human-readable prompt pack ``` ## Regenerate the canonical example After editing `styles.css`, `schema.ts`, or `inputs.example.json`: ```bash npx tsx scripts/compose.ts inputs.example.json example.html ``` The `example.html` in this folder is the pre-rendered known-good demo — useful as a visual reference and for QA against the live composer output. ## Migrating from `editorial-collage` This skill replaces the older `editorial-collage` folder: - **Path:** `skills/editorial-collage/` → `skills/open-design-landing/`. - **Shared assets:** downstream paths such as `../editorial-collage/assets/` (for example from the slide-deck skill) should use [`../open-design-landing/assets/`](./assets/) — see [`open-design-landing-deck`](../open-design-landing-deck/README.md). ## See also - [`design-systems/atelier-zero/DESIGN.md`](../../design-systems/atelier-zero/DESIGN.md) — colors, type, motion tokens. - [`apps/landing-page/`](../../apps/landing-page/) — Astro static site that mirrors this skill’s markup at deploy time. - [`skills/open-design-landing-deck/`](../open-design-landing-deck/) — sibling skill that produces a slide deck in the same visual language.