Not Found
Not Found
Not Found
Not Found
Not Found
Not Found
Not Found
Not Found
Not Found
Not Found
Not Found
Not Found
Not Found
Not Found
Not Found
Not Found
Not Found
Not Found
Not Found
Not Found

Submitted

Designo-multipage-website using react, css , grid

P
Chamu 12,970

@ChamuMutezva

Desktop design screenshot for the Designo multi-page website coding challenge

This is a solution for...

  • HTML
  • CSS
  • JS
5guru
View challenge

Design comparison


SolutionDesign

Solution retrospective


This was a first to do a multipage-website with a maximum of 8 pages and using React . Proper planning is needed when it comes to this challenge in order to build something that is maintenable . Some of the things that i had to experiment on includes

  • React-router-dom - for navigation between pages
  • intersection observer api - to apply some simple animation when certain component comes on screen
  • Reusable components.

Will need to take a deep dive into sass to help with better css organisation.

Your feedback is highly appreciated

Community feedback

P
Matt Studdert 13,611

@mattstuddert

Posted

Great to see you submit a solution for this challenge, Chamu. You've improved so much with each project you've done! These larger projects definitely take some extra planning at the beginning. It's time well spent!

As you work more with React, you'll refine your architecture and spot areas where you can make components more reusable. Here are some thoughts after taking a look at your code:

  • You're using inconsistent naming conventions for your files and components. For files, you're using camel case in some places, all lower case in others, and snake case as well. In React, it's most common to use camel case. This is true for component names as well. For example, you've got Graphicdesignmain, which should be GraphicDesignMain.
  • When you've got several props you're passing down, be sure to break them onto new lines. This helps with readability. Also, use restructuring in the child component to clean up the code, so you're not always using props. at the beginning of each prop value.
  • Your srcset attributes are currently set up to choose the wrong images. You'll see on the about page for desktop; it's actually choosing the images' mobile version. I'd recommend looking into the picture element. It's much easier to work with.
  • In some places, you've uppercased the content in the HTML itself. Try to avoid doing that as some screen reader software will read this content letter-by-letter, making that content inaccessible to screen reader users. Instead, write it normally in your HTML and then use text-transform: uppercase; in your CSS to visually uppercase the text to match the design.
  • When you navigate to a new page, the window doesn't scroll to the top. You could add window.scrollTo(0, 0); for any navigation event to help with that.

Let me know if you have any questions. Keep it up! 👍

1
P
Chamu 12,970

@ChamuMutezva

Posted

Thanks Matt. You raised some very important issues that i need to take care of. The mixup in the naming conversion among other things. I will also check on the srcset issue and the picture element - no wonder the images in that section looks stretched.

The uppercased content like in the navigation is easy to fix , will keep that in mind. On navigating to a new page , please can you provide an example or link that can give me some direction on how i can implement that.

Once again thanks Matt.

0

Please log in to post a comment

Log in with GitHub
Discord logo

Join 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