Install any skill in seconds. Free to start, no credit card required.
Get Started Free →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.
.claude/skills/nexu-io-hps-bauhaus/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-03 | ✗→✓ | ▲ Improved | 243% | 0% |
| case-01 | ✗→✓ | ▲ Improved | 27% | 0% |
| case-02 | ✗→✓ | ▲ Improved | 27% | 0% |
| case-04 | ✗→✓ | ▲ Improved | 66% | 0% |
| case-05 | ✗→✓ | ▲ Improved | 47% | 0% |
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.
:root, do not deviate)css: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:
--grad) has hard stops — it is a flag, not ablend. Use it only on .gradient-text hero words, .tri-band, and .divider-accent. Never use soft multi-stop gradients.
2px solid #111 borders on cards, pills, chart bars,checkboxes; 3px strokes inside SVG.
4px 4px 0 #111, 8px 8px 0 #111). Blurredrgba drop shadows are forbidden.
border-radius is 0 on every element except the geometric circle device(border-radius:50%).
.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.
.lede, card copy, lists): Space Grotesk, weights 300–700.JetBrains Mono.themes (editorial-serif, peoples-platform), not this one.
@import is the only allowed remote resource.circle, 3px ink strokes — on the cover and the closer.
.section-num rendered stroke-only via-webkit-text-stroke:3px var(--text-1) with transparent fill.
.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 and .divider-accent are ink-bordered strips ofthe hard three-band gradient.
.check li::before is a yellow ink-bordered squarewith an ink check stroke.
.geo-square / .geo-triangle / .geo-circle repeat thesquare/triangle/circle motif as a footer ornament.
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.
<style> + inline <script>, zerobuild, zero external JS/CSS (Google Fonts @import excepted).
<section class="slide" data-title="..."> inside<div class="deck" id="deck"> — a horizontal scroll-snap strip, each slide exactly 100vw × 100vh (flex:0 0 100vw), 16:9 / 1280×720 baseline with clamp() type scales, padding 72px 96px. One screen per slide; no internal vertical scrolling.
.deck-header (deck name + theme chip), .deck-footer(attribution + N / total counter), .progress-bar (ink-topped red fill).
← → Space PageUp PageDown Home End navigate;#/N (1-based) hash deep-links via history.replaceState in 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.
<div class="notes">…</div> per slide, 1–3sentences.
anim-rise-in on the hero,anim-fade-up on quotes, anim-stagger-list on grids. At most one hero animation plus one stagger per slide.
example.html; keep all <style> blocks and the <script>verbatim.
recomputes the N / total counter automatically.
support, blue = structure); large areas stay canvas + ink.
#/5 deep-links, no slide overflowsvertically, every stroke is #111, every radius is 0.
Token vocabulary, layout taxonomy, slide scaffold, and the bauhaus palette come from the upstream MIT-licensed lewislulu/html-ppt-skill (© lewis <sudolewis@gmail.com>). The LICENSE file ships alongside this plugin — keep it in place when redistributing.
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-03 | fail→pass | 24,646 | 99,174 | +302% | 1 | 1 | 0% | 3,047 | 10,462 | +243% | 0 | 0 | — |
case-01 | fail→pass | 52,143 | 70,243 | +35% | 1 | 1 | 0% | 8,276 | 10,501 | +27% | 0 | 0 | — |
case-02 | fail→pass | 55,606 | 39,114 | -30% | 1 | 1 | 0% | 8,273 | 10,498 | +27% | 0 | 0 | — |
case-04 | fail→pass | 16,471 | 12,262 | -26% | 1 | 1 | 0% | 2,813 | 4,680 | +66% | 0 | 0 | — |
case-05 | fail→pass | 16,904 | 12,639 | -25% | 1 | 1 | 0% | 2,959 | 4,335 | +47% | 0 | 0 | — |
case-06 | fail→pass | 13,127 | 8,798 | -33% | 1 | 1 | 0% | 2,451 | 3,904 | +59% | 0 | 0 | — |
case-07 | fail→fail | 14,304 | 14,375 | +0% | 1 | 1 | 0% | 2,442 | 5,003 | +105% | 0 | 0 | — |
case-08 | fail→pass | 13,226 | 9,513 | -28% | 1 | 1 | 0% | 1,665 | 3,476 | +109% | 0 | 0 | — |
case-09 | fail→pass | 14,357 | 15,069 | +5% | 1 | 1 | 0% | 1,972 | 4,489 | +128% | 0 | 0 | — |
case-10 | fail→pass | 11,932 | 10,384 | -13% | 1 | 1 | 0% | 2,070 | 4,380 | +112% | 0 | 0 | — |
case-11 | fail→pass | 14,681 | 11,800 | -20% | 1 | 1 | 0% | 2,417 | 4,451 | +84% | 0 | 0 | — |
case-12 | fail→pass | 11,759 | 7,861 | -33% | 1 | 1 | 0% | 2,015 | 3,316 | +65% | 0 | 0 | — |
case-13 | fail→pass | 156,927 | 6,925 | -96% | 1 | 1 | 0% | 2,263 | 3,173 | +40% | 0 | 0 | — |
case-14 | fail→pass | 14,315 | 18,330 | +28% | 1 | 1 | 0% | 2,549 | 5,097 | +100% | 0 | 0 | — |
case-15 | fail→fail | 17,156 | 9,997 | -42% | 1 | 1 | 0% | 2,528 | 4,017 | +59% | 0 | 0 | — |
case-16 | fail→fail | 15,704 | 3,170 | -80% | 1 | 1 | 0% | 2,111 | 2,627 | +24% | 0 | 0 | — |
case-17 | pass→pass | 12,490 | 6,982 | -44% | 1 | 1 | 0% | 2,114 | 3,333 | +58% | 0 | 0 | — |
case-18 | fail→pass | 12,812 | 10,482 | -18% | 1 | 1 | 0% | 1,882 | 4,194 | +123% | 0 | 0 | — |
case-19 | fail→pass | 14,842 | 4,799 | -68% | 1 | 1 | 0% | 2,122 | 2,902 | +37% | 0 | 0 | — |
case-20 | pass→fail | 18,042 | 16,849 | -7% | 1 | 1 | 0% | 2,475 | 4,631 | +87% | 0 | 0 | — |
case-21 | pass→pass | 13,907 | 7,530 | -46% | 1 | 1 | 0% | 2,022 | 3,534 | +75% | 0 | 0 | — |
case-22 | pass→fail | 23,757 | 38,601 | +62% | 1 | 1 | 0% | 4,908 | 10,451 | +113% | 0 | 0 | — |
case-23 | fail→pass | 10,110 | 9,067 | -10% | 1 | 1 | 0% | 1,995 | 3,460 | +73% | 0 | 0 | — |
case-24 | pass→pass | 12,978 | 10,423 | -20% | 1 | 1 | 0% | 2,263 | 3,970 | +75% | 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. 24 cases were attempted. The headline lift of +58 percentage points is the difference between those two pass rates over the 24 comparable cases. 2 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.