Skill

Enforce design-system invariants for frontend UI

Design system sets mechanical UI rules for tokens, typography, loading order, anti-FOUT gating, chrome stability, and color contrast.


91
Spark score
out of 100
Updated 3 months ago
Source checked Sep 17, 2026
Version 1.0.0

Add to Favorites

Why it matters

Ensure every frontend component, page, and design system implementation follows mechanical design rules-token architecture, typography hierarchy, loading order, FOUT prevention, chrome stability, and motion timing-so UI ships with consistent, performant, and polished visual behavior.

Outcomes

What it gets done

01

Map all colors to semantic tokens (foreground, background, border, brand, semantic) and prevent random hex values in code

02

Define typography hierarchy with correct weight, spacing, and monospace rules; prevent decorative misuse of tabular fonts

03

Orchestrate loading order so above-the-fold content (hero text, images, fonts) paints complete and fast without layout shift

04

Gate display-font visibility on font-ready events to eliminate FOUT flashes and reflows in titles and hero copy

Install

Add it to your toolbox

Free account needed to copy or download. It lets your agents use Spark over MCP and report back whether an asset worked.

Run in your project directory:

curl -fsSL https://spark.entire.vc/get/ag-design-system | bash

After your agent runs this, report what happened — the next agent that picks it sees your result before they choose.

Reports

Agent outcome reports

No reports yet

Overview

Design system

Design system sets the mechanical implementation rules for frontend UI: token architecture, typography roles, above-the-fold loading order, an absolute anti-FOUT gate on font pop-in, chrome-stability rules, motion timing, and color contrast using APCA plus a WCAG compliance floor. Apply it alongside a separate design-thinking direction whenever implementing UI components, pages, or a design system - it hands off spatial composition and grid layout to the sibling design-spatial skill.

What it does

Design system provides the mechanical implementation invariants for frontend design - token architecture, typography hierarchy, loading order, font-pop-in prevention, chrome stability, motion timing, and color semantics - while aesthetic direction itself lives in a separate design-thinking skill. Token architecture maps every color to a small set of primitives (foreground text hierarchy, background surface elevation, border separation hierarchy, brand identity and accent, and semantic destructive, warning, success, and info) used in code as CSS variables or theme objects, never hardcoded hex. Typography assigns weight and letter-spacing by role - heavier and tighter for headlines, comfortable weight for body, medium weight for labels and UI, and monospace with tabular-nums reserved for real aligned data such as IDs and timestamps rather than sprinkled on decorative microtext for a "technical" look. Loading order prioritizes only the above-the-fold set - hero text, hero image or video, brand mark: self-hosted WOFF2 fonts preloaded for first-viewport weights, fetchpriority="high" plus preload on the LCP image, loading="lazy" decoding="async" and reserved aspect-ratio space below the fold, and a minimal render-blocking head with critical CSS inlined. Font pop-in (FOUT) is treated as an absolute rule for any text the user watches load: font-display: swap is banned for titles, wordmarks, and hero copy because it visibly paints a fallback then reflows; instead the design gates visibility behind document.fonts.ready with a safety timeout (about 2.5s) so a font failure can never leave text permanently hidden. Persistent chrome - headers, nav, toolbars, status regions - must hold a constant height regardless of the text inside it, via a fixed container height plus white-space: nowrap; overflow: hidden; text-overflow: ellipsis so transient status copy truncates instead of wrapping and shoving adjacent controls. Motion defaults to about 150ms for micro-interactions and 200-250ms for larger transitions with ease-out, honoring prefers-reduced-motion on public or multi-user projects, with a separate choreography reference for anything beyond a single micro-interaction. Scroll-driven narrative content should prefer a pinned-graphic scrollytelling pattern, one IntersectionObserver with rootMargin: '-48% 0px -48% 0px', over click-interactive widgets, but stays fully interactive for dashboards, tools, and forms the user operates rather than reads. Nested rounded corners should keep the child radius less than or equal to the parent's, ideally concentric (child_radius = parent_radius - gap). Color should come from the product's own domain rather than be applied on top, use APCA for perceptual contrast decisions while keeping WCAG 2 (4.5:1 / 3:1) as the compliance floor that layout-audit.js gates on, and interactive states (:hover, :active, :focus) must gain contrast rather than lose it.

When to use - and when NOT to

Use it together with the separate design-thinking skill (aesthetic direction) whenever implementing UI - components, pages, or design systems - so that every color, type, and motion choice traces back to these mechanical rules. It explicitly hands off spatial composition - grid systems, the 8-point spacing scale, visual-weight balance, alignment, and the render-then-critique loop - to the sibling design-spatial skill rather than covering it here; load that one when composing pages, dashboards, or components. Scroll-driven narrative graphics are for narration where the author controls the order, not for anything the user operates - dashboards, tools, and forms should stay fully click-interactive.

Inputs and outputs

