@andref2015
Submitted
@RevazSologhashvili
@andref2015
Submitted
@RevazSologhashvili
Posted
Link is not working
@gbtan1991
Submitted
What are you most proud of, and what would you do differently next time?
Proud of:
Component Structure: I'm proud of the clear and modular component structure of the project. Separating the Card component from the App component makes the code more readable and maintainable.
Styling: The use of Tailwind CSS for styling ensures a clean and modern design with minimal effort. The use of CSS classes like bg-cover, bg-center, and shadow-retro enhances the visual appeal.
Data Handling: Mapping over the learningCards array to dynamically generate Card components is an efficient way to handle multiple data entries.
Do Differently:
Error Handling: Add error handling for missing data, such as a default image if the cover URL is not found or a placeholder if the authorPhoto is missing.
Prop Types: Implement PropTypes for type checking, which can help catch bugs related to incorrect prop types.
Component Testing: Write unit tests for the components to ensure they render correctly with different props.
What challenges did you encounter, and how did you overcome them?
Challenges:
Dynamic Background Image in Inline Style:
Responsive Design:
Date Formatting:
What specific areas of your project would you like help with?
Optimizing Performance: Any suggestions on optimizing the rendering performance of the Card components, especially if the learningCards array grows significantly.
Accessibility: Best practices to improve the accessibility of the components for users with disabilities.
Advanced Styling Techniques: Advice on advanced CSS or Tailwind techniques to enhance the visual design and interactivity of the cards.
State Management: Recommendations on how to handle state management if the app scales, particularly if more dynamic interactions are introduced.
Testing: Guidance on setting up a testing environment and writing effective tests for React components using libraries like Jest and React Testing Library.
@RevazSologhashvili
Posted
Great work!
The only thing I would change in your solution is to create a 'cardData.ts' file for storing every card item's information and then import it for use wherever I need it. Other than that, everything looks well done to me.
@ItotiaHarrison
Submitted
@RevazSologhashvili
Posted
Hi,
Based on your solution i think that you are new to web development, I suggest you to always imagine boxes when you code something, it will help you to organize your code and style it.
Marked as helpful
@Jirosu
Submitted
Hi!, this is my first solution in Frontend Mentor so I chose the QR Code Component as a good starting point in the plataform. I was wondering if a should I use rem units instead of px. And if so, is there a particular reason?
I'd really appreciate any feedback. Thank you for reading!
@RevazSologhashvili
Posted
Hi
rem stands for “root em”. It is relative to the root element, which is usually the <html> element. By default, 1 rem is equal to the font size of the root element, which is typically 16px. So, if you set the font size of an h1 element to 2rem, it would be equivalent to 32px.
em is relative to the font size of its closest parent element. If you set the font size of an h1 element to 2em and its parent element has a font size of 20px, the h1 font size would be 40px.
Here are some examples:
<html style="font-size: 16px;">
<body style="font-size: 1.5em;"> <!-- This is 24px (1.5 * 16) -->
<h1 style="font-size: 2em;">Hello World</h1> <!-- This is 48px (2 * 24) -->
</body>
</html>
In this example, the h1 element has a font size of 48px because its parent’s font size is 24px (which is 1.5em or 24px of the root’s font size).
<html style="font-size: 16px;">
<body style="font-size: 1.5rem;"> <!-- This is 24px (1.5 * 16) -->
<h1 style="font-size: 2rem;">Hello World</h1> <!-- This is 32px (2 * 16) -->
</body>
</html>
In this example, the h1 element has a font size of 32px because it is set to 2rem, which is based on the root element’s font size, not the parent’s.
Using rem and em can indeed make your website more responsive and accessible. They allow users to adjust the default font size in their browser if needed, which can be especially helpful for visually impaired users. However, it’s not the only reason to use them. They also make it easier to scale your design, maintain consistency, and make your CSS more readable and easier to manage.
Remember, there’s no one-size-fits-all solution in CSS. The best approach depends on your specific needs and the context of your project. Happy coding! 😊
Marked as helpful
@ZaiBerm
Submitted
It's my first time writing Javascript and doing DOM Manipulation, I don't know if I did good :)) If you notice that I did bad practices in my code, I'll appreciate it f you point it out to me :))) Thank you!!!
@RevazSologhashvili
Posted
You did great job.
I noticed two thing you can improve here.
body{min-height: 100dvh;}
this will set minimum height based on device screens sizes so there will be no more unnecessary scrolling
Marked as helpful
@imanmaulana1
Submitted
Which is better between using an image as a background or as an element?
@RevazSologhashvili
Posted
It depends on semantics i think. If in UI you have Card component as in this challenge then you should use img element for showing img as a part of card item. but if image is for just showing something like vector lines for entire background then u should use background image styles.
Marked as helpful
@leamsi-ciber
Submitted
Hi everyone, I would like to know how can I achieve mobile first workflow in CSS?
@RevazSologhashvili
Posted
Hi Ismael,
Mobile first design is achieved by using media queries.
like this, first body element styling is for mobile devices and others are for different types of device widths.
check out this MDN link for detailed examples.
body {
background-color: #fff;
font-size: 16px;
line-height: 1.5;
}
/* Media query for tablets */
@media (min-width: 768px) {
body {
font-size: 18px;
}
}
/* Media query for desktops */
@media (min-width: 1024px) {
body {
font-size: 20px;
}
}
Marked as helpful
I have one question that should I add class or id to every html tag.
@RevazSologhashvili
Posted
Using class or id tags in HTML actually depends on what you want to create or how you plan to style it. If you want to apply the same style to multiple elements, such as all list items, you can use the same class for all of them. However, you can’t use the same ID for multiple elements since IDs must be unique. With classes, you can also apply multiple styles to a single HTML tag, like class="color-red bg-black".
If you want to apply unique styling to an element, then you can use IDs. IDs are also used for navigation within a webpage. For example, <a href="#idName">Go to this Part</a> allows you to navigate to the section of your website identified by the specified ID.
Remember, IDs have a higher specificity than classes in CSS, meaning that if there are any conflicting styles between classes and IDs, the styles defined under the ID will override the others. Also, while classes can be used multiple times within a document and can be applied to multiple elements, IDs are unique and each one can only be used once within a document. This uniqueness makes IDs very useful for JavaScript manipulation.
Marked as helpful