Scoot multipage website | React, Framer Motion, Tailwind CSS
Design comparison
Solution retrospective
Hey everyone π !
Today I finally finished the project and what can I say, it was huge and took me a long time to do it. Some decisions in the design annoyed me a bit, because I had to use special props to change the gap between sections, and the arrows on the sections differed from each other, but only on certain breakpoints, which obviously doesn't fit a bit with the main idea of reusable components from React. Nevertheless, I'm happy with the final result, and you can judge this one for yourself.
In the project I additionally added an animation of the arrows in the main Hero section and simple transitions between pages using Framer Motion.
I tried to keep the code clean, but I am aware that some things are inconsistent and badly done mainly prop names, variables and functions/handlers. If you know of any best practices or any article about naming props, handlers typically for React I would appreciate it. You can also let me know where you think the name should be changed to a more meaningful name or just which name you think should be named differently. I'm also aware of cut off footer background (I might fix it in the future).
This was also my first intermediate challenge, so any feedback is welcome here π
Community feedback
- @miroslavdurinPosted over 2 years ago
Hello and congratulations on finishing this project. This was also my first intermediate project and it was a bigger challenge than I expected... I've found 2 issues, which had bothered me as well:
- on the main paige
Learn more
links don't seem to be working. Problem is that it can't find the route, since it is deployed on Netlify and not on a local server. You should go to your public folder and make a_redirects
file. Then you should put this code inside:/* /index.html 200
. You can read more about that here: LINK - second issue is that I don't see animations working. I think the problem is somewhere in the utils folder, because if I simply put this code:
<motion.div initial={{opacity: 0}} animate={{opacity: 1}} >
animations start to work. And btw, I've noticed that you have
<AnimatePresence>
component wrapped around yourRouter
, this component is necessary only if you want to haveexit
animations on rout changes, and you haven't usedexit
animations...I would love to help you more with animations, but I don't really understand the code inside ofutils
folder, but if you need a help withexit
animations let me know, or you can check on my GitHub too...Marked as helpful3@GrzywNPosted over 2 years ago@miroslavdurin Thanks a lot, I'll try to fix everything. I forgot to toggle animations back (I disabled them before for the screenshot) π They are working now. I thought using
<AnimatePresence>
was necessary to make page transitions work, but I was wrong, so I removed it. It looks like there is still a lot of things I can learn about Framer Motion π The other one is more complicated, so I'll try to fix it tomorow.animationsVariantsFactory
is basically a set of functions to create variants based on given delay. I just wanted to have my animations in one place to keep my code DRY. The other file is justpropTypes.shape()
for my generated variants from those functions. (also, to have everything in one place and to avoid duplications)Thanks once again, have a nice day βοΈ
1@GrzywNPosted over 2 years ago@miroslavdurin Links are fixed as well :) It was pretty simple (because of you haha), but I haven't even checked whether links work as intended before.
1 - on the main paige
- @correlucasPosted over 2 years ago
Hello Karol, congratulations, another great solution as always. I liked a lots that you've reached an extreme level of details, its almost pixel perfect (only the logo is a little bit bigger). Super cool ππ
Its really great the arrow animation you did animating two different elements at once, I just loved it.
You're the second person in FEM I saw with pixel perfect solutions, do you use any tool to help you building the html/css exactly as the Figma design or you just have a good eye for minimal details? There's something you do to overlay the reference and live seeing if they match?
I want to reach pixel perfect for my challenges too, its so cool see the slider matching 100% the reference.
I don't have any considerations about your solution is just perfect, I had only to give the compliments for the pixel perfect output. πππ
Lucas
Marked as helpful1@GrzywNPosted over 2 years ago@correlucas :) Thank you π!
I made it almost pixel-perfect by checking all components after I coded each one. You can make it happen using browser extensions. I personally use Pixel Perfect Pro for Firefox, simply because I prefer Firefox over Chrome, but I used to use PerfectPixel for Chrome before. In premium challenges you need to export your designs to pngs/jpgs to import it into extensions, since there isn't any design files other than .fig. If you want to compare the designs quickly based on the screenshots, you can also use a Diff Checker website. Sometimes it's also good to make solution private at first, check the design in the FEM and then make some changes if needed.
I'll try to fix this logo to match the design today.
Hope this helps! Have a nice day Lucas π
1@correlucasPosted over 2 years ago@miroslavdurin hello Miroslav, thank you a lots dude I was wondering if these extensions exists. I'll try that for sure! ππ
1@miroslavdurinPosted over 2 years ago@correlucas Oh, I deleted my comment since Karol had already replied, you can find lots of things just by searching through Google store. That's how I found them at least :)
1@correlucasPosted over 2 years ago@GrzywN thank you Karol, I wasn't aware of that, I'll try these tools for sure and try to apply to my next challenge. βοΈ
Thank you for this helpful answer ππππ
2
Please log in to post a comment
Log in with GitHubJoin our Discord community
Join thousands of Frontend Mentor community members taking the challenges, sharing resources, helping each other, and chatting about all things front-end!
Join our Discord