huashu-sparkline-arc
Lets your agent explain the factors driving a company's revenue and forecast future results. It's useful for presenting financial data and strategies to the board.
What it does
This tool creates visual presentations called 'narrative decks'. They use a specific style with a wavy line showing the evolution of an idea from its current state to a desired future, highlighting turning points with orange.
When to use it
- ✓To clearly present complex financial data.
- ✓To tell a company's growth story to investors.
- ✓To explain a business plan or strategy to the board.
Example of what to ask your AI
“Create a presentation about our company's revenue growth over the past year, showing key drivers and future forecast.”
Want more? Open the sections below.
How to use
The easiest way: copy the message below and paste it into Claude, ChatGPT, Cursor or any AI. It reads the skill and follows the instructions.
Skill link
Ready-to-paste message
How it works
The AI uses a predefined presentation template with a waveform that moves between 'what is' and 'what could be'. It replaces existing content to tell your story, using orange only at crucial change points.
Installation
Easiest way: copy the skill link and paste it into Claude, ChatGPT or Cursor asking it to follow the instructions.
In the terminal (Claude Code, Codex, Cursor), in your project folder:
npx skills add nexu-io/open-design --skill huashu-sparkline-arcOr download just the file:
curl -L https://raw.githubusercontent.com/nexu-io/open-design/main/plugins/_official/examples/huashu-sparkline-arc/SKILL.md -o SKILL.mdTechnical content (original SKILL.md)
Original text by the author, straight from GitHub.
Narrative Sparkline · 叙事波形
Produce a single-file, Duarte-style narrative deck. You are a story
cartographer working in HTML: every page is built on one oscillating waveform
that travels between "what is" and "what could be", and orange appears only
where the story turns. The visual system, canvas contract, and navigation
runtime are locked by example.html. Start from example.html, replace
content only — do not rewrite the design or the script. Do not introduce any
color or font outside this spec.
Generated from the Sparkline叙事波形 / Narrative Sparkline (Duarte式) spec
(中性派, 还原91%) in references/design-styles.md of
huashu-design by 花叔
(alchaincyf), MIT licensed. Lineage: Nancy Duarte《Resonate》sparkline
structure, Al Gore An Inconvenient Truth, Duarte Inc. data storytelling.
Hard spec (locked — violating any line is a regression)
Canvas & runtime
- One
<div id="stage">fixed at 1920 × 1080 px, centered withposition: fixed; top: 50%; left: 50%; afit()function appliestranslate(-50%, -50%) scale(min(innerWidth/1920, innerHeight/1080))on load andresize. All inner layout in px — the scaler owns responsiveness. - Each page is one
<section class="slide">inside#stagewith adata-screen-label="01 封面"-style label; exactly one slide carries.active; dark pages add.dark. - Navigation (keep the script verbatim):
←/↑/PageUpprevious,→/↓/Space/PageDownnext,Home/Endfirst/last;#/Nhash routing (1-indexed) read on load +hashchange, written viahistory.replaceState; click left third = back, rest = forward; fixed counter pill bottom-right, key-hint bottom-left. No external JS, no build step — the file must open inside a sandboxed iframe viafile://.
Design tokens (:root — keep the names, re-theme values only)
| Token | Value | Role |
|---|---|---|
--paper |
#FFFFFF |
light page background |
--night |
#0E0E0C |
dark pages (solo-line, closing) |
--ink |
#1A1814 |
primary text on light |
--night-ink |
#F5F3EE |
primary text on dark |
--accent |
#FF6B2C |
the brand orange — the only accent |
--accent-dim |
rgba(255,107,44,.14) |
annotation halos / soft fills |
--ghost |
#C9C7C2 |
greyed comparison waveform |
--grid |
#ECEAE6 |
hairline rules |
--muted |
#9A958C |
secondary labels |
--muted-2 |
#5F5A52 |
body copy on light |
--night-line |
#26241F |
hairlines on dark pages |
--night-mut |
#8A857C |
secondary text on dark |
--sans |
'Inter', 'PingFang SC', …, sans-serif |
headlines + body |
--mono |
'Geist Mono', 'SFMono-Regular', 'Menlo', monospace |
labels, annotations, numerals |
Fonts: one Google Fonts @import (Inter 400–900 + Geist Mono 400–600)
and nothing else. No CDN scripts, no chart libraries, no images — every chart
is a hand-written inline SVG path. A second accent color is the cardinal sin
of this style; grey is the only other voice.
Signature devices (the visual DNA — every deck must show them)
- The waveform spine: every page carries at least one full-bleed
.sparkSVG with a smooth cubic-bézier oscillating path. Line layer usespreserveAspectRatio="none"so the path stretches; annotation dots/text live in a second, non-stretched SVG layer with the same viewBox so circles stay round and type stays true. Line weights:.arc5px orange hero line,.arc-thin3.5px,.ghost-line3px grey,.ghost-dashstroke-dasharray: 2 10grey baseline/industry reference. - Orange turning-point annotations:
.ptgroup = soft halo circle (--accent-dim), solid orange dot (r≈6–7), optional 2px orange ring for THE inflection point, plus Geist Mono uppercase.lab(12px, 2px tracking) and.val(20px, 600) value text. Grey.pt-ghostdots mark pain points on comparison lines. Orange marks turning points only — if every dot is orange, nothing turns. - Progressive reveal: paths carry
pathLength="1"+ classdraw(stroke-dasharray: 1; stroke-dashoffset: 1);.slide.active .drawanimatesstroke-dashoffsetto 0 (spark-draw, ~1.8s, ease-out-ish cubic-bezier). Segment stagger viad1/d2/d3, dot fade-ins viap1…p5(animation-delay ladder). Because.activetoggles display, the reveal replays every time a slide is entered — keep it that way.
…
FAQ
What is a 'narrative deck'?
It's a visual presentation focused on telling a clear and engaging story, using visual elements like wavy lines to show progression and turning points.
Why is the color orange important?
The color orange is used exclusively to highlight the most important moments in the story, the 'turning points', where something significant changes or is decided.
Can I change the design or add other colors?
No, the design is fixed and follows strict rules to maintain clarity and style. Only orange is allowed as an accent, along with shades of gray and white/black.
Details
Original description by the author
OpenDesign's revenue-driver narrative: what actually moves ARR, the leverage points, and the forecast. Built as a decision-grade data & finance deck for board, finance leadership.
repo: nexu-io/open-design
Popularity
- GitHub stars
- 101k
- Ranking position
- #568
- License
- Apache-2.0
- Updated
- 10/16/2026
Comments
- …
More skills from this repository
sample-plugin
Makes your agent create a metadata file for tests. It helps ensure code works correctly in different situations.
nexu-io/open-design
aster-atelier
Helps your agent create an artistic website with a classic look. It uses elegant imagery, blue skies, and serif fonts for a cinematic feel.
nexu-io/open-design
audio-jingle
Makes your agent generate audio like jingles and sound effects. It can create music and voices, saving the result as an audio file.
nexu-io/open-design
blog-post
Helps your agent write long articles or blog posts. It includes space for images, quotes, and author information.
nexu-io/open-design
Similar skills
architecture-decision-records
Has your agent record important project structure decisions. It helps to understand the reasoning behind choices and maintain a clear history of changes.
affaan-m/ECC
code-tour
Lets your agent create step-by-step code walkthroughs with exact file and line anchors. It's useful for project introductions, code explanations, or change reviews. Helps understand how a system works.
affaan-m/ECC
codebase-onboarding
Helps your agent analyze unfamiliar code and create an onboarding guide. It includes an architecture map, entry points, and conventions. Ideal for starting on a new project.
affaan-m/ECC