Prompt 02: Journal Tab (History & Reflection)
Goal
Build the Journal screen for the MysticX Expo mobile app. This tab is the user's "spiritual ledger", displaying their reading history, daily streaks, and spiritual stats in a serene, organized manner.
Design Constraints (From Master Guide)
- Visuals: "OLED Noir" (
#000000base,#121212for card backgrounds). - Typography: Dual-typography system. Use Playfair Display or Cormorant Garamond for section headers ("Your Journey", "Recent Readings"). Use Inter for timestamps, stats, and utility text.
- Pacing: "Slow UI" philosophy. Lists should scroll smoothly without aggressive bouncing. Use calm whitespace and avoid dense data grids.
Requirements
- Component:
JournalTabView. - Top Section (Spiritual Stats):
- Display key metrics: Total Readings, Cards Drawn, Current Streak.
- Visual Gamification: Instead of a plain number for the streak, use a glowing "Aura" ring or subtle particle effect (using
react-native-reanimated) that intensifies based on the streak count.
- Middle Section (Filters):
- A segmented control or pill-based filter to switch between "All Readings", "Daily", and "Spreads".
- Active state: Antique Gold (
#c5a059) text with a frosted glass background (expo-blur).
- List Section (Reading History):
- A vertical
FlashListof past readings. - Each item card should display: Spread Name (Serif), Question preview (Sans-Serif), Timestamp, and Reader Avatar/Name.
- Implement a subtle parallax effect on scroll for the list items to give a sense of depth.
- A vertical
Implementation Guidance
- Use
@shopify/flash-listfor the reading history to ensure 60fps scrolling even with hundreds of past readings. - Haptics: Trigger
expo-hapticsimpactAsync(ImpactFeedbackStyle.Light)when switching filter tabs. - Empty State: If the user has no readings, display an "Empathy UI" empty state: A beautifully illustrated, dim, empty card spread with a gentle call-to-action ("The cards await your questions...").