The Persona 3 portfolio is asset-heavy by design — every page renders a full-viewport looping video background, and multiple image assets populate the character bars, portrait reveals, and UI badges. All assets live inDocumentation 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.
src/assets/ and are imported as ES module references at the top of the components that use them. Understanding which file maps to which screen makes replacement straightforward.
Required Video Assets
The four video files below are imported insrc/App.jsx and passed as props to the relevant page components. All must be present in src/assets/ for the application to build without errors.
| Filename | Variable | Used As |
|---|---|---|
Mainn.mp4 | menuVideo | Full-screen background on the main menu screen |
main1.mp4 | main1 | Full-screen background on the About Me page |
main2.mp4 | main2 | Full-screen background on the Resume page |
main3.mp4 | main3 | Full-screen background on the Socials page (also used by the VideoPage route) |
Required Image Assets
The following image files are referenced inAboutMe.jsx, Socials.jsx, and other components. Missing files will cause broken image slots or runtime import errors.
| Filename | Used As |
|---|---|
char1.png | Character portrait thumbnail — first entry in the About Me / Socials bar |
char2.png | Character portrait thumbnail — second entry |
char3.png | Character portrait thumbnail — third entry |
icon1.png | Small platform / link icon displayed inside bar content |
icon2.png | Small platform / link icon — second slot |
icon3.png | Small platform / link icon — third slot |
mainm.jpeg | Full-height portrait image revealed in the About Me panel (male variant 1) |
mainm2.jpeg | Full-height portrait image — male variant 2 |
mainf.jpeg | Full-height portrait image — female variant |
newsign.png | ”NEW” badge overlay shown on unread / highlighted info bars in Socials |
card.png | Decorative card graphic (present in assets folder) |
hero.png | Hero image (present in assets folder) |
Getting the Official Assets
The official asset pack (all videos and images used in the default build) is available via the link in the project README:“you will need the assets from this folder: Google Drive”Download the entire folder and place its contents directly into
src/assets/. The filenames must match exactly (case-sensitive on Linux/macOS) for the existing imports to resolve correctly.
Using Custom Assets
Add your file to src/assets/
Copy or move your video or image file into the
src/assets/ directory. Vite will automatically include it in the build bundle and generate a content-hashed output filename.Import the file in the relevant component
At the top of the component file that will use the asset, add an ES module import. Vite resolves these at build time and returns the final hashed public URL.
Pass as a prop or use directly in JSX
Use the imported variable as the
src attribute of a <video> or <img> element, or pass it to a child component as a prop.Swapping a Background Video
To replace, say, the main menu background with your own footage, update the import inApp.jsx:
menuVideo stays the same, so no other code needs to change. The same pattern applies to any of the four video imports — swap the filename, keep the variable.
VideoPage Component
VideoPage is a reusable full-screen video-player route included in the project. It accepts a single src prop and handles looping playback and keyboard back-navigation automatically.
App.jsx, main3 is passed to the VideoPage route:
<Route> pointing to <VideoPage src={yourVideo} />. No changes to VideoPage.jsx itself are needed.