- Gradient Background: Multi-layered gradient with varying opacity levels
- Dynamic Border: Animated gradient border that responds to interactions
- Glow Effects: Responsive shadow with variable intensity based on user interaction
- Rounded Corners: Modern 20px corner radius for premium feel
- Pulsing Camera Icon: Continuous 2-second breathing animation
- Flash Effect: White overlay with blur for authentic camera flash
- Glowing Border: Intensity changes with tap and hold gestures
- Scale Animations: Smooth spring-based scaling on interactions
- Continuous Pulse: Background circle pulses every 2 seconds
- Rotation Effect: 360° rotation on tap with spring physics
- Scale Transform: Grows to 108% on tap, returns with bounce
- Flash Overlay: White flash effect with blur and opacity fade
- Scanning Lines: Two animated rectangles moving up and down
- Animated Dots: Three dots with staggered scale animations
- Progress Indicator: Standard iOS progress view with accent color
- Text Transitions: Smooth text changes between states
- AI-Powered: Brain icon with "AI-Powered" label
- Multi-Photo: 3D stack icon with "Multi-Photo" capability
- Instant: Bolt icon emphasizing speed
- Color Consistency: All features use accent color for cohesion
- Success State: Green checkmark with confirmation message
- Slide Animation: Enters from bottom with spring physics
- Clear Button: Easy way to deselect photos
- Status Text: Clear indication of selection state
- Immediate Response: Scale to 96% with glow effect on press
- Camera Flash: Bright white overlay with blur effect
- Haptic Feedback: Medium impact for tactile response
- Rotation Animation: Full 360° rotation with spring
- Recovery: Smooth return to normal state
- Continuous Scaling: Stays at 96% while holding
- Glow Intensity: 40% opacity glow while pressed
- Immediate Release: Returns to normal when released
- Automatic Trigger: Animations start when
isProcessingReceipts = true - Scanning Lines: Continuous up/down movement
- Dot Animation: Staggered pulsing dots (0.2s delay between each)
- Text Update: Dynamic text changes with context
- Primary: "Select Receipt Photos" headline
- Secondary: "Tap to scan receipts with AI" description
- Tertiary: Feature highlights (AI-Powered, Multi-Photo, Instant)
- Status: Selection count and ready state
- Primary: Accent color for main interactive elements
- Background: Layered gradients with accent color opacity
- Text: Primary and secondary text colors for hierarchy
- Success: Green for positive states and confirmations
- Processing: Accent color for loading and processing states
LinearGradient(
gradient: Gradient(colors: [
Color.accentColor.opacity(0.15),
Color.accentColor.opacity(0.25),
Color.accentColor.opacity(0.15)
]),
startPoint: .topLeading,
endPoint: .bottomTrailing
).shadow(color: Color.accentColor.opacity(glowIntensity), radius: 10, x: 0, y: 0).overlay(
Image(systemName: "camera.fill")
.foregroundColor(.white)
.opacity(glowIntensity)
.scaleEffect(1.2)
.blur(radius: 4)
)- Response: 0.3s for quick feedback
- Damping: 0.6 for smooth, natural motion
- Bounce: Controlled spring for premium feel
- Tap: 0.2s initial response
- Flash: 0.1s delay, 0.3s fade out
- Recovery: 0.4s return to normal
- Pulse: 2.0s continuous breathing
- Scanning: 1.0s and 1.5s alternating speeds
- Dots: 0.6s with 0.2s stagger delay
- Transitions: 0.1s state change triggers
- User sees modern gradient card with pulsing camera icon
- Feature highlights show AI capabilities
- Subtle animations attract attention without being distracting
- User taps → immediate scale down with glow
- Camera flash effect provides visual feedback
- Icon rotates 360° with spring physics
- Haptic feedback provides tactile confirmation
- Card transforms with scanning line animations
- Camera icon becomes animated dots
- Text updates to show AI processing
- Progress indicator shows active state
- Selection count appears with slide animation
- Green success styling with checkmark
- Clear button allows easy deselection
- Ready state messaging builds confidence
- GPU Acceleration: All animations use transform properties
- Smooth 60fps: Spring physics tuned for performance
- Conditional Rendering: Processing animations only when needed
- Memory Efficient: Reusable animation states
- Pause When Hidden: Animations stop when view disappears
- Reasonable Durations: Not overly long or intensive
- Hardware Acceleration: Leverages device GPU capabilities
This enhanced "Select Receipt Photos" section now provides a premium, engaging experience that makes the core functionality feel exciting and modern while maintaining excellent usability and performance.