--- category: Browser --- # useMediaQuery Reactive [Media Query](https://developer.mozilla.org/en-US/docs/Web/CSS/Media_Queries/Testing_media_queries). Once you've created a MediaQueryList object, you can check the result of the query or receive notifications when the result changes. ## Usage ```ts import { useMediaQuery } from '@vueuse/core'; const isLargeScreen = useMediaQuery('(min-width: 1024px)'); const isPreferredDark = useMediaQuery('(prefers-color-scheme: dark)'); ``` #### Server Side Rendering and Nuxt If you are using `useMediaQuery` with SSR enabled, then you need to specify which screen size you would like to render on the server and before hydration to avoid an hydration mismatch ```ts import { useMediaQuery } from '@vueuse/core'; const isLarge = useMediaQuery('(min-width: 1024px)', { ssrWidth: 768, // Will enable SSR mode and render like if the screen was 768px wide }); console.log(isLarge.value); // always false because ssrWidth of 768px is smaller than 1024px onMounted(() => { console.log(isLarge.value); // false if screen is smaller than 1024px, true if larger than 1024px }); ``` Alternatively you can set this up globally for your app using [`provideSSRWidth`](../useSSRWidth/index.md) ## Type Declarations ```ts /** * Reactive Media Query. * * @see https://vueuse.org/useMediaQuery * @param query * @param options */ export declare function useMediaQuery( query: MaybeRefOrGetter, options?: ConfigurableWindow & { ssrWidth?: number; }, ): ComputedRef; ```