Hps bauhaus
Skill nexu-io/open-design/plugins/_official/examples/hps-bauhaus
π¨ 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 hps-bauhausAssembled 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
A visual-design fundamentals course for new brand designers β grid, type, color, and the exercises that build the eye. Built as a decision-grade professional training deck for junior designers, new hires.
SKILL.md
9.4 KB, as published. Nobody here has run it
Bauhaus Primary (hps-bauhaus)
Single-theme deck plugin ported from the bauhaus theme of the upstream
MIT-licensed lewislulu/html-ppt-skill
(36 themes Γ 31 layouts Γ 27 animations). This plugin locks one skin:
design-history geometric modernism β the 1919β1933 Dessau language of
square/triangle/circle, the three primaries on an aged paper ground, and
typography that behaves like a poster.
Start from example.html. Replace content only. Never rewrite the design
system or the runtime script. Never introduce a color or font outside the
token sheet below.
Locked token sheet (:root, do not deviate)
:root{
--bg:#f4efe3; /* aged canvas ground */
--bg-soft:#e8e2d1; /* darker canvas */
--surface:#ffffff; /* card paper */
--surface-2:#f4efe3;
--border:#111111; /* ink β every stroke is this */
--border-strong:#111111;
--text-1:#111111; --text-2:#333333; --text-3:#666666;
--accent:#e03c27; /* Rot β red */
--accent-2:#f4c430; /* Gelb β yellow */
--accent-3:#1d4eaf; /* Blau β blue */
--good:#1b8c3c; --warn:#f4c430; --bad:#e03c27;
--grad:linear-gradient(135deg,#e03c27 0 33%,#f4c430 33% 66%,#1d4eaf 66% 100%);
--grad-soft:linear-gradient(135deg,#f4efe3,#e8e2d1);
--radius:0; --radius-sm:0; --radius-lg:0; /* zero radius, always */
--shadow:4px 4px 0 #111; --shadow-lg:8px 8px 0 #111; /* hard offset, never blurred */
--font-sans:'Space Grotesk','Inter','Noto Sans SC',sans-serif;
--font-mono:'JetBrains Mono',SFMono-Regular,Menlo,monospace;
--font-display:'Archivo Black','Space Grotesk','Noto Sans SC',sans-serif;
--letter-tight:-.03em; --letter-normal:-.01em;
--ease:cubic-bezier(.4,0,.2,1);
}
Hard rules derived from the sheet:
- The three-band gradient (
--grad) has hard stops β it is a flag, not a blend. Use it only on.gradient-texthero words,.tri-band, and.divider-accent. Never use soft multi-stop gradients. - All chrome is ink:
2px solid #111borders on cards, pills, chart bars, checkboxes;3pxstrokes inside SVG. - Shadows are hard offsets (
4px 4px 0 #111,8px 8px 0 #111). Blurredrgbadrop shadows are forbidden. border-radiusis0on every element except the geometric circle device (border-radius:50%).
Typography
- Display (
.h1 .h2 .stat-big .quote .section-num .kpi .num):Archivo Black, weight 400 (the face is already black β never fake-bold), uppercase, letter-spacing-.03em. - Body (
.lede, card copy, lists):Space Grotesk, weights 300β700. - Mono (step counters, theme chip, code):
JetBrains Mono. - No serif, no slab, no handwriting, no brush β those belong to sibling
themes (
editorial-serif,peoples-platform), not this one. - Google Fonts via
@importis the only allowed remote resource.
Signature devices (keep these; they are the style)
- Kandinsky mark: inline SVG of red square + yellow triangle + blue circle, 3px ink strokes β on the cover and the closer.
- Outlined section numerals:
.section-numrendered stroke-only via-webkit-text-stroke:3px var(--text-1)with transparent fill. - Primary top rules:
.card-accent / .card-accent-2 / .card-accent-3give cards an 8px red/yellow/blue top border; rotate the three primaries across a grid rather than repeating one. - Tri-band:
.tri-bandand.divider-accentare ink-bordered strips of the hard three-band gradient. - Square checkboxes:
.check li::beforeis a yellow ink-bordered square with an ink check stroke. - Geo strip:
.geo-square / .geo-triangle / .geo-circlerepeat the square/triangle/circle motif as a footer ornament.
Layout system (shared upstream catalog, 31 layouts)
The slide scaffold and class vocabulary come from the upstream html-ppt
system. Master categories (compose cover β toc β section-divider β content pages β closer):
| group | layouts |
|---|---|
| Openers & transitions | cover toc section-divider |
| Text-centric | bullets two-column three-column big-quote |
| Numbers & data | stat-highlight kpi-grid table chart-bar chart-line chart-pie chart-radar |
| Code & terminal | code diff terminal |
| Diagrams & flows | flow-diagram arch-diagram process-steps mindmap |
| Plans & comparisons | timeline roadmap gantt comparison pros-cons todo-checklist |
| Visuals | image-hero image-grid |
| Closers | cta thanks |
The seed demonstrates 10 of them: cover, toc, section-divider, two-column, kpi-grid, stat-highlight, chart-bar, process-steps, big-quote, thanks. Charts are always pure CSS blocks or inline SVG with primary fills and ink strokes β never Chart.js or any external library. "Images" are geometric SVG compositions; no photos, no external image hosts.
Page structure & runtime contract
- One self-contained HTML file: inline
<style>+ inline<script>, zero build, zero external JS/CSS (Google Fonts@importexcepted). - Every page is
<section class="slide" data-title="...">inside<div class="deck" id="deck">β a horizontal scroll-snap strip, each slide exactly100vw Γ 100vh(flex:0 0 100vw), 16:9 / 1280Γ720 baseline withclamp()type scales, padding72px 96px. One screen per slide; no internal vertical scrolling. - Fixed chrome:
.deck-header(deck name + theme chip),.deck-footer(attribution +N / totalcounter),.progress-bar(ink-topped red fill). - Keyboard:
ββSpacePageUpPageDownHomeEndnavigate;#/N(1-based) hash deep-links viahistory.replaceStatein try/catch (srcdoc-safe). The script dedupes dual window/document capture-phase key listeners by Event identity and auto-focuses<body>β these solve real iframe-host bugs; keep the script verbatim. - Speaker notes: one hidden
<div class="notes">β¦</div>per slide, 1β3 sentences. - Animations: restrained upstream subset β
anim-rise-inon the hero,anim-fade-upon quotes,anim-stagger-liston grids. At most one hero animation plus one stagger per slide.
Authoring checklist
- Copy
example.html; keep all<style>blocks and the<script>verbatim. - Replace the 10 demo slides with the planned layout sequence; the script
recomputes the
N / totalcounter automatically. - Real content, real numbers β no lorem ipsum, no placeholder images.
- Rotate the three primaries deliberately (red = emphasis, yellow = warm support, blue = structure); large areas stay canvas + ink.
- Verify: arrows + Space navigate,
#/5deep-links, no slide overflows vertically, every stroke is #111, every radius is 0.
Attribution
Token vocabulary, layout taxonomy, slide scaffold, and the bauhaus palette
come from the upstream MIT-licensed
lewislulu/html-ppt-skill
(Β© lewis <[email protected]>). The LICENSE file ships alongside this
plugin β keep it in place when redistributing.