Setting the file. One moment.
Subchapter 18.81
references/useBreakpoints.mdMarkdown6 KBView on GitHub
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>You can access breakpoints directly as properties on the returned object. These return reactive refs.
const breakpoints = useBreakpoints({
tablet: 640,
laptop: 1024,
})
// Equivalent to breakpoints.greaterOrEqual('tablet') with min-width strategy
const isTablet = breakpoints.tabletThe strategy option controls how the shortcut properties behave:
min-width (default, mobile-first): breakpoints.lg is true when viewport is >= lgmax-width (desktop-first): breakpoints.lg is true when viewport is < xlconst breakpoints = useBreakpoints(breakpointsTailwind, {
strategy: 'max-width', // desktop-first
})| Method | Description |
|---|---|
greaterOrEqual(k) | Reactive: viewport width >= breakpoint |
greater(k) | Reactive: viewport width > breakpoint |
smallerOrEqual(k) | Reactive: viewport width <= breakpoint |
smaller(k) | Reactive: viewport width < breakpoint |
between(a, b) | Reactive: viewport width between a and b |
isGreaterOrEqual(k) | Non-reactive: returns boolean immediately |
isGreater(k) | Non-reactive: returns boolean immediately |
isSmallerOrEqual(k) | Non-reactive: returns boolean immediately |
isSmaller(k) | Non-reactive: returns boolean immediately |
isInBetween(a, b) | Non-reactive: returns boolean immediately |
current() | Returns computed array of all matching breakpoints |
active() | Returns computed string of the current active breakpoint |
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 (opens in a new tab)
breakpointsTailwindbreakpointsBootstrapV5breakpointsVuetifyV2 (deprecated: breakpointsVuetify)breakpointsVuetifyV3breakpointsAntDesignbreakpointsQuasarbreakpointsSematicbreakpointsMasterCssbreakpointsPrimeFlexbreakpointsElementBreakpoint 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 onexport * 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
}
export type UseBreakpointReturn<K extends string = string> = 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 | "">
}
/**
* Reactively viewport breakpoints
*
* @see https://vueuse.org/useBreakpoints
*
* @__NO_SIDE_EFFECTS__
*/
export declare function useBreakpoints<K extends string>(
breakpoints: Breakpoints<K>,
options?: UseBreakpointsOptions,
): UseBreakpointReturn<K>