Go Back

2 min read

Responsive Design Made Easy with React’s useMediaQuery Hook

profile

Nitin k

|

December 23, 2024

views

Creating responsive designs is a crucial aspect of modern web development. With CSS media queries, you can define different styles based on screen size. But how do you make your React app aware of these changes? Enter the useMediaQuery hook!

Why Use useMediaQuery?

useMediaQuery helps your React app react (pun intended) to media query changes. This is particularly useful for implementing conditional rendering, dynamic styles, or adaptive layouts without relying solely on CSS.

How It Works

Here’s the core implementation of the useMediaQuery hook:

useMediaQuery.ts

Key Features:

  • Dynamic Updates: Automatically updates the state when the media query result changes.
  • Lightweight: Automatically updates the state when the media query result changes.
  • Reusable: Works with any valid CSS media query string.

Example Use Case

Let’s see how to use useMediaQuery in a component:

index.tsx

What’s Happening Here:

  • Detect Screen Size: The hook checks if the viewport width is 768px or smaller.
  • Conditional Styling: Adjusts the padding based on the screen size.
  • Dynamic Content: Displays different messages depending on the screen size.

Conclusion

With useMediaQuery, making your React applications responsive becomes effortless. It abstracts the complexities of window.matchMedia and keeps your components clean and declarative. Start using it in your next project to deliver a seamless user experience across devices!