--- 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; ```