design

Core philosophy: Every interface should look designed by a team that obsesses over 1-pixel differences. Not stripped, crafted. And designed for its specific context.

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "design" with this command: npx skills add rileyhilliard/claude-essentials/rileyhilliard-claude-essentials-design

Design Principles

Core philosophy: Every interface should look designed by a team that obsesses over 1-pixel differences. Not stripped, crafted. And designed for its specific context.

Avoid AI Sameness

AI-generated UIs have a recognizable "median of the internet" feel. Polished but generic, like everything was designed by the same committee. Break out of that by making deliberate choices instead of reaching for defaults.

AI default patterns to actively avoid:

AI default Why it happens Do this instead

Indigo/purple gradients Tailwind's bg-indigo-500 saturated training data Choose an accent color that fits the product's emotional job

Inter or system fonts everywhere Statistically safest choice Pick typography that matches the product personality (see Choose Typography below)

Three-column icon grid Every SaaS landing page template uses this Vary card layouts by content type. Metric cards, feature cards, and testimonial cards should look different from each other

Centered hero + CTA button The default starting point for every landing page Consider what the user actually needs first. Maybe it's a dense dashboard, a split layout, or content-forward with no hero at all

Uniform border-radius on everything rounded-lg applied without thinking Pick a radius system and vary it by component role (sharp for data, softer for interactive)

White/light gray background + subtle shadow cards The safest possible surface treatment Commit to a depth strategy that matches the product (see Depth Strategy below)

Decorative gradients on hero sections Looks "modern" without communicating anything If using gradients, make them functional (show hierarchy, direct attention) not decorative

The test: If you swapped your brand name with a competitor's and the design still works, it's too generic. Something about the color foundation, typography, spacing rhythm, or layout density should feel specific to this product.

Controlled imperfection creates character. Perfect symmetry and uniform spacing everywhere reads as machine-generated. Human-designed interfaces have intentional asymmetry: a sidebar slightly narrower than expected, a headline that breaks the grid for emphasis, whitespace that breathes unevenly to create visual rhythm. These are deliberate choices, not sloppiness.

Design Direction (REQUIRED)

Before writing code, commit to a direction. Don't default. Think about what this specific product needs to feel like.

Think About Context

  • What does this product do? A finance tool needs different energy than a creative tool.

  • Who uses it? Power users want density. Occasional users want guidance.

  • What's the emotional job? Trust? Efficiency? Delight? Focus?

  • What would make this memorable? Every product has a chance to feel distinctive.

Choose a Personality

Direction Feel When to Use

Precision & Density Tight spacing, monochrome, info-forward Power users who live in the tool. Linear, Raycast, terminal aesthetics.

Warmth & Approachability Generous spacing, soft shadows, friendly Products that want to feel human. Notion, Coda, collaborative tools.

Sophistication & Trust Cool tones, layered depth, gravitas Products handling money or sensitive data. Stripe, Mercury.

Boldness & Clarity High contrast, dramatic negative space Modern, decisive products. Vercel, minimal dashboards.

Utility & Function Muted palette, functional density Work matters more than chrome. GitHub, developer tools.

Data & Analysis Chart-optimized, technical but accessible Analytics, metrics, business intelligence.

Pick one. Or blend two. But commit to a direction that fits the product.

Choose Foundation

