Design comparison
Solution retrospective
I am trying to learn react. I also had a lot of difficulties setting the styles properly. Here are the problems.
- the colored top part of cards, is it a border or not? Mine does not look the same.
- the layout of the 4 cards, I had to add extra divs and then tries to somehow arrange them to look like on the picture, but it was extremely difficult. I tried using grid and flex, but I was not sure how to set up the empty space in the 1st and 3rd column.
- I could not put an <img> tag with a path to the given SVGs, but instead, I had to copy the entire SVG code inline. The problem was a path error "could not find the file specified". I was not sure how.
- The positioning of the SVGs is not good. I tried using absolute positioning, but every time I would use "top" or "bottom", all 4 SVGs would arrange on top of each other for some reason.
Community feedback
- @PeshwariNaanPosted almost 2 years ago
Hello nikoProg - Nice work on completing the challenge, it looks good.
Here's a few things you could do that might help.
- For the layout, I think it would be easier to use a grid for the cards. You could have something like.
.card_container { display: grid; width: 80vw; height: 70vh; grid-template-columns: repeat(3, 1fr); grid-template-rows: repeat(3, 1fr);
These values are just a quick guess, you would have to figure the height and width of the container as per your design. But now you can assign each card to right where you want them in the styling for your individual cards
.card_1{ grid-column: 1 / 2; grid-row: 2 /4;
Then do that for the other 3 cards but changing where in the grid you want them buy changing the grid-column and row values. See here for more info on GRIDS . When you get more comfortable you could assign the positions via props but that is beyond the scope of this project.
-
To use an svg as an image src just import the svg into your component file like:
import sun from '../../assets/icon-sun.svg'
. Then just use<img src={sun} onClick={toggleThemeHandler} alt='sun icon' />
. When you import like this, the name doesn't matter, just make sure the path is correct. For example I could have usedimport apple from '../../assets/icon-sun.svg'
and as long as I usesrc={apple}
it will still work. -
Get into the habit of building individual components to get the benefits of react. That is what react is for. Putting everything into your app.js and not dividing up your code will lead to trouble.
I hope this helps. Happy coding
Marked as helpful0
Please log in to post a comment
Log in with GitHubJoin 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