kami-landing skill
Produce a print-grade single-page kami (紙 / 纸) document — warm parchment canvas, ink-blue accent, serif at one weight, no italic, no cool grays. The output reads like a professional white paper or studio one-pager, not an app UI. Multilingual by design (EN · zh-CN · ja). One self-contained HTML file, zero dependencies.
Is the kami-landing skill safe?
Clean: nothing in its files matched our rules. We read 3 files in the folder on 2026-09-28.
No findings.
Install the kami-landing skill
A skill is a folder. Copy it into your agent's skills folder and the agent loads it when the task matches its description.
git clone --depth 1 https://github.com/nexu-io/open-design.git /tmp/open-design mkdir -p ~/.claude/skills cp -r /tmp/open-design/design-templates/kami-landing ~/.claude/skills/kami-landing
In the Claude apps, zip the folder and upload it from the Skills settings. The folder on GitHub
The instructions your agent would load
SKILL.md as published, without the frontmatter. Read it on GitHub
kami-landing
Produce a single-page document in the kami (紙 / 纸) design system. The aesthetic borrows from editorial print, technical white papers, and old typewritten correspondence — the goal is good content on good paper, not modern app UI.
Design system source of truth: design-systems/kami/DESIGN.md.
Read it before shipping. Tokens, type rules, the "ten invariants",
and forbidden colors all live there.
What you get
A single self-contained HTML file with:
section number, the headline accent word, the left rule of the manifesto, and the metric values. Anywhere else, ink-blue must cover ≤ 5% of the document surface area.
- Warm parchment canvas (#f5f4ed) — never #ffffff.
- Single chromatic accent — ink-blue (#1B365D), used on the
TsangerJinKai02 / Source Han Serif (CN), or YuMincho (JA), selected by the language parameter. No italic anywhere.
- Serif at one weight (500) for hierarchy — Charter (EN),
per language (0 for EN, 0.35px for CN, 0.02em for JA).
- Tight print rhythm — line-heights 1.10–1.55, letter-spacing
metric columns and pagination digits sit cleanly aligned.
- Numeric stacks set in font-variant-numeric: tabular-nums so
No hard drop shadows, no neumorphism, no backdrop-filter blurs.
- Depth via 1px rings + whisper shadows (0 4px 24px rgba(0,0,0,0.05)).
print renderers double-paint alpha tags.
- Tag fills as solid hex (e.g. #E4ECF5), never rgba() —
- Responsive at 1280 / 980 / 768 / 560.
Page structure
1. Eyebrow row — locale switcher · edition · version (12px sans uppercase)
2. Hero — display headline (96–106px serif 500), tagline (21px),
three hero-token chips (paper-tinted)
3. Manifesto — pull paragraph in serif 400, 20px, 1.65 LH, with
ink-blue left-rule and signature footer
4. Metrics row — 3-6 cells: value (24px serif 500 ink-blue, tabular-nums),
label (12px serif 500 olive)
5. Chapters — numbered (`01`, `02`, …) ink-blue serif 500 14px,
section title 28-32px, body 14-15px
6. Footer — kicker word (mega serif 500), license · year · contact,
three-column site index in 12px serif 500Workflow contract
1. Gather brand brief
Use AskQuestion (or equivalent) to collect the brand brief in chunks. Don't dump the whole input list on the user; ask in two rounds:
primary URL, dominant language.
- Identity round — name, tagline, location, edition / version,
tiles, 3-5 chapter (title + lede + body) entries.
- Content round — manifesto paragraph + signature, 3-6 metric
2. Pick the language stack
The language parameter controls which --serif stack is set on :root. Pick based on the dominant language of the manifesto and chapter body copy:
Inline mixed-script content is fine — the browser per-glyph fallback chain handles it. Do not chain all three families inside one font-family declaration; that dilutes character.
3. Write index.html
Output a single file with all CSS inline. Mirror the structure of example.html and use only the tokens from design-systems/kami/DESIGN.md. Do not invent new colors, weights, or font families.
Component primitives the agent can drop in (all defined in the example's block):
- .eyebrow, .label — sans-serif overlines
- .metric — value + label vertical pair
- .section-num + .section-title + .section-lede
- .tag.standard, .tag.brush — solid-hex tags (one brush max per page)
- .quote — left-rule serif 500 quote
- ul.dash — en-dash bullets in ink-blue
- .code — ivory-bg, 1px-border code block
- .footer-kicker — mega serif 500 word
Tag every editable element with data-od-id="" so the host app's comment mode can target it.
4. Self-check before delivering
section numbers, the manifesto rule, the metric values, the headline accent. Total ≤ 5%.
- [ ] Page background is parchment (#f5f4ed), never #ffffff.
- [ ] Ink-blue (#1B365D) covers ≤ 5% of visible surface — count
anywhere on serif text.
- [ ] All grays are warm (R ≈ G > B). No slate-*, no #f3f4f6.
- [ ] Serif weight stays at 500 — no font-weight: 700 or 900
color or a .tag instead.
- [ ] No font-style: italic anywhere. Emphasis swaps to ink-blue
figures) carry font-variant-numeric: tabular-nums.
- [ ] All numeric stacks (metric values, pagination, dates, financial
whisper. No hard drop shadows.
- [ ] All tag fills are solid hex (e.g. #E4ECF5), never rgba().
- [ ] Shadows: at most a 1px ring or a 0 4px 24px rgba(0,0,0,0.05)
horizontal scroll.
- [ ] Headline ≤ 6 words at display size; CJK ≤ 8 characters.
- [ ] At 768px and 560px the layout collapses to one column without
Files in this skill
design-templates/kami-landing/
├── SKILL.md # this contract
├── README.md # human quick-start
└── example.html # canonical OpenDesign renderingBoundaries
fixed; if a brief demands a brand color, push back or render the brand color as a single .tag.brush accent.
- Do not invent new colors or typefaces. The kami palette is
nothing.
- Do not introduce a second accent color. Pick ink-blue or pick
dominant language, override --serif on :root, and let the browser per-glyph fallback resolve mixed-script inline content.
- Do not mix all three font stacks in one declaration; pick the
double-paint alpha tags. Use the pre-blended solid hex from the table in design-systems/kami/DESIGN.md §2.
More skills from nexu-io/open-design
- Aarticle-magazineHuashu / huashu-md-html-inspired magazine article layout for turning Markdown or notes into a polished long-form HTML essay.
- Aaudio-jingleAudio generation skill — jingles, beds, voiceover, and sound effects. Routes music requests to Suno V5 / Udio / Lyria, speech to MiniMax TTS / FishAudio / ElevenLabs V3, and SFX to ElevenLabs SFX or AudioCraft. Output is one MP3/WAV file saved to the project folder.
- Aaudio-jingleAudio generation skill — jingles, beds, voiceover, and sound effects. Routes music requests to Suno V5 / Udio / Lyria, speech to MiniMax TTS / FishAudio / ElevenLabs V3, and SFX to ElevenLabs SFX or AudioCraft. Output is one MP3/WAV file saved to the project folder.
- Ablog-postA long-form article / blog post — masthead, hero image placeholder, article body with figures and pull quotes, author byline, related posts. Use when the brief asks for "blog", "article", "post", "essay", or "case study".
- Ablog-postA long-form article / blog post — masthead, hero image placeholder, article body with figures and pull quotes, author byline, related posts. Use when the brief asks for "blog", "article", "post", "essay", or "case study".
- Abuild-testRun the project's build / typecheck / lint / test commands and emit the build.passing + tests.passing signals devloop convergence reads.
- Acard-twitterTwitter quote or data card designed to pair with a post.
- Acard-xiaohongshuXiaohongshu-style knowledge cards, arranged as a swipeable multi-card carousel.
- Aclinical-case-reportStructured medical case presentation for clinical rounds, conferences, and documentation. Generates SOAP-format or narrative case reports with physiologically accurate vitals, labs, and evidence-based plans. Use when the brief mentions "case report", "case presentation", "SOAP note", "clinical case", "ward rounds", "case summary", or "patient presentation".
- Aclinical-case-reportStructured medical case presentation for clinical rounds, conferences, and documentation. Generates SOAP-format or narrative case reports with physiologically accurate vitals, labs, and evidence-based plans. Use when the brief mentions "case report", "case presentation", "SOAP note", "clinical case", "ward rounds", "case summary", or "patient presentation".
- Acode-importRead an existing repository's structure into the project cwd as a normalised snapshot the agent can analyse without re-walking the tree on every turn.
- Acodex-interactive-capability-mapTurn a long-form article, thread, memo, or product narrative into a compact clickable capability map with a workflow loop, use-case matrix, and responsive detail panel.