Getting Started
App Providerglobal.d.tsThemesTypes
cn(...args)Text ParserUnits Converters
AnchorAvatarBreadcrumbBurgerButtonCardCarouselCheckerCodeColor PickerCommandConfettiCopyButtonDouble Helix WordsFloating IndicatorGroupHighlight TextIndicatorInputKbdLabelLoaderPaginationPassword RequirementPolymorphic SlotProgressProseRatingRunning AreaScroll AreaSheetsSkeletonSliderStackSvgTableTabsTextareaTimelineTimesToasterTooltipTyping WordsTypography
useClickOutsideuseClipboarduseDeviceInfouseDialoguseDidUpdateuseDirectionuseDisclosureuseDocumentTitleuseDocumentVisibilityuseElementInfouseEyeDropperuseFetchuseFullscreenuseGeoLocationuseHotkeysuseHoveruseIduseImagePopupuseInputStateuseIntersectionuseIntervaluseIsomorphicEffectuseListStateuseLocalStorageuseMeasureScrollbaruseMediaQueryuseMergedRefuseMouseuseMoveuseMutationObserveruseNetworkuseOpenStateuseOrientationuseOSusePaginationusePWAInstalleruseRandomColorsuseReducedMotionuseReloaduseResizeObserveruseScrollIntoViewuseStateHistoryuseTimeoutuseTouchuseTriggeruseUncontrolleduseValidatedStateuseViewportSizeuseWindowEventuseWindowScroll
Docs
Web
Hooks
useDeviceInfo
useClipboard

Clipboard utility hook for copying text and tracking copy state.

useDialog

Manages state and actions for dialog components.


Edit this page on GitHub
  • Started
  • Utilities
  • Configuration
  • Components
  • Hooks
  • Examples
  • Github
  • Contributing
⌘+J

© 2025 oeri rights MIT


Designed in Earth-616

Built by oeri

useDeviceInfo

Returns details about the user’s device, such as type, orientation, OS, or screen size.

Usage

Basic usage example to quickly see how the useDeviceInfo works.

Device Info
PropertyValue
Operating Systemundetermined
Orientationlandscape-primary
User Agent
Language
Screen Width0px
Screen Height0px
Device Pixel Ratio1
Touch DeviceNo
Device MemoryN/A GB
Hardware ConcurrencyN/A cores
"use client";
import { useDeviceInfo } from "@/hooks/use-device-info";
import { dataRenderer, Table } from "@/ui/table";

export function UseDeviceInfoDemo() {
  const device = useDeviceInfo();

  if (!device) return <p>Detecting...</p>;

  const data = [
    { property: "Operating System", value: `${device.os}` },
    { property: "Orientation", value: `${device.orientation}` },
    { property: "User Agent", value: `${device.userAgent}` },
    { property: "Language", value: `${device.language}` },
    { property: "Screen Width", value: `${device.screenWidth}px` },
    { property: "Screen Height", value: `${device.screenHeight}px` },
    { property: "Device Pixel Ratio", value: `${device.devicePixelRatio}` },
    { property: "Touch Device", value: `${device.isTouchDevice ? "Yes" : "No"}` },
    { property: "Device Memory", value: `${device.deviceMemory ?? "N/A"} GB` },
    { property: "Hardware Concurrency", value: `${device.hardwareConcurrency ?? "N/A"} cores` }
  ];

  const tableData = {
    caption: "Device Info",
    head: ["Property", "Value"],
    body: dataRenderer(data, ["property", "value"])
  };

  return <Table withTableBorder={false} orientation="horizontal" data={tableData} />;
}

Source Codes

Full working code example, including necessary markup and styles. You can copy and paste this code directly to start using the component immediately.

use-device-info.ts