Skip to content
  • Unlock Pro
  • Log in with GitHub
Profile
OverviewSolutions
17
Comments
16
nodegreecode
@nodegreecode

All comments

  • P
    Habeeb Kareem•980
    @olaide-hok
    Submitted 29 days ago

    Results summary component

    1
    nodegreecode•390
    @nodegreecode
    Posted 26 days ago

    Hi @olaide-hok, your design execution is clean and well-structured. The next step could be rebuilding this using a JavaScript framework (like Vue, React, or Svelte) to enhance interactivity and maintainability. This would also make it easier to scale and add dynamic features in the future.

    Keep up the great work!

  • DF•330
    @FengDenny
    Submitted about 1 year ago
    What are you most proud of, and what would you do differently next time?

    I'm proud of the progress I've made in developing reusable components for this project. Learning to create modular, reusable components has not only enhanced the efficiency of my workflow but also improved the overall maintainability of the codebase.

    Additionally, I take pride in successfully implementing both the cart system and different image galleries for various viewports. These components required careful planning and attention to detail to ensure seamless functionality across different devices and screen sizes.

    Looking back, one thing I would do differently next time is to approach this project as a full-stack e-commerce web application instead of limiting it to frontend development with JSON file data.

    Building a full-stack application would provide valuable experience in integrating backend functionality, such as database management and user authentication, which are essential components of real-world e-commerce platforms.

    This approach would offer a more comprehensive learning experience and enable me to develop a deeper understanding of the entire web development process from end to end.

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

    This project presented several challenges, particularly in implementing the lightbox gallery functionality and managing data manipulation for the image gallery and cart system.

    One significant challenge arose while developing the lightbox gallery for desktop. Initially, the small thumbnail images were not transitioning to the large product image upon clicking, and the previous and next buttons were not functioning as expected. These issues stemmed from using the same component for mobile, tablet, and desktop views.

    To address these challenges, I made adjustments to the dataset attributes for the lightbox gallery. By ensuring that each image had unique and standalone dataset attributes, I could easily target them in the DOM traversal process.

    Additionally, I implemented event delegation, specifically bubbling up to the parent element, to handle click events more efficiently. This approach allowed me to capture clicks on any image within the gallery and determine the appropriate action based on the clicked element's dataset attributes.

    Once I successfully bubbled up to the parent element, I parsed the dataset attributes to identify the relevant information for each image. This included determining the current index of the clicked image within the gallery, enabling smooth transitions between images when navigating using the previous and next buttons.

    By addressing these challenges and implementing solutions such as dataset attribute management, event delegation, and DOM traversal techniques, I was able to overcome obstacles and enhance the functionality of the lightbox gallery component.

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

    At the moment, none.

    Crafting a Seamless E-Commerce Experience: Reusable Components

    #sass/scss#vite#accessibility
    1
    nodegreecode•390
    @nodegreecode
    Posted 2 months ago

    Hi @FengDenny, good work—it’s very close to the design, and the animation is smooth. However, the logic should be reviewed, and some inconsistencies in the component behavior need to be fixed. For example, the shopping cart opens when the quantity of a product is changed, which shouldn’t happen. Overall, the performance is great—keep going and keep coding!

  • Adelabu Mobolaji•440
    @Bolazcoding
    Submitted 4 months ago
    What are you most proud of, and what would you do differently next time?

    Just happy, i completed it

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

    no issues

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

    JavaScript

    News Homepage using JS

    #accessibility#lighthouse#pure-css
    1
    nodegreecode•390
    @nodegreecode
    Posted 4 months ago

    Hi @Bolazcoding,

    I'm really enjoying reviewing your work—great job! The homepage is almost perfectly aligned with the design, well-structured, and conforms to accessibility (WCAG) standards.

    Just a small note: consider using more media queries to make the layout even more responsive. Also, if you're using the <aside> element for mobile navigation, it's a good practice to explicitly define its role and add an aria-label for better accessibility.

    Keep up the great work, and most importantly—have fun coding.

  • Anthonia Efe•340
    @AnthoniaEfe
    Submitted 4 months ago

    Contact Form with React and SCSS

    #react-aria#sass/scss#accessibility
    1
    nodegreecode•390
    @nodegreecode
    Posted 4 months ago

    Hi @AnthoniaEfe, this is an excellent solution—both in terms of accessibility and alignment with the design. Perhaps just a small adjustment to the layout could help ensure the components remain well-structured across different screen sizes.

    Overall, though, truly impressive work. I especially appreciate how the input fields are initially high-contrast and then styled with color after being filled out. This approach is perfect for users with visual impairments.

    Keep up the great work!

    Marked as helpful
  • Anthonia Efe•340
    @AnthoniaEfe
    Submitted 5 months ago

    Interactive Rating Card with React & SCSS

    #react#sass/scss
    1
    nodegreecode•390
    @nodegreecode
    Posted 5 months ago

    Hi @AnthoniaEfe,

    I'm excited to review your solution! I'm currently practicing building projects using only vanilla JavaScript, but I can't wait to explore React or Vue for this purpose later on.

    You’re probably already aware of some design differences in your solution. I just want to summarize the overall result and highlight a few areas for improvement.

    The component closely matches the design, but in terms of accessibility, the color contrast should be adjusted slightly. Regarding the logic, form validation is needed to ensure that users cannot submit the rating form without selecting a rating. Additionally, there’s an extra $ sign in one of the template literals.

    That being said, the component looks great overall! Keep enjoying your coding journey and keep pushing forward.

  • P
    Coder-Liz•610
    @Coder-Liz
    Submitted 5 months ago
    What are you most proud of, and what would you do differently next time?

    I am proud to have completed this project, even though I still need to make some adjustments to my code, like updating certain HTML elements, so I can use pure functions in the script.

    Tip Calculator App

    #sass/scss
    1
    nodegreecode•390
    @nodegreecode
    Posted 5 months ago

    Hi @Coder-Liz, I’m really impressed with how well you matched the size of this component—it aligns perfectly with the actual design!

    Regarding functionality, there’s still room for improvement. Instead of adding a border to the Custom Tips field, consider styling its outline to prevent the jumping and resizing of other components. Also, try rethinking the logic behind the event listeners. Right now, the calculation starts immediately after the first input. Instead, you could implement a central function that orchestrates the other functions in a more structured and appropriate manner.

    You're doing a fantastic job—keep it up! 🚀

  • Williams Akanni•350
    @shadowbanks
    Submitted 6 months ago
    What challenges did you encounter, and how did you overcome them?

    I spent more time than I should deciding how much of the page should be dynamic and how best to go about it 😅, ultimately I decided to create the boilerplate for each card and then fill them dynamically.

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

    For the card's active state, on hover the color becomes lighter also on the ellipse hover the card retains its original color (basically the card isn't in a hover state) and only the ellipse is in a hover state, I ended up using javascript to toggle a class on the card to handle this, I'm wondering if there's a better approach.

    Also, I'm open to any other suggestions.

    Thank you for your time :)))

    Time tracking dashboard

    #sass/scss#accessibility
    1
    nodegreecode•390
    @nodegreecode
    Posted 6 months ago

    Hi there! Your solution looks fantastic. The layout adapts well across different screen sizes and stays true to the design. One suggestion would be to explore using JavaScript to handle the hover states of the activity boxes for more dynamic interactions. Keep coding, stay curious, and keep pushing your skills forward!

  • P
    Daniel Tefe•90
    @awaritefe
    Submitted 6 months ago
    What are you most proud of, and what would you do differently next time?

    Was nice to figure out how the parts connect and deciding how to approach this. I would probably try using a framework like Vue.Js next time.

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

    The freecodecamp documentation on this is not great. Its missing key stages you need to make it work. Next time i would find a different solution online somewhere else.

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

    Is there a cleaner way to do it?

    newsletter-sign-up-with-success-message-main

    #sass/scss
    1
    nodegreecode•390
    @nodegreecode
    Posted 6 months ago

    Hi, this is a great solution, especially in how you handle the success message appearance. I really like your idea of using the dialog element to display the message. The overall implementation closely resembles the design and functions as intended. Perhaps some minor adjustments between breakpoints could further enhance the layout's responsiveness. Keep up the excellent work!

    Marked as helpful
  • Artem Kotko•260
    @artemkotko14
    Submitted 7 months ago

    Article preview component

    #sass/scss
    1
    nodegreecode•390
    @nodegreecode
    Posted 7 months ago

    Hi! I’m excited to review your solution—it’s a very interesting and creative approach to tackling this challenge. I mean mixing of gird and flex containers.

    The article preview card looks impressively close to the design. One suggestion would be to position the share popup outside the card. This way, you could use overflow: hidden on the entire card to ensure all the corners remain perfectly rounded.

    Keep up the great work, and stay motivated!

    Marked as helpful
  • P
    ChefJTaylor•130
    @ChefJTaylor
    Submitted 7 months ago
    What are you most proud of, and what would you do differently next time?

    This one took me a while longer but I finished it and was able to get pretty close to the design. Re-learning and applying these concepts have been fun.

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

    This one was tough. From choosing the correct displays, positioning, text placement, it was all a challenge. The 21 day course that was suggested before this learning path has helped alot.

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

    Specially on the media query I could not get any space on the bottom of the page without messing up the entire layout. If someone could help me with that, I would appreciate it.

    Testimonials Grid

    1
    nodegreecode•390
    @nodegreecode
    Posted 7 months ago

    Hi, great solution overall! I particularly appreciated the clever trick of using an image for the double quotation mark instead of relying solely on font families and pseudo-elements. That approach could save a lot of time—something I personally spent quite a bit of effort on.

    Your HTML is well-structured, and the styling is clean and effective. However, I’d suggest enhancing the layout a bit further by adding some spacing on the sides to improve the overall balance. Additionally, consider introducing a breakpoint in the middle of the responsive design. For example, you could switch to a two-column grid at that point, rather than jumping straight to a single-column layout.

    Keep up the great work—your code is a pleasure to review.

    Marked as helpful
  • Hossein Heydarpour•140
    @HosseinHeydarpour
    Submitted over 1 year ago

    Responsive four card feature section(SASS+BEM+Desktop-first+CSS-grid)

    #bem#sass/scss#accessibility
    1
    nodegreecode•390
    @nodegreecode
    Posted 7 months ago

    Hi! I’m really impressed with your implementation, especially the grid/column system. That’s something I’ve been trying to achieve myself but haven’t quite nailed yet—great job!

    If I may, I’d suggest adding an intermediate breakpoint in your media queries where the grid transitions first to two columns before switching to a single-column layout. It could enhance responsiveness and make the design even more polished.

    Keep up the fantastic work, and have fun tackling your next challenges!

  • Kevin Arizaga•680
    @kevin344k
    Submitted about 2 years ago

    Just scss(css) with html semantic and method mobile first.

    #sass/scss
    1
    nodegreecode•390
    @nodegreecode
    Posted 8 months ago

    Hi, great work! Your preview card is very close to the design. To improve further, consider refining your media queries and incorporating additional breakpoints for better responsiveness and adaptability across a wider range of devices. Adjusting these will ensure the layout transitions smoothly and aligns more closely with the design’s intent. Keep up the excellent work!

  • Conte-Mouctar•130
    @Conte-Mouctar
    Submitted 10 months ago

    Page de recettes

    1
    nodegreecode•390
    @nodegreecode
    Posted 10 months ago

    Hi, @Conte-Mouctar,

    well structured html.

    There are some tipps, which could be helpfull:

    • add some more padding to the container;
    • change image corner applying border-radius on it;
    • apply @media-queries to make you page looks similiar to the mobile-design.

    Keep coding and stay persistent.

  • Dev Henrique Mares•10
    @devhenriquemares
    Submitted 10 months ago

    Social Links

    1
    nodegreecode•390
    @nodegreecode
    Posted 10 months ago

    Hi @devhenriquemares,

    really nice look and good customization.

    But one thing I'd like to mention is about building links and making them look like buttons. When you have something like a navigation, which consists of a couple links and they logically bind, you should use the ul element and put a elements inside of the li elements of that unordered list.

    I hope this will help you a little bit.

    Marked as helpful
  • Nicolás Forneiro•80
    @forneiro
    Submitted 10 months ago

    Responsive preview card with CSS Flex and HTML

    1
    nodegreecode•390
    @nodegreecode
    Posted 10 months ago

    Basically, the component is fluid and very close to the design. And you didn't forget to set a border around the entire card, as I did. But regarding semantics and CSS styling, there are some things that you could improve. So the blog card consists of <header> with image, title and link inside of this, <p> with short description and the <footer>. Instead of adding :hover pseudo class on top of the <h1> better wrap an <a> tag with <h1>. The boxing-size property should be set inside the universal selector * only, as you do not use pseudo-elements ::after and ::before. They could be removed. If you set font-size entirely to 62.5% = 10px, then stick to rem's do not use px's, however for border-radius, px's are recommended, because corners remain the same after the user changes the font size in his browser. Using width and max-width in the .card class is redundant. You can leave max-width or use flex-basis instead. I hope my comment will be helpful. Stay motivated and keep coding...

    Marked as helpful
  • Zeke Achas•70
    @zekeer21
    Submitted 10 months ago

    QR code component solution

    2
    nodegreecode•390
    @nodegreecode
    Posted 10 months ago

    HTML is valid and built semantically correct. The description of the image could be a bit longer and preciser. Something like "illustration of white qr code on the blue background". The layout looks good while changing screen size, but however the content inside is not fluid. You could try using "max-width" instead of "width" when defining the size of the container. Not so much reason to select paragraphs like this ".text > .text-second" if they have their own unique classes. There are some improvements regarding the class names, so basically, to make it reusable and meaningful, you should better use some general names, which describe the element hierarchically or in the case of some heading/title according to their function. A heading or title can be reused over the entire project. Instead of "text-first" you can write "card-title" or "qr-code-title". The solution generally looks very close to the design. Great job!

    Marked as helpful

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Oops! 😬

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

Log in with GitHub