Fs creative voltage
Skill nexu-io/open-design/plugins/_official/examples/fs-creative-voltage
π¨ The open-source Claude Design alternative. π₯οΈ Local-first desktop app. πΌοΈ Your coding agent becomes the design engine: prototypes, landing pages, dashboards, slides, images & video β real files, HTML/PDF/PPTX/MP4 export. π€ Claude Code / Codex / Cursor / Gemini / OpenCode / Qwen & 20+ CLIs via BYOK.
npx -y skills add nexu-io/open-design --skill fs-creative-voltageAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
What its author says it does
Copied from the file, not written here
Open Design's seed pitch: the open, local alternative to closed AI design β why now, the wedge, and the ask. Built as a decision-grade fundraising pitch deck for pre-seed & seed VCs.
SKILL.md
9.9 KB, as published. Nobody here has run it
Creative Voltage (fs-creative-voltage)
A locked single-theme deck plugin derived from the Creative Voltage preset (section 3 of STYLE_PRESETS.md) in the MIT-licensed zarazhangrui/frontend-slides. Vibe: bold, creative, energetic, retro-modern β a retro poster shop wired to a power grid.
Start from example.html in this plugin folder. It is the proven seed: copy its stage CSS, slide shell chrome, signature-device CSS, and the entire SlidePresentation controller script verbatim, then replace only the slide content. Do not rewrite the stage system, the navigation script, or the design tokens. Do not introduce any colors or fonts outside this spec.
Locked design tokens (:root β reproduce exactly)
:root {
--stage-bg: #10101f; /* letterbox behind the stage */
--slide-bg: #1a1a2e; /* default slide background */
--bg-primary: #0066ff; /* electric blue panel */
--bg-primary-deep: #0052cc; /* blue gradient stop */
--bg-dark: #1a1a2e; /* deep navy panel */
--bg-dark-2: #23234a; /* lifted navy card */
--accent-neon: #d4ff00; /* neon yellow badge/highlight */
--accent-neon-soft: rgba(212, 255, 0, 0.14);
--text-light: #ffffff;
--text-dim: rgba(255, 255, 255, 0.64);
--text-faint: rgba(255, 255, 255, 0.34);
--text-on-neon: #1a1a2e; /* navy text on neon yellow */
--line: rgba(255, 255, 255, 0.18);
--line-blue: rgba(255, 255, 255, 0.28);
--font-display: 'Syne', sans-serif; /* 700/800, uppercase headlines */
--font-mono: 'Space Mono', monospace; /* 400/700, body + labels + chrome */
--font-script: 'Yellowtail', cursive; /* script flourishes only */
--title-size: 138px;
--h2-size: 88px;
--subtitle-size: 32px;
--body-size: 27px;
--label-size: 20px;
--slide-pad: 96px;
--ease-volt: cubic-bezier(0.16, 1, 0.3, 1); /* the one signature easing */
--duration-normal: 0.7s;
}
Google Fonts (the only external reference allowed):
https://fonts.googleapis.com/css2?family=Syne:wght@700;800&family=Space+Mono:ital,wght@0,400;0,700;1,400&family=Yellowtail&display=swap
Forbidden: any color outside the token table; Inter / Roboto / Arial / system display fonts; purple gradients; generic indigo #6366f1; rounded-corner glassmorphism. Neon yellow is an accent, never a slide background.
Fixed 16:9 stage β NON-NEGOTIABLE scaling system
- Every deck is authored on a fixed 1920Γ1080 canvas:
.deck-viewport(fills the window) wraps.deck-stage(1920Γ1080,transform-origin: 0 0). - JavaScript scales the whole stage uniformly:
factor = min(innerWidth/1920, innerHeight/1080), thentransform: translate(x, y) scale(factor)to center with letterbox/pillarbox; re-run onresize. - Never reflow slide content per device. No responsive breakpoints inside slides. All measurements are fixed px at the 1920Γ1080 design size.
- Include the full viewport-base block from the seed
<style>(stage, slide stacking, print,prefers-reduced-motion). - Slide switching toggles
.active/.visibleclasses flippingvisibility/opacity/pointer-eventsβ neverdisplay: none.
Slide shell chrome (every slide)
<section class="slide">directly inside.deck-stage; ~10 slides per deck β split content into more slides rather than shrinking type..slide-notop-left: Space Mono 700, neon yellow, formatNN / VOLT..crumbstop-right: uppercase mono breadcrumbs; active section in neon (.on)..baselinebottom: 2px rule with uppercase mono caption left andNN / 10right..deck-controlspage counter is fixed-positioned outside the scaled stage.
Signature devices (the theme's identity β use them, don't invent new ones)
- Split panels β
.panel-blue(46% width,linear-gradient(160deg, #0066ff, #0052cc)) against the deep navy base;.panel-blue.rightmirrors it. Covers, dividers, quotes, and closings lean on this two-tone split. - Halftone dot texture β
.halftone: pure CSSradial-gradient(circle, rgba(255,255,255,.30) 2.2px, transparent 2.9px)on a22pxgrid, faded out with amask-imagelinear gradient (.fadeor inline masks)..halftone.neonswaps the dots torgba(212,255,0,.45). Place one halftone patch per slide, in a corner. - Neon badges β
.badge: neon yellow block, navy mono uppercase text,rotate(-2deg), hard offset shadow6px 6px 0 rgba(0,0,0,.35). Sticker energy. - Script flourishes β
.script(Yellowtail) in neon yellow, used for one emphasized word inside a headline or a signature line; oftenrotate(-2deg/-3deg). Never for body text. - Ghost numerals β
.ghost-num: transparent fill with-webkit-text-stroke: 4px var(--accent-neon)for giant section-divider characters.
Layout masters (compose every deck from these β all present in the seed)
| Master | Seed slide | Notes |
|---|---|---|
| Cover (split blue/dark) | 1 | badge + giant Syne title + script tagline left; mono metadata + neon rule right |
| Agenda | 2 | rows with neon mono index, Syne uppercase name, dim mono hint |
| Section divider | 3 | giant ghost numeral on blue panel + badge + intro paragraph |
| Bullets | 4 | max 3-4 items: rotated neon tick (inline SVG) + Syne heading + mono support line |
| Big stat | 5 | one oversized neon Syne number (β480px) + side note column |
| Principle grid | 6 | 2Γ2 cards on --bg-dark-2, one .hot card on electric blue, inline SVG icons stroked #d4ff00 |
| CSS bar chart | 7 | scaleY-animated bars (navy / blue / neon for the hero bar), mono values + labels, no chart libraries |
| Quote | 8 | Syne quote with neon <em>, Yellowtail attribution, narrow blue panel right |
| Comparison | 9 | navy "before" column (Γ markers) vs blue "after" column (β markers, neon tag) |
| Closing | 10 | badge + giant title ending in a script word + mono contact links with inline SVG icons |
Motion
- Entrances via
.revealelements that transition when the slide gains.visible; stagger withtransition-delaysteps of ~0.1s (nth-childrules in the seed). - Chart bars animate
transform: scaleY(0 β 1)fromtransform-origin: bottomwith per-bar delays. - One signature easing only:
cubic-bezier(0.16, 1, 0.3, 1). Animate onlytransformandopacity.prefers-reduced-motionsupport is mandatory (in the base CSS).
Navigation runtime (keep the seed's script verbatim)
- Keyboard:
β/β,β/β,Space,PageUp/PageDown,Home/End. - Hash routing: current slide mirrored to
#/<index>; deep links andhashchangerestore the slide. - Mouse wheel (debounced ~650ms) and touch swipe (β₯40px threshold).
Output contract
- One self-contained
.htmlfile: all CSS and JS inline, no build step, no external JS libraries, no CDN scripts; Google Fonts link is the only external reference. - Icons are inline SVG stroked in
#d4ff00(or#1a1a2eon neon ticks). No remote images; halftone patterns, gradients, and panels are the visual language. - No scrolling, no overflow, no overlapping text panels. Comment each section
/* === SECTION NAME === */. - CSS gotcha: never negate CSS functions directly (
-clamp()is silently ignored) β usecalc(-1 * clamp(...)).
Attribution
Theme tokens and the fixed-stage model come from the upstream MIT-licensed zarazhangrui/frontend-slides (Β© 2025 Zara Zhang), Creative Voltage preset. The LICENSE file ships in this plugin folder; keep it in place when redistributing.