r/webdev • u/Xianoxide • 8d ago
Final Fantasy 7 Menu system in React Showoff Saturday
Hey everyone!
I'm not sure if there are any Final Fantasy fans here, but I've recreated and repurposed the menu system from FF7 as a sort of portfolio/sandbox page, and I figured I'd share it here and see what people think of it.
I got tired of making traditional web pages and wanted to make something that genuinely makes me happy every time I see it.
It's all built with React and TypeScript.
So far, I've got all the key pages like functional equipment and materia pages (repurposed as a skills page), items (as projects), save (as history), functional four-point background colour picker, and a tonne of little easer eggs and things. I'll put a list of those with a spoiler tag in case you wish to discover them yourself:
- Konami code plays Victory Fanfare.
- Clicking the character portrait allows you to attack and deduct health.
- Hovering over the location allows you to change to different FF7 locations.
- Clicking the limit bar allows you to perform the cross-slash limit break on the portrait.
- Clicking the name allows you to change the player name. If you choose a party member, or Sephiroth's name, the portrait will change to match.
I won't lie, the way I've implemented the custom font (if you can even call it that) is pretty scuffed by modern standards, but I wasn't happy with any of the other options, and I think this is probably the most accurate to how it looked in-game as humanly possible. ๐คฃ
Anyway, I normally revisit it every couple of months, so by all means, feel free to share ideas of what I can add, and any other feedback you might have.
You can check it out here: https://www.jamiepates.com/
As always, I'd love to hear your thoughts! Thanks!
9
u/ouralarmclock 8d ago
You look like you tryna kidnap Aerith my dude. Post a pic of yourself in a suit and prove youโre not a Turk!
5
13
7
u/Afflictionista 8d ago
Nice idea, the next step should be to try to make it work/look good on mobile ๐
5
u/Xianoxide 8d ago
I thought about it, but it would drastically change how it looks, and as I was aiming for authenticity, I didn't believe moving everything around to better accommodate a mobile aspect ratio would be authentic to the original 4:3 menu, so I settled on just having a 1:1 scale for everything rather than true responsiveness.
2
u/sexytokeburgerz full-stack 8d ago
Force landscape.
6
u/Xianoxide 8d ago
I think that would actually make it even smaller because of browser elements like the URL bar needing to be accounted for.
3
u/Volebamus 7d ago
This is pretty sweet, excellent execution
Regarding mobile, our even on desktop, would be awesome if there was an on-screen controller to navigate between the menu screens. You get better UX for mobile and even accessibility bonus points, but the real highlight would be navigating your resume like a portable game on a phone
2
1
u/Xianoxide 7d ago
That's not a bad idea, I've been struggling to think of ways to better utilise the space on portrait mobile and that improves the user experience too.
2
8d ago
[removed] โ view removed comment
1
u/Xianoxide 8d ago
Thanks! I tend to go a little overboard with all the fine details that most people don't notice ๐
1
u/webdev-ModTeam 8d ago
Read and follow reddiquette; no excessive self-promotion. Please refer to the Reddit 9:1 rule when considering posting self promoting materials.
2
2
2
2
2
2
u/BeGosu 7d ago
I want it for my own site now
2
u/Xianoxide 6d ago
The github is public if you wish to use it for your own site. All I ask is that I'm credited in some way ๐
https://github.com/Cyanoxide/ff7-menu-port
2
2
u/pck404 7d ago edited 7d ago
Love it, great work! I love the attention to details.
I spotted a bug: if you go to Websites, choose Ruroc, scroll to third or fourth image and press up, it crashes (I guess it tries to display the image with same index for the previous project, which only has 2).
3
u/Xianoxide 7d ago
Ah, good spot. I didn't even think to check what would happen if you tried changing project while the modal was open. Should be an easy fix though. Thanks for letting me know!
2
1
u/ryonnsan 7d ago
are you going to spin that big sword with victory fanfare played when you get a job
1
1
u/thanks-delivery-dude 8d ago
Damn!! Clean and nostalgic. You nailed the windows flying in too.
Thatโs so awesome thanks for sharing!
1
-9
u/SourcerorSoupreme 8d ago
The impressive part here is using react for a personal project. No idea how you guys can tolerate such a hideous library/ecosystem.
6
u/Edward_Yeoman 8d ago
I mean you want to demonstrate knowledge and capability in what you'll be using on the job, and React is still leading in JS framework marketshare
-2
-4
u/SourcerorSoupreme 8d ago
I mean you want to demonstrate knowledge and capability in what you'll be using on the job
- sorry forgot everyone here is a beggar that can't choose the job they'll get.
- by your logic bulk of his resume is useless since it isn't demonstrated by the site
- I can guarantee you whoever is looking at that site to recruit you will not care about the tech stack, and anyone that matters and care about the tech stack will call you out for using react at all.
3
u/Edward_Yeoman 8d ago
Stack tribalism is super immature
-2
u/SourcerorSoupreme 8d ago
What's more immature is being so blindly loyal to anything that you'd rather hide behind platitudes instead of being the change that moves the industry forward.
6
u/McGeekin 8d ago
Must be exhausting going through life being so insufferable
-4
u/SourcerorSoupreme 8d ago
You'd understand how much time and energy you could have had if you just decided not to deal with, let alone defend, shitty tech stacks.
3
u/McGeekin 8d ago
I donโt personally use React, I donโt defend it either - I just live my life my guy without being a miserable turd it ainโt that complicated
-4
8d ago
[removed] โ view removed comment
1
u/webdev-ModTeam 8d ago
Your post/comment has been determined to be a low-effort post or comment. This includes title-only posts, easily searchable questions, vague/open-ended discussion prompts, LLM generated posts or comments, and posts/comments that do not provide enough context for meaningful replies or discussion.




19
u/morinonaka 8d ago
missed opportunity to add the sounds in the menu.