• Code Complete Logo
  • ChallengesPro

    logoCode Complete

    Explore

    Challenges
    Pro
    FAQ

    About

    Privacy Policy
    Terms

    Community

    Youtube
    Discord

    Contact us at [email protected]

    Copyright Ā© 2025 CODE COMPLETE PTY LTD

    Thumbnail for Social Media Post Component design
    Free

    1 - Beginner

    Social Media Post Component

    Dynamic post component supporting text, images, videos, polls, and audio.

    Download DesignSubmit Solution
    šŸ“ Overview
    Create a versatile social media post component that supports multiple content types. This challenge focuses on: • Structuring posts with user info, engagement buttons, and a comment input. • Implementing different post types, including text, images, videos, polls, and audio. • Handling interactions like reactions, comments, and voting. You'll gain experience in building dynamic UI elements, managing state-based components, and ensuring a smooth user experience. šŸš€
    šŸŽ“ Learnings
    • ⚔ Creating reusable and maintainable components.
    • šŸŽØ Implementing various content types within a single UI framework.
    • šŸ’¬ Managing interactive elements like comments and reactions.
    • šŸ“Š Designing a functional and visually appealing poll system.
    • šŸ“¹ Handling media content like images, videos, and audio in a scalable way.
    āœ… Project Checklist

      Each post includes the image and name of the post owner on the top left, along with the date posted.

      Each post features a bottom row with like, comment, and share buttons, displaying counts beside each.

      Each post includes a comment input field with the current user's image on the left and a send button on the right.

      Hovering over the like button displays a tooltip with reaction options: like, cry, heart, laugh, and dislike.

      Text-only posts display text content with consistent spacing and styling.

      Text-with-image posts display text on top and an image below, cropped to fit a fixed height and width.

      Text-with-video posts display text on top and a video below with a centered play button, cropped to a fixed size.

      Text-with-multiple-media posts display text on top and a collage of images and videos below, with a 'See More' button for additional content.

      Text-with-audio posts display text on top, followed by an audio player with a play button on the left and a waveform visualization on the right.

      Audio player displays a start time of 00:00 on the left and the total duration on the right.

      Text-with-poll posts have two states: before voting and after voting.

      Before voting, polls display options with a 'X people have voted' text at the bottom.

      After voting, poll options adjust their width to reflect vote percentages, and the selected option is highlighted with a tick mark and backround colour.

      Each poll result option displays the percentage on the left and the number of votes on the right.

    šŸŽ“ Learnings
    • ⚔ Creating reusable and maintainable components.
    • šŸŽØ Implementing various content types within a single UI framework.
    • šŸ’¬ Managing interactive elements like comments and reactions.
    • šŸ“Š Designing a functional and visually appealing poll system.
    • šŸ“¹ Handling media content like images, videos, and audio in a scalable way.
    🌟 Bonus Features

      Add support for dark mode.

      Implement lazy loading for images and videos.

      Make the component fully responsive.

      Animate the reaction tooltip with smooth transitions.

      Store poll responses in local storage to persist votes.

    šŸ› ļø Instructions
    1. Click on the 'Download Design' button to get the .fig file.
    2. Upload the .fig file to your Figma account using these steps. You can now open the design and see what you have to make.
    3. Export assets from Figma by pressing Ctrl+Shift+E (or Cmd+Shift+E on Mac) while nothing is selected and then clicking the 'Export' button that shows up.
    4. Implement the design using your preferred language or framework (aim for pixel-perfect accuracy).
    5. Deploy your solution for free using GitHub Pages, Netlify, or Vercel.
    6. Submit your solution link here and try to get a perfect score!
    šŸ”Ž Check out the FAQ page for any questions regarding challenges and solutions.
    šŸ‘‹ Sign up to submit your solution!