Skip to content
Back to skills

Design

ASecurity

Product and UI design — flows, wireframes, HTML mockups, design systems and tokens, UX copy, micro-interactions. Use when creating or changing a design or mockup, before app code. Produces a mockup engineering can be verified against, with tokens, every screen and state, final copy, test IDs and an interaction spec.

  • 4 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added October 20, 2026
ai-agentsnodegitfrontend

Security analysis

A100/100

Pro scans all 2 files and shows the line behind each finding

Scanned October 20, 2026

npx -y skills add IfeOlulesi/proof --skill design --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Design?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Design
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/ifeolulesi-design/badge)](https://www.skillsdirectory.com/skills/ifeolulesi-design)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: design
description: Product and UI design — flows, wireframes, HTML mockups, design systems and tokens, UX copy, micro-interactions. Use when creating or changing a design or mockup, before app code. Produces a mockup engineering can be verified against, with tokens, every screen and state, final copy, test IDs and an interaction spec.
---

# Design: make a mockup that is also a test

The mockup is the spec that engineering will be checked against. Any element it doesn't name, state it doesn't show, or number it leaves implicit becomes a defect later.

## Workflow

1. **Inputs.** Read SPEC.md if there is one; every flow and acceptance criterion needs a screen or state. List the screens and, for each, its states: default, empty, loading, error, disabled, pressed/focus, long content, keyboard open (forms).
2. **Explore, then commit.** Show 2–3 distinct directions. Generative design skills (UI UX Pro Max, Taste, frontend-design) belong here. Once the user picks one, lock it; stop generating new styles.
3. **Tokens first.** Define colour, type scale, spacing, radius, shadow and motion (durations, easings) as CSS custom properties on `:root`. Screens use tokens, not raw values.
4. **Build the mockup** in `mockup/` at the repo root (e.g. `mockup/app.html`):
   - `<meta charset="utf-8">` and `<meta name="viewport" content="width=device-width, initial-scale=1">` in the head
   - one `data-screen="<id>"` container per screen at the device's logical size (default 393×852). When frames sit side by side, give them a fixed width and `flex-shrink: 0` so they never squeeze
   - each state as its own frame, e.g. `data-screen="checkout--error"`
   - final copy and realistic data, never lorem ipsum
5. **Tag everything.** Put a unique, meaningful `data-testid` on every element that carries text, an icon, an image or an interaction. Within a screen, suffix repeated items: `order-row-1`, `order-row-2`. Engineering mirrors these IDs as testID, accessibilityIdentifier, Key or testTag.
6. **Specify interactions** in `mockup/interactions.json`, one entry per interactive element:
   `{"element": "cta-continue", "trigger": "tap", "states": ["default", "pressed", "loading"], "effect": "navigate:/signup", "duration_ms": 120, "easing": "cubic-bezier(0.2, 0, 0, 1)", "delay_ms": 0, "reduced_motion": "no scale"}`
   Take the numbers from your CSS. Touch screens have no hover, so map hover to pressed.
7. **Look at it.** Run the check, open the screenshots it writes and fix what you see. Never judge a design from its code alone.
8. **Get a fresh read.** Ask the proof:verifier agent to check the mockup against SPEC.md: every flow and criterion has a screen or state.

## Check

`node "${CLAUDE_SKILL_DIR}/scripts/check-design.mjs" mockup/app.html [--viewport 393x852] [--min-target 44]`

It fails on any of these:
- a missing charset or viewport meta tag
- screen frames that don't render at the device width
- untagged visible text, controls or media
- duplicate test IDs within a screen
- missing `data-screen` frames
- placeholder copy
- text contrast below WCAG AA
- touch targets under 44×44
- interactive elements with no entry in interactions.json

It also writes a screenshot of every screen to `.proof/design/`. It needs Playwright; if it's missing, it prints the install command and exits 3. To have the completion gate enforce it, add to `.claude/proof.json`:
`{"name": "design", "run": "node \"$CLAUDE_PLUGIN_ROOT/skills/design/scripts/check-design.mjs\" mockup/app.html", "when": ["mockup/**"]}`

## Done when

The check passes, you have reviewed every screenshot, and the user has approved the direction. Then commit and tag the mockup (`git tag design-v1`) so build works against a frozen version.

Files in this skill

  • SKILL.md3.7 KB
  • scripts/check-design.mjs9.5 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.