OpenDesign procurement & security leave-behind: the one-pager-plus a buying committee can forward and approve internally. Built as a decision-grade B2B sales deck for buying committee, security, procurement.
Produce a single-file, soft nature-toned tech deck. You are a research
studio designer working in HTML: every chart is composed like a museum plate,
every color is borrowed from moss, paper and dusk. 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.
Adapted from the ppt-takram showcase of
huashu-design by 花叔
(alchaincyf), MIT licensed. The upstream file is a single benchmark page;
this plugin extends it into a full multi-section deck while preserving its
DNA: data visualization treated as an art piece.
<div id="stage"> fixed at 1920 × 1080 px, centered with
position: fixed; top: 50%; left: 50%; a fit() function applies
translate(-50%, -50%) scale(min(innerWidth/1920, innerHeight/1080)) on
load and resize. All inner layout in px — the scaler owns responsiveness.<section class="slide"> inside #stage with a
data-screen-label="01 封面"-style label; exactly one slide carries
.active. This is an all-light style — there are no dark pages;
rhythm comes from density alternation, not theme swaps.←/↑/PageUp previous,
→/↓/Space/PageDown next, Home/End first/last; #/N hash
routing (1-indexed) read on load + hashchange, written via
history.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 via file://.:root — keep the names, re-theme values only)| Token | Value | Role |
|---|---|---|
| --paper | #F5F0EB | warm rice-paper page background |
| --ink | #2D3436 | heading ink |
| --body | #3A3A3A | body ink |
| --green | #6B8F71 | sage green — the primary accent |
| --green-2 | #7D9B72 | lighter sage (delta pills, fills) |
| --sage | #A8B5A0 | pale sage (labels, washes, flow lines) |
| --gold | #D4A574 | the only warm accent — 2nd data series |
| --gray-warm | #C8C2B8 | warm gray — 3rd data series, captions |
| --gray-line | #D4CFC6 | delicate axis / rule lines |
| --gray-dash | #DDD9D2 | dashed grid circles |
| --gray-bg | #E8E4DC | faint outermost rings |
| --muted | #615C54 | secondary text (warm ink, WCAG AA on paper) |
| --faint | #736D64 | tertiary captions (warm ink, WCAG AA) |
| --card | rgba(255,255,255,0.6) | translucent card background |
| --card-line | rgba(168,181,160,0.18) | card hairline border |
| --serif | 'Noto Serif SC', 'Songti SC', serif | display headings, quotes, insight text |
| --sans | 'Inter', 'PingFang SC', 'Hiragino Sans GB', sans-serif | labels, numbers, body |
Fonts come from one Google Fonts @import (Inter 300–600 + Noto Serif SC
300–700) — the only external reference allowed. No purple, no blue, no
neon, no pure black, no gradients other than the two locked radial washes.
--gray-dash,
stroke-dasharray="2,6", decreasing stroke-width outward-in), delicate
0.5px axis lines, tiny hollow endpoint circles, faint scale numbers, and
a 3-series overlay: green polygon prominent (stroke 2, dot r=6 with
halo ring), gold secondary (stroke 1.2, dot r=3.5), warm-gray tertiary
(stroke 1 dashed, dot r=2.5). Value callouts use thin annotation lines
Fig. NN — Title caption in --gray-warm.::before carries the two locked
radial-gradients (sage at 20%/50%, warm gray at 80%/30%, ≤8% alpha) — the
page must breathe, never be flat white..soft-card): 16px radius,
rgba(255,255,255,0.6) fill, --card-line hairline border, and a 32px ×
2px sage tick at top-left (::before). Value typography: 38–44px
weight-300 numerals with a smaller green unit span; deltas in a rounded
sage pill with a tiny SVG triangle (gold pill allowed once per page for a
special callout).rgba(107,143,113,0.15); left = green dot + 11px/500/3px-tracking
uppercase deck name; right = 10px/400 --faint section label. Footer:
11px faint credit line bottom-left, Fig./Sec. note bottom-right. Page
numbering lives only in the runtime counter pill.--serif weight 400–500 (never 700+ display bombast); all labels,
numerals, units and captions in --sans. English subtitles are 15–18px
weight-300 --muted prose under Chinese serif titles..insight card (10px uppercase sage
label + serif 17px/1.9 finding text) for key takeaways.| Layout | Role |
|---|---|
| cover | left serif display title + badge, right oversized dashed-ring SVG art |
| contents | serif rows + green index numbers separated by sage hairlines |
| philosophy | one 60–70px serif claim + 3 soft-cards |
| big-number | 240–280px weight-300 numeral + green unit + hairline stat row |
| radar (the master) | 480px left panel (kicker/serif title/badge/insight/credit) + right radar plate + 3 metric cards — preserve this two-panel grid from upstream |
| diagram | SVG flow/architecture plate: dashed clusters, sage dashed flow paths, gold middle node, green terminal node |
| metrics-grid | 2×3 soft-card grid with delta pills |
| quote | centered serif 52px quote, gold SVG quote marks, key phrase in green |
| roadmap | hairline timeline, dots graded --gray-warm → --sage → --green-2 → --green (last with halo) |
| closing | centered serif CTA over faint concentric rings + badge |
letter-spacing: 1.5–3px, uppercase — the
connective tissue of the style. Body/captions 13–18px weight 300,
line-height 1.7–1.9.drop-shadow(0 4px 20px rgba(0,0,0,0.04)), no border heavier than 1px
except SVG data strokes, no Chart.js/mermaid — all charts are hand-laid
inline SVG.<!-- 待用户提供 --> placeholder, never invented statistics. (The seed
deck's 「青屿/QINGYU」 data is fictional demo content and must be fully
replaced.)example.html, retitle, then replace each section's content
following the layout enumeration. Keep masthead/footer chrome, washes,
token names, and the script intact. Re-theme by changing token values
only — and only if the user's brand genuinely demands it; the
sage/gold/warm-gray triad on rice paper is the identity.(cx + r·sin(θ), cy − r·cos(θ)) with r = 220 · value/100,
θ ∈ {0°, 120°, 240°} around (280, 280) — printed values and polygon
shape must agree proportionally.#/N hash stay in sync; no overflow beyond 1920×1080; every chart plate
has its Fig. NN caption; only the three series colors appear in any
chart; no leftover demo (「青屿」/"QINGYU") text; grep for TODO.Copy a source-pinned command for your client. You run it yourself.
Destination: .claude/skills/huashu-takram-soft-tech · pinned to the source commit
# Run from your project root
git clone https://github.com/nexu-io/open-design.git .skillboard-tmp
git -C .skillboard-tmp checkout 9881cff70e02be86c2a58130af512011ba23d4af
mkdir -p ".claude/skills"
cp -r ".skillboard-tmp/plugins/_official/examples/huashu-takram-soft-tech" ".claude/skills/"
rm -rf .skillboard-tmpReview the source before running. This copies files into your project; it is not a one-click install and does not verify runtime safety.
sudo apt update && sudo apt install -y gitnpm install -g @anthropic-ai/claude-code# Run from your project root
git clone https://github.com/nexu-io/open-design.git .skillboard-tmp
git -C .skillboard-tmp checkout 9881cff70e02be86c2a58130af512011ba23d4af
mkdir -p ".claude/skills"
cp -r ".skillboard-tmp/plugins/_official/examples/huashu-takram-soft-tech" ".claude/skills/"
rm -rf .skillboard-tmpDestination: .claude/skills/huashu-takram-soft-tech
Scanner static-checks@0.1.0 · commit 9881cff70e02. Static checks cannot prove runtime safety – review the source and the exact diff before installing. How checks work.
No static rules matched. This is not a safety guarantee.