Color foundation (don't default to warm):

  • Warm (creams, warm grays): approachable, comfortable, human

  • Cool (slate, blue-gray): professional, trustworthy, serious

  • Pure neutrals (true grays): minimal, bold, technical

  • Tinted (slight color cast): distinctive, memorable, branded

Light or dark? Dark feels technical, focused, premium. Light feels open, approachable, clean. Choose based on context.

Accent color: ONE that means something. Blue = trust. Green = growth. Orange = energy. Violet = creativity.

Choose Layout

  • Dense grids for information-heavy interfaces where users scan and compare

  • Generous spacing for focused tasks where users need to concentrate

  • Sidebar nav for multi-section apps with many destinations

  • Top nav for simpler tools with fewer sections

Choose Typography

  • System fonts: fast, native, invisible (utility-focused products)

  • Geometric sans (Geist, Inter): modern, clean, technical

  • Humanist sans (SF Pro, Satoshi): warmer, more approachable

  • Monospace influence: technical, developer-focused, data-heavy

Core Craft (Non-Negotiable)

The 4px Grid

All spacing uses 4px base: 4px (micro), 8px (tight), 12px (standard), 16px (comfortable), 24px (generous), 32px (major).

Symmetrical Padding

TLBR must match. If top is 16px, all sides are 16px. Exception: when content naturally creates visual balance.

Border Radius

Stick to 4px grid. Pick a system and commit:

  • Sharp: 4px, 6px, 8px

  • Soft: 8px, 12px

  • Minimal: 2px, 4px, 6px

Depth Strategy

Match depth to design direction. Different products need different approaches:

  • Borders-only (flat): Clean, technical. Linear, Raycast use almost no shadows.

  • Subtle single shadow: Soft lift without complexity.

  • Layered shadows: Rich, premium, dimensional. Stripe, Mercury.

  • Surface color shifts: Background tints establish hierarchy without shadows.

The craft is in the choice, not the complexity. A flat interface with perfect spacing is more polished than shadow-heavy with sloppy details.

Typography Hierarchy

  • Headlines: 600 weight, -0.02em tracking

  • Body: 400-500 weight

  • Labels: 500 weight, positive tracking for uppercase

  • Scale: 11px, 12px, 13px, 14px (base), 16px, 18px, 24px, 32px

Use monospace for numbers, IDs, codes, timestamps. Use tabular-nums for columns.

Font pairing: Display font for headlines (one statement font) + neutral body font. Don't mix two display fonts.

Color for Meaning Only

Gray builds structure. Color only appears when it communicates: status, action, error, success. Four-level contrast hierarchy: foreground → secondary → muted → faint.

Card Layouts

Internal layouts should vary by content. A metric card doesn't have to look like a plan card doesn't have to look like a settings card. One might have a sparkline, another an avatar stack, another a progress ring.

Surface treatment stays consistent: same border weight, shadow depth, corner radius, padding scale.

Isolated Controls

Never use native form elements for styled UI. Native <select> , <input type="date"> render OS-native elements that cannot be styled. Build custom components.

Custom select triggers: display: inline-flex with white-space: nowrap to keep text and icons on same row.

Navigation Context

Screens need grounding:

  • Navigation (sidebar or top)

  • Location indicator (breadcrumbs, active state)

  • User context (who's logged in)

When building sidebars, consider using same background as main content. Linear, Vercel use subtle border for separation rather than different backgrounds.

Dark Mode

  • Borders over shadows: Shadows less visible on dark backgrounds

  • Adjust semantic colors: Desaturate for dark backgrounds

  • Same hierarchy, inverted values

Motion & Animation

Motion is communication, not decoration. Every animation should have a reason.

  • Timing: 150-200ms for micro-interactions, 300-400ms for larger transitions

  • Easing: ease-out for entrances, ease-in for exits, ease-in-out for state changes

  • Staggered reveals: When loading multiple items, stagger by 50-75ms for polished feel

  • Scroll-triggered: Subtle fade-in on scroll for long pages (opacity + small translateY)

Avoid: Spring physics, bouncy overshoots, parallax effects. Keep motion functional.

Texture & Atmosphere

For products that need visual depth beyond shadows:

  • Subtle gradients: Background gradients (2-3% opacity shift) add dimension without distraction

  • Noise overlay: 1-2% noise on large surfaces prevents flatness (especially dark mode)

  • Glass effects: backdrop-filter: blur() for elevated surfaces, used sparingly

  • Border gradients: Subtle gradient borders on hero cards for premium feel

Match to personality: Precision products stay flat. Sophisticated products layer depth.

Anti-Patterns

Never:

  • Dramatic drop shadows (0 25px 50px... )

  • Large radius (16px+) on small elements

  • Asymmetric padding without reason

  • Pure white cards on colored backgrounds

  • Thick borders (2px+) for decoration

  • Spring/bouncy animations

  • Multiple accent colors

  • Motion without purpose

The Standard

Different products want different things. A dev tool wants precision and density. A collaborative product wants warmth and space. A financial product wants trust and sophistication.

Same quality bar, context-driven execution.

Implementation

Detect which styling approach the project uses, then load the matching reference:

Project uses Load

Vanilla CSS, CSS Modules, styled-components, or no Tailwind references/craft-css.md

Tailwind CSS references/craft-tailwind.md

If unclear, check for tailwind.config or @tailwind directives in the project. Default to CSS if neither is found.

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

writer

No summary provided by upstream source.

Repository SourceNeeds Review
General

strategy-writer

No summary provided by upstream source.

Repository SourceNeeds Review
General

reading-logs

No summary provided by upstream source.

Repository SourceNeeds Review