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

QR code component using Flexbox

@alstrow

Desktop design screenshot for the QR code component coding challenge

This is a solution for...

  • HTML
  • CSS
1newbie
View challenge

Design comparison


SolutionDesign

Community feedback

P

@Islandstone89

Posted

Hi, well done for finishing this challenge!

I have taken a look at your code, and these are my suggestions - I hope you find them helpful :)

HTML:

  • Every webpage needs a <main> that wraps all of the content, except for <header> and footer>. This is vital for accessibility, as it helps screen readers identify a page's "main" section. Wrap .container in a <main>.

  • The image has meaning, so it must have proper alt text. Write something short and descriptive, without including words like "image" or "photo". Screen readers start announcing images with "image", so an alt text of "image of qr code" would be read like this: "image, image of qr code". The alt text must also say where it leads(the frontendmentor website). A good alt text would be "QR code leading to the Frontend Mentor website."

  • As the card heading would likely not be the main heading on a page, I would change it to a <h2>.

  • .attribution should be a <footer>, and you should use <p> for the text inside.

CSS:

  • Including a CSS Reset at the top is good practice.

  • I like to add 1rem of padding on the body, to ensure the card doesn't touch the edges on small screens.

  • On body, remove display: block, as the body is a block element by default. Remove height.

  • Remove all position and transform properties.

  • Remove the margin on the card.

  • To center the card horizontally and vertically, and create space between it and the footer, use Flexbox on the body:

display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
min-height: 100svh;
gap: 2rem;
  • Remove all widths.

  • Add a max-width of around 20rem on the card, to prevent it from getting too wide on larger screens.

  • font-size must never be in px. This is a big accessibility issue, as it prevents the font size from scaling with the user's default setting in the browser. Use rem instead.

  • Since all of the text should be centered, you only need to set text-align: center on the body, and remove it elsewhere. The children will inherit the value.

  • Paragraphs have a default value of font-weight: 400, so there is no need to declare it.

  • On the image, remove all properties except for border-radius. Add display: block and max-width: 100% - the max-width prevents it from overflowing its container.

Marked as helpful

2

@alstrow

Posted

@Islandstone89 Hey, thanks a lot for the tips. I have added the changes proposed by you.

In my defense, being the first project here and somehow still a beginner in the web development, I wanted to see how it works. I will be more involved in future projects and challenges anyway, because there is a lot to know about it :))

1
P

@Islandstone89

Posted

@alstrow Well done! Keep up the good work :)

0

@ahmedraza032

Posted

I don't see any missing details in the solution.

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