Install any skill in seconds. Free to start, no credit card required.
Get Started Free →A market-entry study for a luxury skincare brand entering Asia — segmentation, positioning, channel, and the phased plan. Built as a decision-grade consulting deck for client leadership.
.claude/skills/nexu-io-huashu-luxe-whitespace/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-04 | ✗→✓ | ▲ Improved | 32% | 0% |
| case-09 | ✗→✓ | ▲ Improved | 169% | 0% |
| case-18 | ✗→✓ | ▲ Improved | 32% | 0% |
| case-10 | ✓→✗ | ▼ Worse | 33% | 0% |
| case-21 | ✓→✗ | ▼ Worse | 32% | 0% |
Produce a single-file, quiet-luxury deck. You are typesetting for a maison, not a startup: every page breathes, numbers float in ultra-thin weights, and gold appears only as a hairline or a decimal point — never as a surface. 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-build 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: the off-white field, the thin floating metrics, the gold-vs-grey comparison bars, and the gradient hairline separators.
<div id="stage"> fixed at 1920 × 1080 px, centered withposition: 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 adata-screen-label="01 封面"-style label and the locked page frame: padding: 64px 96px 48px 96px, flex column, .top-row chrome at the top and .bottom-section (insight text + brand mark) pinned to the bottom via margin-top: auto. Exactly one slide carries .active.
←/↑/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; the script also builds the gold slide-dot indicator into #dots and syncs it in go(). Counter pill bottom-right, key-hint bottom-left. No external JS, no build step — the file must open inside a sandboxed iframe.
:root — keep the names, re-theme values only)| Token | Value | Role | |---|---|---| | --bg | #FAFAF8 | warm off-white page — the only background | | --ink | #2A2A2A | primary ink (soft black, never #000) | | --gold | #D4A574 | the only accent — hairlines, decimals, winning bars | | --hairline | #E0DCD6 | gradient hairline separators | | --rule | #EEECE8 | horizontal section rules / counter border | | --track | #EEECEA | comparison bar track | | --bar | #D8D5D0 | baseline / losing bar | | --muted | #696963 | metric names, strong captions | | --soft | #74746E | subtitles | | --faint | #B8B4AE | tertiary captions, eyebrow | | --ghost | #C8C4BC | brand text, source notes, oldest timeline year | | --body | #6E6E68 | insight body copy (WCAG AA on --bg) | | --sans | 'Inter', 'PingFang SC', 'Hiragino Sans GB', 'Microsoft YaHei', sans-serif | the only family |
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@200;300;400;500;600&display=swap') at the top of the stylesheet. Weights 200/300/400/500/600 only — 700+ is forbidden; emphasis in this style is achieved by stepping 300 → 500, not by bolding.
shadow on content (the stage letterbox shadow is the sole exception) is the cardinal sin of this style.
letter-spacing: -4px; hero numbers up to 240px weight 200 (letter-spacing: -10px). The decimal point is always a gold <span class="dot">.</span> at weight 300; units are 28–56px weight 200 gold vertical-align: super at opacity: 0.8.
linear-gradient(to bottom, transparent, var(--hairline) 50%, transparent) — between metric cards (::after), timeline columns, and the two-column divider. Never a solid full-height border.
.comp-row = right-aligned 80px label +2px --track track + fill; the page's subject is always the 3px gold fill, competitors get the 2px grey --bar fill; values sit outside the track (gold for the subject). Wide chart rows may use the linear-gradient(to right, var(--gold), rgba(212,165,116,0.35)) fade fill.
.top-row — 10px/400/4px-trackinguppercase .eyebrow left, 10px/300 right-aligned .source-note — and closes with .bottom-section — 13px/300 .insight-text (emphasis = <strong> at 500/#666) left, .brand-mark (32px gold hairline + 10px tracked brand text) right. Title pages add .title-area: 40px weight-200 headline with a weight-400 .mid span and a gold full stop (.gold-dot), 14px/300 subtitle, closed by a 1px --rule border.
--hairline dots top-right; the activepage becomes a 16px gold pill. Built by the script — do not hand-write dots into slides.
。 or .; gold is neverapplied to a whole headline or paragraph. Budget: ≤ 5 gold touches per page (a bar group counts as one).
| Layout | Role | |---|---| | cover | 104px thin statement headline + gold full stop + 64px gold rule + 280px ghost year numeral at 5% opacity | | contents | hairline-ruled rows: 32px thin gold number + 22px/300 title + uppercase right caption | | big-number | one 240px thin numeral protagonist + gold-ruled side column (label + 15px/300 body) | | metrics | 2–3 .metric-card columns with 120px numerals + comparison groups + hairline separators (the upstream master) | | channels | full-width horizontal bar rows: name + EN small caption, gradient gold winner, 32px thin values | | timeline | equal hairline-separated columns, 88px year numerals graded ghost→faint→muted→ink, gold dot on the current year | | quote | centered: vertical gold fade hairline + 52px/200 quote (key phrase gold) + uppercase attribution | | two-column | before/after: ghost numerals left vs ink+gold numerals right, gradient hairline divider | | stats-grid | 2×2 grid of 96px thin numerals, crossed gradient hairlines through the center | | closing | 120px thin sign-off + gold full stop + uppercase EN echo + gold rule |
300, line-height 1.8–2 · titles 40px weight 200 · metrics 120px · heroes 240px. Tracking: +2 to +4px on small uppercase, −0.5 to −10px on large thin type. Chinese copy uses 「」 quotes and full-width punctuation.
cards, 4 bar rows, 4 timeline columns, 4 stat cells, 7 contents rows. If content doesn't fit with this much air, add a page — never shrink the whitespace.
than 1px (bars excepted at 2–3px), no border-radius except the counter pill and bar tracks. Icons, if truly needed, are 1px-stroke inline SVG.
<!-- 待用户提供 --> placeholder, never invented statistics. (The seed deck's 「素白 SOBLANC」 perfume-house data is fictional demo content and must be fully replaced.)
deserve the thin-numeral treatment. This style is carried by its floating numerals — choose them before writing any page.
example.html, retitle, then replace each section's contentfollowing the layout enumeration. Keep the page chrome, hairline devices, token names, and the script intact. Re-theme by changing token values only — and only if the user's brand genuinely demands it; the off-white + warm gold pairing is the identity.
confirm the grammar, then batch the rest.
and #/N hash stay in sync; no overflow beyond 1920×1080; bar widths match their printed values proportionally; every page shows the eyebrow row, the bottom brand mark, and at least one hairline device; no weight above 600 anywhere; gold count per page ≤ 5; no leftover demo ("素白"/"SOBLANC") text; grep for TODO.
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-16 | fail→fail | 38,610 | 38,292 | -1% | 1 | 1 | 0% | 8,161 | 10,890 | +33% | 0 | 0 | — |
case-17 | fail→fail | 38,556 | 37,536 | -3% | 1 | 1 | 0% | 8,058 | 10,896 | +35% | 0 | 0 | — |
case-01 | fail→fail | 39,542 | 45,452 | +15% | 1 | 1 | 0% | 8,266 | 10,940 | +32% | 0 | 0 | — |
case-02 | fail→fail | 40,857 | 37,022 | -9% | 1 | 1 | 0% | 8,265 | 10,939 | +32% | 0 | 0 | — |
case-03 | fail→fail | 38,559 | 36,381 | -6% | 1 | 1 | 0% | 8,273 | 10,947 | +32% | 0 | 0 | — |
case-04 | fail→pass | 39,166 | 36,819 | -6% | 1 | 1 | 0% | 8,243 | 10,917 | +32% | 0 | 0 | — |
case-05 | fail→fail | 39,306 | 39,296 | -0% | 1 | 1 | 0% | 8,231 | 10,905 | +32% | 0 | 0 | — |
case-06 | fail→fail | 37,955 | 36,749 | -3% | 1 | 1 | 0% | 8,071 | 10,902 | +35% | 0 | 0 | — |
case-07 | fail→fail | 34,139 | 38,343 | +12% | 1 | 1 | 0% | 7,324 | 10,901 | +49% | 0 | 0 | — |
case-08 | fail→fail | 39,451 | 37,621 | -5% | 1 | 1 | 0% | 8,226 | 10,900 | +33% | 0 | 0 | — |
case-09 | fail→pass | 20,380 | 37,361 | +83% | 1 | 1 | 0% | 4,058 | 10,898 | +169% | 0 | 0 | — |
case-10 | pass→fail | 39,464 | 38,809 | -2% | 1 | 1 | 0% | 8,219 | 10,893 | +33% | 0 | 0 | — |
case-11 | fail→fail | 40,882 | 37,488 | -8% | 1 | 1 | 0% | 8,228 | 10,902 | +32% | 0 | 0 | — |
case-12 | fail→fail | 27,837 | 37,990 | +36% | 1 | 1 | 0% | 5,753 | 10,891 | +89% | 0 | 0 | — |
case-13 | fail→fail | 41,615 | 38,372 | -8% | 1 | 1 | 0% | 8,227 | 10,901 | +33% | 0 | 0 | — |
case-14 | fail→fail | 35,078 | 40,122 | +14% | 1 | 1 | 0% | 7,479 | 10,902 | +46% | 0 | 0 | — |
case-15 | fail→fail | 39,506 | 42,364 | +7% | 1 | 1 | 0% | 8,224 | 10,898 | +33% | 0 | 0 | — |
case-18 | fail→pass | 40,944 | 41,276 | +1% | 1 | 1 | 0% | 8,234 | 10,908 | +32% | 0 | 0 | — |
case-19 | fail→fail | 36,099 | 36,456 | +1% | 1 | 1 | 0% | 7,953 | 10,899 | +37% | 0 | 0 | — |
case-20 | fail→fail | 29,789 | 38,086 | +28% | 1 | 1 | 0% | 6,437 | 10,897 | +69% | 0 | 0 | — |
case-21 | pass→fail | 38,094 | 37,901 | -1% | 1 | 1 | 0% | 8,230 | 10,904 | +32% | 0 | 0 | — |
case-22 | pass→fail | 20,330 | 37,645 | +85% | 1 | 1 | 0% | 3,940 | 10,904 | +177% | 0 | 0 | — |
case-23 | pass→fail | 29,016 | 38,191 | +32% | 1 | 1 | 0% | 7,019 | 10,897 | +55% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 23 cases were attempted. The headline lift of -4 percentage points is the difference between those two pass rates over the 23 comparable cases. 4 cases got worse with the skill loaded, and they are included in that figure.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.