This is a solution to the REST Countries API with color theme switcher challenge on Frontend Mentor. Frontend Mentor challenges help you improve your coding skills by building realistic projects.
Users should be able to:
- See all countries from the API on the homepage
- Search for a country using an
inputfield - Filter countries by region
- Click on a country to see more detailed information on a separate page
- Click through to the border countries on the detail page
- Toggle the color scheme between light and dark mode (optional)
I took screenshots without the footer because it was with position fixed and it was a little bit strange when I took screenshots of the full page. Also I didn't took with all of the examples on every single device size.
-Mobile Detailed Design (Light Mode)
-Tablet Detailed Design(Dark Mode)
-Desktop Detailed Design (Light Mode)
- Solution URL: Repository
- Page URL: Live Site
- Semantic HTML5 markup
- CSS custom properties
- Flexbox
- Mobile-first workflow
- React - JS library
- React-Icons - React Icons
- Redux-Toolkit - Package of Redux
- Sass - Preprocessor of CSS
- Uuidv4 - Key generator
- Lodash - JS library
- Gh-Pages - GitHub Host
Use this section to recap over some of your major learnings while working through this project. Writing these out and providing code samples of areas you want to highlight is a great way to reinforce your own knowledge.
With this project I started to work with API, in this case with Rest Country API and that means that I needed to use data fetching with fetch. Also I needed to understand how redux toolkit manages this fetchs with the extra Reducers and work with asynchronous things, something that I had never worked with directly.
Of course, I'm still confused a lot about the asynchrony and that is something that I need to still studying.
- Lodash Chunk - This helped me to separate an array into chunks of 'x' items.
- Numbers - This helped me to put automatically commas in the specifics parts of a number to make it more readable.
- Frontend Mentor - @Mathitarazonad
- Github - @Mathitarazonad