A career-pivot story from consultant to product leader — the arc, the proof, and why the next role is the right bet. Built as a decision-grade career deck for hiring manager, mentors.
Produce a single-file, publication-grade HTML deck. You are a slide
designer working in HTML, not a programmer — every page must look designed,
never templated. 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.
Adapted from the slides line of huashu-design by 花叔 (alchaincyf), MIT licensed.
<div id="stage"> fixed at 1920 × 1080 px, centered with
position: fixed; top: 50%; left: 50%.fit() function scales the stage to the viewport:
scale = min(innerWidth / 1920, innerHeight / 1080), applied as
translate(-50%, -50%) scale(s), re-run on resize. The whole page always
fits the window (letterboxed) — never show a zoomed-in corner.vw/vh/% for type) —
the scaler owns responsiveness.<section class="slide"> directly inside #stage, with a
data-screen-label="01 封面"-style label (1-indexed; humans never say
"slide 0")..active (display toggled by the script); dark
pages add the .dark class.←/↑/PageUp previous · →/↓/Space/PageDown next ·
Home/End first/last.#/N (1-indexed) read on load and hashchange, written via
history.replaceState on every navigation.03 / 10), key-hint bottom-left.scrollIntoView(), no external JS, no build step — the file must open
correctly inside a sandboxed iframe via file://.:root, keep the names)--paper warm paper light bg · --night warm near-black dark bg ·
--ink/--night-ink text · --accent the single accent (seed:
terracotta #C04A1A) · --hairline rules · --serif Noto Serif SC display ·
--serif-en Lora italic English subtitles · --sans body · --mono labels.
Re-theme by changing token values only (from the user's brand or an
active DESIGN.md); never introduce a second accent color.
| Layout | Role |
|---|---|
| cover | masthead + kicker + giant serif title + English italic subtitle |
| divider | dark bg + chapter number + oversized chapter title |
| content | one claim (60–84px) + at most 3 supporting cards |
| data | a giant number or chart as the visual protagonist |
| quote | whitespace + huge quote (with inline-SVG quote mark) + attribution |
| two-column | before/after · problem/solution comparison |
| closing | dark bg + giant CTA + key-hint capsule |
NN / total inside a slide (upstream's documented double-page-number bug).var(--serif) weight 900; key words get class="hl" (accent) —
never color the whole heading.Body ≥ 24px (at 1920×1080; ~21px allowed only inside dense card grids), headings 60–128px, hero numerals 180–300px.
<!-- 待用户提供 --> placeholder, not fake numbers.example.html, retitle it, swap token values if the user has a
brand, then replace each section's content following the layout
enumeration. Keep masthead/kicker/footer chrome and the script intact.#/N hash stay in sync; no page overflows 1920×1080; no 3+ same theme in
a row; body type ≥ 24px; grep for leftover TODO/placeholder text.✦ ✓ → ·).#0D1117 + neon glow "GitHub-dark" laziness.The HTML deck is always the source of truth. If the user only needs to present or archive, the HTML (or a browser-printed PDF) is the deliverable.
If the user explicitly needs an editable PPTX (colleagues will edit text in PowerPoint), the HTML must follow these constraints from the first line — retrofit costs hours:
<p>/<h1>–<h6>/<ul>/<ol> — no bare text in <div>,
no <span> as the main text carrier, no ::before/::after text.<p>/<h*> themselves (wrap in a div).background-image on divs (use <img>), no web
components, no complex decorative SVG.Tell the user honestly that this trades away visual freedom, and never
degrade the default HTML deck design just to keep PPTX possible. Conversion
itself is done with an HTML-to-PPTX tool of the user's environment (upstream
uses html2pptx); from this plugin, deliver the constraint-compliant HTML.
Copy a source-pinned command for your client. You run it yourself.
Destination: .claude/skills/huashu-slides · 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-slides" ".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-slides" ".claude/skills/"
rm -rf .skillboard-tmpDestination: .claude/skills/huashu-slides
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.