useMediaQuery ๐งช
Use useMediaQuery to easily retrieve media dimensions, combined with the component's size property for responsive UI.
โ ๏ธ Unstable API, may have breaking changes in future minor versions.
Usage
import { useMediaQuery } from 'rsuite';
const App = () => {
const [isMobile, isDark, isLandscape] = useMediaQuery([
'(max-width: 700px)',
'(prefers-color-scheme: dark)',
'(orientation:landscape)'
]);
return <div>{isMobile ? 'Mobile' : 'Desktop'}</div>;
};Examples
Use with RadioTile
The RadioTileGroup component has an inline prop that displays each RadioTile on the same line. We can combine useMediaQuery to create a responsive RadioTile component. On large screens, the RadioTile component displays on the same line, while on small screens, the RadioTile component displays on different lines.
Use with Modal
The Modal component has a size prop that sets the size of the modal. We can use useMediaQuery to make the Modal component responsive. On large screens, the size of the Modal component is fixed, while on small screens, the Modal component is full-screen.
API
useMediaQuery(query) => [...matches]
const mediaQuerySizeMap = {
xs: '(max-width: 575px)',
sm: '(min-width: 576px)',
md: '(min-width: 768px)',
lg: '(min-width: 992px)',
xl: '(min-width: 1200px)',
xxl: '(min-width: 1400px)'
};
useMediaQuery(
string
| keyof typeof mediaQuerySizeMap
| (string | keyof typeof mediaQuerySizeMap)[]
) => boolean[]