Fs editorial forest
Skill nexu-io/open-design/plugins/_official/examples/fs-editorial-forest
π¨ 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-editorial-forestAssembled 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
Art-directing a fashion house's annual report β the editorial system, the photography rhythm, and the data spreads. Built as a decision-grade design craft deck for brand stakeholders, exec audience.
SKILL.md
8.2 KB, as published. Nobody here has run it
Editorial Forest (ζι΄ηΌθΎι¨)
A quiet, considered editorial deck theme β deep forest green, dusty pink, and warm cream paper meet Source Serif 4. Built for quarterly reviews, internal readouts, studio updates, research recaps, and anything that should feel warm and unhurried rather than corporate. Avoid it for content that needs to feel urgent, punchy, or sales-driven.
Ported from the MIT-licensed zarazhangrui/beautiful-html-templates editorial-forest template.
Start from example.html in this plugin folder. It is the locked seed: keep the inline <deck-stage> runtime script, the :root token block, and every layout skin verbatim β replace only slide content. Do not rewrite the design, do not introduce colors or fonts outside the spec below.
Design tokens (locked β list verbatim in :root)
:root {
--green: #2e4a2a; /* forest green β dark canvas + primary text on cream */
--green-deep: #243a21; /* text on pink surfaces */
--green-lite: #3a5a36; /* lighter green tile variant */
--pink: #e89cb1; /* dusty pink β accent, text on green, bar series A */
--pink-deep: #d27e96; /* pink tile border */
--cream: #efe7d4; /* warm cream paper β light canvas, text on green */
--cream-2: #e6dcc4; /* secondary cream tile */
--ink: #1a1a17; /* body text on cream */
--serif: "Source Serif 4", "Source Serif Pro", Georgia, serif;
--mono: "JetBrains Mono", ui-monospace, Menlo, monospace;
}
- No other colors. No gradients, no shadows, no purple/indigo, no pure white or black surfaces.
rgba(239,231,212,0.18)(cream at 18%) is the only permitted alpha, used for chart grid lines. - No other fonts.
Source Serif 4(weights 300β800, weight 500 is the display default) for all headings and body;JetBrains Mono(400/500/700, weight 500 default) for kickers, numbers, captions, and axis labels. Load via the Google Fonts<link>already in the seed.
Typography & signature devices
- Display sizes: cover/summary h1 220px at
line-height: 0.92β0.94, section h2 80β96px, statement quote 140px, KPI numerals 220px (unit 110px in cream). Tracking β0.02em on serif display; mono labels run uppercase atletter-spacing: 0.12β0.18em, 24β28px. .labelmono uppercase kickers anchor every slide's top edge; paired left/right labels are the header signature.- The circular
.markmonogram (130px, 2px border) on the cover; the bottom.footlinerunning foot; 2px rule lines (border-top: 2px solid) above meta rows, KPI rows, and summary columns; cards with 6β8px radius and 2β2.5px borders. These devices are the theme β keep them.
Mixed scheme rhythm (8 slides)
Alternate dark, light, and pink canvases β never run more than two same-tone slides in a row:
| # | Master | Class | Canvas | Role |
|---|---|---|---|---|
| 1 | Cover | .cover | green | monogram topbar, 220px serif title, mono footline |
| 2 | Agenda | .agenda | cream | 5-tile mosaic grid (t-green spans 2 rows, t-pink/t-cream/t-greenLite) |
| 3 | Statement | .statement | pink | 140px serif quote + mono attribution row |
| 4 | Two-column | .two-col | cream | green figure panel (880px) + serif narrative + 3-col dl.meta |
| 5 | Data | .data | green | pure-CSS grouped bar chart (pink/cream bars, mono axes, grid-lines) |
| 6 | Framework | .framework | cream | 4 step cards: outline β pinkfill β fill β outline |
| 7 | Stats | .stats | green | 3 KPI callouts, 220px pink numerals over a pink rule |
| 8 | Summary | .summary | green | 220px pink closing word + 3-column takeaways |
Reuse these masters for longer decks (a second .two-col or .data, another .statement); keep the tone alternation. Charts stay pure CSS/HTML (percentage-height .bar divs); diagrams and icons are inline SVG stroked in token colors only β never Chart.js, mermaid, or remote images.
Stage system & runtime (locked)
- Every slide is one
<section class="β¦" data-screen-label="NN Label">authored at a fixed 1920Γ1080 (width: 1920px; height: 1080px; overflow: hidden), a direct child of<deck-stage aspect="1920/1080" no-rail>. - The inlined
deck-stageweb component scales the whole stage uniformly to the viewport:factor = min(viewportWidth/1920, viewportHeight/1080), applied as onetransform: scale()with letterbox/pillarbox centering, recomputed on resize. Never reflow content per device, never add responsive breakpoints inside slides; all measurements are fixed px at design size. - Inactive slides stay mounted and are hidden with
visibility/opacityβ neverdisplay: none. - Navigation ships with the runtime:
β/β, Space, PgUp/PgDn, Home/End, number keys;#<n>hash deep-link restore and write-back (plus the smallhashchangesupplement script at the end of the seed); print β one page per slide. - Keep the
deck-stage:not(:defined){visibility:hidden}guard and the whole inline runtime<script>verbatim. No external JS, no build step β the output is one self-contained.htmlfile.
Content guardrails
- No scrolling, no overflow, no overlapping panels. Split content into more slides instead of shrinking type.
- Quiet density: one idea per slide; agenda tiles get a 2β6 word headline + mono foot tag; body paragraphs 30px serif, max ~2 per column; KPI rows max 3; step rows max 4.
- Voice matches the design: literary, warm, low-pressure. Sentence-case headlines ending in a period ("Agenda.", "Fewer titles, finer paper.") are part of the look.
Attribution
Template design, palette, and the deck-stage runtime come from the upstream MIT-licensed zarazhangrui/beautiful-html-templates (Β© 2026 Zara Zhang), template editorial-forest. The LICENSE file ships in this plugin folder; keep it in place when redistributing.