Files
stack/packages/mosaic/framework/skills/vueuse-functions/references/useBreakpoints.md
T
fargo 1a822493ba format: apply repo prettier (3.8.1) to the folded skills tree
963 markdown files reformatted with the repository's pinned prettier so
pnpm format:check covers the folded tree like every other repo file.

The formatter's embedded-language pass also normalized code fences
(TS semicolons, closed HTML tags in examples, lowercased CSS hex colors,
one renumbered list that skipped an index). Alphanumeric token deltas vs
the fold commit were audited file-by-file; all are formatter-equivalent
markup normalizations plus the four sanitized skills.
2026-08-19 14:37:17 -05:00

3.8 KiB

category
category
Browser

useBreakpoints

Reactive viewport breakpoints.

Usage

import { breakpointsTailwind, useBreakpoints } from '@vueuse/core';

const breakpoints = useBreakpoints(breakpointsTailwind);

const smAndLarger = breakpoints.greaterOrEqual('sm'); // sm and larger
const largerThanSm = breakpoints.greater('sm'); // only larger than sm
const lgAndSmaller = breakpoints.smallerOrEqual('lg'); // lg and smaller
const smallerThanLg = breakpoints.smaller('lg'); // only smaller than lg
<script setup lang="ts">
import { useBreakpoints } from '@vueuse/core';

const breakpoints = useBreakpoints({
  mobile: 0, // optional
  tablet: 640,
  laptop: 1024,
  desktop: 1280,
});

// Can be 'mobile' or 'tablet' or 'laptop' or 'desktop'
const activeBreakpoint = breakpoints.active();

// true or false
const laptop = breakpoints.between('laptop', 'desktop');
</script>

<template>
  <div :class="activeBreakpoint">...</div>
</template>

Server Side Rendering and Nuxt

If you are using useBreakpoints 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

import { breakpointsTailwind, useBreakpoints } from '@vueuse/core';

const breakpoints = useBreakpoints(breakpointsTailwind, {
  ssrWidth: 768, // Will enable SSR mode and render like if the screen was 768px wide
});

Alternatively you can set this up globally for your app using provideSSRWidth

Presets

  • Tailwind: breakpointsTailwind
  • Bootstrap v5: breakpointsBootstrapV5
  • Vuetify v2: breakpointsVuetifyV2 (deprecated: breakpointsVuetify)
  • Vuetify v3: breakpointsVuetifyV3
  • Ant Design: breakpointsAntDesign
  • Quasar v2: breakpointsQuasar
  • Sematic: breakpointsSematic
  • Master CSS: breakpointsMasterCss
  • Prime Flex: breakpointsPrimeFlex
  • ElementUI / ElementPlus: breakpointsElement

Breakpoint presets are deliberately not auto-imported, as they do not start with use to have the scope of VueUse. They have to be explicitly imported:

import { breakpointsTailwind } from '@vueuse/core';
// and so on

Type Declarations

export * from './breakpoints';
export type Breakpoints<K extends string = string> = Record<K, MaybeRefOrGetter<number | string>>;
export interface UseBreakpointsOptions extends ConfigurableWindow {
  /**
   * The query strategy to use for the generated shortcut methods like `.lg`
   *
   * 'min-width' - .lg will be true when the viewport is greater than or equal to the lg breakpoint (mobile-first)
   * 'max-width' - .lg will be true when the viewport is smaller than the xl breakpoint (desktop-first)
   *
   * @default "min-width"
   */
  strategy?: 'min-width' | 'max-width';
  ssrWidth?: number;
}
/**
 * Reactively viewport breakpoints
 *
 * @see https://vueuse.org/useBreakpoints
 *
 * @__NO_SIDE_EFFECTS__
 */
export declare function useBreakpoints<K extends string>(
  breakpoints: Breakpoints<K>,
  options?: UseBreakpointsOptions,
): Record<K, ComputedRef<boolean>> & {
  greaterOrEqual: (k: MaybeRefOrGetter<K>) => ComputedRef<boolean>;
  smallerOrEqual: (k: MaybeRefOrGetter<K>) => ComputedRef<boolean>;
  greater(k: MaybeRefOrGetter<K>): ComputedRef<boolean>;
  smaller(k: MaybeRefOrGetter<K>): ComputedRef<boolean>;
  between(a: MaybeRefOrGetter<K>, b: MaybeRefOrGetter<K>): ComputedRef<boolean>;
  isGreater(k: MaybeRefOrGetter<K>): boolean;
  isGreaterOrEqual(k: MaybeRefOrGetter<K>): boolean;
  isSmaller(k: MaybeRefOrGetter<K>): boolean;
  isSmallerOrEqual(k: MaybeRefOrGetter<K>): boolean;
  isInBetween(a: MaybeRefOrGetter<K>, b: MaybeRefOrGetter<K>): boolean;
  current: () => ComputedRef<K[]>;
  active(): ComputedRef<'' | K>;
};
export type UseBreakpointsReturn<K extends string = string> = ReturnType<typeof useBreakpoints<K>>;