Skip to content
  • Unlock Pro
  • Log in with GitHub
Challenge
Step 1: Start challenge
Premium
  • HTML
  • CSS
  • JS
3intermediate

Flashcard app

Practice building interactive UI with this flashcard app. Features card flip animations, progress tracking, filtering, and study statistics.

Premium challenges are available with Pro.

Join 180 people who have taken this challenge

📝Brief

Your challenge is to build out this flashcard app and get it looking as close to the design as possible.

You can use any tools you like to help you complete the challenge. So if you've got something you'd like to practice, feel free to give it a go.

We provide the data in a local data.json file, allowing you to populate the content on first load. If you want to take it a step further, feel free to develop this as a full-stack application.

Your users should be able to:

Flashcard management

  • Create new flashcards with a question, answer, and category
  • Edit existing flashcards to update their details
  • Delete flashcards they no longer need
  • See form validation messages when trying to submit a card without all fields completed
  • View all their flashcards in a grid layout
  • See flashcard details including question, answer, category, and mastery progress

Study mode

  • Study flashcards one at a time in Study Mode
  • Click on a flashcard to reveal the answer
  • Mark a flashcard as known by clicking "I Know This" to track mastery progress
  • Navigate between flashcards using Previous and Next buttons
  • See which card they're currently viewing (e.g., "Card 1 of 40")
  • Track mastery progress for each card on a scale of 0 to 5
  • Reset progress on a flashcard to start learning it again

Filtering & organization

  • Filter flashcards by selecting one or multiple categories
  • See the number of cards in each category within the filter dropdown
  • Hide mastered cards to focus on cards that still need practice
  • Shuffle flashcards to randomize the study order

Statistics & progress

  • View study statistics showing total cards, mastered, in progress, and not started counts

UI & Navigation

  • Toggle between Study Mode and All Cards views
  • Load more flashcards when viewing the full card list with more than 12 cards
  • See a toast message when a card is created, updated, or deleted
  • View the optimal layout for the interface depending on their device's screen size
  • See hover and focus states for all interactive elements on the page
  • Navigate the entire app using only their keyboard

Download the project and go through the README.md file. This will provide further details about the project and help you get set up.

Want some support on the challenge? Join our community and ask questions in the help channel.

🗃Assets provided

  • Figma design files
  • Mobile, tablet & desktop layouts
  • Professional design system for colors, fonts, etc.
  • Optimized image assets
  • README file to help you get started
  • HTML file with pre-written content

💡Ideas to test yourself

  1. Build as a full-stack app with user authentication to save flashcards and progress across devices
  2. Add import/export functionality to allow users to upload flashcards via CSV or JSON files
  3. Add keyboard shortcuts for faster studying (spacebar to flip, arrow keys to navigate)
  4. Add text-to-speech functionality to read questions and answers aloud for audio learners
  5. Add progressive web app (PWA) capabilities for mobile installation and offline studying

Challenge FAQs

  • How can I get help if I'm stuck on a challenge?
  • How do I submit my solution?
  • Is there an official solution I can take a look at?
  • Do I get a code review when I post my solution?
  • Can I use libraries/frameworks on these projects?
  • Can I use these projects in my portfolio?
  • How often are new challenges added?
  • What is the difference between the desktop-design, mobile-design, and desktop-preview images in my starter code?
  • Can I use these challenges within my own free or commercial content/tutorials/projects?

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

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

Frontend Mentor

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

Explore

  • Learning paths
  • Challenges
  • Solutions
  • Articles

Community

  • Discord
  • Guidelines

For companies

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