Design Taste — Frontend
A comprehensive design taste and visual quality guide for building premium, modern frontend interfaces across web and mobile platforms.
1. Core Design Principles
The Hierarchy of Visual Quality
- Spacing & Alignment — The #1 indicator of design quality. Inconsistent spacing = amateur.
- Typography — Sets the entire tone. Good type choices carry even minimal designs.
- Color & Contrast — Creates mood, guides attention, signals interactivity.
- Depth & Layering — Shadows, blur, z-ordering create spatial relationships.
- Motion & Feedback — Makes the interface feel alive and responsive.
Design Taste Signals
✅ Premium Feel:
- Generous whitespace (don't be afraid of empty space)
- Tight leading on large headings, loose leading on body text
- Subtle color palette with 1–2 accent colors
- Consistent 4px/8px spacing grid
- Purposeful shadows (not generic
box-shadow)
❌ Amateur Signals:
- Default browser fonts and sizes
- Rainbow of unrelated colors
- Inconsistent padding/margins
- Borders everywhere instead of spacing and background contrast
- Generic stock icons that don't match in style
2. Typography System
Font Selection Strategy
| Category |
Recommended Fonts |
Personality |
| Modern Sans |
Inter, Geist, Satoshi, Plus Jakarta Sans |
Clean, techy, versatile |
| Classic Sans |
Helvetica Neue, SF Pro, Roboto |
Neutral, professional |
| Geometric |
Outfit, Poppins, Montserrat |
Friendly, approachable |
| Serif (Editorial) |
Playfair Display, Lora, Source Serif |
Authoritative, editorial |
| Mono |
JetBrains Mono, Fira Code, SF Mono |
Code, technical data |
Type Scale (Recommended)
--text-xs: 0.75rem / 12px — Captions, badges
--text-sm: 0.875rem / 14px — Secondary text, labels
--text-base: 1rem / 16px — Body text (base)
--text-lg: 1.125rem / 18px — Lead paragraphs
--text-xl: 1.25rem / 20px — Card titles
--text-2xl: 1.5rem / 24px — Section headings
--text-3xl: 1.875rem / 30px — Page sub-headings
--text-4xl: 2.25rem / 36px — Page headings
--text-5xl: 3rem / 48px — Hero headings
--text-6xl: 3.75rem / 60px — Display / marketing
Typography Rules
- Line height: 1.2 for headings, 1.5–1.6 for body text
- Letter spacing: Slightly tighten headings (
-0.02em), slightly loosen uppercase labels (0.05em)
- Max line width: 65–75 characters for body text readability
- Font weight contrast: Use at minimum 2 weights (e.g., 400 regular + 600 semibold)
- Never use more than 2 font families on a single project
3. Color System
Building a Palette
Brand Primary: 1 hero color (used sparingly for CTAs, links, active states)
Brand Secondary: 1 complementary accent (used for secondary actions, tags)
Neutrals: 10-step gray scale (50–950) for text, borders, backgrounds
Semantic: Success (green), Warning (amber), Error (red), Info (blue)
Dark Mode Strategy
- Don't just invert colors — redesign lightness relationships
- Use
hsl() and adjust lightness channel: light mode L=95% bg → dark mode L=10%
- Reduce saturation slightly in dark mode (vibrant colors glare on dark backgrounds)
- Shadows become ambient glows or are removed entirely
- Use elevated surfaces (lighter grays) instead of shadows for depth
Color Application Rules
| Element |
Light Mode |
Dark Mode |
| Page background |
hsl(0, 0%, 98%) |
hsl(0, 0%, 7%) |
| Card surface |
hsl(0, 0%, 100%) |
hsl(0, 0%, 11%) |
| Primary text |
hsl(0, 0%, 9%) |
hsl(0, 0%, 95%) |
| Secondary text |
hsl(0, 0%, 45%) |
hsl(0, 0%, 55%) |
| Border |
hsl(0, 0%, 90%) |
hsl(0, 0%, 18%) |
| Primary accent |
hsl(220, 90%, 56%) |
hsl(220, 90%, 64%) |
4. Spacing & Layout
Spacing Scale (8px grid)
--space-1: 4px — Inline icon gaps
--space-2: 8px — Tight element groups
--space-3: 12px — Related elements
--space-4: 16px — Default padding
--space-5: 20px — Card padding
--space-6: 24px — Section gaps
--space-8: 32px — Section spacing
--space-10: 40px — Major sections
--space-12: 48px — Page-level spacing
--space-16: 64px — Hero / feature sections
--space-20: 80px — Large page sections
Layout Patterns
- Max content width: 1200–1400px for marketing, 960–1080px for reading, full-width for dashboards
- Grid: CSS Grid for page layout, Flexbox for component internals
- Responsive breakpoints:
640px (sm), 768px (md), 1024px (lg), 1280px (xl)
- Container padding: 16px mobile → 24px tablet → 32px desktop
5. Component Quality Standards
Buttons
- Minimum touch target: 44×44px (mobile), 36×36px (desktop)
- Visual hierarchy: Primary (filled) → Secondary (outlined) → Ghost (text-only)
- Hover: subtle background shift + slight translateY(-1px) lift
- Active: darken + translateY(0) press-down
- Loading state: spinner replaces label, button width stays fixed
Cards
- Consistent border-radius: pick one (8px, 12px, or 16px) and apply everywhere
- Subtle shadow:
0 1px 3px rgba(0,0,0,0.06), 0 1px 2px rgba(0,0,0,0.04)
- Hover shadow:
0 8px 24px rgba(0,0,0,0.08) with smooth transition
- Content padding: 20–24px, uniform on all sides
Inputs & Forms
- Label above input (not placeholder-as-label)
- Consistent border color → focused ring color transition
- Error messages appear below with red text + icon
- Success states: green checkmark, not just color
Icons
- Use a single icon library (Lucide, Phosphor, SF Symbols, Material Symbols)
- Consistent size: 16px inline, 20px in buttons, 24px standalone
- Consistent stroke width across all icons
- Color: match surrounding text color (not arbitrary colors)
6. Visual Effects & Depth
Shadow System
--shadow-xs: 0 1px 2px rgba(0, 0, 0, 0.05);
--shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.06), 0 1px 2px rgba(0, 0, 0, 0.04);
--shadow-md: 0 4px 8px rgba(0, 0, 0, 0.06), 0 2px 4px rgba(0, 0, 0, 0.04);
--shadow-lg: 0 12px 24px rgba(0, 0, 0, 0.08), 0 4px 8px rgba(0, 0, 0, 0.04);
--shadow-xl: 0 20px 40px rgba(0, 0, 0, 0.1), 0 8px 16px rgba(0, 0, 0, 0.04);
Glassmorphism (Use Sparingly)
.glass {
background: rgba(255, 255, 255, 0.6);
backdrop-filter: blur(12px) saturate(180%);
border: 1px solid rgba(255, 255, 255, 0.3);
border-radius: 16px;
}
Gradients
- Hero backgrounds: Subtle radial gradients, mesh gradients
- Text gradients: Use only for hero/display text, never body copy
- Border gradients:
border-image or pseudo-element overlay for premium card effects
- Keep gradient angle consistent (usually 135deg or 180deg)
7. Mobile-Specific Guidelines
iOS Design Conventions
- Large title navigation bars with bold SF Pro Display
- Tab bars at the bottom with filled/outlined icon toggle
- Swipe-to-go-back gesture support
- Haptic feedback on meaningful interactions
- Safe area insets for notch/dynamic island
Android / Material Design Conventions
- FAB (Floating Action Button) for primary action
- Top app bar with elevation on scroll
- Bottom navigation with label + icon
- Ripple effect on tap
- Edge-to-edge rendering with system bar transparency
Responsive Image Strategy
- Use
srcset and sizes for resolution switching
- Lazy load below-fold images with
loading="lazy"
- Aspect ratio containers to prevent layout shift
- WebP/AVIF with fallback for older browsers
1---2name: design-taste-frontend3description: Frontend tasarım zevki rehberi: modern web ve mobil arayüzler için tipografi, renk, boşluk, düzen kalıpları ve görsel kalite standartları.4---56# Design Taste — Frontend78A comprehensive design taste and visual quality guide for building premium, modern frontend interfaces across web and mobile platforms.910---1112## 1. Core Design Principles1314### The Hierarchy of Visual Quality151. **Spacing & Alignment** — The #1 indicator of design quality. Inconsistent spacing = amateur.162. **Typography** — Sets the entire tone. Good type choices carry even minimal designs.173. **Color & Contrast** — Creates mood, guides attention, signals interactivity.184. **Depth & Layering** — Shadows, blur, z-ordering create spatial relationships.195. **Motion & Feedback** — Makes the interface feel alive and responsive.2021### Design Taste Signals22✅ **Premium Feel:**23- Generous whitespace (don't be afraid of empty space)24- Tight leading on large headings, loose leading on body text25- Subtle color palette with 1–2 accent colors26- Consistent 4px/8px spacing grid27- Purposeful shadows (not generic `box-shadow`)2829❌ **Amateur Signals:**30- Default browser fonts and sizes31- Rainbow of unrelated colors32- Inconsistent padding/margins33- Borders everywhere instead of spacing and background contrast34- Generic stock icons that don't match in style3536---3738## 2. Typography System3940### Font Selection Strategy41| Category | Recommended Fonts | Personality |42|---|---|---|43| **Modern Sans** | Inter, Geist, Satoshi, Plus Jakarta Sans | Clean, techy, versatile |44| **Classic Sans** | Helvetica Neue, SF Pro, Roboto | Neutral, professional |45| **Geometric** | Outfit, Poppins, Montserrat | Friendly, approachable |46| **Serif (Editorial)** | Playfair Display, Lora, Source Serif | Authoritative, editorial |47| **Mono** | JetBrains Mono, Fira Code, SF Mono | Code, technical data |4849### Type Scale (Recommended)50```51--text-xs: 0.75rem / 12px — Captions, badges52--text-sm: 0.875rem / 14px — Secondary text, labels53--text-base: 1rem / 16px — Body text (base)54--text-lg: 1.125rem / 18px — Lead paragraphs55--text-xl: 1.25rem / 20px — Card titles56--text-2xl: 1.5rem / 24px — Section headings57--text-3xl: 1.875rem / 30px — Page sub-headings58--text-4xl: 2.25rem / 36px — Page headings59--text-5xl: 3rem / 48px — Hero headings60--text-6xl: 3.75rem / 60px — Display / marketing61```6263### Typography Rules64- **Line height**: 1.2 for headings, 1.5–1.6 for body text65- **Letter spacing**: Slightly tighten headings (`-0.02em`), slightly loosen uppercase labels (`0.05em`)66- **Max line width**: 65–75 characters for body text readability67- **Font weight contrast**: Use at minimum 2 weights (e.g., 400 regular + 600 semibold)68- **Never use more than 2 font families** on a single project6970---7172## 3. Color System7374### Building a Palette75```76Brand Primary: 1 hero color (used sparingly for CTAs, links, active states)77Brand Secondary: 1 complementary accent (used for secondary actions, tags)78Neutrals: 10-step gray scale (50–950) for text, borders, backgrounds79Semantic: Success (green), Warning (amber), Error (red), Info (blue)80```8182### Dark Mode Strategy83- Don't just invert colors — redesign lightness relationships84- Use `hsl()` and adjust lightness channel: light mode L=95% bg → dark mode L=10%85- Reduce saturation slightly in dark mode (vibrant colors glare on dark backgrounds)86- Shadows become ambient glows or are removed entirely87- Use elevated surfaces (lighter grays) instead of shadows for depth8889### Color Application Rules90| Element | Light Mode | Dark Mode |91|---|---|---|92| Page background | `hsl(0, 0%, 98%)` | `hsl(0, 0%, 7%)` |93| Card surface | `hsl(0, 0%, 100%)` | `hsl(0, 0%, 11%)` |94| Primary text | `hsl(0, 0%, 9%)` | `hsl(0, 0%, 95%)` |95| Secondary text | `hsl(0, 0%, 45%)` | `hsl(0, 0%, 55%)` |96| Border | `hsl(0, 0%, 90%)` | `hsl(0, 0%, 18%)` |97| Primary accent | `hsl(220, 90%, 56%)` | `hsl(220, 90%, 64%)` |9899---100101## 4. Spacing & Layout102103### Spacing Scale (8px grid)104```105--space-1: 4px — Inline icon gaps106--space-2: 8px — Tight element groups107--space-3: 12px — Related elements108--space-4: 16px — Default padding109--space-5: 20px — Card padding110--space-6: 24px — Section gaps111--space-8: 32px — Section spacing112--space-10: 40px — Major sections113--space-12: 48px — Page-level spacing114--space-16: 64px — Hero / feature sections115--space-20: 80px — Large page sections116```117118### Layout Patterns119- **Max content width**: 1200–1400px for marketing, 960–1080px for reading, full-width for dashboards120- **Grid**: CSS Grid for page layout, Flexbox for component internals121- **Responsive breakpoints**: `640px` (sm), `768px` (md), `1024px` (lg), `1280px` (xl)122- **Container padding**: 16px mobile → 24px tablet → 32px desktop123124---125126## 5. Component Quality Standards127128### Buttons129- Minimum touch target: 44×44px (mobile), 36×36px (desktop)130- Visual hierarchy: Primary (filled) → Secondary (outlined) → Ghost (text-only)131- Hover: subtle background shift + slight translateY(-1px) lift132- Active: darken + translateY(0) press-down133- Loading state: spinner replaces label, button width stays fixed134135### Cards136- Consistent border-radius: pick one (8px, 12px, or 16px) and apply everywhere137- Subtle shadow: `0 1px 3px rgba(0,0,0,0.06), 0 1px 2px rgba(0,0,0,0.04)`138- Hover shadow: `0 8px 24px rgba(0,0,0,0.08)` with smooth transition139- Content padding: 20–24px, uniform on all sides140141### Inputs & Forms142- Label above input (not placeholder-as-label)143- Consistent border color → focused ring color transition144- Error messages appear below with red text + icon145- Success states: green checkmark, not just color146147### Icons148- Use a single icon library (Lucide, Phosphor, SF Symbols, Material Symbols)149- Consistent size: 16px inline, 20px in buttons, 24px standalone150- Consistent stroke width across all icons151- Color: match surrounding text color (not arbitrary colors)152153---154155## 6. Visual Effects & Depth156157### Shadow System158```css159--shadow-xs: 0 1px 2px rgba(0, 0, 0, 0.05);160--shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.06), 0 1px 2px rgba(0, 0, 0, 0.04);161--shadow-md: 0 4px 8px rgba(0, 0, 0, 0.06), 0 2px 4px rgba(0, 0, 0, 0.04);162--shadow-lg: 0 12px 24px rgba(0, 0, 0, 0.08), 0 4px 8px rgba(0, 0, 0, 0.04);163--shadow-xl: 0 20px 40px rgba(0, 0, 0, 0.1), 0 8px 16px rgba(0, 0, 0, 0.04);164```165166### Glassmorphism (Use Sparingly)167```css168.glass {169 background: rgba(255, 255, 255, 0.6);170 backdrop-filter: blur(12px) saturate(180%);171 border: 1px solid rgba(255, 255, 255, 0.3);172 border-radius: 16px;173}174```175176### Gradients177- **Hero backgrounds**: Subtle radial gradients, mesh gradients178- **Text gradients**: Use only for hero/display text, never body copy179- **Border gradients**: `border-image` or pseudo-element overlay for premium card effects180- Keep gradient angle consistent (usually 135deg or 180deg)181182---183184## 7. Mobile-Specific Guidelines185186### iOS Design Conventions187- Large title navigation bars with bold SF Pro Display188- Tab bars at the bottom with filled/outlined icon toggle189- Swipe-to-go-back gesture support190- Haptic feedback on meaningful interactions191- Safe area insets for notch/dynamic island192193### Android / Material Design Conventions194- FAB (Floating Action Button) for primary action195- Top app bar with elevation on scroll196- Bottom navigation with label + icon197- Ripple effect on tap198- Edge-to-edge rendering with system bar transparency199200### Responsive Image Strategy201- Use `srcset` and `sizes` for resolution switching202- Lazy load below-fold images with `loading="lazy"`203- Aspect ratio containers to prevent layout shift204- WebP/AVIF with fallback for older browsers