--- category: Browser --- # useScreenOrientation Reactive [Screen Orientation API](https://developer.mozilla.org/en-US/docs/Web/API/Screen_Orientation_API). It provides web developers with information about the user's current screen orientation. ## Usage ```ts import { useScreenOrientation } from '@vueuse/core' const { isSupported, orientation, angle, lockOrientation, unlockOrientation, } = useScreenOrientation() ``` To lock the orientation, you can pass an [OrientationLockType](https://developer.mozilla.org/en-US/docs/Web/API/ScreenOrientation/type) to the lockOrientation function: ```ts import { useScreenOrientation } from '@vueuse/core' const { isSupported, orientation, angle, lockOrientation, unlockOrientation, } = useScreenOrientation() lockOrientation('portrait-primary') ``` and then unlock again, with the following: ```ts import { useScreenOrientation } from '@vueuse/core' const { unlockOrientation } = useScreenOrientation() // ---cut--- unlockOrientation() ``` Accepted orientation types are one of `"landscape-primary"`, `"landscape-secondary"`, `"portrait-primary"`, `"portrait-secondary"`, `"any"`, `"landscape"`, `"natural"` and `"portrait"`. [Screen Orientation API MDN](https://developer.mozilla.org/en-US/docs/Web/API/Screen_Orientation_API) ## Type Declarations ```ts export type OrientationType = | "portrait-primary" | "portrait-secondary" | "landscape-primary" | "landscape-secondary" export type OrientationLockType = | "any" | "natural" | "landscape" | "portrait" | "portrait-primary" | "portrait-secondary" | "landscape-primary" | "landscape-secondary" export interface ScreenOrientation extends EventTarget { lock: (orientation: OrientationLockType) => Promise unlock: () => void readonly type: OrientationType readonly angle: number addEventListener: ( type: "change", listener: (this: this, ev: Event) => any, useCapture?: boolean, ) => void } /** * Reactive screen orientation * * @see https://vueuse.org/useScreenOrientation * * @__NO_SIDE_EFFECTS__ */ export declare function useScreenOrientation(options?: ConfigurableWindow): { isSupported: ComputedRef orientation: Ref angle: ShallowRef lockOrientation: (type: OrientationLockType) => Promise unlockOrientation: () => void } export type UseScreenOrientationReturn = ReturnType ```