react-media-queries is a React hooks library that provides useful custom hooks for responsive design and media queries.
npm i @alejandrorm-dev/react-media-queriesDemo.mov
A React hook for evaluating a media query.
import { useMediaQuery } from 'mx-hooks';
function MyComponent() {
const isLargeScreen = useMediaQuery('(min-width: 1200px)');
return <div>{isLargeScreen ? 'Large screen' : 'Small screen'}</div>;
}A React hook that provides boolean values for common media query states.
import { useMediaQueries } from 'mx-hooks';
function MyComponent() {
const { isDesktop, isTablet, isMobile, isLandscape, isPortrait } = useMediaQueries();
return (
<div>
<p>Device type: {isDesktop ? 'Desktop' : isTablet ? 'Tablet' : 'Mobile'}</p>
<p>Orientation: {isLandscape ? 'Landscape' : 'Portrait'}</p>
</div>
);
}query: A media query string to evaluate.- Returns:
trueif the media query matches the current viewport,falseotherwise.
queries(optional): An object containing custom media query strings. If not provided, default queries will be used.- Returns: An object with the following boolean properties:
isDesktop:trueif the viewport width is at least 1025px.isTablet:trueif the viewport width is between 768px and 1024px.isMobile:trueif the viewport width is up to 767px.isLandscape:trueif the viewport orientation is landscape.isPortrait:trueif the viewport orientation is portrait.
The useMediaQueries hook uses the following default media queries:
- Desktop:
(min-width: 1025px) - Tablet:
(min-width: 768px) and (max-width: 1024px) - Mobile:
(max-width: 767px) - Landscape:
(orientation: landscape) - Portrait:
(orientation: portrait)
You can override these by passing your own queries object to useMediaQueries.
This project is licensed under the MIT License.
Contributions are welcome! Please feel free to submit a Pull Request.
Thanks goes to these wonderful people (emoji key):
Alejandro Ramírez Muñoz 💻 |
This project follows the all-contributors specification. Contributions of any kind welcome!