Crafting design systems
Skill pgoell/pgoell-claude-tools/plugins/workbench/skills/crafting-design-systems
Use when the user wants to create or edit a workbench design system, a directory of CSS variable overrides, optional components, and optional images that themes HTML output from workbench producer skills.From its SKILL.md
npx -y skills add pgoell/pgoell-claude-tools --skill crafting-design-systemsAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
6.6 KB, ~1.6k tokens by cl100k_base, as published. Nobody here has run it
Crafting Design Systems
Create or edit a design system that themes HTML output from workbench producer skills. Producers (writing-spec, writing-plans, brainstorming, systematic-debugging, crafting-html, research:research) apply the active design system on their own; this skill is for authoring the design system itself.
When to use this skill
- Create a new design system at project or user scope.
- Edit an existing design system.
When NOT to use this skill
- Producing any HTML artifact: the producer skill applies the active design system on its own.
- Designing a UI or product component: use
frontend-design.
Steps
-
Pick scope. Project (
.workbench/design-systems/<name>/at repo root) for repo-wide themes that travel with the codebase. User (~/.claude/workbench/design-systems/<name>/) for personal themes that cross every project. Project wins if the same name exists at both scopes. -
Pick a kebab-case name. Examples:
brand-2026,dark-print,personal. -
Create the directory and copy the starter CSS:
NAME=<your-name> DSDIR=.workbench/design-systems/$NAME # or ~/.claude/workbench/design-systems/$NAME mkdir -p "$DSDIR" cp <path-to-skill>/references/starter-colors.css "$DSDIR/colors.css"<path-to-skill>resolves to wherever the skill is installed (Claude Code:~/.claude/plugins/cache/pgoell-claude-tools/workbench/<version>/skills/crafting-design-systems). -
Edit
colors.css. Keep variable names; change values. Variables a producer's template does not reference are silently ignored at render time, so the union starter is safe to ship even when targeting one producer. -
Write
manifest.md(one paragraph: who this is for, what palette/style it embodies):# <Name> <One-paragraph description.> -
(Optional) Add
typography.csswith:root { --serif: ...; --sans: ...; --mono: ...; }overrides. Producers inline this file aftercolors.cssif present. -
(Optional) Add
components/<name>.htmlsnippets. Each is a self-contained HTML fragment (markup plus scoped<style>block). Contract: references only CSS variables declared by the active producer's template or variables the component declares itself; no external scripts, fonts, or images; safe to paste into any artifact body. Document the intended use in an HTML comment at the top of the file. -
(Optional) Add
images/<name>.<ext>for logos, illustrations, photographs. Producers base64-encode and inline by default. SVG is text and inlines naturally. -
Wire it as the active design system. Add to
.workbench/config.md(or create the file):## Design system Name: <name>Per-prompt overrides ("render with the
<name>design system") work without editing config. -
Verify. Run any producer skill (e.g., ask for a brainstorm summary) and inspect the generated HTML. Check that the design system's variable values appear in the
<style>block after the template's own:root.
Directory shape
<name>/
manifest.md # required
colors.css # required, :root { ... } CSS variable declarations
typography.css # optional, :root { ... } font stack overrides
components/ # optional
<component>.html
images/ # optional
<image>.<ext>
Per-template variable inventory
When editing colors.css, knowing which variables each producer template declares helps you decide what to override. The starter file declares the union; this table shows which variables each template actually consults.
| Producer template | Variables declared in :root |
|---|---|
brainstorming | --ivory, --slate, --clay, --oat, --olive, --gray-100, --gray-150, --gray-300, --gray-500, --gray-700, --white, --serif, --sans, --mono, --radius-sm, --radius, --radius-lg |
writing-spec | --bg, --bg-soft, --bg-code, --bg-row-alt, --bg-row-hover, --ink, --ink-soft, --ink-mute, --rule, --accent, --accent-soft, --warn, --sans, --serif, --mono, --measure |
writing-plans | --bg, --surface, --ink, --muted, --rule, --rule-strong, --accent, --accent-soft, --good, --good-soft, --bad, --bad-soft, --warn, --warn-soft, --code-bg, --code-ink, --sans, --mono, --r-sm, --r-md, --r-lg |
systematic-debugging | --ivory, --slate, --clay, --oat, --olive, --rust, --amber, --gray-100, --gray-300, --gray-500, --gray-700, --white, --serif, --sans, --mono, --radius-panel, --radius-row, --border |
research:research | --ivory, --slate, --clay, --oat, --olive, --gray-150, --gray-300, --gray-500, --gray-700, --serif, --sans, --mono |
crafting-html ships 21 templates with varied styling; inspect the chosen reference before authoring overrides for that producer.
Multi-slide presentations are not themed by design systems: the presentations plugin's skills consume brand presets instead (see that plugin's presets/README.md contract).
Bundled
references/starter-colors.css: union of every variable above, populated with the templates' current values. Copy as the starting point forcolors.css.references/example-design-system/: a fully-populated twilight example (manifest.md,colors.css,typography.css). Read for shape reference; do not copy as the active system.
No em-dashes / en-dashes
Per repo rule, no U+2014 or U+2013 codepoints in this skill's tree, including bundled references/*.css and references/*.md. In HTML body copy, entity forms —, —, –, – are permitted.
What ships with it: 4 files
4.0 KB alongside SKILL.md