| I want you to redesign my app into a polished, storybook-style time-travel train experience based on the provided reference images. | |
| IMPORTANT: | |
| Use the attached reference images as the primary visual/style reference. | |
| The final UI should match the same illustrated art direction as closely as possible: | |
| - warm hand-drawn/cartoon storybook look | |
| - soft shading | |
| - clean outlines | |
| - whimsical but polished | |
| - cozy train-cabin framing | |
| - same perspective style as the reference | |
| - same overall tone and charm | |
| Do NOT make this look like a generic website, dashboard, sci-fi interface, or flat app. | |
| It should feel like an interactive illustrated scene. | |
| CORE PRODUCT IDEA | |
| The starting screen is the inside of the train cabin, from the same viewpoint as the reference image: | |
| - the user is inside the train | |
| - looking out the large front window | |
| - the lever/control is centered in the foreground | |
| - there are only TWO main choices: | |
| 1. PAST | |
| 2. FUTURE | |
| The user should click either Past or Future. | |
| After clicking: | |
| - the train begins traveling smoothly | |
| - if FUTURE is chosen, the train travels forward into the future | |
| - if PAST is chosen, the train travels backward into the past | |
| During the ride, the outside world visible through the front window should transition smoothly through multiple time periods. | |
| The transition should feel like one continuous train ride, not a series of abrupt scene cuts. | |
| At the end of the ride: | |
| - the train arrives at a RANDOM destination | |
| - the final destination should be either a random past era or a random future era depending on the choice | |
| - when the train stops, it ends face-to-face with an ordinary person standing outside the train, similar to the reference image | |
| - the person should feel like a normal person from that era, not a famous historical figure | |
| - the user can then speak with them | |
| - the user’s speech should appear in a classic cartoony speech bubble style | |
| - there should always be a visible way to go back to the starting screen | |
| HIGH-LEVEL EXPERIENCE FLOW | |
| 1. START SCREEN | |
| - Train cabin interior is visible | |
| - Lever/control is centered in foreground | |
| - Two clear buttons/options only: PAST and FUTURE | |
| - Everything is calm and idle | |
| - The world outside the train is neutral / transitional / ambiguous, similar to the first reference image | |
| 2. TRAVEL SEQUENCE | |
| - User clicks Past or Future | |
| - Train animates into motion | |
| - Lever reacts visually | |
| - The cabin can shake subtly or sway slightly | |
| - Outside scenery scrolls smoothly as if the train is moving | |
| - The track and world outside the front window should transition through multiple time periods | |
| - The transitions should gradually become older for PAST and more futuristic for FUTURE | |
| - This is the most important part: it should feel like one seamless ride through time | |
| 3. ARRIVAL | |
| - The motion slows down | |
| - The train stops in front of a random destination scene | |
| - An ordinary person from that time period is visible right outside the train window/front area | |
| - This should feel like the train has “stumbled upon” them naturally | |
| - The final frame should resemble the second reference image compositionally: | |
| - person outside the train | |
| - train cabin foreground still visible | |
| - destination world behind the person | |
| 4. CONVERSATION | |
| - The user can speak | |
| - Display speech in a classic cartoony speech bubble | |
| - Keep the scene immersive; do not turn it into a boring chat app layout | |
| - There should be a “Back” / “Return to Train” / “Start Over” button always available | |
| IMPLEMENTATION GOAL | |
| Prioritize: | |
| - seamless visual storytelling | |
| - charming polished animation | |
| - immersive feeling | |
| - clean state flow | |
| - strong resemblance to the provided art style | |
| Do NOT prioritize backend complexity. | |
| If needed, use placeholder/mock data for random destinations and people. | |
| The key is the frontend experience. | |
| TECHNICAL DIRECTION | |
| Use the existing frontend stack. | |
| If the app uses React, keep using React. | |
| If Tailwind is available, use Tailwind. | |
| If Framer Motion is available, use it for smooth transitions and motion. | |
| If Framer Motion is not available, use CSS animations and React state. | |
| Organize the app clearly, for example with components like: | |
| - TimeTrainApp | |
| - TrainCabin | |
| - DirectionSelector | |
| - TrainRideSequence | |
| - EraScene | |
| - PersonEncounter | |
| - SpeechBubble | |
| - BackToStartButton | |
| STATE MODEL | |
| Please structure the experience around clear app states: | |
| - idle / start | |
| - traveling | |
| - arrived | |
| - conversing | |
| Suggested state shape: | |
| - selectedDirection: "past" | "future" | null | |
| - currentPhase: "start" | "traveling" | "arrived" | |
| - destination: object containing era/place/person | |
| - conversationMessages: array | |
| - rideProgress: 0 to 1 | |
| START SCREEN DETAILS | |
| The start screen should match the first reference image as closely as possible in layout: | |
| - interior of train cabin | |
| - large curved front window | |
| - lever centered in foreground | |
| - small sign/button for FUTURE | |
| - small sign/button for PAST | |
| - lever labeled NEUTRAL initially if appropriate | |
| - the environment outside should feel dreamy and in-between-time | |
| Only two main actions should be present: | |
| - PAST | |
| - FUTURE | |
| No extra clutter. | |
| No big menus. | |
| No generic homepage UI. | |
| TRAIN RIDE / TIME TRAVEL DETAILS | |
| This is the most important part. | |
| The train ride should be achieved primarily by: | |
| - keeping the cabin interior mostly fixed in the foreground | |
| - animating the outside world through the front window | |
| - using layered parallax for scenery | |
| - smoothly interpolating between time periods rather than hard-cutting instantly | |
| The ride should feel like: | |
| - the train is genuinely moving through time | |
| - the outside world morphs and evolves as the ride progresses | |
| - the track continues forward through each era | |
| For FUTURE: | |
| - the visual progression should gradually become more futuristic | |
| - example progression: near-present -> slightly advanced city -> more advanced architecture -> highly futuristic environment | |
| - the ride should visually move FORWARD | |
| For PAST: | |
| - the visual progression should gradually become older | |
| - example progression: near-present -> early industrial -> pre-industrial -> ancient/classical setting | |
| - the ride should visually move BACKWARD | |
| - if helpful, the train/lever can subtly indicate reverse travel | |
| IMPORTANT: | |
| Do NOT make this a slideshow. | |
| Do NOT abruptly replace the entire world every second. | |
| Instead, create the illusion of a continuous journey. | |
| Recommended approach: | |
| - define 4–6 era stages for each direction | |
| - interpolate/scrol through them over time | |
| - animate the outdoor scenery layers (sky, distant buildings, midground structures, trackside objects) | |
| - use easing so the ride feels natural | |
| - include slight train bob/sway | |
| - optionally animate speed increasing then decreasing | |
| If necessary, fake the effect with: | |
| - a timeline | |
| - progress-based swapping of era layers | |
| - crossfades between adjacent eras | |
| - moving track lines | |
| - passing landmarks | |
| - slight motion blur | |
| But the result should FEEL seamless. | |
| RANDOM DESTINATIONS | |
| When the user picks a direction, choose a random final destination from a curated set. | |
| For PAST, examples could include: | |
| - Ancient Rome | |
| - Medieval village | |
| - 1800s frontier town | |
| - Industrial-era city | |
| - ancient marketplace | |
| For FUTURE, examples could include: | |
| - eco-futurist city | |
| - high-tech orbital colony | |
| - sleek transit metropolis | |
| - desert solar settlement | |
| - underwater future habitat | |
| Each destination should include: | |
| - title | |
| - short description | |
| - environment art data / style | |
| - a random ordinary person | |
| PERSON ENCOUNTER | |
| At the end of the ride, the train should stop face-to-face with a person outside the train, like the second reference image. | |
| The person should: | |
| - belong visually to the destination era | |
| - be an ordinary person | |
| - feel friendly / curious / approachable | |
| - be positioned clearly outside the front window or just beyond the train’s front view | |
| - be the focal point after arrival | |
| Examples: | |
| - a Roman local | |
| - a blacksmith’s apprentice | |
| - a railway worker | |
| - a street vendor | |
| - a future engineer | |
| - a farmer from a future colony | |
| The final composition should still preserve the train cabin foreground for immersion. | |
| CONVERSATION UI | |
| After arrival, allow the user to speak. | |
| The user’s dialogue should appear in a classic cartoon speech bubble style. | |
| This speech bubble should feel integrated into the illustrated scene, not like a boring chat panel. | |
| If you need an input area: | |
| - keep it visually simple | |
| - make it feel like part of the scene | |
| - do not turn the page into a normal messaging app | |
| You may also include the other person’s response in a matching dialogue bubble style. | |
| START OVER / BACK BUTTON | |
| At all times after the ride begins, there should be a clear way to go back to the starting screen. | |
| Examples: | |
| - “Back to Start” | |
| - “Return to Train” | |
| - “Choose Another Destination” | |
| This should: | |
| - reset the state | |
| - return the train to the original neutral starting screen | |
| - clear the active destination/conversation if appropriate | |
| ART / DESIGN REQUIREMENTS | |
| Match the provided reference images as closely as possible in: | |
| - framing | |
| - illustration style | |
| - line quality | |
| - lighting softness | |
| - warm colors | |
| - whimsical storybook feel | |
| - train cabin composition | |
| Please inspect the provided images carefully and use them as the core art-direction guide. | |
| Avoid: | |
| - generic gradients | |
| - flat modern SaaS design | |
| - overly realistic 3D | |
| - cyberpunk neon overload | |
| - harsh UI panels | |
| - anything that breaks the illustrated immersion | |
| QUALITY BAR | |
| This should feel polished and intentional. | |
| The most important thing is that the train ride feels smooth and magical. | |
| Before finishing, review your implementation and improve anything that feels: | |
| - abrupt | |
| - slideshow-like | |
| - generic | |
| - amateur | |
| - disconnected from the reference art style | |
| Make sure the outside world progression is the star of the experience. | |
| FINAL DELIVERABLE | |
| Please: | |
| 1. Inspect the current codebase first | |
| 2. Implement this experience cleanly | |
| 3. Preserve existing functionality where possible | |
| 4. Use placeholder/mock data if needed | |
| 5. Tell me which files were changed | |
| 6. Explain where I can edit: | |
| - the list of past/future destinations | |
| - ride duration | |
| - the speech bubble styling | |
| - the start/reset behavior |