Huashu pentagram grid
Skill nexu-io/open-design/plugins/_official/examples/huashu-pentagram-grid
π¨ The open-source Claude Design alternative. π₯οΈ Local-first desktop app. πΌοΈ Your coding agent becomes the design engine: prototypes, landing pages, dashboards, slides, images & video β real files, HTML/PDF/PPTX/MP4 export. π€ Claude Code / Codex / Cursor / Gemini / OpenCode / Qwen & 20+ CLIs via BYOK.
npx -y skills add nexu-io/open-design --skill huashu-pentagram-gridAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
What its author says it does
Copied from the file, not written here
Open Design's positioning & messaging system: the one-line promise, the pillars, and the proof β the source of truth for all copy. Built as a decision-grade marketing & GTM deck for brand & marketing team.
SKILL.md
9.9 KB, as published. Nobody here has run it
Pentagram Info-Architecture Β· δΏ‘ζ―ε»ΊηΒ·ηΊ’
Produce a single-file, Swiss-grid data deck. You are an information
architect working in HTML: every page is a measured grid, every number has a
coordinate, and red appears exactly where the eye must land. 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-pentagram showcase of
huashu-design by θ±ε
(alchaincyf), MIT licensed. The upstream file is a single data page; this
plugin extends it into a full multi-section deck while preserving its DNA.
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 | #111111 | dark pages + chrome bars |
--ink | #111111 | primary text on light |
--night-ink | #FFFFFF | primary text on dark |
--accent | #E63946 | the only red β the only accent |
--grid | #E8E8E8 | hairline rules / column rules |
--track | #F5F5F5 | bar-chart track |
--bar-base | #E0E0E0 | losing / baseline bar |
--muted | #999999 | secondary labels |
--muted-2 | #666666 | body copy on light |
--faint | #BBBBBB | tertiary captions |
--night-line | #333333 | hairlines on dark pages |
--night-mut | #888888 | secondary text on dark |
--sans | 'Helvetica Neue', 'Helvetica', 'PingFang SC', 'Hiragino Sans GB', 'Microsoft YaHei', Arial, sans-serif | the only family |
Zero external dependencies: no Google Fonts, no @import, no CDN. One
font stack, one accent. A second accent color is the cardinal sin of this
style.
Signature devices (the visual DNA β every deck must show them)
- 64px black chrome bars top and bottom of every light page: top bar =
uppercase 12px/700/3px-tracking label left (with a red
/separator) + red uppercase label right; bottom bar = 900-weight logotype + 1px#444vertical divider + grey footnote left, red uppercase label right. Dark pages swap solid bars for 1px--night-linehairline strips with the same text. - Grid hairlines: absolutely-positioned 1px verticals
(
top:64px; bottom:64px) and horizontals (left/right:80px) atopacity: 0.05black (0.08white on dark). 80px outer margins are the master gutter; columns land on them. - Giant numeral anchor: one 180β260px, weight-900,
negative-tracked (β β1px per 20px of size) number per hero page; its
decimal point, slash, or unit glyph is red (
<span class="decimal">/.red). Hero numerals on dark divider pages may be fully red. - Red/dark/grey bar charts:
.bar-row= right-aligned 90px label +--tracktrack + fill (winnerred /darkblack /basegrey) with the value printed inside, right-aligned, white (grey onbase). The subject of the page is always the red bar. Optional.deltared uppercase annotation underneath. - Summary strip:
border-top: 1px solid var(--grid)row of.summary-items β 32px/900 number with one red glyph + 11px uppercase spaced caption. - Outlined red badge (
.open-badge): 2px red border, red uppercase 11px text, optional inline-SVG dot glyph. Square corners β this style has zero border-radius anywhere except the runtime counter pill.
Layout enumeration (use 5+ per deck, never one layout everywhere)
| Layout | Role |
|---|---|
cover | giant statement headline (red full stop) + right-column hero numeral |
contents | numbered red-kicker rows separated by --grid hairlines |
big-number | one 260px numeral protagonist + side stat rail |
data-theater | left hero column + 2β3 .bench-col bar-chart columns + summary strip (the upstream master) |
divider | dark page, 260px red chapter number + oversized title |
two-column | before/after comparison: grey bars left, red bars right |
timeline | equal columns, 96px year numerals graded greyβblackβred |
quote | whitespace + red SVG quote marks + 54px/900 quote, key phrase red |
stats-grid | 2Γ2 grid of 128px numerals with red glyph accents |
closing | dark page, giant CTA with red punctuation + key-hint capsule |
Typography & scale (read from 10 meters)
- Headlines 64β120px weight 900, tracking β2 to β5px. Hero numerals
180β260px weight 900. Body 15β18px,
--muted-2, line-height 1.7, emphasized spans in--ink700. - Labels: 11β13px, weight 700,
letter-spacing: 2β3px,text-transform: uppercaseβ this is the connective tissue of the style. - Chinese copy uses γγ quotes and full-width punctuation; red is applied to single punctuation glyphs (γ οΌ /) inside headlines, never whole headings.
Rhythm & discipline
- Default 10 pages (8β11 allowed). White pages dominate; at most 2β3 dark pages (divider + closing, optionally one dark hero) β this is a white style with black bookends, not a dark theme.
- Red budget: β€ 4 red touches per page (bars count as one device). If everything is red, nothing is.
- No emoji, no icon fonts, no decorative illustrations, no gradients, no shadows, no rounded corners. Flat ink on paper. Icons, if truly needed, are minimal inline SVG strokes.
- Real content only β the user's actual numbers; missing data gets an honest
<!-- εΎ η¨ζ·ζδΎ -->placeholder, never invented statistics. (The seed deck's "ζθ‘‘" data is fictional demo content and must be fully replaced.)
Workflow
- Clarify once: topic, audience, page count, and which 2β4 numbers are the protagonists. This style lives and dies by its hero numerals β pick them before writing any page.
- Copy
example.html, retitle, then replace each section's content following the layout enumeration. Keep chrome bars, grid hairlines, token names, and the script intact. Re-theme by changing token values only β and only if the user's brand genuinely demands it; the red/black/white triad is the identity. - For β₯ 5 pages, showcase first: build the cover + one data-theater page, confirm the grammar, then batch the rest.
- Self-check before delivery: arrow through every page; counter and
#/Nhash stay in sync; no overflow beyond 1920Γ1080; bar widths match their printed values proportionally; every page shows the chrome bars and at least one grid hairline; red count per page β€ 4; no leftover demo ("ζθ‘‘"/"XIHENG") text; grep forTODO.