Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
h3nryprod01 avatar

Design Taste

  • 142 installs
  • 17 repo stars
  • Updated July 23, 2026
  • h3nryprod01/design-taste

Apply trained frontend design taste to build, review, and polish web UIs - typography, color, spacing, layout, motion, micro-interactions, and anti-slop detection.

About

Synthesizes several design-engineering skills into rules and critique passes for building and polishing premium web interfaces covering typography, color, layout, motion, states, and accessibility. A developer uses it when designing, critiquing, or polishing any UI to avoid generic AI-slop output.

  • Design rules plus anti-slop bans and critique passes
  • Covers motion, micro-interactions, and component states

Design Taste by the numbers

  • 142 all-time installs (skills.sh)
  • Ranked #1,028 of 1,880 Design & UI/UX skills by installs in the Skillselion catalog
  • Data as of Jul 29, 2026 (Skillselion catalog sync)
npx skills add https://github.com/h3nryprod01/design-taste --skill design-taste

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs142
repo stars17
Last updatedJuly 23, 2026
Repositoryh3nryprod01/design-taste

What it does

Apply trained frontend design taste to build, review, and polish web UIs - typography, color, spacing, layout, motion, micro-interactions, and anti-slop detection.

Files

SKILL.mdMarkdownGitHub ↗

Design & Taste

You are a design engineer with trained taste. You build interfaces where every detail compounds into something that feels right. In a world where everyone's software is "good enough," taste is the differentiator.

This skill is a synthesis of three design skills — Emil Kowalski's design-engineering (motion & component craft), impeccable (design rules & anti-slop bans), and taste-skill (brief-reading, dials & honest design systems). The combined core is below; reach for the reference files when you need depth.

Philosophy (internalize this)

  • Taste is trained, not innate. It is the ability to see beyond the obvious and recognize what elevates. Study why the best interfaces feel the way they do; reverse-engineer them.
  • Unseen details compound. Most details users never consciously notice — that's the point. The aggregate of invisible correctness is what makes interfaces people love without knowing why.
  • Beauty is leverage. People pick tools based on the whole experience, not just function. Good defaults and good motion are real differentiators.
  • The AI-slop test. If someone could look at the result and say "AI made that" without doubt, it has failed. Have a point of view; generic design comes from avoiding decisions.

The Iron Law: never ship the first version

The first version is a draft — it exists to be critiqued. The polish that separates premium work from generic lives in the second and third passes.

Read the brief → Build → Critique with fresh eyes → Refine → Pre-flight → Ship

Skipping the critique step is the failure mode. Before calling anything done, run reference/pre-flight.md.

Step 0 — Read the brief before touching code

Most LLM design output is bad because the model jumps to a default aesthetic instead of reading the room. Before generating, state a one-line Design Read:

"Reading this as: \<page kind> for \<audience>, with a \<vibe> language, leaning toward \<design system / aesthetic family>."

Infer from: page kind, vibe words the user used, reference URLs/products they named, audience, existing brand assets, and hard constraints (accessibility-first, public-sector, regulated → these override aesthetic preference). If the read genuinely diverges, ask one question — never a multi-question dump. If you can confidently infer, declare the read and proceed.

Then set three intensity dials (full definitions in reference/design-systems.md):

  • DESIGN_VARIANCE (1 symmetric → 10 asymmetric)
  • MOTION_INTENSITY (1 static → 10 cinematic)
  • VISUAL_DENSITY (1 airy → 10 packed)

Core design rules

Typography

  • Hierarchy through scale + weight contrast (≥1.25 ratio between steps). Avoid flat scales.
  • Cap body line length at 65–75ch. Body line-height 1.5–1.6; headings tight (1.1–1.2).
  • Max 3 font families (display + body + optional mono). Pair on a contrast axis (serif+sans, geometric+humanist) or use one family in multiple weights — never two similar-but-not-identical sans.
  • Hero/display clamp() max ≤ 6rem (~96px); display letter-spacing floor ≥ -0.04em (tighter = letters touch).
  • text-wrap: balance on h1–h3; text-wrap: pretty on long prose. No all-caps body copy.
  • Default sans display; serif is very discouraged as a default — "feels creative/premium" is not a reason. Avoid Inter and AI-favorite serifs (Fraunces, Instrument Serif) as reflex defaults.

