Files
honeyDueKMP/iosApp/DESIGN_SYSTEM.md
Trey t 4c9dc56e64 Implement modern design system for iOS app
Created a comprehensive, modern design system and applied it to key views for a sleek, contemporary look.

Design System Features:
- Modern color palette with blue primary and purple accent colors
- Semantic colors for success, warning, error, and info states
- Typography scale with SF Rounded for headlines
- Spacing and radius systems for consistent layout
- Shadow utilities for depth and elevation
- Reusable button and card styles

Modernized Views:
- LoginView: Card-based layout with gradient app icon, animated focus states, gradient buttons
- HomeScreenView: Personalized greeting, modern navigation cards
- OverviewCard: Stats grid with circular icon badges and dividers
- StatView: Circular backgrounds with modern typography
- HomeNavigationCard: Gradient icon backgrounds with clean hierarchy

Key Improvements:
- Replaced hardcoded colors with design system tokens
- Added gradient accents for visual interest
- Improved spacing and typography hierarchy
- Added subtle shadows for depth
- Implemented animated focus states
- Better disabled and loading states for buttons

Documentation:
- Added DESIGN_SYSTEM.md with comprehensive usage guide
- Documented colors, typography, spacing, and component patterns
- Included migration guide for updating remaining views

All views remain separate files as requested.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-10 11:45:45 -06:00

206 lines
5.3 KiB
Markdown

# MyCrib iOS Design System
## Overview
This document outlines the modern, sleek design system implemented for the MyCrib iOS app.
## Design Philosophy
- **Modern & Clean**: Minimalist approach with ample white space
- **Consistent**: Reusable components with unified styling
- **Accessible**: High contrast ratios and readable typography
- **Delightful**: Subtle animations and gradient accents
## Color Palette
### Primary Colors
- **Primary**: `#2563EB` - Modern blue for primary actions
- **Primary Light**: `#3B82F6` - Lighter variant for gradients
- **Primary Dark**: `#1E40AF` - Darker variant for pressed states
### Accent Colors
- **Accent**: `#8B5CF6` - Purple for special highlights
- **Accent Light**: `#A78BFA` - Lighter purple for gradients
### Semantic Colors
- **Success**: `#10B981` - Green for completed/success states
- **Warning**: `#F59E0B` - Orange for in-progress/warning states
- **Error**: `#EF4444` - Red for errors and destructive actions
- **Info**: `#3B82F6` - Blue for informational content
### Neutral Colors
- **Background**: `#F9FAFB` - Light gray for app background
- **Surface**: `#FFFFFF` - White for cards and surfaces
- **Surface Secondary**: `#F3F4F6` - Light gray for secondary surfaces
- **Text Primary**: `#111827` - Near black for primary text
- **Text Secondary**: `#6B7280` - Medium gray for secondary text
- **Text Tertiary**: `#9CA3AF` - Light gray for tertiary text
- **Border**: `#E5E7EB` - Light gray for borders
- **Border Light**: `#F3F4F6` - Very light gray for subtle borders
## Typography
### Display (Hero Sections)
- **Display Large**: 57pt, Bold, Rounded
- **Display Medium**: 45pt, Bold, Rounded
- **Display Small**: 36pt, Bold, Rounded
### Headline (Section Headers)
- **Headline Large**: 32pt, Bold, Rounded
- **Headline Medium**: 28pt, Semibold, Rounded
- **Headline Small**: 24pt, Semibold, Rounded
### Title (Card Titles)
- **Title Large**: 22pt, Semibold
- **Title Medium**: 18pt, Semibold
- **Title Small**: 16pt, Semibold
### Body (Main Content)
- **Body Large**: 17pt, Regular
- **Body Medium**: 15pt, Regular
- **Body Small**: 13pt, Regular
### Label (Labels & Captions)
- **Label Large**: 14pt, Medium
- **Label Medium**: 12pt, Medium
- **Label Small**: 11pt, Medium
### Caption
- **Caption**: 12pt, Regular
## Spacing Scale
- **XXS**: 4pt
- **XS**: 8pt
- **SM**: 12pt
- **MD**: 16pt
- **LG**: 24pt
- **XL**: 32pt
- **XXL**: 48pt
- **XXXL**: 64pt
## Border Radius
- **XS**: 4pt
- **SM**: 8pt
- **MD**: 12pt
- **LG**: 16pt
- **XL**: 20pt
- **XXL**: 24pt
- **Full**: 9999pt (Circular)
## Shadows
- **SM**: rgba(0,0,0,0.05), radius: 2, y: 1
- **MD**: rgba(0,0,0,0.1), radius: 4, y: 2
- **LG**: rgba(0,0,0,0.1), radius: 8, y: 4
- **XL**: rgba(0,0,0,0.15), radius: 16, y: 8
## Component Patterns
### Cards
- White background (`AppColors.surface`)
- Rounded corners (16pt or 20pt)
- Subtle shadow (`AppShadow.md` or `AppShadow.lg`)
- Padding: 16-32pt depending on content
### Buttons
- **Primary**: Gradient background, white text, 56pt height
- **Secondary**: Light gray background, primary color text, 56pt height
- Rounded corners: 12pt
- Pressed state: Scale to 0.98
### Text Fields
- Light gray background (`AppColors.surfaceSecondary`)
- 16pt padding
- 12pt rounded corners
- Focused state: Primary color border + subtle shadow
- Icon prefix for visual context
### Navigation Cards
- Gradient icon background in rounded rectangle
- Clear hierarchy: Title (semibold) + Subtitle (secondary color)
- Chevron indicator
- Hover/tap feedback
## Modernization Highlights
### Login Screen
- Circular gradient app icon with shadow
- Card-based form layout
- Animated focus states on input fields
- Gradient button with disabled states
- Clean error messaging
### Home Screen
- Personalized greeting header
- Stats overview card with icon badges
- Modern navigation cards with gradient icons
- Smooth scroll experience
### Components
- **OverviewCard**: Stats grid with dividers and icon badges
- **StatView**: Circular icon backgrounds with modern typography
- **HomeNavigationCard**: Gradient icons with clean layout
- **Design System**: Centralized colors, typography, and spacing
## Usage
### Importing the Design System
```swift
import SwiftUI
// Colors
.foregroundColor(AppColors.primary)
.background(AppColors.surface)
// Typography
.font(AppTypography.headlineSmall)
// Spacing
.padding(AppSpacing.md)
// Radius
.cornerRadius(AppRadius.lg)
// Shadows
.shadow(color: AppShadow.lg.color, radius: AppShadow.lg.radius, y: AppShadow.lg.y)
// Gradients
.fill(AppColors.primaryGradient)
```
### Button Styles
```swift
Button("Action") {
// action
}
.buttonStyle(PrimaryButtonStyle())
Button("Cancel") {
// action
}
.buttonStyle(SecondaryButtonStyle())
```
### Card Style
```swift
VStack {
// content
}
.cardStyle() // Applies background, corners, and shadow
```
## Future Enhancements
- Dark mode support with adaptive colors
- Additional component styles (chips, badges, alerts)
- Animation utilities for transitions
- Accessibility utilities (dynamic type, VoiceOver)
- Custom SF Symbols integration
## Migration Guide
When updating existing views:
1. Replace hardcoded colors with `AppColors.*`
2. Replace hardcoded fonts with `AppTypography.*`
3. Replace hardcoded spacing with `AppSpacing.*`
4. Use `cardStyle()` modifier for cards
5. Apply button styles for consistency
6. Add gradients to prominent UI elements
7. Ensure proper spacing hierarchy