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

NFT Preview Card

react
EmicJoykiller•270
@EmicJoykiller
A solution to the NFT preview card 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?

What I'm most proud of: I'm especially proud of the seamless hover overlay effect and the way it adds interactivity to the NFT card. Achieving smooth, visually appealing animations that enhance user experience was a rewarding challenge. Additionally, I'm proud of how the project is fully responsive, creating a consistent experience across different devices.

What I'd do differently: Next time, I'd like to experiment with advanced accessibility features, such as ARIA labels and keyboard navigation, to ensure that all interactive elements are accessible to users with disabilities. I’d also like to refactor some components into custom hooks to improve reusability and maintainability, especially for handling UI state and animations.

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

One of the main challenges I faced was making the overlay cover only the NFT image without impacting the surrounding card layout. Initially, the overlay was taking up too much space, affecting the design. I resolved this by creating a dedicated container with position: relative to control the overlay’s dimensions precisely. Another challenge was ensuring responsive scaling for different screen sizes. I used flexible units like em and vh/vw and set media queries to fine-tune the layout on smaller screens, which solved the problem effectively.

These challenges taught me more about managing layered elements in CSS and the importance of responsive design principles, which I’ll carry into future projects.

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

I’d love feedback on optimizing the code structure, particularly for reusability and performance. Specifically, I'd like advice on:

Optimizing animations: Are there best practices to make CSS transitions even smoother, especially when multiple animations are involved? Improving accessibility: I’ve implemented basic accessibility features, but I’d appreciate guidance on making the project more accessible for a wider audience. Advanced React patterns: I’m interested in learning more about custom hooks or context to manage complex state and streamline component logic for a project of this scale. Any input on these areas would be invaluable as I work on building more complex, user-friendly applications!

Code
Couldn’t fetch repository

Please log in to post a comment

Log in with GitHub

Community feedback

No feedback yet. Be the first to give feedback on EmicJoykiller's solution.

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.