AI Developer Prompt: Reading Flow (Selection, Streaming, Result, Chat) Screens
Context
You are building the reading/* screens for the MysticX Expo mobile app. Screen Goal: The core ritual. 1) Card Selection: based on the spread, display 78 cards in a fan for user selection. 2) Streaming: progress bar, glowing aura, card-by-card streaming text. 3) Result: card interpretations, summary, and follow-up CTA. 4) Chat: follow-up Q&A with the AI tarot reader via chat bubbles.
Wireframe & Layout Reference
Base the layout on the structural flow for this screen from wireframes. The UI should feel spacious and native, avoiding cramped web-view layouts.
Design System Rules (Strict)
The app must follow the Mystical Minimalism & Velvet Noir philosophy.
1. Colors & Backgrounds
- OLED Noir Base: Background must be OLED-friendly deep black (
#000000), midnight navy (#0a192f), or rich deep purple. Never use flat gray-black. - Ethereal Glaze: Use
expo-blurfor navigation elements, floating action bars, or modal backgrounds to create a frosted, translucent depth. - Accents: Use Antique Gold (
#c5a059) for primary interactive elements. For active states, use ultra-thin metallic borders or subtle neon glow (cyan, amethyst).
2. Typography
- Headers: Use high-contrast, elegant serif fonts (e.g.,
Playfair Display). - Body: Use clean sans-serif fonts (e.g.,
Inter). - Spacing: Enforce a minimum
1.6line-height for any long-form reading text.
3. Interactions, "The Ritual" & Animation Flow (Critical)
The reading flow is the app's core. It must use react-native-reanimated and expo-haptics to match the complex, physics-driven interactions of the web app.
- Phase 1: Card Selection (Arc & Rotation)
- Cards are displayed in a bottom-anchored arc (like a wheel).
- Users can drag to rotate the wheel. Use Reanimated shared values (
useSharedValue,withDecay,withSpring) for velocity, friction, and rubber-band edge bounce. - Granular Haptics: Trigger
impactAsync(ImpactFeedbackStyle.Light)as cards rotate past the center point. Implement distinctly different haptic patterns for Major Arcana vs Minor Arcana draws.
- Phase 2: Reveal, Loading Transition & Breathwork
- When a user taps a card, use a 3D flip animation (
rotateYwithwithTimingorwithSpring). - Mindful Pacing: Integrate brief guided breathwork prompts (e.g., 3-second inhale animation) between UI interactions to slow users down and enhance the ritual experience.
- Loading Choreography: When all cards are selected, do not use a spinner. Replicate the web app's choreography:
- Cards flip face-down.
- The entire arc shrinks and moves to screen center (
scaledown,translateYup). - The circular formation begins continuous, smooth rotation while a glowing "aura" ring (dashed border) fades in and counter-rotates.
- When a user taps a card, use a 3D flip animation (
- Phase 3: Reading (Streaming Chat)
- AI text must stream in rhythmically, mimicking real-time conversation (typewriter pacing).
- While waiting for AI responses, use a glowing aura pulse below 0.1Hz around chat bubbles.
- "Slow UI": Transitions between phases must be deliberate and unhurried. Avoid instant snapping. Use
ease-out-backspring physics for card operations, giving them tangible "weight."
Task
Write React Native (Expo) code for this screen. Ensure you use react-native-reanimated for animations, expo-haptics for touch feedback, and style strictly with the OLED Noir theme above. Ensure the code is modular, well-typed (TypeScript), and visually stunning.