Not Found
Not Found
Not Found
Not Found
Not Found
Not Found
Not Found
Not Found
Not Found
Not Found
Not Found
Not Found
Request path contains unescaped characters
Not Found
Not Found
Not Found
Not Found
Not Found
Not Found
Not Found

Submitted

Art Gallery using SCSS/Flexbox/Grid/JS/Intersecting Observer API

#sass/scss

@Nghuynh07

Desktop design screenshot for the Art gallery website coding challenge

This is a solution for...

  • HTML
  • CSS
2junior
View challenge

Design comparison


SolutionDesign

Solution retrospective


  • For this project, my main goal is to understand how images behave in flexbox. I think I am starting to get it.
  • I also use Intersecting Observer API for this project since larger size images were provided. With this technique, I am able to lazy load images by replacing current src to the srcset. Also with this technique it add a nice animation effect the view enter the element.
  • Please provide any feed back, I want to get better at frontend. Your feed back will help me a lot.

Thank you

Community feedback

Vanza Setia 27,855

@vanzasetia

Posted

Hello, Huynh Nguyen! 👋

Good effort on this challenge! 👍 The site also has some scrolling animation however, it's not respecting the user prefers-reduced-motion settings. So, I recommend making sure that for the users who don't want to see any animations, the animation won't run.

On 870px viewport width, the footer three-column layout is too narrow.

@media (min-width: 860px)
.footer {
    /* padding: 10rem 16.5rem; */
   /* reduce the amount of padding */
}

More suggestions from me.

  • There's no header element on this site. header element contains nav and the logo of the site. In this case, the first section should be lived inside the main landmark. It should be the first section of the main content.
  • The "Modern Art Gallery" inside the header looks different from the design. It's possible to do the reverse text color based on background color by using mix-blend-mode property. I recommend reading this CSS Tricks blog post about it.
  • The arrow icon is also different from the original design. There are icon-arrow-right.svg and icon-arrow-left.svg that you can use.
  • For the images, I recommend using the picture element instead of img elements. It is a good challenge to use picture elements. In this case, it is used for the art direction. You can learn about it on the MDN documentation for picture element.
  • Use CSS to uppercase the text. The uppercased word in the HTML might be spelled by the screen reader (spelled letter by letter).
  • Each page should only contain one h1. I recommend making the h1 on the footer as h2 instead.
  • Each social media icon should be wrapped by link elements. As you may already know that these are actually the social media links for the company.
  • I recommend removing the commented text content. It's not a big deal but, it's going to reduce the file size of both HTML. It means that the site would load faster because of it.

Now, specifically for CSS.

One last thing, for some reason, I can't Tab through the links. I don't know what causes it. But, hopefully, you can solve the issue.

That's it! Hope you find this useful!

Marked as helpful

1

@Nghuynh07

Posted

@vanzasetia thank you for taking your time to write this feed. This was very helpful. I appreciate it a lot.

0
Vanza Setia 27,855

@vanzasetia

Posted

@Nghuynh07 You're welcome! Glad you found it helpful! 😄

0

@Nghuynh07

Posted

@vanzasetia It certain did. I had no idea prefers-reduced motion was a thing. I am going to start adding it onto my CSS. I definitely learned not to reset my font to 62.5% and I learned new CSS property for mix-blend-mode. I really like learning these little things. It makes writing CSS so much easier in the long run.

0
Vanza Setia 27,855

@vanzasetia

Posted

@Nghuynh07 Cool! Keep it up! 👍

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