design-guide

design-guide

Ensures modern, professional UI design across SwiftUI, Android, and web platforms. Use when building ANY user interface components including buttons, forms, cards, layouts, navigation, or complete screens. Enforces clean minimal design, neutral color palettes with one accent color, 8px grid spacing system, proper typography hierarchy, and clear interactive states. Always reference before creating or modifying UI elements.

7Sterne
0Forks
Aktualisiert 1/22/2026
SKILL.md
readonlyread-only
name
design-guide
description

Ensures modern, professional UI design across SwiftUI, Android, and web platforms. Use when building ANY user interface components including buttons, forms, cards, layouts, navigation, or complete screens. Enforces clean minimal design, neutral color palettes with one accent color, 8px grid spacing system, proper typography hierarchy, and clear interactive states. Always reference before creating or modifying UI elements.

Design Guide

Comprehensive design system ensuring every UI you build looks modern, professional, and consistent across all platforms (SwiftUI, Android Studio, web applications).

Bundled Resources

This skill includes additional reference materials:

  • references/color-palettes.md - Detailed color schemes, accent color options, and platform-specific color implementation examples. Reference when choosing or implementing colors.
  • references/component-templates.md - Ready-to-use code templates for buttons, cards, forms, and navigation across SwiftUI, Android Compose, and React. Reference when implementing specific components.

Core Design Principles

1. Clean and Minimal

  • Embrace white space generously
  • Avoid cluttered interfaces
  • One primary action per screen/section
  • Remove unnecessary decorative elements
  • Let content breathe

2. Color Palette

Neutral Base:

  • Use grays and off-whites as foundation
  • White: #FFFFFF
  • Light gray: #F5F5F5, #EEEEEE
  • Medium gray: #9E9E9E, #757575
  • Dark gray: #424242, #212121
  • True black sparingly: #000000

