open-design-landing
nexu-io/open-design · Agent Skill
Genera un sito web collage editoriale di una pagina per un brand, utilizzando il linguaggio visivo Atelier Zero. Aggiunge automaticamente animazioni e una navigazione sticky.
Vai all'installazione ↓Panoramica
| Autore | |
|---|---|
| Repository | nexu-io/open-design ↗ |
| Cartella dello skill | open-design-landing |
| Stelle | 95.886 |
| Fork | 11.122 |
| File inclusi | 27 |
| Licenza | Apache-2.0 |
| Aggiornato | 13 settembre 2026 |
| Link | Sorgente dello skill ↗ · Repository ↗ |
Verifica Mozgi
Cosa abbiamo trovato nei file dello skill. I dettagli con l’abbonamento.
Installazione
Uno skill è una cartella con un file SKILL.md. Scegli il tuo agente ed esegui i comandi in un terminale (macOS, Linux o Git Bash su Windows) dalla radice del progetto.
Incolla il prompt in Claude, Codex o un altro assistente: controllerà lo skill e lo installerà.
Install the “open-design-landing” skill from mozgi.io (https://mozgi.io/skills/open-design-landing/) for me. 1. Download the archive: https://mozgi.io/skills/open-design-landing/download If it fails, take the skill folder from the source: https://github.com/nexu-io/open-design/tree/main/design-templates/open-design-landing 2. Read SKILL.md and the other files. Check the skill is safe: no hidden commands, no sending data elsewhere, no scripts doing something other than described. If anything looks suspicious, stop and tell me. 3. Put the “open-design-landing” folder into your agent's skills folder: .claude/skills/ for Claude Code, .agents/skills/ for Codex, .cursor/skills/ for Cursor, .gemini/skills/ for Gemini CLI. Inside the project if we are in one, otherwise in the home folder (~/.claude/skills/ etc.). 4. Make sure <skills folder>/open-design-landing/SKILL.md exists. 5. Briefly tell me what this skill does and offer to try it on my task. If you cannot do a step yourself, tell me what to click or type.
git clone --depth 1 --branch main https://github.com/nexu-io/open-design.git /tmp/open-design mkdir -p .claude/skills cp -r /tmp/open-design/design-templates/open-design-landing .claude/skills/open-design-landing
Riavvia Claude Code: lo skill compare nell'elenco; per richiamarlo a mano usa /open-design-landing. Per tutti i progetti: ~/.claude/skills.
git clone --depth 1 --branch main https://github.com/nexu-io/open-design.git /tmp/open-design mkdir -p .agents/skills cp -r /tmp/open-design/design-templates/open-design-landing .agents/skills/open-design-landing
Codex cerca gli skill in .agents/skills dalla cartella corrente fino alla radice del repo; richiamalo con /skills o $open-design-landing. Per tutti i progetti: ~/.agents/skills.
git clone --depth 1 --branch main https://github.com/nexu-io/open-design.git /tmp/open-design mkdir -p .cursor/skills cp -r /tmp/open-design/design-templates/open-design-landing .cursor/skills/open-design-landing
Cursor carica lo skill all'avvio; richiamalo con “/” nella chat Agent. Cursor legge anche .claude/skills e .agents/skills. Per tutti i progetti: ~/.cursor/skills.
git clone --depth 1 --branch main https://github.com/nexu-io/open-design.git /tmp/open-design mkdir -p .gemini/skills cp -r /tmp/open-design/design-templates/open-design-landing .gemini/skills/open-design-landing
Gemini CLI propone di attivare lo skill quando il compito corrisponde: tu confermi. Per tutti i progetti: ~/.gemini/skills.
Leggi SKILL.md e i file correlati prima di installare. Clicca un file per l'anteprima.
Contenuto di SKILL.md
Testo originale dell'autore · sola letturaopen-design-landing
Build a single-page editorial landing site (or a slide deck — see the
sibling open-design-landing-deck skill)
in the Atelier Zero design system: warm-paper background, Inter
Tight + Playfair Display, italic serif emphasis spans, dotted hairline
rules, coral terminating dots, scroll-reveal motion, and 16 surreal
collage plates.
This is the canonical OpenDesign marketing-page recipe — the example
output is the very page you see at open-design ↗.
The skill is fully parameterized. The agent fills one typed
inputs.json from the user's brief; the composer turns that JSON +
the canonical styles.css ↗ into a deployable artifact.
inputs.json + styles.css 16 image slots
│ │
└──────────► scripts/compose.ts ◄────────────┘
│
▼
<out>/index.html (self-contained)
<out>/assets/ (PNG or SVG)
---
What you get
A single HTML file with all of:
- Editorial topbar (volume / issue / language strip), Headroom-style
sticky nav with live GitHub star count.
- 8 numbered Roman-numeral sections with paper-textured background:
hero (with 3 stat rings + 4-step index), about, capabilities (4 cards),
labs (5 cards + filter pills + progress bar), method (4 steps with
thumbnails), selected work (dark slab + 2 tilted cards), testimonial
(pull quote + 5 partner glyphs), CTA (ribbon + email pill).
- Footer with 4 link columns + huge italic-serif kicker word.
- Scroll-reveal motion on every section (IntersectionObserver, respects
prefers-reduced-motion).
- Fully responsive at 1280 / 1080 / 880 / 560 breakpoints.
---
Workflow contract
Run these four steps in order. The agent should complete each step
before moving on, and prefer asking the user a focused question over
inventing copy.
1. Gather brand inputs
Use AskQuestion (or the equivalent in your UI) to collect the brand
brief in chunks; do not dump the entire schema.ts on the user.
Map their answers into inputs.json matching the typed shape.
The eight question groups, in order:
| Group | Schema fields | Min answers | Notes |
| :---- | :------------------------------------------------------ | :---------- | :--------------------------------------- |
| 1 | brand.{name,mark,tagline,description,location} | 5 | Mark = single glyph (Ø, ▲, ★…) |
| 2 | brand.{license,version,year,primary_url,contact_email}| 4 | URL is required; license defaults Apache-2.0 |
| 3 | nav[] (up to 5) | 3 | Optional count badges |
| 4 | hero.{label,headline,lead,primary,secondary,stats} | All | Headline as MixedText (sans+em+dot) |
| 5 | about + capabilities.cards[4] | All | 4 cards × {num,tag,title,body} |
| 6 | labs.cards[5] + method.steps[4] | All | Both grids fixed-arity |
| 7 | work.cards[2] + testimonial | All | 5 partner glyphs as inline SVG path data |
| 8 | cta + footer.{columns[4],mega} | All | Mega kicker is a MixedText like the headlines |
Open inputs.example.json ↗ for a complete
worked example (OpenDesign itself).
2. Decide the image strategy
| Strategy | When to choose | Cost / latency |
| :---------------- | :------------------------------------------------------ | :-------------------- |
| placeholder | First pass. Demo. Slide internal. No image budget yet. | $0, <1s |
| generate | Final delivery. Brand wants original collages. | ~$0.40, ~6 min |
| bring-your-own | User has art direction PNGs. Drop them at assets_path.| $0, 0s |
Set inputs.imagery.strategy accordingly.
placeholder — frame mode
npx tsx scripts/placeholder.ts <out>/assets/
Writes 16 .svg files (with .png aliases for compatibility) into
<out>/assets/. Each placeholder shows the slot id, ratio, pixel
dimensions, and the prompt hint from image-manifest.json. The
composer's <img src='./assets/hero.png'> etc. just work.
generate — gpt-image-2 mode
FAL_KEY=... npx tsx scripts/imagegen.ts <inputs.json> --out=<out>/assets/
Calls fal.ai's openai/gpt-image-2 synchronous endpoint per slot.
Composes prompts as: style anchor (paper-collage editorial system)
+ brand variables (name / nav / headline / italic emphasis pulled
from inputs.json) + per-slot composition (e.g. cropped plaster
head + tree growing through arch). Skips slots whose target file
already exists; pass --force to re-render.
Without FAL_KEY, the script prints the prompts so the operator can
route them through the /gpt-image-fal slash-command skill manually.
bring-your-own
Drop 16 PNGs matching assets/image-manifest.json filenames at
inputs.imagery.assets_path. Done.
3. Compose the artifact
npx tsx scripts/compose.ts <inputs.json> <out>/index.html
The composer reads inputs.json and ../styles.css, then writes one
self-contained HTML file. The page includes:
- The full Atelier Zero stylesheet, inlined.
- All section markup with
data-revealattributes for staggered
scroll motion.
- Inline IntersectionObserver script for
[data-reveal]. - Inline Headroom nav script (mirrors
header.tsx). - Inline GitHub star-count fetcher (auto-detects from
brand.primary_url).
---
Self-check before delivering
Before marking done, the agent must verify:
- [ ]
<out>/index.htmlopens in a browser without console errors. - [ ] All 16 image slots load (no 404s in DevTools network tab).
- [ ] Headline italic emphasis spans render in Playfair (not sans).
- [ ] Coral terminating dots appear at every
displayh1/h2 end. - [ ] Scroll from top to bottom; every section animates in once.
- [ ] Resize to 880px and 560px; no horizontal scroll, no overlap.
- [ ]
prefers-reduced-motion: reduce(DevTools → Rendering) disables
transitions cleanly.
- [ ] Lighthouse: contrast AA, font-display swap, no layout shift on the
hero (CLS < 0.05).
---
Files in this skill
design-templates/open-design-landing/
├── SKILL.md # this contract
├── README.md # quick-start
├── schema.ts # typed inputs (single source of truth)
├── styles.css # Atelier Zero stylesheet (single source of truth)
├── inputs.example.json # OpenDesign as the worked example
├── example.html # canonical rendering (regenerated from inputs.example.json)
├── scripts/
│ ├── compose.ts # inputs.json + styles.css → index.html
│ ├── imagegen.ts # gpt-image-2 wrapper (fal.ai)
│ └── placeholder.ts # SVG paper-textured frames
└── assets/
├── *.png # 16 collage plates (OpenDesign instance)
├── image-manifest.json # slot → file/dimensions/prompt mapping
└── imagegen-prompts.md # human-readable prompt pack
---
Boundaries
- Do not invent new colors or typefaces. Tokens live in
design-systems/atelier-zero/DESIGN.md; extend the design system
before adding a new ramp here.
- Do not drop
data-revealattributes from generated markup.
Without them the page goes static and feels dead.
- Do not wrap the composed HTML in a framework that injects its
own stylesheet ordering — Atelier Zero relies on stylesheet-order
cascade for paper texture and z-index of side rails.
- Do not add a separate stylesheet file that reorders Atelier Zero
cascade; keep styles.css as the single visual source.
See also
design-systems/atelier-zero/DESIGN.md— token spec.design-templates/open-design-landing-deck/— sibling slides skill that reuses this design system.
Domande frequenti
Che cosa fa lo skill open-design-landing?
Genera un sito web collage editoriale di una pagina per un brand, utilizzando il linguaggio visivo Atelier Zero. Aggiunge automaticamente animazioni e una navigazione sticky.
Come si installa open-design-landing?
Apri il blocco “Installazione” in questa pagina e scegli il tuo agente — Claude Code, Codex, Cursor o Gemini CLI — per i comandi pronti che copiano la cartella dello skill nel posto giusto. Oppure copia il prompt dalla scheda “Con l'assistente” e lascia che sia l'assistente a controllare e installare lo skill.
Con quali modelli AI funziona open-design-landing?
Gli skill sono semplici istruzioni in Markdown (formato Agent Skills), quindi open-design-landing funziona con qualsiasi agente che legge SKILL.md: Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode e altri. Il modello carica le istruzioni solo quando il compito corrisponde alla descrizione dello skill.
open-design-landing è gratuito?
Lo skill è pubblicato apertamente da nexu-io con licenza Apache-2.0. Lo skill in sé non costa nulla: paghi solo il tuo fornitore AI per i token usati.
È sicuro installare gli skill?
Uno skill è un insieme di istruzioni che il tuo agente seguirà: leggi SKILL.md e i file correlati prima di installarlo. Gli script nella cartella dello skill vengono eseguiti solo se li esegue l'agente: controlla cosa fa e non concedere permessi superflui.
In cosa differisce uno skill da un server MCP o da un plugin?
Un server MCP o un plugin danno al modello nuovi strumenti: codice che viene eseguito e restituisce un risultato. Uno skill fornisce conoscenza e metodo: come affrontare il compito, quali passi seguire e com'è un buon risultato. Non servono server né chiavi API.