web-design
Use when building or reviewing a web interface — a page, component, landing page, dashboard, email or artifact.
Skill by iaa2005
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/iaa2005-web-design
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: design, frontend, data, productivity
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
- Runs as
- Python package
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/web-design
What's inside
- Skill name
web-design- Description
- Use when building or reviewing a web interface — a page, component, landing page, dashboard, email or artifact. Covers layout, type, colour, states and accessibility, and how to check the result in the browser instead of guessing.
- License
- MIT
- Instructions
- 137 lines in SKILL.md · view on GitHub
Before installing
- Ships executable scripts
Files (2)
- SKILL.md
- audit_html.py · scripts/
SKILL.md (first lines)
Design decisions here are constraints, not taste. Each one below has a reason;
follow it unless the user's brief overrides it.
## Before writing markup
If a design already exists in the project, match it — read an existing
component and reuse its spacing, radii, colours and type sizes. A page that
looks "well designed" but unlike the rest of the app is a worse result than a
plain page that fits.
If nothing exists, decide these five things first, in writing, in one or two
lines: the type scale, the spacing unit, the palette, the corner radius, the
shadow depth. Everything downstream follows from them.
## Layout
Pick one spacing unit (4px or 8px) and use only multiples of it. Mixed
arbitrary values are the single most common reason a layout looks amateur.
Constrain reading width: 60–75 characters per line for prose (`max-width:
65ch`). Full-width paragraphs are unreadable on a wide monitor.
Use CSS Grid for the page skeleton and Flexbox inside components. Reach for
absolute positioning only when an element genuinely leaves the flow.
Space belongs to the thing it separates. Prefer `gap` on the container over
margins on children — margins collapse, gaps do not, and one rule beats N.
## Type
Two type families at most, often one. Weight and size carry hierarchy better
than a second family.
Use a modular scale rather than picking sizes ad hoc: 12, 14, 16, 20, 24, 32,
48 covers almost everything. Body text is 16px minimum — smaller is a
readability bug on phones, not a style.
Line height scales inversely with size: ~1.5 for body, ~1.2 for headings.
Never set a heading in pure black on white. `#111`–`#1a1a1a` reads as sharper
because it lowers the contrast collision with the background.
## Colour
Build from one accent plus a neutral ramp. A palette of many hues is far harder
to keep coherent than one hue at many lightnesses.
Verify contrast, do not eyeball it: 4.5:1 for body text, 3:1 for large text and
for UI boundaries that carry meaning. Compute it — see the check below.
Never encode meaning in hue alone. An error state needs an icon or wording, not
just red, or it disappears for a colour-blind user.
Support both schemes from the start. Retrofitting dark mode means revisiting
every colour decision; use variables from the first line of CSS.
## States and motion
Every interactive element needs hover, focus-visible, active and disabled.
Missing `:focus-visible` is an accessibility failure — keyboard users lose the
cursor entirely. Never `outline: none` without an equal replacement.
An element that can be clicked must look clickable, and one that cannot must
not. Cursor, contrast and elevation all carry that signal.
Animate only `transform` and `opacity` — they are compositor-only. Animating
`width`, `top` or `box-shadow` forces layout on every frame and janks on weak
hardware. Keep durations at 150–250ms; longer feels sluggish rather than smooth.
Respect `prefers-reduced-motion` — for some users motion causes nausea, not
delight.
## Responsive
Start at the narrow width and add breakpoints where the content breaks, not at
device sizes. Devices change; the point at which a column becomes unreadable
does not.
Touch targets are 44×44px minimum. A 24px icon button is a miss on a phone.
Test at 320px wide. If nothing overflows there, wider screens are easy.
## Checking the work
Start with the markup audit — it finds in a second what takes minutes by eye:
```
python scripts/audit_html.py page.html
```
Flags images without alt, inputs without a label, clickable `div`s (unreachable
by keyboard), `outline:none` with no `:focus-visible` replacement, skipped
heading levels, missing `lang`/viewport, and colour pairs below 4.5:1.
It reads markup only — it cannot see layout, overflow or the rendered result.
Do not claim a design is correct from the markup. Verify it:
- **Browser Use** (Code space, enable in Settings → Automation): open the page,
screenshot it, read the accessibility tree to confirm structure and labels,
resize to 320px and to desktop, and check both colour schemes.
- **RunPython** (Home): compute contrast ratios rather than judging by eye.
```python
def contrast(hex1, hex2):
def lum(h):
c = [int(h.lstrip('#')[i:i+2], 16) / 255 for i in (0, 2, 4)]
c = [x / 12.92 if x <= 0.04045 else ((x + 0.055) / 1.055) ** 2.4 for x in c]
return 0.2126 * c[0] + 0.7152 * c[1] + 0.0722 * c[2]
a, b = sorted((lum(hex1), lum(hex2)), reverse=True)
return round((a + 0.05) / (b + 0.05), 2)
print(contrast('#1a1a1a', '#ffffff')) # 17.4 — passes
print(contrast('#8a8a8a', '#ffffff')) # 3.1 — fails body text
```
State what you actually checked and what you did not.
## Reviewing someone else's pageFrom iaa2005/monet-directory, MIT.
More from iaa2005/monet-directory
- 0.529score
charts
iaa2005
Use when producing a chart, plot or data visualisation as an image — for a report, a slide deck, or to show a result in chat.
SkillBFreshness: BClaude Code +9 - 0.529score
data-analysis
iaa2005
Use when analysing tabular data — CSV, Excel or JSON — computing aggregates, finding anomalies, cleaning messy data, or answering questions about a dataset…
SkillBFreshness: BClaude Code +9 - 0.529score
docx
iaa2005
Use when creating, editing or extracting from Word documents (.docx) — reports, letters, contracts, templates, filling a template with data, or pulling text…
SkillBFreshness: BClaude Code +9 - 0.529score
pdf
iaa2005
Use when reading, creating, merging, splitting or filling PDFs — extracting text or tables, combining files, rotating or watermarking pages, filling a…
SkillBFreshness: BClaude Code +9 - 0.529score
pptx
iaa2005
Use when building or editing PowerPoint decks (.pptx) — slides, pitch decks, report presentations, speaker notes, applying a corporate template, or extracting…
SkillBFreshness: BClaude Code +9 - 0.529score
xlsx
iaa2005
Use when creating, editing or analysing Excel workbooks (.xlsx) — reports with formulas, multi-sheet models, formatted tables, charts, or reading data out of…
SkillBFreshness: BClaude Code +9 - 0.524score
webapp-testing
iaa2005
Use when checking that a web page or app actually works — verifying a UI change, reproducing a bug, testing a form or flow, or confirming how something renders.
SkillBFreshness: BClaude Code +9 - 0.524score
browse
iaa2005
Automate browser interactions via CLI commands to navigate web pages, extract data, take screenshots, fill forms, and interact with web apps.
SkillBFreshness: BClaude Code +9 - 0.524score
skill-creator
iaa2005
Use when writing a new skill for Code Monet, or improving an existing one — deciding what belongs in a SKILL.md and how to phrase it so the agent actually…
SkillBFreshness: BClaude Code +9
Signals
- Stars
- 0
- Forks
- 0
- Open issues
- 0
- Last commit (this folder)
- Aug 10, 2026 (2 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/iaa2005/monet-directory
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from iaa2005
- 0.529score
charts
iaa2005
Use when producing a chart, plot or data visualisation as an image — for a report, a slide deck, or to show a result in chat.
SkillBFreshness: BClaude Code +9 - 0.529score
data-analysis
iaa2005
Use when analysing tabular data — CSV, Excel or JSON — computing aggregates, finding anomalies, cleaning messy data, or answering questions about a dataset…
SkillBFreshness: BClaude Code +9 - 0.529score
docx
iaa2005
Use when creating, editing or extracting from Word documents (.docx) — reports, letters, contracts, templates, filling a template with data, or pulling text…
SkillBFreshness: BClaude Code +9 - 0.529score
pdf
iaa2005
Use when reading, creating, merging, splitting or filling PDFs — extracting text or tables, combining files, rotating or watermarking pages, filling a…
SkillBFreshness: BClaude Code +9 - 0.529score
pptx
iaa2005
Use when building or editing PowerPoint decks (.pptx) — slides, pitch decks, report presentations, speaker notes, applying a corporate template, or extracting…
SkillBFreshness: BClaude Code +9 - 0.529score
xlsx
iaa2005
Use when creating, editing or analysing Excel workbooks (.xlsx) — reports with formulas, multi-sheet models, formatted tables, charts, or reading data out of…
SkillBFreshness: BClaude Code +9
Cite this page
web-design skill. Agent Mart. https://agentmart.dev/skills/iaa2005-web-design (last updated 2026-10-24)