Accent Color:

  • Choose ONE accent color for your app
  • Use sparingly for CTAs, important actions, and key information
  • Good accent options: Emerald (#10B981), Indigo (#6366F1), Rose (#F43F5E), Amber (#F59E0B)
  • NEVER use generic purple/blue gradients

Color Usage Rules:

  • 80% neutral, 15% secondary neutral, 5% accent
  • Backgrounds: light grays or white
  • Text: dark grays on light backgrounds
  • Interactive elements: accent color
  • Borders/dividers: very light gray (#E5E5E5)

3. Spacing System (8px Grid)

Always use multiples of 8:

  • 8px: Tight spacing (icon padding, inline elements)
  • 16px: Standard spacing (button padding, form field gaps)
  • 24px: Section spacing (card internal padding)
  • 32px: Component spacing (between cards, sections)
  • 48px: Major section breaks
  • 64px: Screen-level spacing (margins)

Application:

  • Padding: 16px or 24px for most containers
  • Margins: 32px between major sections
  • Gap between elements: 16px standard, 8px for tight groups
  • Never use arbitrary values like 13px or 27px

4. Typography

Hierarchy:

  • H1: 32px - 40px, bold, rare (page titles only)
  • H2: 24px - 28px, semibold (section headers)
  • H3: 20px - 24px, semibold (subsections)
  • Body: 16px - 18px, regular (MINIMUM 16px for readability)
  • Small: 14px, regular (captions, metadata)
  • Tiny: 12px, regular (legal text only, use rarely)

Font Rules:

  • Maximum 2 font families per project
  • One for headings (can be display font)
  • One for body text (must be highly readable)
  • Recommended pairings:
    • Inter + Inter (single family, different weights)
    • SF Pro Display + SF Pro Text (Apple platforms)
    • Roboto + Roboto (Android)
    • System fonts always acceptable

Line Height:

  • Headings: 1.2 - 1.3
  • Body: 1.5 - 1.6
  • Small text: 1.4

5. Shadows

Subtle, not heavy:

  • Small shadow: 0 1px 3px rgba(0,0,0,0.12)
  • Medium shadow: 0 4px 6px rgba(0,0,0,0.1)
  • Large shadow: 0 10px 15px rgba(0,0,0,0.1)
  • Floating shadow: 0 20px 25px rgba(0,0,0,0.1)

When to use:

  • Cards: subtle shadow or border, not both
  • Buttons: very subtle shadow on hover
  • Modals/dialogs: medium shadow
  • Dropdowns: medium shadow
  • Avoid: heavy drop shadows, inner shadows, multiple shadows

6. Rounded Corners

Border Radius Guidelines:

  • Small elements (buttons, inputs): 6px - 8px
  • Cards, containers: 8px - 12px
  • Large panels: 12px - 16px
  • Circular (avatars, icon buttons): 50% or 9999px

Don't overdo it:

  • Not everything needs rounded corners
  • Sharp corners acceptable for:
    • Screen edges
    • Full-width sections
    • Data tables
    • Navigation bars

7. Interactive States

Every interactive element MUST have:

Buttons:

  • Default: base color, subtle shadow
  • Hover: slightly darker (10%), lift shadow
  • Active: pressed appearance, darker (20%)
  • Disabled: 40% opacity, no hover, no pointer cursor
  • Focus: visible outline (2px accent color, 2px offset)

Form Fields:

  • Default: light gray border (#E5E5E5)
  • Focus: accent color border (2px), remove shadow
  • Error: red border, error text below
  • Disabled: gray background, no interaction
  • Valid: subtle green checkmark (optional)

Links:

  • Default: accent color, underline on hover
  • Visited: slightly muted accent
  • Never: blue #0000FF (unless that's your accent)

Cards:

  • Default: subtle shadow or border
  • Hover: lift effect, slightly stronger shadow
  • Active: immediate feedback

8. Mobile-First Thinking

Always design for mobile first, then scale up:

  • Touch targets minimum 44x44px (iOS), 48x48px (Android)
  • Adequate spacing between tappable elements (min 8px)
  • Thumb-friendly navigation (bottom of screen)
  • Single column layouts on mobile
  • Responsive breakpoints:
    • Mobile: < 640px
    • Tablet: 640px - 1024px
    • Desktop: > 1024px

Component Patterns

Buttons

Primary Button (main action):

Background: Accent color
Text: White
Padding: 12px 24px (vertical, horizontal)
Border radius: 8px
Shadow: 0 1px 3px rgba(0,0,0,0.12)
Font: 16px, semibold
Hover: Darken 10%, lift shadow

Secondary Button (alternative action):

Background: White
Text: Accent color
Border: 1px solid accent color
Padding: 12px 24px
Border radius: 8px
Hover: Light accent background (10% opacity)

Ghost Button (tertiary action):

Background: Transparent
Text: Dark gray
No border
Padding: 12px 24px
Hover: Light gray background

Bad Button Examples:

  • ❌ Gradient backgrounds
  • ❌ Multiple colors in one button
  • ❌ Tiny padding (looks cramped)
  • ❌ No hover state
  • ❌ Text too small (< 14px)

Cards

Standard Card:

Background: White
Border: 1px solid #E5E5E5 OR subtle shadow (not both)
Border radius: 12px
Padding: 24px
Margin bottom: 16px

OR

Background: White
Shadow: 0 4px 6px rgba(0,0,0,0.1)
Border radius: 12px
Padding: 24px
Margin bottom: 16px

Card Content Spacing:

  • Title to subtitle: 8px
  • Subtitle to content: 16px
  • Content sections: 24px
  • Content to actions: 24px

Bad Card Examples:

  • ❌ Both border AND shadow
  • ❌ Heavy shadows
  • ❌ Inconsistent padding
  • ❌ Too many colors

Forms

Form Field:

Label: 14px, semibold, dark gray, margin bottom 8px
Input: 
  - Height: 44px minimum
  - Padding: 12px 16px
  - Border: 1px solid #E5E5E5
  - Border radius: 8px
  - Background: White
  - Font: 16px
  - Focus: Accent border, no shadow
  
Error state:
  - Border: Red
  - Helper text: Red, 14px, margin top 4px
  
Field spacing: 24px between fields

Form Layout:

  • Labels above inputs (not beside)
  • Clear required indicators
  • Group related fields
  • Adequate spacing (24px minimum)
  • Submit button: full width on mobile, auto on desktop

Bad Form Examples:

  • ❌ Labels inside inputs (placeholder text is not a label)
  • ❌ Tiny text (< 16px)
  • ❌ Cramped spacing
  • ❌ No error states
  • ❌ Unclear required fields

Navigation

Top Navigation:

Height: 64px
Background: White
Border bottom: 1px solid #E5E5E5
Padding: 0 32px (desktop), 0 16px (mobile)
Logo: 32px height
Links: 16px, medium weight, dark gray
Active link: Accent color

Bottom Navigation (Mobile):

Height: 56px
Background: White
Shadow: 0 -4px 6px rgba(0,0,0,0.1)
Icons: 24px, centered
Labels: 12px (optional)
Active: Accent color

Design Quality Checklist

Before considering any UI complete, verify:

Layout:

  • [ ] Adequate white space throughout
  • [ ] Consistent spacing using 8px grid
  • [ ] Not cluttered or cramped
  • [ ] Clear visual hierarchy

Colors:

  • [ ] Neutral base colors (grays/whites)
  • [ ] Only ONE accent color
  • [ ] NO gradients (unless specifically requested)
  • [ ] Sufficient contrast (WCAG AA minimum)

Typography:

  • [ ] Clear hierarchy (size + weight)
  • [ ] Body text minimum 16px
  • [ ] Maximum 2 font families
  • [ ] Readable line heights

Interactive Elements:

  • [ ] Clear hover states
  • [ ] Clear active states
  • [ ] Clear disabled states
  • [ ] Clear focus states (keyboard navigation)

Components:

  • [ ] Buttons have proper padding
  • [ ] Forms have clear labels and spacing
  • [ ] Cards use border OR shadow, not both
  • [ ] Shadows are subtle

Mobile:

  • [ ] Touch targets minimum 44x44px
  • [ ] Works on small screens
  • [ ] Adequate spacing for touch

Platform-Specific Notes

SwiftUI

  • Use .padding() with explicit values from 8px grid
  • Use Color with hex initializers for consistent colors
  • Leverage @Environment(\.colorScheme) for dark mode
  • Use SF Symbols for icons (always consistent)

Android Studio

  • Use dp units (1dp ≈ 1px on mdpi)
  • Material Design 3 components acceptable but customize colors
  • Use dimens.xml for spacing constants
  • Leverage Compose for modern UI

Web (HTML/CSS/React)

  • Use CSS variables for colors and spacing
  • Mobile-first media queries
  • Use semantic HTML
  • Leverage Tailwind CSS classes following this guide

Anti-Patterns to Avoid

NEVER do these:

  • ❌ Rainbow gradients everywhere
  • ❌ Different colors on every element
  • ❌ Purple/blue gradients by default
  • ❌ Tiny unreadable text (< 16px body)
  • ❌ Inconsistent spacing (random values)
  • ❌ Heavy drop shadows
  • ❌ Overly rounded everything
  • ❌ Missing interactive states
  • ❌ Both borders AND shadows on same element
  • ❌ Cluttered layouts with no white space
  • ❌ More than 2 font families
  • ❌ Touch targets smaller than 44px

Quick Reference

Spacing: 8, 16, 24, 32, 48, 64px
Typography: 16px minimum body, max 2 fonts
Colors: Neutral base + ONE accent
Shadows: Subtle only
Border radius: 6-12px most elements
Interactive states: Always include hover, active, disabled, focus

Always reference this guide before creating any UI component. Consistency is key to professional design.

You Might Also Like

Related Skills

cache-components

cache-components

137Kdev-frontend

Expert guidance for Next.js Cache Components and Partial Prerendering (PPR). **PROACTIVE ACTIVATION**: Use this skill automatically when working in Next.js projects that have `cacheComponents: true` in their next.config.ts/next.config.js. When this config is detected, proactively apply Cache Components patterns and best practices to all React Server Component implementations. **DETECTION**: At the start of a session in a Next.js project, check for `cacheComponents: true` in next.config. If enabled, this skill's patterns should guide all component authoring, data fetching, and caching decisions. **USE CASES**: Implementing 'use cache' directive, configuring cache lifetimes with cacheLife(), tagging cached data with cacheTag(), invalidating caches with updateTag()/revalidateTag(), optimizing static vs dynamic content boundaries, debugging cache issues, and reviewing Cache Component implementations.

vercel avatarvercel
Holen
component-refactoring

component-refactoring

128Kdev-frontend

Refactor high-complexity React components in Dify frontend. Use when `pnpm analyze-component --json` shows complexity > 50 or lineCount > 300, when the user asks for code splitting, hook extraction, or complexity reduction, or when `pnpm analyze-component` warns to refactor before testing; avoid for simple/well-structured components, third-party wrappers, or when the user explicitly wants testing without refactoring.

langgenius avatarlanggenius
Holen
web-artifacts-builder

web-artifacts-builder

47Kdev-frontend

Suite of tools for creating elaborate, multi-component claude.ai HTML artifacts using modern frontend web technologies (React, Tailwind CSS, shadcn/ui). Use for complex artifacts requiring state management, routing, or shadcn/ui components - not for simple single-file HTML/JSX artifacts.

anthropics avataranthropics
Holen
frontend-design

frontend-design

47Kdev-frontend

Create distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, artifacts, posters, or applications (examples include websites, landing pages, dashboards, React components, HTML/CSS layouts, or when styling/beautifying any web UI). Generates creative, polished code and UI design that avoids generic AI aesthetics.

anthropics avataranthropics
Holen
react-modernization

react-modernization

28Kdev-frontend

Upgrade React applications to latest versions, migrate from class components to hooks, and adopt concurrent features. Use when modernizing React codebases, migrating to React Hooks, or upgrading to latest React versions.

wshobson avatarwshobson
Holen
tailwind-design-system

tailwind-design-system

28Kdev-frontend

Build scalable design systems with Tailwind CSS v4, design tokens, component libraries, and responsive patterns. Use when creating component libraries, implementing design systems, or standardizing UI patterns.

wshobson avatarwshobson
Holen