2026-02-05 23:01:36 -05:00

7.3 KiB

DAS Website Layout Guide

A cozy, personal space for lo-fi beats


Design Philosophy

This site should feel like stepping into a friend's carefully curated music space. Warm, intimate, uncluttered. Every pixel serves the music.


Spacing System

Container Padding

  • Desktop: 80px horizontal, 60px vertical
  • Tablet: 40px horizontal, 40px vertical
  • Mobile: 24px horizontal, 32px vertical

Section Spacing (vertical)

  • Between major sections: 120px (desktop), 80px (tablet), 60px (mobile)
  • Between subsections: 60px (desktop), 40px (tablet), 32px (mobile)
  • Between elements in a group: 24px (desktop), 20px (tablet), 16px (mobile)

Track List Item Spacing

  • Gap between tracks: 16px
  • Internal padding: 20px (desktop), 16px (mobile)
  • Hover expansion: Add 4px padding-top and padding-bottom on hover

Typography Hierarchy

Font Families

  • Headings: System font stack: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif
  • Body: Same as headings for cohesion
  • Accent/Artist name: Consider a gentle rounded sans like 'DM Sans', 'Inter', system-ui

Font Sizes

Desktop (1024px+)

  • Artist Name (H1): 72px, font-weight: 700, letter-spacing: -0.02em
  • Tagline: 24px, font-weight: 400, letter-spacing: 0.01em, opacity: 0.85
  • Section Headers (H2): 36px, font-weight: 600
  • Track Titles: 20px, font-weight: 500
  • Track Album/Description: 16px, font-weight: 400, opacity: 0.7
  • About Text: 18px, font-weight: 400, line-height: 1.7
  • Buttons/Links: 16px, font-weight: 500, letter-spacing: 0.02em

Tablet (768px - 1023px)

  • Artist Name: 56px
  • Tagline: 20px
  • Section Headers: 28px
  • Track Titles: 18px
  • Track Album/Description: 15px
  • About Text: 17px
  • Buttons/Links: 15px

Mobile (<768px)

  • Artist Name: 40px
  • Tagline: 18px
  • Section Headers: 24px
  • Track Titles: 17px
  • Track Album/Description: 14px
  • About Text: 16px, line-height: 1.65
  • Buttons/Links: 15px

Color Palette

Primary Colors

Background: #FFF8F0 (warm off-white, like aged paper)
Text Primary: #2A2420 (warm dark brown, not pure black)
Text Secondary: rgba(42, 36, 32, 0.65)

Accent Colors

Primary Accent: #E85D75 (warm coral pink)
Hover Accent: #D94460 (deeper coral)
Secondary Accent: #FFA07A (light salmon - for subtle highlights)

Interactive States

Link Default: #2A2420
Link Hover: #E85D75
Button Background: #E85D75
Button Hover: #D94460
Button Text: #FFF8F0
Track Item Hover Background: rgba(232, 93, 117, 0.08)

Semantic Colors

Focus Ring: 2px solid #E85D75, offset 2px
Border/Divider: rgba(42, 36, 32, 0.12)

Responsive Breakpoints

/* Mobile-first approach */

/* Small phones */
@media (max-width: 375px) {
  /* Tighter spacing, smaller fonts */
}

/* Standard mobile */
@media (min-width: 376px) and (max-width: 767px) {
  /* Base mobile styles */
}

/* Tablet portrait */
@media (min-width: 768px) and (max-width: 1023px) {
  /* Medium spacing and fonts */
}

/* Desktop */
@media (min-width: 1024px) {
  /* Full spacing and fonts */
}

/* Large desktop */
@media (min-width: 1440px) {
  /* Optional: max-width container, centered */
  /* Max content width: 1200px */
}

Component-Specific Guidelines

Hero Section (Artist Name + Tagline)

  • Alignment: Center
  • Vertical spacing from top: 80px (desktop), 60px (mobile)
  • Tagline margin-top: 16px
  • Animation: Subtle fade-in on load (0.6s ease)

