name: huashu-luxe-whitespace description: | Luxe Whitespace (奢华留白) — quiet-luxury presentation decks adapted from the ppt-build showcase of 花叔 (alchaincyf)'s huashu-design. 70%+ whitespace on a warm off-white #FAFAF8 canvas, Inter 200–600 ultra-thin hierarchy, 120px weight-200 floating numerals with gold decimal points, one warm gold (#D4A574) spent on hairlines and winning comparison bars, gradient hairline separators (#E0DCD6). Use when the user wants a premium brand report, high-end product deck, quiet-luxury keynote, 品牌年度报告, 高端发布会, 奢侈品风格, or an understated thin-type presentation. triggers:
- "luxe whitespace"
- "quiet luxury deck"
- "premium brand report"
- "thin typography slides"
- "奢华留白"
- "高端品牌 PPT"
- "轻奢幻灯片"
- "极简留白年报" od: mode: deck surface: web preview: type: html entry: index.html design_system: requires: false example_prompt: "Use the Luxe Whitespace template to turn my story into a quiet-luxury HTML deck: 1920×1080 fixed warm off-white canvas, 70%+ whitespace, Inter 200–600 ultra-thin hierarchy, 120px weight-200 floating numerals with gold decimal points, one warm gold #D4A574 on hairlines and winning bars, gradient hairline separators. Start from example.html, replace the content only, and keep the design system intact." example_prompt_i18n: zh-CN: "用「奢华留白」模板把我的内容做成轻奢 HTML 幻灯片:1920×1080 米白画布、70% 以上留白、Inter 200–600 超细字重层级、120px 超细数字 + 金色小数点、唯一暖金 #D4A574 用在发丝线与对比条上、渐变发丝线分隔。从 example.html 出发只换内容,不要重写设计。"
Luxe Whitespace · 奢华留白
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.
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 and the locked page frame:padding: 64px 96px 48px 96px, flex column,.top-rowchrome at the top and.bottom-section(insight text + brand mark) pinned to the bottom viamargin-top: auto. Exactly one slide carries.active. - 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; the script also builds the gold slide-dot indicator into#dotsand syncs it ingo(). Counter pill bottom-right, key-hint bottom-left. No external JS, no build step — the file must open inside a sandboxed iframe.
Design tokens (: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 |
- Font loading: exactly one
@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. - One accent. A second color, a dark page, a gradient surface, or a drop shadow on content (the stage letterbox shadow is the sole exception) is the cardinal sin of this style.
Signature devices (the visual DNA — every deck must show them)
- Ultra-thin floating numerals: metric values at 120px weight 200 with
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 goldvertical-align: superatopacity: 0.8. - Gradient hairline separators: 1px verticals built with
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. - Gold-vs-grey comparison bars:
.comp-row= right-aligned 80px label + 2px--tracktrack + fill; the page's subject is always the 3px gold fill, competitors get the 2px grey--barfill; values sit outside the track (gold for the subject). Wide chart rows may use thelinear-gradient(to right, var(--gold), rgba(212,165,116,0.35))fade fill. - Page chrome: every page opens with
.top-row— 10px/400/4px-tracking uppercase.eyebrowleft, 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.midspan and a gold full stop (.gold-dot), 14px/300 subtitle, closed by a 1px--ruleborder. - Gold slide-dot indicator: 4px
--hairlinedots top-right; the active page becomes a 16px gold pill. Built by the script — do not hand-write dots into slides. - Gold punctuation: headlines end in a gold
。or.; gold is never applied to a whole headline or paragraph. Budget: ≤ 5 gold touches per page (a bar group counts as one).
Layout enumeration (use 5+ per deck, never one layout everywhere)
| 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 |
Typography & whitespace discipline
- Scale: eyebrow/captions 10–12px tracked uppercase · body 13–16px weight 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.
- 70%+ of every page is empty. One idea per page; at most 3 metric 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.
- No emoji, no icon fonts, no images, no dark pages, no borders thicker 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.
- Real content only — the user's actual numbers; missing data gets an honest
<!-- 待用户提供 -->placeholder, never invented statistics. (The seed deck's 「素白 SOBLANC」 perfume-house data is fictional demo content and must be fully replaced.)
Workflow
- Clarify once: topic, audience, page count, and which 2–4 numbers deserve the thin-numeral treatment. This style is carried by its floating numerals — choose them before writing any page.
- Copy
example.html, retitle, then replace each section's content following 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. - For ≥ 5 pages, showcase first: build the cover + one metrics page, confirm the grammar, then batch the rest.
- Self-check before delivery: arrow through every page; dots, counter,
and
#/Nhash 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 forTODO.