i’ve always been a fan of the ui design in the persona series specifically the persona 3 reload and persona 5 games. i really loved the pause screen in persona 3 reload, since there was just so many cool animations going on at the same time. i thought, “hey i could probably do that in svelte”, so here we are.

you can check out the final result here!

the website is made with svelte/sveltekit, tailwindcss, and animejs for the animations.

assets

i did NOT want to render the actual makoto 3d model in the browser, so i just found a looping video of the background on the official persona 3 reload website.

Persona 3 Reload official website

i was so glad they had the background

for the fonts, i found a cool website that had (almost) all the fonts that are used in persona 3 reload, along with the download links. i found the sound effects on this website.

elements

the ui is split into 3 main parts:

  • the menu options in the center
  • the controls and description on the bottom-right
  • the huge text on the side

Persona 3 Reload pause menu

this is the actual pause menu in-game

pause menu options

first, display the options in a column, and color each option with one of three colors. also italicize the text so they’re slanted.

Pause Menu Options

the colors are #16cffb, #7de6fd, and #77fefc

next, rotate each option by a random amount so they’re crooked, and also offset each option a bit to the left and vertically, so they kinda overlap a bit

Pause Menu Options

i pretty much just copied the same offsets as the original one

then, animate the options so that they pop out when you hover over them, i used animejs for this and all the other animations

Pause Menu Options

now we get to the hard part, the menu selector. first, add a white and pink background behind the option, and animate the pink one so it pulses.

Pause Menu Options

finally, the most difficult part of the options is getting the overlapping bits of the background and text to turn red. i used a svg mask to mask a duplicate red version of the text layerd on top of the original black text.

Pause Menu Options

and you’re done!

bottom-right controls

the bottom right controls are pretty self-explanatory, there isn’t anything weird going on with the layouting. one issue i had was getting the gray outline on the text to look good. the typical way to do text outlines in css is to use 4 text-shadows to simulate an outline, but it looked kinda bad so i just had 8 text-shadows instead.

Bottom-Right Text

the font for the buttons aren't actually the right font, but no one will know

huge text

AHHH THIS WAS SO ANNOYING TO DO!! since the looping background video i stole from the official website has a white background, putting text behind makoto’s head is NOT an easy task. these are some of the solutions i thought of doing:

  • manually opening up persona 3 reload and screen recording the pause menu, then somehow edit out the text
  • make the white background a transparent background
  • add the black text in a video editor, then import that video instead

i opted to go for the last method, since i already tried the other 2 and they did not work 😭. i booted up davinci resolve and tried to remove the white background, but it was actually much harder than i thought it was going to be. eventually i got it to work by manually adjusting the keyframes of a polygon luma keyer.

Big Text

and that’s all! i had so much fun making this thing!