interface-craft
Raises the visual and interaction quality of an interface — layout, hierarchy, type, spacing, density, and the details that separate a considered product from a generic one. Use this when a screen works but looks unfinished or default, when a layout feels crowded or arbitrary, wh
Install
npx skills add https://github.com/cbrock84/headcount/tree/main/plugins/product/skills/interface-craft
claude plugin marketplace add https://llmmart.ai/marketplace.json && claude plugin install cbrock84-headcount@llmmart
git clone https://github.com/cbrock84/headcount.git
The skills CLI installs just this skill, for any of its supported agents. Claude Code installs the whole cbrock84/headcount collection as a plugin from our marketplace. Git is the plain clone.
Skill manifest
Interface craft
Most interfaces do not fail on ideas. They fail on execution — spacing that is nearly consistent, hierarchy that is nearly clear, type that is nearly right.
Diagnose before restyling
Ask what the screen is for. One primary action, at most one secondary. If you cannot name the primary action, the layout problem is a product problem and no amount of styling fixes it.
The things that actually read as quality
Hierarchy. A viewer should know where to look before they read anything. Achieve it with size, weight, and space — in that order. Color is the weakest hierarchy tool and the most overused.
Spacing rhythm. Related things sit closer than unrelated things, and the gaps come from one scale. Inconsistent spacing is the defect people feel but cannot name. Get proximity right and a plain layout reads as designed.
Type. One family for the interface, two at most on the page. Set a real scale and use its steps rather than inventing sizes. Body text wants a comfortable measure — roughly 60–75 characters — and line height that grows as the measure widens.
Restraint in surfaces. Borders, shadows, and fills all separate things. Pick one per boundary. Stacking all three is why interfaces look busy at normal density.
Alignment. Everything lines up with something. An element aligned to nothing reads as a mistake even when it is intentional.
Density is a decision
An information-dense tool and a marketing page want opposite treatments. Decide which this is and commit — the uncomfortable middle, where a data table has landing-page padding, serves neither.
Finish the states
Loading, empty, error, and overflow are where products feel unfinished. An empty state is a design opportunity; a spinner with no context is an admission. Long strings, long lists, and small screens must all be handled, not hoped about.
Dark mode is a palette, not an inversion
Inverting a light theme produces the characteristic bad dark mode: pure black backgrounds, pure white text, and shadows that do nothing.
- Use a very dark gray rather than pure black, and a slightly dimmed white rather than pure white. Maximum contrast between the two causes halation and is genuinely tiring to read.
- Elevation reverses: in light themes raised surfaces cast shadows, in dark themes they get lighter. Shadow alone conveys nothing on a dark ground.
- Saturated colors that worked on white will vibrate on dark. Desaturate and lighten accent colors for the dark palette rather than reusing them.
- Define both palettes together, at token level, from the start. Retrofitting means auditing every surface.
Accessibility floor
These are not polish items — below them, some people cannot use the interface at all.
- Text contrast meeting the standard ratio against its actual background, including text over images and inside colored buttons.
- Never carry meaning by color alone. A red border indicating an error needs text or an icon too.
- Every interactive element reachable by keyboard, in a sensible order, with a visible focus state.
- Touch targets large enough to hit reliably, with spacing between adjacent ones.
- Respect the reduced-motion preference: animation that cannot be disabled causes real symptoms for some users.
- Real semantic elements — buttons that are buttons, headings in order. A styled div is invisible to assistive technology.
Sources
references/sources.md in this skill lists the outside authorities that settle the questions
here — what each one is authoritative for, and what you may do with it. Check them before
answering on anything they cover, and cite what you used. Most are free to read and not free
to reproduce; the use note on each is binding.
Never
- Add visual weight to fix a hierarchy problem caused by too many equal elements. Remove instead.
- Center body text.
- Ship a hover state without the matching focus state.
Files (headcount)
-
references
-
sources.md 3.5 KB
# Sources — `product:interface-craft` <!-- Generated by scripts/build-sources.py from sources/*.toml. Do not edit. --> Check these before answering on anything they cover, and cite what you used. The use note on each one is binding: most of what a professional cites is free to read and not free to reproduce. ## Age Appropriate Design Code UK Information Commissioner's Office · UK · free to use with attribution — credit the publisher <https://ico.org.uk/for-organisations/uk-gdpr-guidance-and-resources/childrens-information/childrens-code-guidance-and-resources/> **Authoritative for:** What default settings, nudges and profiling are permissible in a service likely to be used by children. A statutory code, so it settles whether onboarding may default a toggle on. ## CCPA regulations, California Code of Regulations title 11 California Privacy Protection Agency · US-CA · public domain — quote freely <https://cppa.ca.gov/regulations/consumer_privacy_act.html> **Authoritative for:** Symmetry in choice, as law. It settles whether a consent flow where accepting is one click and declining is three is permissible — converting what is usually argued as design taste into a compliance question. ## California Automatic Renewal Law, Business and Professions Code 17600-17606 California Legislative Counsel · US-CA · public domain — quote freely <https://leginfo.legislature.ca.gov/faces/codes_displayText.xhtml?division=7.&chapter=1.&part=3.&lawCode=BPC&article=9.> **Authoritative for:** The concrete cancellation obligations a subscription business actually has to meet, because California's requirements are stricter than the federal floor and apply to any California customer — which in practice makes them the binding ones. ## Human Interface Guidelines Apple · global · **read and cite only — copyrighted, do not reproduce** <https://developer.apple.com/design/human-interface-guidelines> **Authoritative for:** What correct platform behavior is on Apple platforms — control semantics, navigation structure, touch targets. Its authority is not taste: deviation is grounds for review rejection. ## Unicode Common Locale Data Repository Unicode Consortium · global · free to use with attribution — credit the publisher <https://cldr.unicode.org/> **Authoritative for:** Correct date, number, currency, name-order, plural and sort behavior for a locale. Settles how something should render in a given language with data rather than guesswork, and every platform's internationalization library derives from it. ## WAI-ARIA and the ARIA Authoring Practices Guide World Wide Web Consortium · global · **read and cite only — copyrighted, do not reproduce** <https://www.w3.org/WAI/ARIA/apg/> Machine-readable: <https://www.w3.org/TR/wai-aria-1.2/> **Authoritative for:** Which roles, states and keyboard interactions a given widget must implement. Settles whether Escape should close a dialog and whether a role is the right one, without appeal to preference. ## Web Content Accessibility Guidelines 2.2 World Wide Web Consortium · global · **read and cite only — copyrighted, do not reproduce** <https://www.w3.org/TR/WCAG22/> **Authoritative for:** Whether a page, email or video is accessible. It is the criteria list that US Section 508, the EU's EN 301 549 and most enterprise procurement point at, so it settles any argument that reaches a buyer's accessibility requirement. --- Sources are maintained in `sources/` upstream, not here. If one is wrong, out of date, or missing, fix it there — this file is regenerated and an edit to it is lost.
-
-
SKILL.md 4.3 KB
--- name: interface-craft description: Raises the visual and interaction quality of an interface — layout, hierarchy, type, spacing, density, and the details that separate a considered product from a generic one. Use this when a screen works but looks unfinished or default, when a layout feels crowded or arbitrary, when a page has no clear focal point, or when an interface needs to feel trustworthy rather than merely functional. --- # Interface craft Most interfaces do not fail on ideas. They fail on execution — spacing that is nearly consistent, hierarchy that is nearly clear, type that is nearly right. ## Diagnose before restyling Ask what the screen is *for*. One primary action, at most one secondary. If you cannot name the primary action, the layout problem is a product problem and no amount of styling fixes it. ## The things that actually read as quality **Hierarchy.** A viewer should know where to look before they read anything. Achieve it with size, weight, and space — in that order. Color is the weakest hierarchy tool and the most overused. **Spacing rhythm.** Related things sit closer than unrelated things, and the gaps come from one scale. Inconsistent spacing is the defect people feel but cannot name. Get proximity right and a plain layout reads as designed. **Type.** One family for the interface, two at most on the page. Set a real scale and use its steps rather than inventing sizes. Body text wants a comfortable measure — roughly 60–75 characters — and line height that grows as the measure widens. **Restraint in surfaces.** Borders, shadows, and fills all separate things. Pick one per boundary. Stacking all three is why interfaces look busy at normal density. **Alignment.** Everything lines up with something. An element aligned to nothing reads as a mistake even when it is intentional. ## Density is a decision An information-dense tool and a marketing page want opposite treatments. Decide which this is and commit — the uncomfortable middle, where a data table has landing-page padding, serves neither. ## Finish the states Loading, empty, error, and overflow are where products feel unfinished. An empty state is a design opportunity; a spinner with no context is an admission. Long strings, long lists, and small screens must all be handled, not hoped about. ## Dark mode is a palette, not an inversion Inverting a light theme produces the characteristic bad dark mode: pure black backgrounds, pure white text, and shadows that do nothing. - Use a very dark gray rather than pure black, and a slightly dimmed white rather than pure white. Maximum contrast between the two causes halation and is genuinely tiring to read. - Elevation reverses: in light themes raised surfaces cast shadows, in dark themes they get *lighter*. Shadow alone conveys nothing on a dark ground. - Saturated colors that worked on white will vibrate on dark. Desaturate and lighten accent colors for the dark palette rather than reusing them. - Define both palettes together, at token level, from the start. Retrofitting means auditing every surface. ## Accessibility floor These are not polish items — below them, some people cannot use the interface at all. - Text contrast meeting the standard ratio against its actual background, including text over images and inside colored buttons. - Never carry meaning by color alone. A red border indicating an error needs text or an icon too. - Every interactive element reachable by keyboard, in a sensible order, with a visible focus state. - Touch targets large enough to hit reliably, with spacing between adjacent ones. - Respect the reduced-motion preference: animation that cannot be disabled causes real symptoms for some users. - Real semantic elements — buttons that are buttons, headings in order. A styled div is invisible to assistive technology. ## Sources `references/sources.md` in this skill lists the outside authorities that settle the questions here — what each one is authoritative for, and what you may do with it. Check them before answering on anything they cover, and cite what you used. Most are free to read and not free to reproduce; the use note on each is binding. ## Never - Add visual weight to fix a hierarchy problem caused by too many equal elements. Remove instead. - Center body text. - Ship a hover state without the matching focus state.
Comments (0)
Sign in to join the conversation.
Reviews (0)
No reviews yet.
No comments yet.