Skip to content
  • Unlock Pro
  • Log in with GitHub
Solution
Submitted over 1 year ago

Responsive Testimonial Grid + React + Material UI + CSS vanilla

material-ui, react, vite
German Pinto•320
@germanp007
A solution to the Testimonials grid section challenge
View live sitePreview (opens in new tab)View codeCode (opens in new tab)

Solution retrospective


Hi there༼ つ ◕_◕ ༽つ

  • In this challenge, I integrated Material UI as a framework with a customized theme besides vanilla CSS.
  • I used TypeScript and constants for personalized styles.

NOTE: I couldn't implement the challenge with MUI grids because I couldn't find a way to make the grid span two rows, so I implemented that part using CSS Div and Grid. I created three layouts for responsives, for desktop size, mobile, and added an intermediate one for tablets. I would appreciate it if you could give it a like and leave a comment for feedback. 🚀🚀🚀!

Code
Select a file

Please log in to post a comment

Log in with GitHub

Community feedback

  • P
    Daniel 🛸•44,830
    @danielmrz-dev
    Posted over 1 year ago

    Hello @germanp007!

    Your solution looks excelent!

    I have just one suggestion:

    📌 In order to make your HTML code more semantic, avoid using <p> for titles.

    The tag <p> is meant for paragraphs. For titles, we have the HTML headings (the tags <h1> to <h6>).

    Here's a quick guide on how to use them:

    Unlike what most people think, it's not just about the size and weight of the text.

    • The <h1> to <h6> tags are used to define HTML headings.
    • <h1> defines the most important heading.
    • <h6> defines the least important heading.
    • Only use one <h1> per page - this should represent the main heading/title for the whole page. And don't skip heading levels - start with <h1>, then use <h2>, and so on.

    All these tag changes may have little or any visual impact but they make your HTML code more semantic and improve SEO optimization as well as the accessibility of your project.

    I hope it helps!

    Other than that, great job!

    Marked as helpful
  • Petrit Nuredini•2,860
    @petritnuredini
    Posted over 1 year ago

    Congratulations on completing your project! It's a significant achievement, and your commitment to learning and improving is clear in your work. Here are some best practices and recommendations to further enhance your project:

    1. React Component Structure:

      • Props Validation: Consider using PropTypes for better type checking and documentation of your component props.
      • Functional Components: Great use of functional components and React hooks for cleaner and more efficient code.
    2. Styling with Material-UI:

      • Consistent Theming: Good use of Material-UI for consistent theming. Make sure to leverage Material-UI's theming capabilities to the fullest for a more cohesive design.
      • Avoid Inline Styles: While using inline styles can be convenient, it's generally better to separate your styles from your component logic for better maintainability.
    3. Responsive Design:

      • Media Queries: You've done a great job with media queries. Ensure that your application is thoroughly tested across various devices for a consistent user experience.
      • Grid System: Utilizing CSS grid for layout is a modern approach. Make sure the grid items are aligned and spaced consistently.
    4. Code Organization and Readability:

      • Component Separation: Keep your components small and focused. If a component gets too large, consider breaking it down into smaller, reusable components.
      • Descriptive Naming: Ensure your function and variable names are descriptive and clear to understand. This makes your code more readable and maintainable.
    5. Accessibility:

      • Keyboard Accessibility: Ensure that all interactive elements are accessible via keyboard.
      • ARIA Attributes: Use ARIA attributes where necessary to make your components more accessible to users with disabilities.
    6. Performance Optimization:

      • Lazy Loading Images: Implement lazy loading for images to improve page load times, especially for users with slower internet connections.
      • Minification and Bundling: Use tools like Webpack or Babel to bundle and minify your JavaScript files for production.
    7. Further Learning Resources:

      • React and Material-UI: React Documentation and Material-UI Documentation
      • Responsive Design: CSS Tricks Guide
      • Web Accessibility: Web Accessibility Initiative (WAI)

    Keep up the great work and continue to challenge yourself with new projects! Each project is a step forward in your development journey. Stay curious, keep experimenting, and don't be afraid to try new technologies and techniques. Your progress is impressive, and I'm excited to see what you'll create next!

    Marked as helpful

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

Stay up to datewith new challenges, featured solutions, selected articles, and our latest news

Frontend Mentor

  • Unlock Pro
  • Contact us
  • FAQs
  • Become a partner

Explore

  • Learning paths
  • Challenges
  • Solutions
  • Articles

Community

  • Discord
  • Guidelines

For companies

  • Hire developers
  • Train developers
© Frontend Mentor 2019 - 2025
  • Terms
  • Cookie Policy
  • Privacy Policy
  • License

Oops! 😬

You need to be logged in before you can do that.

Log in with GitHub

Oops! 😬

You need to be logged in before you can do that.

Log in with GitHub

How does the accessibility report work?

When a solution is submitted, we use axe-core to run an automated audit of your code.

This picks out common accessibility issues like not using semantic HTML and not having proper heading hierarchies, among others.

This automated audit is fairly surface level, so we encourage to you review the project and code in more detail with accessibility best practices in mind.

How does the CSS report work?

When a solution is submitted, we use stylelint to run an automated check on the CSS code.

We've added some of our own linting rules based on recommended best practices. These rules are prefixed with frontend-mentor/ which you'll see at the top of each issue in the report.

The report will audit all CSS, SCSS and Less files in your repository.

How does the HTML validation report work?

When a solution is submitted, we use html-validate to run an automated check on the HTML code.

The report picks out common HTML issues such as not using headings within section elements and incorrect nesting of elements, among others.

Note that the report can pick up “invalid” attributes, which some frameworks automatically add to the HTML. These attributes are crucial for how the frameworks function, although they’re technically not valid HTML. As such, some projects can show up with many HTML validation errors, which are benign and are a necessary part of the framework.

How does the JavaScript validation report work?

When a solution is submitted, we use eslint to run an automated check on the JavaScript code.

The report picks out common JavaScript issues such as not using semicolons and using var instead of let or const, among others.

The report will audit all JS and JSX files in your repository. We currently do not support Typescript or other frontend frameworks.

Oops! 😬

You need to be logged in before you can do that.

Log in with GitHub

Oops! 😬

You need to be logged in before you can do that.

Log in with GitHub