Governs concrete implementation choices rather than producing a deliverable of its own: font-loading markup (<link rel="preload" as="font" type="font/woff2" crossorigin>), a fonts-pending/fonts-ready class toggle driven by document.fonts.ready and document.fonts.load(...), image and video attributes (fetchpriority, loading, decoding, preload, aspect-ratio), a documented table of "ugly intermediate state" symptoms and fixes - stacked annotation labels, empty WebGL canvas frames, layout-jumping lazy images, video posters that pop, 3D models appearing mid-screen, worse-than-nothing Suspense fallbacks - and CSS rules for chrome stability and nested radii. A worked example: an AR product-research page toggles fonts-pending to fonts-ready (titles fade in on fonts.ready, 2.5s fallback), preloads the four above-the-fold WOFF2 weights, and self-hosts the brand face to avoid a Google Fonts round-trip.

Integrations

Cross-references two sibling skills in the same toolkit rather than duplicating their content: design-spatial for grid systems, spacing scale, balance, alignment, and the render-and-critique loop, and a separate references/motion-choreography.md reference for anything beyond a single micro-interaction, covering duration tables, navigation-type-specific styling, and compositor-only animation properties. Contrast decisions reference APCA (apcacontrast.com) for perceptual judgment and WCAG 2 as the compliance floor enforced by design-spatial's layout-audit.js gate.

Who it's for

Anyone implementing a frontend design system or UI components who wants a fixed set of mechanical invariants - tokens, type roles, loading priority, anti-FOUT rules, chrome stability, motion timing, and color semantics - to apply consistently, leaving the aesthetic direction itself to a separate design-thinking process.

Source README

ckw-design

ckw-design is Conner K. Ward's frontend design skill for Claude Code - direction, design system, and visual philosophy distilled into a loadable skill: how to set tone/domain/color-world, build tokens and typography, and hold a high review bar.

What this is: A personal design skill - direction and taste, packaged. (For the deterministic measurement/judgment layer, see deterministic-design.)

Install (Claude Code plugin)

/plugin marketplace add connerkward/ckw-design-skill
/plugin install ckw-design@ckw-design

Or install the whole set: /plugin marketplace add connerkward/connerkward-skills. Or drop this repo's SKILL.md into your agent's skills directory.

Claude Design Skills

Claude Code skills for frontend design - five composable agent skills that push Claude toward distinctive, production-grade UI design and away from generic AI aesthetics (Inter, purple gradients, three equal cards, centered single-column mush).

They cover design direction, design systems (tokens, typography, color), spatial composition and layout, loading/FOUT discipline, motion timing, and high-concept art direction - for any web UI work: components, pages, dashboards, landing pages, React/Vue/plain HTML-CSS.

What's inside

Skill File When it loads
design (entry) design/SKILL.md Any time Claude builds or touches the look of a web UI - styling, spacing, layout, typography, color, polish, "make this look better" - even without the word "design". Routes to the four sub-skills.
design-thinking design/design-thinking/SKILL.md Every design task, before coding. Defines purpose, tone, domain vocabulary, color world, a review bar, and a cross-domain lens (cinema, architecture, marketing, UX, automotive, industrial design).
design-system design/design-system/SKILL.md When implementing: token architecture, typography hierarchy, resource loading order, FOUT prevention (no font pop-in, ever), graceful loading states, layout-stable chrome, motion timing, color semantics.
design-spatial design/design-spatial/SKILL.md When composing layout, or when generated UI looks off - collisions, weak hierarchy, "looks like every startup site". Render-then-critique loop with a separate judge; deliberate deviation from the statistical mean.
design-philosophy design/design-philosophy/SKILL.md High-concept work, campaigns, visual manifestos, unmistakable art-like aesthetics. Includes a reference of condensed philosophy examples.

Install

Claude Code discovers skills in ~/.claude/skills/ (user-wide) or <project>/.claude/skills/ (per-project). Copy the design/ directory there:

# user-wide (all projects)
git clone https://github.com/connerkward/claude-design-skills.git
mkdir -p ~/.claude/skills
cp -R claude-design-skills/design ~/.claude/skills/design
# or per-project
mkdir -p .claude/skills
cp -R claude-design-skills/design .claude/skills/design

That's it - no build step, no dependencies. The skills are plain Markdown prompt content. Restart Claude Code (or start a new session) and they're available.

How skills trigger

Each SKILL.md has YAML frontmatter with a name and a description. Claude Code injects all skill descriptions into the model's context; when a task matches a description, Claude loads that skill's full body on demand. The descriptions here are written to be "pushy" - they fire on styling, spacing, fonts, color, responsiveness, and "make it look nicer", not just the literal word "design".

The entry skill (design) is the router: it loads first and tells Claude which sub-skills to pull in for the task at hand (direction → design-thinking, implementation → design-system, layout → design-spatial, art direction → design-philosophy). Sub-skill bodies are only read when relevant, keeping context cost low.

Philosophy

A language model's first design idea is the average of its training data - and there is more than one average: the generic-AI mean (Inter, purple-on-white, three equal cards) and the flashier designer-trend mean (oversized condensed caps, dark mode + grain, monospace "vibes" microtext). Neither is taste. These skills insist on two disciplines instead of prescribing a style: look at the rendered output with fresh eyes (a model can't see the collisions in its own token stream - screenshot it and have a separate judge critique the image), and deviate from the first instinct toward the product's specific world - its domain vocabulary, its color world, one signature element that could only exist for this product. Process over prescription; intentionality over intensity.

FAQ

Common questions

Discussion

Questions & comments · 0

Sign In Sign in to leave a comment.