|
| 1 | +<h1 align="center">Interactive comments section</h1> |
| 2 | +<div align="center"> |
| 3 | + |
| 4 | +Challenge from [Frontend Mentor](https://www.frontendmentor.io/challenges) |
| 5 | + |
| 6 | +</div> |
| 7 | + |
| 8 | +<!-- Badges --> |
| 9 | +<div align="center"> |
| 10 | + |
| 11 | +<!-- Live --> |
| 12 | +<a href="https://interactive-comments-section-codepapa360.vercel.app/"> |
| 13 | + <img src="https://custom-icon-badges.demolab.com/badge/Live%20Demo-blue?style=for-the-badge&logo=live360&labelColor=666666" alt="Live Demo" /> |
| 14 | +</a> |
| 15 | + |
| 16 | +<!-- Frontend Mentor --> |
| 17 | +<a href="#"> |
| 18 | + <img src="https://img.shields.io/badge/Frontendmentor-100000?style=for-the-badge&logo=frontendmentor&logoColor=white&labelColor=666666&color=2490A9" alt="FrontendMentor"> |
| 19 | +</a> |
| 20 | +</div> |
| 21 | + |
| 22 | +<div align="center"> |
| 23 | +<!-- Status --> |
| 24 | + |
| 25 | +<!-- <img src="https://img.shields.io/badge/Status-Incomplete-red?style=flat" alt="Status" /> --> |
| 26 | + |
| 27 | +<img src="https://img.shields.io/badge/Status-Completed-success?style=flat" alt="Status" /> |
| 28 | + |
| 29 | +<!-- Liceensee --> |
| 30 | +<img src="https://img.shields.io/badge/License-MIT-blue?style=flat" alt="License" /> |
| 31 | +</div> |
| 32 | + |
| 33 | +<hr> |
| 34 | + |
| 35 | +<div align="center"> |
| 36 | + |
| 37 | +<p> |
| 38 | + |
| 39 | +</p> |
| 40 | + |
| 41 | +<!-- Screenshot --> |
| 42 | +<a align="center" href="https://interactive-comments-section-codepapa360.vercel.app/"> |
| 43 | + |
| 44 | + |
| 45 | + |
| 46 | +</a> |
| 47 | + |
| 48 | +</div> |
| 49 | + |
| 50 | +## The challenge |
| 51 | + |
| 52 | +Users should be able to: |
| 53 | + |
| 54 | +- View the optimal layout for the app depending on their device's screen size |
| 55 | +- See hover states for all interactive elements on the page |
| 56 | +- Create, Read, Update, and Delete comments and replies |
| 57 | +- Upvote and downvote comments |
| 58 | +- **Bonus**: If you're building a purely front-end project, use `localStorage` to save the current state in the browser that persists when the browser is refreshed. |
| 59 | +- **Bonus**: Instead of using the `createdAt` strings from the `data.json` file, try using timestamps and dynamically track the time since the comment or reply was posted. |
| 60 | + |
| 61 | +## Built with |
| 62 | + |
| 63 | +- Semantic HTML5 markup |
| 64 | +- Mobile-first workflow |
| 65 | +- CSS custom properties |
| 66 | +- CSS Grid |
| 67 | +- JavaScript |
| 68 | +- NPM |
| 69 | +- [Webpack - a module bundler](https://webpack.js.org/) |
| 70 | + |
| 71 | +## What I Learned |
| 72 | + |
| 73 | +## Installation |
| 74 | + |
| 75 | +- Clone this repo: |
| 76 | + |
| 77 | +```sh |
| 78 | +git clone https://github.com/CodePapa360/Interactive-comments-section.git |
| 79 | +``` |
| 80 | + |
| 81 | +- Install dependencies: |
| 82 | + |
| 83 | +```sh |
| 84 | +npm install |
| 85 | +``` |
| 86 | + |
| 87 | +- Build command: |
| 88 | + |
| 89 | +```sh |
| 90 | +npm run build |
| 91 | +``` |
| 92 | + |
| 93 | +- Live server: |
| 94 | + |
| 95 | +```sh |
| 96 | +npm start |
| 97 | +``` |
| 98 | + |
| 99 | +## Author |
| 100 | + |
| 101 | +<b>👤 Alamin</b> |
| 102 | + |
| 103 | +- Twitter - [@CodePapa360](https://www.twitter.com/CodePapa360) |
| 104 | +- LinkedIn - [@CodePapa360](https://www.linkedin.com/in/codepapa360) |
| 105 | +- Frontend Mentor - [@CodePapa360](https://www.frontendmentor.io/profile/CodePapa360) |
| 106 | +- Github: [@CodePapa360](https://github.com/codepapa360) |
| 107 | + |
| 108 | +Feel free to contact me with any questions or feedback! |
| 109 | + |
| 110 | +## Show your support |
| 111 | + |
| 112 | +Give a ⭐️ if you liked this project! |
| 113 | + |
| 114 | +## Acknowledgments |
| 115 | + |
| 116 | +Special thanks to Frontend Mentor for providing such an amazing platform to practice and improve my frontend skills. |
| 117 | + |
| 118 | +## License |
| 119 | + |
| 120 | +This project is licensed under the [MIT](https://github.com/CodePapa360/Interactive-comments-section/blob/main/LICENSE.md) license, which means you can use, modify, and distribute the code as you wish. If you have any questions or feedback, feel free to reach out. Thank you for considering my code! |
0 commit comments