Every route change in the portfolio triggers a full-screen cinematic wipe animation before the incoming page fades in. These animations are orchestrated by theDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/blairxu13/persona3-website/llms.txt
Use this file to discover all available pages before exploring further.
PageTransition component, which composes a TransitionOverlay (the wipe panels) with a content wrapper that fades children from invisible to visible once the wipe has cleared. Four distinct visual styles — each referencing a different Persona 3 UI aesthetic — are available through a single variant prop.
Using PageTransition
Wrap any page component in<PageTransition> inside your route definitions. The variant prop selects the wipe style; omitting it defaults to "default".
TransitionOverlay switches between variants using a simple conditional:
The four transition variants
Default
Three full-screen horizontal panels — midnight navy
#0d1a3a, electric blue #1a6aff, and sky blue #7dd4fc — expand from the left edge then retract to the right, staggered by 50 ms each.About
Three diagonal parallelogram panels rotated
−18deg slide in rapidly from the left side of the screen, then fade out while still moving, giving a slashing-sword feel.Resume
Four horizontal card-shaped panels (
#0f1760, #7ff6ff, #ffffff, #0f1760) sweep across from left to right and exit off the far edge, evoking a status-screen card flip.Socials
Three vertical stripes on the right side of the viewport fall from above and exit downward, skewed by
−16deg, resembling notification cards dropping into view.Default transition
Threemotion.div panels are rendered with position: fixed; inset: 0 so they cover the entire viewport. Each panel uses a keyframe array in the animate prop to expand from nothing, hold at full width, then collapse — all within 0.45 seconds. The times array pins each keyframe to a specific fraction of the total duration, and the cubic-bezier easing gives the motion a punchy feel.
originX: 0 style is critical — without it the panel would scale from its center instead of the left edge, breaking the wipe illusion.
About transition
Three rotated panels fly in fromx: -500 to near-zero, then fade to transparent while decelerating. The rotate(-18deg) and parallelogram clip-path create the diagonal blade aesthetic.
Resume transition
Four card panels sweep left-to-right with a parallelogram clip-path (polygon(0 0, 97% 0, 100% 100%, 3% 100%)). Each card travels from x: -900 across the screen and exits at x: 900, staggered by 50 ms. The white panel gets an extra box-shadow of 10px 0 0 #d63232 for the signature red accent.
Socials transition
Three vertical stripes are anchored to the right side of the screen (left: 72vw / 80vw / 88vw) and skewed with skewX(-16deg). They fall from y: -1200 into position and then exit to y: 1200, each staggered by 60 ms.
Children fade-in
After the wipe panels animate, the page content needs to appear.PageTransition wraps children in its own motion.div with a short opacity fade that starts slightly after the wipe begins:
0.18s delay gives the wipe panels enough time to sweep into view before the new content becomes visible underneath them, preventing any layout flash.