feat: rebuild desktop UI to match Figma + website, hero slider improvements

- Desktop sidebar (262px, blue gradient, white pill nav), topbar (search + bell + avatar), responsive shell rewritten
- Desktop homepage: immersive hero with Ken Burns animation, pill category chips, date badge cards matching mvnew.eventifyplus.com/home
- Desktop calendar: 60/40 two-column layout with white background
- Desktop profile: full-width banner + 3-column event grids
- Desktop learn more: hero image + about/venue columns + gallery strip
- Desktop settings/contribute: polished to match design system
- Mobile hero slider: RepaintBoundary, animated dots with 44px tap targets, 5s auto-scroll, 8s post-swipe delay, shimmer loading, dynamic event type badge, human-readable dates
- Guest access: requiresAuth false on read endpoints
- Location fix: show place names instead of lat/lng coordinates
- Version 1.6.1+17

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-21 13:28:19 +05:30
parent 04af387945
commit dd7268cd98
21 changed files with 2938 additions and 1285 deletions

View File

@@ -0,0 +1,15 @@
Component,Old Implementation,New Implementation (matching mvnew.eventifyplus.com/home)
Hero Height,120px blue gradient banner,400px immersive full-width hero with rounded corners (20px)
Background Image,None (solid blue gradient via AppDecoration),Featured event image with CachedNetworkImage and BoxFit.cover
Ken Burns Animation,None,AnimationController 12s loop scaling 1.0 to 1.08 with easeInOut curve
Image Rotation,None,Timer.periodic every 6s cycling through first 5 events with AnimatedSwitcher crossfade
Dark Overlay,None,LinearGradient top-to-bottom rgba(0/0/0/0.3) to rgba(0/0/0/0.6)
Title Text,Welcome Back + username (14px + 22px),Featured event title (36px weight 800) or fallback Discover Amazing Events Near You
Subtitle,None,Event date + venue with calendar and location icons (14px white70)
CTA Button,None,Learn More or Explore Events button (#2563EB bg white text rounded 12px with blue glow shadow)
Indicator Dots,None,Bottom-right pill dots (active=24px white elongated / inactive=8px white40) for up to 5 events
Fallback (no events),Blue gradient with username,Blue gradient (#0F45CF to #082369) with static heading and subtitle
Featured Modal,None,showDialog with dark overlay (black87) plus 700x500 modal with event image gradient title and Learn More CTA
Close Button,None,Circular black50 button with white X icon top-right of modal
Animation Mixin,None,SingleTickerProviderStateMixin added to _HomeContentState
Disposal,None,AnimationController.dispose and Timer.cancel in dispose()
1 Component Old Implementation New Implementation (matching mvnew.eventifyplus.com/home)
2 Hero Height 120px blue gradient banner 400px immersive full-width hero with rounded corners (20px)
3 Background Image None (solid blue gradient via AppDecoration) Featured event image with CachedNetworkImage and BoxFit.cover
4 Ken Burns Animation None AnimationController 12s loop scaling 1.0 to 1.08 with easeInOut curve
5 Image Rotation None Timer.periodic every 6s cycling through first 5 events with AnimatedSwitcher crossfade
6 Dark Overlay None LinearGradient top-to-bottom rgba(0/0/0/0.3) to rgba(0/0/0/0.6)
7 Title Text Welcome Back + username (14px + 22px) Featured event title (36px weight 800) or fallback Discover Amazing Events Near You
8 Subtitle None Event date + venue with calendar and location icons (14px white70)
9 CTA Button None Learn More or Explore Events button (#2563EB bg white text rounded 12px with blue glow shadow)
10 Indicator Dots None Bottom-right pill dots (active=24px white elongated / inactive=8px white40) for up to 5 events
11 Fallback (no events) Blue gradient with username Blue gradient (#0F45CF to #082369) with static heading and subtitle
12 Featured Modal None showDialog with dark overlay (black87) plus 700x500 modal with event image gradient title and Learn More CTA
13 Close Button None Circular black50 button with white X icon top-right of modal
14 Animation Mixin None SingleTickerProviderStateMixin added to _HomeContentState
15 Disposal None AnimationController.dispose and Timer.cancel in dispose()