Huddle landing page with single introductory section with React

Solution retrospective
I’m most proud of how I structured the React components and made the code modular and reusable. It made the project much easier to manage and scale. Next time, I would focus more on accessibility, ensuring all elements are properly labeled for screen readers. I would also dedicate more time to optimizing the performance and improving the responsiveness to create a smoother user experience across all devices.
What challenges did you encounter, and how did you overcome them?One of the main challenges I encountered was figuring out how to use Sass with React. I initially tried to use it directly, but I realized I needed to install the Sass package first. Once I figured that out, I focused on learning how to organize the components effectively. Another challenge was integrating React Icons for the contact section, but by referring to documentation and experimenting, I was able to get it working smoothly.
What specific areas of your project would you like help with?I would appreciate help with improving the responsiveness of the page, especially for smaller screens. While I've made it work, I feel there’s room for better optimization, particularly with the layout and font sizes. Additionally, I’d like advice on how to make the React components even more efficient and how to best manage state across different components in a larger project.
Please log in to post a comment
Log in with GitHubCommunity feedback
- P@huyphan2210
Hi, @VangmanawKairung
I checked out your solution and I have some thoughts:
Media Queries
I noticed you're using a media query (
@media (min-width: 1241px)
) for thebody
. While this works for larger viewports, it might be beneficial to include additional media queries for smaller viewports, such as tablets. This ensures a smoother experience across a wider range of devices.Centering the
main
ElementYou're centering the
main
element usingposition: absolute
withtop
,left
, andtranslate
. While this is perfectly valid, you’ve applied it only for viewports that are1241px
wide or larger. On smaller viewports, such as mobile devices, the content isn’t centered. To address this, you could adjust the layout for those viewports using the following methods:Centering Techniques:
- Using
position
: Like you did, but ensure adjustments are made for all relevant screen sizes. - Flexbox:
display: flex; justify-content: center; align-items: center;
- Grid:
display: grid; place-items: center;
Responsive Design Tips
For better responsiveness, besides media queries, consider leveraging CSS functions like
clamp()
,min()
,max()
, andcalc()
. These, combined with relative units (rem
,em
,%
,vw
,vh
), can create fluid layouts that adapt well to different screen sizes. While I see you’ve usedvw
andvh
, integrating these alongside properties likemin-height
ormax-width
could further enhance flexibility.Hope this helps!
Marked as helpful - Using
Join 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