Install
$ agentstack add skill-nexu-io-open-design-ve-midnight-editorial ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
Midnight Editorial(午夜金辉)
A single-aesthetic deck plugin: the midnight-editorial preset from the upstream MIT-licensed nicobailon/visual-explainer skill (templates/slide-deck.html), pinned and shipped as one self-contained seed — example.html. The upstream mermaid diagram slide has been replaced by a pure CSS/SVG pipeline page; the deck has zero external JS dependencies (Google Fonts @import is the only external reference).
Signature combination (what makes this skin this skin):
- Deep navy + warm gold —
#0f1729page,#d4a73aaccent, parchment
text #e8e4d8. Cinematic, magazine-grade, dramatic.
- Serif display → mono label drop — Instrument Serif at up to 120px
(clamp(48px,10vw,120px), weight 400, -2px tracking, 0.95 line-height) falling directly to 13–14px uppercase JetBrains Mono labels with 1.5px letter-spacing. No intermediate sans anywhere.
- Gold radial accent glow — every content slide carries one
radial-gradient(ellipse at X% Y%, var(--accent-dim) 0%, transparent ~40%) inline background, with the ellipse anchor moving per slide.
- Gold SVG corner marks + ghost numerals — 2px gold corner line marks at
opacity 0.15 on the title slide; dividers carry a ghost clamp(100px,22vw,260px) gold numeral at opacity 0.06.
- Cinematic staggered transitions — slides enter with
fade + translateY(40px) + scale(0.98) on cubic-bezier(0.16,1,0.3,1); .reveal children stagger at 0.1s increments (max 6).
- SlideEngine dual theme — explicit dark/light toggle (T key + ◐ chrome
button, html[data-theme]), defaulting to the OS preference. The light mode is a locked cream/gold skin, not an afterthought.
Start from example.html. Replace content only — never rewrite the design system or the runtime script, and never introduce colors or fonts outside the token sheets below.
Locked token sheet — dark (default)
:root {
--font-body: 'Instrument Serif', Georgia, serif;
--font-mono: 'JetBrains Mono', 'SF Mono', Consolas, monospace;
--bg: #0f1729;
--surface: #162040;
--surface2: #1d2b52;
--surface-elevated: #243362;
--border: rgba(200, 180, 140, 0.08);
--border-bright: rgba(200, 180, 140, 0.16);
--text: #e8e4d8;
--text-dim: #9a9484;
--accent: #d4a73a;
--accent-dim: rgba(212, 167, 58, 0.1);
--code-bg: #0a0f1e;
--code-text: #d4d0c4;
--green: #4ade80; --green-dim: rgba(74, 222, 128, 0.1);
--red: #f87171; --red-dim: rgba(248, 113, 113, 0.1);
--blue: #60a5fa; --blue-dim: rgba(96, 165, 250, 0.1);
}
Locked token sheet — light (html[data-theme="light"])
html[data-theme="light"] {
--bg: #faf8f2;
--surface: #ffffff;
--surface2: #f5f0e6;
--surface-elevated: #fffdf5;
--border: rgba(30, 30, 50, 0.08);
--border-bright: rgba(30, 30, 50, 0.16);
--text: #1a1814;
--text-dim: #6e685c;
--accent: #b8860b;
--accent-dim: rgba(184, 134, 11, 0.08);
--code-bg: #2a2520;
--code-text: #e8e4d8;
--green: #16a34a; --green-dim: rgba(22, 163, 74, 0.08);
--red: #dc2626; --red-dim: rgba(220, 38, 38, 0.08);
--blue: #2563eb; --blue-dim: rgba(37, 99, 235, 0.08);
}
The same light block is mirrored under @media (prefers-color-scheme: light) { html:not([data-theme]) { … } } as a no-JS fallback. Both themes are part of the contract — every slide you author must read correctly in both. Semantic colors (--green/--red/--blue) are for status only (trends, before/after labels, diagram node families) — never decorative.
Fonts (locked — Google Fonts @import only)
| Slot | Font | Usage | | --- | --- | --- | | --font-body | Instrument Serif (400 + italic), Georgia fallback | display, headings, body, KPI values, quotes | | --font-mono | JetBrains Mono 400/500/600/700 | labels, subtitles, counters, axis/edge labels, code |
No third font. No bold serif — drama comes from size, not weight.
Typography scale (locked)
| Element | Spec | | --- | --- | | .slide__display | clamp(48px,10vw,120px), 400, -2px, lh 0.95, gold on title | | .slide__heading | clamp(28px,5vw,48px), 400, -0.5px, lh 1.15 | | .slide__body | clamp(16px,2.2vw,22px), lh 1.6, --text-dim | | .slide__subtitle | mono clamp(12px,1.5vw,18px), uppercase, 1px tracking | | .slide__label | mono clamp(10px,1.2vw,13px), 600, uppercase, 1.5px, gold | | Divider ghost numeral | clamp(100px,22vw,260px), opacity 0.06, gold |
Layout masters (compose 8–15 pages from these)
| Master | Class | Notes | | --- | --- | --- | | Title / cover | .slide--title | centered, gold display, corner-mark SVGs, glow at 50% 30% | | Agenda / TOC | .slide--toc | gold mono numbers + serif items + right-aligned mono hints, hairline rules | | Section divider | .slide--divider | ghost gold numeral behind heading + mono subtitle | | Content (asymmetric) | .slide--content | 3fr/2fr grid: gold-dot bullets left, decorative SVG aside right | | Split (before/after) | .slide--split | full-bleed 3fr/2fr surface panels, red "Before" / green "After" labels | | Diagram | .slide--diagram + .pipeline-wrap | pure CSS pipeline: 2px accent-bordered nodes, mono edge labels, arrow connectors, legend. Node families: gold (core), blue (process), green (output/storage). Never mermaid, never any external JS. | | Dashboard / big numbers | .slide--dashboard | KPI cards: serif clamp(36px,6vw,64px) values + mono labels + trend lines | | Chart | .slide--chart + .bar-chart | pure CSS bars (gradient gold fill; --ghost dashed variant for baselines), mono values + axis labels | | Table | .slide--table + .data-table | mono uppercase headers, zebra rows, gold hover (CSS available in seed) | | Code | .slide--code | --code-bg block, gold filename tab, .hl/.cm spans (CSS available in seed) | | Quote | .slide--quote | ghost gold “ at opacity 0.06, italic serif quote, mono cite | | Full-bleed closing | .slide--bleed | fixed dark #0a0f1e → #0f1729 → #162040 gradient (code-bg → bg → surface, all in-family navy) + scrim, white text (intentionally stays dark in light mode) |
Decorative devices (locked)
- One gold radial glow per content slide (inline
background-image,
var(--accent-dim) ellipse, anchor varies per slide — never two glows).
- Gold corner-mark SVGs (2px lines, opacity 0.15) on the title slide.
- Ghost gold numerals on dividers; ghost quote mark on quote slides.
- Decorative asides are inline SVG only — circles/lines in theme colors with
a mono caption. No icon fonts, no images, no external assets.
- At most 6
.revealchildren per slide (stagger delays stop at 0.6s).
Page structure & runtime (locked)
- Single self-contained HTML file; `` containing
`` pages; vertical scroll-snap, one viewport (100dvh) per slide, no internal scrolling.
- SlideEngine builds all chrome at runtime: gold 3px progress bar, right-edge
dot rail, mono counter, fading hints, ◐ theme button.
- Navigation: ←/→/Space/PageUp/PageDown/Home/End keys, touch swipe,
scroll-snap wheel; #/N hash routing (restored on load, updated on slide change); T toggles dark/light.
prefers-reduced-motiondisables all transitions; responsive height
breakpoints (700/600/500px) and a 768px width breakpoint are part of the contract.
Hard rules
- Start from
example.html; replace slide content only. Do not rewrite the
CSS or the SlideEngine script.
- No colors or fonts outside the two locked token sheets. No new hex values.
- Both themes must work — check every slide in dark and light.
- Zero external JS: no mermaid, no Chart.js, no CDN scripts. Diagrams and
charts are pure CSS/SVG using the masters above. Google Fonts @import is the only allowed external reference.
- Real content, real numbers — no lorem ipsum. Replace all fictional
"Nocturne" demo content.
- 8–15 slides; always open with
.slide--titleand close with
.slide--bleed or .slide--quote.
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: nexu-io
- Source: nexu-io/open-design
- License: Apache-2.0
- Homepage: https://open-design.ai
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.