{"id":"a5e3b1f1-1483-4db4-8cc2-9f12569a0967","shortId":"WMwugr","kind":"skill","title":"replit-deck","tagline":"Single-file horizontal-swipe HTML deck in the style of Replit Slides's\nlanding-page template gallery. Eight distinct themes (helix, holm, vance,\nbevel, world-dark, world-mint, atlas, bluehouse) — each a complete visual\nsystem (palette + type + accent) captured from replit.com/sli","description":"# Replit Deck Skill\n\nProduce a single-file horizontal-swipe HTML deck in one of eight Replit-Slides themes. Every theme is a complete visual system — do not mix tokens across themes.\n\n## Resource map\n\n```\nreplit-deck/\n├── SKILL.md                ← you're reading this\n├── assets/\n│   └── template.html       ← seed: 8 themes via [data-theme=*], proven iframe-nav script (READ FIRST)\n├── references/\n│   ├── themes.md           ← 8 themes: when-to-pick / do / don't / primary layouts\n│   ├── layouts.md          ← 10 paste-ready slide layouts, cross-theme\n│   ├── components.md       ← shared primitives (eyebrow, kpi-row, image-grid, meta-bar)\n│   └── checklist.md        ← P0/P1/P2 self-review + theme lock-in gate\n└── examples/               ← four reference decks across the most contrasting themes\n    ├── example-helix.html       (SaaS board update · light minimal)\n    ├── example-holm.html        (legal fintech memo · cream editorial serif)\n    ├── example-atlas.html       (quarterly history chapter · black + vermilion)\n    └── example-bluehouse.html   (real estate ROI · navy + gradient cards)\n```\n\n## Workflow\n\n### Step 0 — Pre-flight (mandatory reads)\n\n1. Read `assets/template.html` end-to-end. The `[data-theme]` blocks carry the tokens; the `<script>` at the bottom solves five iframe nav bugs — **do not rewrite it**.\n2. Read `references/themes.md` → pick **one** theme that matches the user's brief. If the user already picked a theme via `od.inputs.theme`, use that.\n3. Read `references/layouts.md` → you'll copy `<section>` blocks from here.\n4. Read `references/checklist.md` → P0 must pass before emit.\n\n### Step 1 — Commit to one theme\n\nWrite out loud (in the TodoWrite or plan section) which theme and why. Once picked, **every slide uses that theme's tokens only**. No swapping mid-deck. The `<body data-theme=\"helix\">` attribute is the single source of truth.\n\n| Theme | Pick when |\n|---|---|\n| `helix` | SaaS board update, product metrics, neutral modern |\n| `holm` | Legal memo, investor pre-read, serious / institutional |\n| `vance` | Art portfolio, design catalog, photographer / sculptor |\n| `bevel` | Fashion campaign, lookbook, Y2K / editorial attitude |\n| `world-dark` | Policy report, finance analysis, premium dark |\n| `world-mint` | Lighter companion of world-dark — ESG, wellness finance, sustainability |\n| `atlas` | Long-form narrative, chapter deck, museum / archive aesthetic |\n| `bluehouse` | Consumer product, real estate, lifestyle, colorful cards |\n\n### Step 2 — Plan slide rhythm before writing HTML\n\nDefault 6 slides. Write the rhythm BEFORE any HTML, for example (helix, 6 slides):\n\n```\n01  cover           hero + title + subtitle\n02  kpi-row-6       6 metrics with ▲/▼ deltas\n03  split-insight   left stat + right paragraph\n04  chapter-plate   section divider\n05  three-up        three parallel columns\n06  closing         one bold number or CTA\n```\n\nShow this to the user. Redirecting at this stage is cheap.\n\n### Step 3 — Copy seed, bind theme\n\n1. Copy `assets/template.html` to project root as `index.html`.\n2. Set `<body data-theme=\"<chosen>\">`.\n3. Replace `<title>`.\n4. Delete the placeholder slides in the body (the seed ships with 3 demo slides). Keep the chrome (counter / progress / hint).\n\n### Step 4 — Paste layouts, fill real copy\n\nFor each planned slide, copy the matching `<section>` from `references/layouts.md`. Replace every `[REPLACE]` with specific copy — never leave placeholders, never use lorem. If a slide feels empty, pick a different layout.\n\nTag each slide with `data-screen-label=\"01 Cover\"`, `\"02 Metrics\"`, etc., in presentation order.\n\n### Step 5 — Self-check\n\nRun `references/checklist.md` silently before emit: the **P0 theme-lock gate** plus the five-dimension 1–5 critique (Philosophy / Hierarchy / Execution / Specificity / Restraint). Any dimension ≤ 3 → re-do before emit.\n\nThe P0 theme-lock grep is non-negotiable:\n\n```bash\ngrep -E 'data-theme|style=\"--' index.html | head\n```\n\nIf any `style=\"--accent:...\"` or theme override appears on individual slides, revert. One theme per deck.\n\n### Step 6 — Emit artifact\n\n```\n<artifact identifier=\"deck-<slug>\" type=\"text/html\" title=\"<Deck title>\">\n<!doctype html>\n<html>...</html>\n</artifact>\n```\n\nOne sentence before the artifact. Stop after `</artifact>`.\n\n## Hard rules\n\n- **One theme per deck.** `data-theme` set on `<body>` — never override per-slide.\n- **Numbers are real or absent.** No invented metrics. Use `—` or a grey block as an honest placeholder.\n- **Display face follows theme.** helix/world-dark/world-mint/bluehouse use the sans Display; holm/vance/atlas use the serif Display; bevel uses the Y2K display. Do not swap. (Authoritative source: the `--font-display` token of each theme in `assets/template.html` — if this list ever disagrees with the template, the template wins.)\n- **Accent appears 1–2× per slide max.** Never a gradient-spam.\n- **Never rewrite the nav script.** Five iframe bugs it solves are not obvious.\n- **Keep it one HTML file.** Inline all CSS. No external fonts — the system stack in each theme is deliberate.\n- **`data-screen-label` on every slide.**\n- **No Replit logo / brand lockup.** These are template styles, not a Replit-brand deck.\n\n---\n\n## When to pick `replit-deck` vs. peer skills\n\n| Skill | Pick when |\n|---|---|\n| `simple-deck` | Plain, single-theme deck bound to the project's `DESIGN.md` tokens. When the deck should *match* the host brand, not assert its own. (`designSystemRequired: true`.) |\n| `magazine-web-ppt` | Editorial \"magazine × e-ink\" aesthetic (WebGL fluid background, serif titles, chapter plates). When the brief asks for a keynote / launch / sharing-style deck and calls out Monocle / WIRED / Kinfolk / Domus. |\n| `replit-deck` | The brief explicitly asks for Replit-Slides gallery aesthetic, or needs one of the 8 token-frozen visual identities (SaaS board, editorial memo, gallery catalog, Y2K campaign, policy report, museum chapter, consumer cards). No dependency on `DESIGN.md`. |\n\nIf the user just says \"make me a deck\" without further guidance, default to `simple-deck` — it respects their design system. Pick `replit-deck` only when the brief is explicit about the aesthetic or names a theme.\n\n---\n\n## Scope & provenance\n\n- **Eight themes = the full replit.com/slides landing-page gallery at the time of snapshot.** Not a curated subset — every theme card currently published on replit.com/slides is represented here (helix, holm, vance, bevel, world-dark, world-mint, atlas, bluehouse). If Replit ships a ninth template, it is **not** automatically reflected in this skill.\n- **Snapshot date: 2026-04-29.** All hex values were sampled from the actual replit.com/slides PNGs on that date with ImageMagick — no guessed colors, no memory substitutions. See `references/themes.md` → *Contributing a new theme* for the exact sampling procedure.\n- **Maintenance: one-time snapshot, not tracked.** Replit Slides is a live product and may drift. This skill does not auto-sync. If you notice Replit has updated colors or added a theme and want it reflected here, open an issue on `nexu-io/open-design` titled `replit-deck: re-sync to replit.com/slides (YYYY-MM-DD)` and attach the updated screenshots. There is no designated owner monitoring the upstream.\n- **No Replit branding.** These are gallery-style templates, not a Replit-brand deck. The checklist (P0) forbids inserting a Replit logo or wordmark.\n\n---\n\n## Browser / runtime support\n\n- **Target**: modern evergreen desktop browsers (Chrome 110+ / Safari 16+ / Firefox 115+) and modern mobile Safari / Chrome.\n- **Features used**: CSS scroll-snap (horizontal), `color-mix()`, CSS custom properties, `text-wrap: balance`. All ≥ 93% Baseline.\n- **Not supported**: IE 11, Safari < 15, any browser without `color-mix()` (would need a fallback `--accent-soft` if you want to support older Safari; out of scope for this skill).\n- **Mobile**: horizontal scroll-snap works on iOS Safari 16+ and Android Chrome. Keyboard nav is desktop-only by design.\n- **Nav script behavior**: reused verbatim from `skills/simple-deck` — survives iframe embedding (the daemon preview surface), dual listener races, focus loss, and position persistence across reloads. **Do not rewrite it.**\n\n---\n\n## Verification\n\nThe skill auto-registers with the daemon on filesystem scan (no manual wiring). Confirmed against a running daemon on `localhost:7456` after adding this skill:\n\n```bash\n$ curl -s localhost:7456/api/skills \\\n    | node -e \"const d=JSON.parse(require('fs').readFileSync(0,'utf-8')); \\\n               console.log(JSON.stringify(d.skills.find(s=>s.id==='replit-deck'), null, 2));\"\n{\n  \"id\": \"replit-deck\",\n  \"name\": \"replit-deck\",\n  \"description\": \"Single-file horizontal-swipe HTML deck in the style of Replit Slides's\\nlanding-page template gallery. Eight distinct themes …\",\n  \"triggers\": [\n    \"replit deck\",\n    \"replit slides\",\n    \"replit 风格 ppt\",\n    \"replit style deck\",\n    \"helix deck\",\n    \"holm memo\",\n    \"atlas chapter\",\n    \"bluehouse\",\n    \"bevel campaign\"\n  ],\n  \"mode\": \"deck\",\n  \"platform\": null,\n  \"scenario\": \"product\",\n  \"previewType\": \"html\",\n  \"designSystemRequired\": false,\n  \"defaultFor\": [],\n  \"upstream\": null,\n  \"featured\": null,\n  \"fidelity\": null,\n  \"speakerNotes\": null,\n  \"animations\": null,\n  \"examplePrompt\": \"Single-file horizontal-swipe HTML deck in the style of Replit Slides's landing-page template gallery.\",\n  \"hasBody\": true\n}\n```\n\nAll four example decks (`examples/example-{helix,holm,atlas,bluehouse}.html`) open directly in a browser. Keyboard nav (← / → / Space / Home / End) and horizontal scroll-snap work in Chrome 129 and Safari 18.","tags":["replit","deck","open","design","nexu-io","agent-skills","ai-agents","ai-design","byok","claude","claude-code-for-design","claude-design"],"capabilities":["skill","source-nexu-io","skill-replit-deck","topic-agent-skills","topic-ai-agents","topic-ai-design","topic-byok","topic-claude","topic-claude-code-for-design","topic-claude-design","topic-coding-agents","topic-design-systems","topic-design-tools","topic-desktop-app","topic-figma-alternative"],"categories":["open-design"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/nexu-io/open-design/replit-deck","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add nexu-io/open-design","source_repo":"https://github.com/nexu-io/open-design","install_from":"skills.sh"}},"qualityScore":"0.700","qualityRationale":"deterministic score 0.70 from registry signals: · indexed on github topic:agent-skills · 36607 github stars · SKILL.md body (9,629 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-05-11T06:52:26.485Z","embedding":null,"createdAt":"2026-05-01T18:52:33.669Z","updatedAt":"2026-05-11T06:52:26.485Z","lastSeenAt":"2026-05-11T06:52:26.485Z","tsv":"'/sli':51 '0':195 '1':201 '10':126 '8':99,114 'accent':46 'across':84,162 'asset':96 'assets/template.html':203 'atlas':37 'bar':147 'bevel':30 'black':184 'block':212 'bluehous':38 'board':169 'captur':47 'card':192 'carri':213 'chapter':183 'checklist.md':148 'complet':41,77 'components.md':135 'contrast':165 'cream':177 'cross':133 'cross-them':132 'dark':33 'data':103,210 'data-them':102,209 'deck':3,11,53,64,90,161 'distinct':25 'editori':178 'eight':24,68 'end':205,207 'end-to-end':204 'estat':188 'everi':73 'exampl':158 'example-atlas.html':180 'example-bluehouse.html':186 'example-helix.html':167 'example-holm.html':173 'eyebrow':138 'file':6,59 'fintech':175 'first':111 'flight':198 'four':159 'galleri':23 'gate':157 'gradient':191 'grid':144 'helix':27 'histori':182 'holm':28 'horizont':8,61 'horizontal-swip':7,60 'html':10,63 'ifram':107 'iframe-nav':106 'imag':143 'image-grid':142 'kpi':140 'kpi-row':139 'land':20 'landing-pag':19 'layout':124,131 'layouts.md':125 'legal':174 'light':171 'lock':155 'lock-in':154 'mandatori':199 'map':87 'memo':176 'meta':146 'meta-bar':145 'minim':172 'mint':36 'mix':82 'nav':108 'navi':190 'one':66 'p0/p1/p2':149 'page':21 'palett':44 'past':128 'paste-readi':127 'pick':119 'pre':197 'pre-flight':196 'primari':123 'primit':137 'produc':55 'proven':105 'quarter':181 're':93 'read':94,110,200,202 'readi':129 'real':187 'refer':112,160 'replit':2,16,52,70,89 'replit-deck':1,88 'replit-slid':69 'replit.com':50 'replit.com/sli':49 'resourc':86 'review':152 'roi':189 'row':141 'saa':168 'script':109 'seed':98 'self':151 'self-review':150 'serif':179 'share':136 'singl':5,58 'single-fil':4,57 'skill':54 'skill-replit-deck' 'skill.md':91 'slide':17,71,130 'source-nexu-io' 'step':194 'style':14 'swipe':9,62 'system':43,79 'templat':22 'template.html':97 'theme':26,72,74,85,100,104,115,134,153,166,211 'themes.md':113 'token':83,215 'topic-agent-skills' 'topic-ai-agents' 'topic-ai-design' 'topic-byok' 'topic-claude' 'topic-claude-code-for-design' 'topic-claude-design' 'topic-coding-agents' 'topic-design-systems' 'topic-design-tools' 'topic-desktop-app' 'topic-figma-alternative' 'type':45 'updat':170 'vanc':29 'vermilion':185 'via':101 'visual':42,78 'when-to-pick':116 'workflow':193 'world':32,35 'world-dark':31 'world-mint':34","prices":[{"id":"4cdfed52-0b34-4870-8a4a-571955555a8b","listingId":"a5e3b1f1-1483-4db4-8cc2-9f12569a0967","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"nexu-io","category":"open-design","install_from":"skills.sh"},"createdAt":"2026-05-01T18:52:33.669Z"}],"sources":[{"listingId":"a5e3b1f1-1483-4db4-8cc2-9f12569a0967","source":"github","sourceId":"nexu-io/open-design/replit-deck","sourceUrl":"https://github.com/nexu-io/open-design/tree/main/skills/replit-deck","isPrimary":false,"firstSeenAt":"2026-05-01T18:52:33.669Z","lastSeenAt":"2026-05-11T06:52:26.485Z"},{"listingId":"a5e3b1f1-1483-4db4-8cc2-9f12569a0967","source":"skills_sh","sourceId":"nexu-io/open-design/replit-deck","sourceUrl":"https://skills.sh/nexu-io/open-design/replit-deck","isPrimary":true,"firstSeenAt":"2026-05-07T20:43:01.601Z","lastSeenAt":"2026-05-07T22:41:56.395Z"}],"details":{"listingId":"a5e3b1f1-1483-4db4-8cc2-9f12569a0967","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"nexu-io","slug":"replit-deck","github":{"repo":"nexu-io/open-design","stars":36607,"topics":["agent-skills","ai-agents","ai-design","byok","claude","claude-code-for-design","claude-design","coding-agents","design-systems","design-tools","desktop-app","figma-alternative","generative-ai","hermes-agent","local-first","nextjs","no-code","prototyping","ui-generator","vibe-coding"],"license":"apache-2.0","html_url":"https://github.com/nexu-io/open-design","pushed_at":"2026-05-11T06:48:43Z","description":"🎨 Local-first, open-source alternative to Anthropic's Claude Design. ⚡ 19 Skills · ✨ 71 brand-grade Design Systems 🖼 Generate web · desktop · mobile prototypes · slides · images · videos · HyperFrames 📦 Sandboxed preview · HTML/PDF/PPTX/MP4 export 🤖 Runs on Claude Code / Codex / Cursor / Gemini / OpenCode / Qwen / Copilot / Hermes / Kimi CLI.","skill_md_sha":"a28c32c4290c82edde2c0a85cafbcec0b6839fce","skill_md_path":"skills/replit-deck/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/nexu-io/open-design/tree/main/skills/replit-deck"},"layout":"multi","source":"github","category":"open-design","frontmatter":{"name":"replit-deck","description":"Single-file horizontal-swipe HTML deck in the style of Replit Slides's\nlanding-page template gallery. Eight distinct themes (helix, holm, vance,\nbevel, world-dark, world-mint, atlas, bluehouse) — each a complete visual\nsystem (palette + type + accent) captured from replit.com/slides. Pick one\ntheme, do not mix. For pitch decks, board reports, brand memos, campaign\nreveals — when the user explicitly wants \"Replit Slides style\"."},"skills_sh_url":"https://skills.sh/nexu-io/open-design/replit-deck"},"updatedAt":"2026-05-11T06:52:26.485Z"}}