Track List

  • Max width: 640px, centered
  • Border radius: 12px per item
  • Transition: all 0.2s ease-in-out
  • Hover state: Lift with subtle shadow box-shadow: 0 4px 12px rgba(42, 36, 32, 0.08)
  • Play button (if added): 40px circle, positioned left or center, accent color

About Section

  • Max width: 560px, centered
  • Text alignment: Center
  • Line height: 1.7 (desktop), 1.65 (mobile)
  • Layout: Horizontal flex on desktop, vertical stack on mobile (<600px)
  • Button style: Rounded corners (24px), 16px vertical padding, 32px horizontal padding
  • Gap between buttons: 16px
  • Icon size (if added): 20px, positioned left of text with 8px gap
  • Hover effect: Slight scale (transform: scale(1.02)) + color change

Accessibility Considerations

Color Contrast

  • Text on background: Minimum WCAG AA (4.5:1 for body text, 3:1 for large text)
  • Accent color on white: #E85D75 on #FFF8F0 = ~4.8:1 ✓
  • Dark text on white: #2A2420 on #FFF8F0 = ~13.5:1 ✓

Focus States

  • All interactive elements must have visible focus ring
  • Focus ring: 2px solid accent color, 2px offset
  • Never remove outline without replacing with visible alternative

Keyboard Navigation

  • Tab order: Logical top-to-bottom flow
  • Skip links: Consider "Skip to music" link at top
  • Interactive elements: Minimum 44x44px touch target on mobile

Screen Reader Support

  • Artist name: Wrapped in <h1> with proper hierarchy
  • Track list: Semantic <ul> with <li> items
  • Links: Descriptive text ("Listen on Spotify" not just "Spotify")
  • Icons: Include aria-label or sr-only text
  • Album art (if added): Descriptive alt text

Motion & Animation

  • Respect prefers-reduced-motion:
@media (prefers-reduced-motion: reduce) {
  * {
    animation-duration: 0.01ms !important;
    transition-duration: 0.01ms !important;
  }
}

Performance

  • Font loading: Use font-display: swap to prevent invisible text
  • Images (if added): Lazy load, provide width/height to prevent layout shift
  • Animations: Use transform and opacity for GPU acceleration

Mobile-Specific Considerations

Touch Targets

  • Minimum size: 44x44px (48x48px recommended)
  • Spacing between targets: At least 8px

Viewport

<meta name="viewport" content="width=device-width, initial-scale=1">

Horizontal Scrolling

  • Never require horizontal scroll
  • Text: Must wrap naturally
  • Buttons: Stack vertically if needed

Performance

  • Keep total page weight under 500KB (before images)
  • Critical CSS: Inline above-the-fold styles
  • Lazy load: Below-the-fold content

Implementation Notes

:root {
  --color-bg: #FFF8F0;
  --color-text: #2A2420;
  --color-text-secondary: rgba(42, 36, 32, 0.65);
  --color-accent: #E85D75;
  --color-accent-hover: #D94460;
  
  --spacing-xs: 8px;
  --spacing-sm: 16px;
  --spacing-md: 24px;
  --spacing-lg: 40px;
  --spacing-xl: 60px;
  --spacing-xxl: 80px;
  
  --radius-sm: 8px;
  --radius-md: 12px;
  --radius-lg: 24px;
  
  --font-size-xs: 14px;
  --font-size-sm: 16px;
  --font-size-md: 18px;
  --font-size-lg: 24px;
  --font-size-xl: 36px;
  --font-size-xxl: 72px;
}

Animation Timing

  • Micro-interactions (hover, focus): 150-250ms
  • Page transitions: 400-600ms
  • Ease function: cubic-bezier(0.4, 0.0, 0.2, 1) for smoothness

Final Touch: Personality

This isn't just a website—it's a feeling. Every interaction should whisper, not shout. Think:

  • Gentle hover states (not aggressive)
  • Breathing room (generous whitespace)
  • Organic shapes (rounded corners, soft shadows)
  • Warm tones (no harsh blues or grays)
  • Handcrafted vibe (imperfect is perfect)

The goal: visitors should want to stay, not just visit.