Skip to content

useMediaQuery

Tracks CSS media query matches reactively.

Signature

ts
function useMediaQuery(query: string): boolean

Parameters

ParameterTypeDescription
querystringCSS media query string

Return Type

TypeDescription
booleanWhether the media query currently matches

Example

tsx
const isMobile = useMediaQuery('(max-width: 768px)')
const prefersDark = useMediaQuery('(prefers-color-scheme: dark)')

if (isMobile) {
  return <MobileLayout />
}

Common Queries

tsx
// Breakpoints
useMediaQuery('(max-width: 640px)')   // sm
useMediaQuery('(max-width: 768px)')   // md
useMediaQuery('(max-width: 1024px)')  // lg

// Preferences
useMediaQuery('(prefers-color-scheme: dark)')
useMediaQuery('(prefers-reduced-motion: reduce)')

See also