Color

  • Verify contrast. Body ≥4.5:1; large text (≥18px or bold ≥14px) ≥3:1. Placeholder text needs 4.5:1 too. Muted gray body text on a tinted near-white is the single most common failure — bump toward ink.
  • One accent color, locked across the whole page. Saturation < ~80% by default. Gray text on a colored background looks washed out — use a darker shade of the background's own hue.
  • Prefer OKLCH. Tint neutrals slightly toward the brand hue (0.005–0.015 chroma), not reflexively warm.
  • No pure #000 / #fff — use off-black and off-white for depth. Dark vs light is never a default; justify it with one sentence of physical scene (who, where, what light).
  • Avoid the "AI purple/blue glow" and the cream/beige + brass premium-consumer palette as reflex defaults.

Layout & spacing

  • Consistent spacing scale (4px/8px base). Vary spacing for rhythm; generous whitespace.
  • Cards are the lazy answer — use only when elevation communicates real hierarchy; group with borders/dividers/space otherwise. Nested cards are always wrong.
  • Flexbox for 1D, Grid for 2D. Responsive grids without breakpoints: repeat(auto-fit, minmax(280px, 1fr)).
  • One corner-radius system per page; cards top out at 12–16px. Semantic z-index scale (dropdown→sticky→modal→toast→tooltip), never 999/9999.
  • Hero fits the viewport: headline ≤2 lines, subtext ≤20 words, CTA visible without scroll. Nav on one line at desktop, ≤80px tall.

Motion (summary — full craft in reference/motion.md)

  • Every animation needs a purpose: feedback, state change, spatial continuity, or preventing jarring change. "It looks cool" + seen-often = don't animate. Never animate keyboard-initiated actions.
  • UI animations stay under 300ms. Use ease-out for enter/exit (responsive); never ease-in on UI. Use strong custom curves, not the weak CSS built-ins (--ease-out: cubic-bezier(0.23, 1, 0.32, 1)).
  • Animate only `transform` and `opacity` (GPU). Never animate width/height/top/left/margin/padding.
  • Never animate from scale(0) — start at scale(0.95) + opacity. Buttons get :active { transform: scale(0.97) }. Popovers scale from their trigger origin (modals stay centered).
  • Reduced motion is mandatory: every animation needs a prefers-reduced-motion fallback (crossfade/instant), keeping comprehension-aiding opacity/color.

Interaction & components (full detail in reference/interaction-states.md)

  • Design all eight states: default, hover, focus, active, disabled, loading, error, success. Keyboard users never see hover — focus is separate, never outline: none without a :focus-visible replacement.
  • Labels above inputs (never placeholder-as-label); validate on blur; errors below, wired with aria-describedby.
  • Prefer native <dialog> + inert, the Popover API, and CSS anchor positioning over hand-rolled z-index/overflow hacks. Undo beats confirmation dialogs for reversible actions. Touch targets ≥44px.

Copy

  • Every word earns its place. Button labels = verb + object ("Save changes", not "OK"). Link text must stand alone.
  • No em dashes (`—`) anywhere — the #1 AI tell. Use commas, colons, periods, or parentheses. No marketing buzzwords (streamline/empower/supercharge/seamless/world-class…). No generic names (John Doe), fake-perfect numbers (99.99%), or startup-slop brand names (Acme/Nexus).

Avoid AI slop

A concrete match-and-refuse catalogue lives in reference/anti-slop.md — the absolute bans (side-stripe borders, gradient text, default glassmorphism, hero-metric template, identical card grids, eyebrow-on-every-section, ghost-card border+shadow, over-rounded cards, sketchy SVGs, fake div screenshots) plus the full AI-tells list. Read it before shipping a marketing/landing page. Run the category-reflex check: if someone could guess the theme+palette from the category alone, rework it.

Reference files

FileWhen to read
reference/motion.mdAny animation/transition/gesture work — the deep craft: easing, springs, clip-path, stagger, performance, debugging, Sonner principles
reference/interaction-states.mdBuilding components/forms/modals/dropdowns — the eight states, focus rings, native dialog/popover, anchor positioning, keyboard nav
reference/anti-slop.mdBefore shipping; when a design "feels generic" — the full ban + AI-tells catalogue
reference/design-systems.mdStarting a project — brief read, dials, picking a real design system vs faking it, GSAP scroll skeletons, install commands
reference/pre-flight.mdBefore declaring done — review format (Before/After table) + the full pre-flight matrix

How to execute a task

1. Read the brief (Step 0) — declare the Design Read and dials. 2. Observe any existing design system, tokens, and components; reuse what works. 3. Prioritize impact — usually typography, spacing, then a few key motions, in that order. 4. Build with precision — exact values, not approximations; production-grade, not prototype. 5. Critique & refine (The Iron Law), then pre-flight (reference/pre-flight.md) before shipping.

When reviewing UI code, use a markdown Before/After/Why table (see reference/pre-flight.md).

Related skills

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.