Interface Design Expert
A first-principles instrument for designing and reviewing interfaces in any medium — web,
desktop, mobile, games, terminal/TUI, voice, spatial, and surfaces nobody has documented yet.
Human perception and cognition don't change with the substrate; only the expression and the values
do. Everything here runs on that split: principles are universal; values are resolved per
medium; novel problems are derived from the invariants in
rules/foundations.md, never pattern-matched from another platform.
The operating loop
Run this for every engagement, both modes:
- Establish context and thesis. The artifact (screenshot / concept / code), the medium and
platform, the users and their goal. Then name the design's thesis: the one or two
dimensions it must maximize, and which dials it relaxes to get there. If the thesis isn't
stated, infer it and say what you assumed. Genericism check: if the thesis would fit any
product in the category, it isn't doing work — sharpen it until it forces at least one visible
design choice.
- Resolve every number. Never emit a quantitative value from memory. Resolution order:
(1) user/project override → (2) documented platform/medium default → (3) the stricter,
most-inclusive fallback, named as such. Concrete values live only in
rules/platform-values.md. The rule covers every number in the
deliverable, including the tail — line-heights, focus-ring widths, timeouts, panel widths,
thresholds — not just the headline values. Where no documented source exists, declare the
choice inline — (chosen: <one-line rationale>) — an explicit declaration is provenance;
silence is not.
- Judge each consideration by its kind — four kinds, four procedures:
- Floors (pass/fail; a breach is a defect regardless of intent): legibility; sufficient
contrast; meaning never by color alone; function never gated behind motion; system/user
settings honored; user agency over interruption and immersion (the person — not the product —
decides when interruptions, full-screen, and immersive modes begin and end); visible focus and
keyboard operability; data integrity; truthful feedback; honest patterns (transparent about
what the product does and collects — never deceptive); cheap recovery from mistakes (undo
where feasible; confirm what can't be undone); a responsiveness floor; and any domain-specific
safety constraint. Adapt a floor's expression per medium; never remove it.
- Budgets (finite aggregates; overdraft is a defect even when each instance fits the
intent): attention/emphasis, interruption & trust, novelty, motion, performance weight.
Ceilings derive from the finite-attention and finite-trust invariants and are
intent-independent — the thesis tunes only the allocation. Judge on the whole: a screen can
pass every per-element check and still be overdrawn. Cite the worst spenders.
- Dials (tuned to the thesis; misfit, not breach): density ↔ whitespace; guidance ↔
minimalism; motion restraint ↔ expressiveness; ornament ↔ restraint; convention ↔ novelty;
breadth ↔ depth; consistency ↔ bespoke moments; coexistence ↔ immersion. A relaxed dial in
service of the thesis is craft; relaxed by accident, a defect. Record which ideal was
relaxed, for which goal.
- Elective moves (tools, not requirements): continuity transitions, delight moments,
dynamic theming, coachmarks, deep progressive disclosure. Judge "would this help here, and
is it well-executed if used?" — absence is never a finding.
- Work the lenses — generatively (build order below) or evaluatively (survey below). For
anything novel or ambiguous, derive from
rules/foundations.md first:
constraint → requirement → candidates (conventional and invented) → predict → test.
- Deliver the contract (output formats below), flagging what static work can't confirm —
motion feel, live-theme contrast — as "needs runtime check." The deliverable speaks the
client's domain language: never reference this skill's internal machinery ("lenses", "dials",
"budgets", "the value-resolution rule") inside the artifact — state each rationale in the
domain's own terms.
Media: dominant lenses and adaptation
The lenses are substrate-agnostic; what changes per medium is the input model, the dominant
lenses, and the values (resolve per the rule above; surface-specific values and constraints live
in platform-values.md → Surfaces beyond the defaults).
| Interface |
Input model |
Dominant lenses |
| Web |
pointer + touch + keyboard |
layout · accessibility · navigation/IA |
| Native desktop |
pointer + keyboard |
interaction · consistency (platform conventions) · layout |
| Mobile / tablet |
touch (+ pointer) |
layout (reach) · interaction · accessibility |
| Games |
gamepad / KBM / touch |
interaction (latency, focus-nav) · aesthetics · accessibility (build it yourself) |
| Terminal / TUI |
keyboard-first |
layout (cell grid) · interaction · color (palette limits) |
| Voice / conversational |
speech (+ keypad) |
content/voice · interaction · navigation/IA |
| Spatial / XR |
gaze + gesture |
interaction (comfort floors) · layout (depth) · accessibility |
| Wearable / TV / novel |
varies |
derive from foundations; resolve values per the rule |
When you know the target is exactly iOS, iPadOS, macOS, or the web platform, also consult that
platform skill (ios-design-guidelines, ipados-design-guidelines, macos-design-guidelines,
web-design-guidelines) for concrete components; this skill is the primary reference for
everything else and for cross-platform work.
Designing (build order)
Default posture: boring by default, novel on purpose. Absent a thesis reason, take the
established convention — spend the novelty budget only where the thesis demands a visible
difference. Each step names its governing lens and produces an artifact the next step consumes:
- Thesis & dial settings → one paragraph: intent, maximized dimensions, relaxed dials, the
emotion the product should evoke (foundations, aesthetics).
- Conceptual model & objects → the user-facing objects, their relationships, and the actions
on them — match models users already hold (foundations).
- Structure → organization, labels, navigation, search; entry architecture (what gates the
first session) (navigation-ia).
- Layout system → grid/spacing unit, hierarchy per screen, responsive/adaptive behavior
(layout).
- Interaction model & bedrock states → the few bedrock tasks, each with a full state map
(default/hover/focus/disabled/loading/error/empty); input methods; forgiveness (undo/confirm)
(interaction).
- Tokens → type scale, semantic color (light+dark), spacing, motion — every value resolved
with provenance (typography, color-theming, platform-values).
- Copy → labels, prompts, errors in the product's voice; transparency at every ask
(content-voice).
- Composition pass → squint test per key screen: one focal point, decisive contrast, coherent
whole; spend the emphasis budget deliberately (aesthetics).
Self-check before delivering (cheap, not a full review): floors — all of them, against the
list above; budgets — any aggregate overdrawn?; squint test on the primary screen; state-walk one
bedrock task end to end; and sweep the finished artifact for bare numbers — every numeral,
down to line-heights, widths, breakpoints, and timeouts, carries a source or a (chosen: …) tag.
The tail values are where this always fails. Then ship the spec as structure + key screens/states + tokens +
rationale (which constraint each major decision serves). Treat it as a starting point: prototype
early, discard what doesn't work — craft is ongoing, not a phase.
Reviewing (survey)
- Run the operating loop (context, thesis, value resolution).
- Select lenses. All nine + foundations for a full review; the medium's dominant lenses for a
quick pass; one lens for a focused question. Fan out one agent per lens for thorough work
(briefing below).
- Calibrate severity: floor breach →
blocker/high · budget overdraft → high (judged on
the aggregate; cite the worst spenders) · dial misfit → medium (fit-to-thesis, argued) ·
polish → low · elective-move absence → not a finding (at most a suggestion).
- Synthesize weighted by the thesis — do the right dimensions win, and is any floor breached
or budget overdrawn?
## <Artifact> — design survey
**Context:** <medium · platform · users/goal · artifact type>
**Intent:** <thesis and maximized dimension(s) — stated or inferred>
**Summary:** <2–3 sentences: overall read and the most important takeaways>
### Findings
- **[<Dimension> · <blocker/high/medium/low>]** <Principle> — <the issue, concretely, located> — Fix: <what to do>
### Tensions & tradeoffs
- <ideal relaxed, for which goal — and whether the call is sound>
### Needs runtime check
- <motion / live-theme items static review can't confirm>
### Strengths
- <what's working, so it survives the fixes>
Dimensions (lenses)
| # |
Dimension |
Lens file |
Owns |
| — |
Cognitive & perceptual foundations |
rules/foundations.md |
the invariants; deriving the novel |
| 1 |
Layout & visual hierarchy |
rules/layout.md |
the eye's first stop; grids; adaptation |
| 2 |
Typography |
rules/typography.md |
type system; legibility; measure |
| 3 |
Color & theming |
rules/color-theming.md |
semantic color; modes; contrast |
| 4 |
Accessibility |
rules/accessibility.md |
floors made concrete; AT; settings |
| 5 |
Interaction, states & motion |
rules/interaction.md |
states; agency; feedback; motion |
| 6 |
Content & voice |
rules/content-voice.md |
words; tone; transparency |
| 7 |
Navigation & IA |
rules/navigation-ia.md |
structure; wayfinding; entry |
| 8 |
Consistency |
rules/consistency.md |
tokens; conventions; cohesion |
| 9 |
Aesthetics & visual composition |
rules/aesthetics.md |
the assembled whole; emphasis budget; emotion |
Numbers for every dimension: rules/platform-values.md.
Handing off to a review agent
Each lens file is self-contained. Per agent:
Review <artifact> with the interface-design-expert skill.
Context: medium=<…>, platform=<…>, users/goal=<…>. Intent: <thesis>.
Lens: <one lens>. Read its file in interface-design-expert/rules/, apply its principles as checks,
plus its "Checks beyond the principles". Consult foundations.md for the why; resolve every number
via platform-values.md (never invent one).
Judge by kind: floors and budget overdrafts are defects regardless of intent (severity: floors →
blocker/high, budgets → high on the aggregate); dials are fit-to-thesis (medium); absence of an
elective technique is never a finding.
Return the survey format: [Dimension · severity] principle — issue (located) — fix, plus Tensions,
Needs runtime check, Strengths.
Merge agent results, de-duplicate, and re-rank severities against the calibration above.
1---2name: interface-design-expert3description: Modern, general-purpose UI/UX design expertise for any kind of interface — web, native desktop (macOS, Windows, Linux), mobile, games, terminal/TUI, voice, and emerging surfaces. Use it to DESIGN new interfaces and to REVIEW/critique existing ones (a screenshot, a described concept, or live code) across multiple design dimensions at once — layout, typography, color & theming, accessibility, interaction & motion, content & voice, navigation & information architecture, consistency, and aesthetics & visual composition — grounded in cognitive & perceptual foundations. Self-contained and built to hand off to a review agent (one lens per agent, in parallel). Reach for it to review/critique an interface, design a UI or design system, choose design principles/tokens, or reason about UX from first principles. Prefer the platform skills (ios/ipados/macos/web-design-guidelines) when the work targets exactly one of those platforms.4license: MIT5---67# Interface Design Expert89A first-principles instrument for **designing** and **reviewing** interfaces in any medium — web,10desktop, mobile, games, terminal/TUI, voice, spatial, and surfaces nobody has documented yet.11Human perception and cognition don't change with the substrate; only the expression and the values12do. Everything here runs on that split: **principles are universal; values are resolved per13medium; novel problems are derived from the invariants** in14[`rules/foundations.md`](rules/foundations.md), never pattern-matched from another platform.1516## The operating loop1718Run this for every engagement, both modes:19201. **Establish context and thesis.** The artifact (screenshot / concept / code), the medium and21 platform, the users and their goal. Then name the design's **thesis**: the one or two22 dimensions it must maximize, and which dials it relaxes to get there. If the thesis isn't23 stated, infer it and say what you assumed. *Genericism check: if the thesis would fit any24 product in the category, it isn't doing work — sharpen it until it forces at least one visible25 design choice.*262. **Resolve every number.** Never emit a quantitative value from memory. Resolution order:27 (1) user/project override → (2) documented platform/medium default → (3) the stricter,28 most-inclusive fallback, named as such. Concrete values live only in29 [`rules/platform-values.md`](rules/platform-values.md). The rule covers **every number in the30 deliverable, including the tail** — line-heights, focus-ring widths, timeouts, panel widths,31 thresholds — not just the headline values. Where no documented source exists, declare the32 choice inline — `(chosen: <one-line rationale>)` — an explicit declaration is provenance;33 silence is not.343. **Judge each consideration by its kind** — four kinds, four procedures:35 - **Floors** (pass/fail; a breach is a defect regardless of intent): legibility; sufficient36 contrast; meaning never by color alone; function never gated behind motion; system/user37 settings honored; user agency over interruption and immersion (the person — not the product —38 decides when interruptions, full-screen, and immersive modes begin and end); visible focus and39 keyboard operability; data integrity; truthful feedback; honest patterns (transparent about40 what the product does and collects — never deceptive); cheap recovery from mistakes (undo41 where feasible; confirm what can't be undone); a responsiveness floor; and any domain-specific42 safety constraint. Adapt a floor's *expression* per medium; never remove it.43 - **Budgets** (finite aggregates; overdraft is a defect even when each instance fits the44 intent): attention/emphasis, interruption & trust, novelty, motion, performance weight.45 Ceilings derive from the finite-attention and finite-trust invariants and are46 intent-independent — the thesis tunes only the *allocation*. Judge on the whole: a screen can47 pass every per-element check and still be overdrawn. Cite the worst spenders.48 - **Dials** (tuned to the thesis; misfit, not breach): density ↔ whitespace; guidance ↔49 minimalism; motion restraint ↔ expressiveness; ornament ↔ restraint; convention ↔ novelty;50 breadth ↔ depth; consistency ↔ bespoke moments; coexistence ↔ immersion. A relaxed dial in51 service of the thesis is craft; relaxed by accident, a defect. Record which ideal was52 relaxed, for which goal.53 - **Elective moves** (tools, not requirements): continuity transitions, delight moments,54 dynamic theming, coachmarks, deep progressive disclosure. Judge *"would this help here, and55 is it well-executed if used?"* — **absence is never a finding.**564. **Work the lenses** — generatively (build order below) or evaluatively (survey below). For57 anything novel or ambiguous, derive from [`rules/foundations.md`](rules/foundations.md) first:58 constraint → requirement → candidates (conventional *and* invented) → predict → test.595. **Deliver the contract** (output formats below), flagging what static work can't confirm —60 motion feel, live-theme contrast — as "needs runtime check." The deliverable speaks the61 client's domain language: never reference this skill's internal machinery ("lenses", "dials",62 "budgets", "the value-resolution rule") inside the artifact — state each rationale in the63 domain's own terms.6465## Media: dominant lenses and adaptation6667The lenses are substrate-agnostic; what changes per medium is the input model, the dominant68lenses, and the values (resolve per the rule above; surface-specific values and constraints live69in [`platform-values.md → Surfaces beyond the defaults`](rules/platform-values.md#surfaces-beyond-the-defaults)).7071| Interface | Input model | Dominant lenses |72|---|---|---|73| Web | pointer + touch + keyboard | layout · accessibility · navigation/IA |74| Native desktop | pointer + keyboard | interaction · consistency (platform conventions) · layout |75| Mobile / tablet | touch (+ pointer) | layout (reach) · interaction · accessibility |76| Games | gamepad / KBM / touch | interaction (latency, focus-nav) · aesthetics · accessibility (build it yourself) |77| Terminal / TUI | keyboard-first | layout (cell grid) · interaction · color (palette limits) |78| Voice / conversational | speech (+ keypad) | content/voice · interaction · navigation/IA |79| Spatial / XR | gaze + gesture | interaction (comfort floors) · layout (depth) · accessibility |80| Wearable / TV / novel | varies | derive from foundations; resolve values per the rule |8182When you know the target is exactly iOS, iPadOS, macOS, or the web platform, also consult that83platform skill (`ios-design-guidelines`, `ipados-design-guidelines`, `macos-design-guidelines`,84`web-design-guidelines`) for concrete components; this skill is the primary reference for85everything else and for cross-platform work.8687## Designing (build order)8889**Default posture: boring by default, novel on purpose.** Absent a thesis reason, take the90established convention — spend the novelty budget only where the thesis demands a visible91difference. Each step names its governing lens and produces an artifact the next step consumes:92931. **Thesis & dial settings** → one paragraph: intent, maximized dimensions, relaxed dials, the94 emotion the product should evoke *(foundations, aesthetics)*.952. **Conceptual model & objects** → the user-facing objects, their relationships, and the actions96 on them — match models users already hold *(foundations)*.973. **Structure** → organization, labels, navigation, search; entry architecture (what gates the98 first session) *(navigation-ia)*.994. **Layout system** → grid/spacing unit, hierarchy per screen, responsive/adaptive behavior100 *(layout)*.1015. **Interaction model & bedrock states** → the few bedrock tasks, each with a full state map102 (default/hover/focus/disabled/loading/error/empty); input methods; forgiveness (undo/confirm)103 *(interaction)*.1046. **Tokens** → type scale, semantic color (light+dark), spacing, motion — every value resolved105 with provenance *(typography, color-theming, platform-values)*.1067. **Copy** → labels, prompts, errors in the product's voice; transparency at every ask107 *(content-voice)*.1088. **Composition pass** → squint test per key screen: one focal point, decisive contrast, coherent109 whole; spend the emphasis budget deliberately *(aesthetics)*.110111**Self-check before delivering (cheap, not a full review):** floors — all of them, against the112list above; budgets — any aggregate overdrawn?; squint test on the primary screen; state-walk one113bedrock task end to end; and **sweep the finished artifact for bare numbers** — every numeral,114down to line-heights, widths, breakpoints, and timeouts, carries a source or a `(chosen: …)` tag.115The tail values are where this always fails. Then ship the spec as **structure + key screens/states + tokens +116rationale** (which constraint each major decision serves). Treat it as a starting point: prototype117early, discard what doesn't work — craft is ongoing, not a phase.118119## Reviewing (survey)1201211. Run the operating loop (context, thesis, value resolution).1222. **Select lenses.** All nine + foundations for a full review; the medium's dominant lenses for a123 quick pass; one lens for a focused question. Fan out one agent per lens for thorough work124 (briefing below).1253. **Calibrate severity:** floor breach → `blocker`/`high` · budget overdraft → `high` (judged on126 the aggregate; cite the worst spenders) · dial misfit → `medium` (fit-to-thesis, argued) ·127 polish → `low` · elective-move absence → not a finding (at most a suggestion).1284. **Synthesize weighted by the thesis** — do the right dimensions win, and is any floor breached129 or budget overdrawn?130131```132## <Artifact> — design survey133**Context:** <medium · platform · users/goal · artifact type>134**Intent:** <thesis and maximized dimension(s) — stated or inferred>135**Summary:** <2–3 sentences: overall read and the most important takeaways>136137### Findings138- **[<Dimension> · <blocker/high/medium/low>]** <Principle> — <the issue, concretely, located> — Fix: <what to do>139140### Tensions & tradeoffs141- <ideal relaxed, for which goal — and whether the call is sound>142143### Needs runtime check144- <motion / live-theme items static review can't confirm>145146### Strengths147- <what's working, so it survives the fixes>148```149150## Dimensions (lenses)151152| # | Dimension | Lens file | Owns |153|---|---|---|---|154| — | Cognitive & perceptual foundations | [`rules/foundations.md`](rules/foundations.md) | the invariants; deriving the novel |155| 1 | Layout & visual hierarchy | [`rules/layout.md`](rules/layout.md) | the eye's first stop; grids; adaptation |156| 2 | Typography | [`rules/typography.md`](rules/typography.md) | type system; legibility; measure |157| 3 | Color & theming | [`rules/color-theming.md`](rules/color-theming.md) | semantic color; modes; contrast |158| 4 | Accessibility | [`rules/accessibility.md`](rules/accessibility.md) | floors made concrete; AT; settings |159| 5 | Interaction, states & motion | [`rules/interaction.md`](rules/interaction.md) | states; agency; feedback; motion |160| 6 | Content & voice | [`rules/content-voice.md`](rules/content-voice.md) | words; tone; transparency |161| 7 | Navigation & IA | [`rules/navigation-ia.md`](rules/navigation-ia.md) | structure; wayfinding; entry |162| 8 | Consistency | [`rules/consistency.md`](rules/consistency.md) | tokens; conventions; cohesion |163| 9 | Aesthetics & visual composition | [`rules/aesthetics.md`](rules/aesthetics.md) | the assembled whole; emphasis budget; emotion |164165Numbers for every dimension: [`rules/platform-values.md`](rules/platform-values.md).166167## Handing off to a review agent168169Each lens file is self-contained. Per agent:170171```172Review <artifact> with the interface-design-expert skill.173Context: medium=<…>, platform=<…>, users/goal=<…>. Intent: <thesis>.174Lens: <one lens>. Read its file in interface-design-expert/rules/, apply its principles as checks,175plus its "Checks beyond the principles". Consult foundations.md for the why; resolve every number176via platform-values.md (never invent one).177Judge by kind: floors and budget overdrafts are defects regardless of intent (severity: floors →178blocker/high, budgets → high on the aggregate); dials are fit-to-thesis (medium); absence of an179elective technique is never a finding.180Return the survey format: [Dimension · severity] principle — issue (located) — fix, plus Tensions,181Needs runtime check, Strengths.182```183184Merge agent results, de-duplicate, and re-rank severities against the calibration above.