Skip to content
  • Unlock Pro
  • Log in with GitHub
Solution
Submitted 11 months ago

QR Code Component

adityaac7•30
@adityaac7
A solution to the QR code component challenge
View live sitePreview (opens in new tab)View codeCode (opens in new tab)

Solution retrospective


What are you most proud of, and what would you do differently next time?

I am most proud of starting and finishing my very first solo project without any given solution. It was a significant milestone in my learning journey, and it demonstrated my ability to apply what I have learned to create a functional web component from scratch.

Next time, I would focus on enhancing the project by making it more dynamic. For example, I would explore adding functionality that allows the QR code to be generated based on user input, making it more interactive. Also, I would invest more time in refining the design and user experience, ensuring that the component is not only functional but also visually appealing and intuitive to use.

What challenges did you encounter, and how did you overcome them?

Centering the component in the middle of the page was a significant challenge. While centering it horizontally was straightforward, I struggled with vertical centering. I tried several techniques I knew but couldn't achieve the desired result (For e.g, flexbox align-items. I'm not sure why it didn't work but it just didn't). Eventually, I sought help from a senior developer who shared an article about CSS centering, which helped me overcome this issue.

Another challenge was making the entire page a single color. I discovered that the element only extends as far as the content within it, which meant it didn't encompass the whole page.

What specific areas of your project would you like help with?

I would like help mainly on improving my CSS syntax. Much of my CSS is written through trial and error, and I'm aware that there are likely better and cleaner ways to achieve the same results. Specific feedback on best practices, more efficient ways to write my styles, and advice on organizing my CSS would be incredibly valuable. Additionally, I'd appreciate any suggestions for optimizing the performance of my CSS.

Code
Select a file

Please log in to post a comment

Log in with GitHub

Community feedback

  • beowulf1958•1,850
    @beowulf1958
    Posted 11 months ago

    Congratulations on completing this project! Looks great at desktop and mobile screen size.

    I would encourage you to continue your research on centering in CSS. Although the margin + position works great for single component pages, as the pages increase in complexity, this becomes problematic, especially if responsiveness is an issue. MDN has an excellent article on centering with flexbox and grid.

    You might want to consider using more functional tags and meaningful class names. "para-1" is actually a card title, so an <h2> tag would be more appropriate. Similarly, "para-2" is a paragraph, so a <p> would work.

    For the class names, you might want to check out BEM, which stands for block-element-modifier. So, for example, here "div-1" becomes "card", "qr-code-image" becomes "card__image" followed by an <h2> class="card__title" and a <p> class="card__text". This gives another coder the hint that this qr-image is in a card, and the card has a title and a text.

    Now for the styles. In general, very well-organized. However, the "display: flex; flex-direction: column;" doesn't seem to be doing anything and could be removed (zombie code.) Also, by moving "text-align: center" to div-1 styles, you don't repeat yourself and allow the cascade to do its thing.

    Hope this helps. I look forward to your next project. Keep on coding.

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
Frontend Mentor logo

Stay up to datewith new challenges, featured solutions, selected articles, and our latest news

Frontend Mentor

  • Unlock Pro
  • Contact us
  • FAQs
  • Become a partner

Explore

  • Learning paths
  • Challenges
  • Solutions
  • Articles

Community

  • Discord
  • Guidelines

For companies

  • Hire developers
  • Train developers
© Frontend Mentor 2019 - 2025
  • Terms
  • Cookie Policy
  • Privacy Policy
  • License

Oops! 😬

You need to be logged in before you can do that.

Log in with GitHub

Oops! 😬

You need to be logged in before you can do that.

Log in with GitHub

How does the accessibility report work?

When a solution is submitted, we use axe-core to run an automated audit of your code.

This picks out common accessibility issues like not using semantic HTML and not having proper heading hierarchies, among others.

This automated audit is fairly surface level, so we encourage to you review the project and code in more detail with accessibility best practices in mind.

How does the CSS report work?

When a solution is submitted, we use stylelint to run an automated check on the CSS code.

We've added some of our own linting rules based on recommended best practices. These rules are prefixed with frontend-mentor/ which you'll see at the top of each issue in the report.

The report will audit 1st-party linked stylesheets, and styles within <style> tags.

How does the HTML validation report work?

When a solution is submitted, we use html-validate to run an automated check on the HTML code.

The report picks out common HTML issues such as not using headings within section elements and incorrect nesting of elements, among others.

Note that the report can pick up “invalid” attributes, which some frameworks automatically add to the HTML. These attributes are crucial for how the frameworks function, although they’re technically not valid HTML. As such, some projects can show up with many HTML validation errors, which are benign and are a necessary part of the framework.

Oops! 😬

You need to be logged in before you can do that.

Log in with GitHub