@lsproule/mobile-detect
v1.0.5
Published
React hook + Tailwind plugin for detecting iOS, Android, and mobile devices via user agent.
Readme
@lsproule/mobile-detect
React hook + Tailwind plugin for detecting iOS, Android, and mobile devices via user agent and touch capabilities.
Installation
npm install @lsproule/mobile-detectUsage
React Hooks
import {
useMobileDeviceClasses,
useDetectIOS,
useDetectAndroid,
useDetectTouchScreen,
useDetectCoarsePointer,
useDetectWindows
} from "mobile-device-detect"
function App() {
useMobileDeviceClasses() // Adds device classes to <html>
// Or use individual hooks
useDetectIOS()
useDetectAndroid()
useDetectTouchScreen()
useDetectCoarsePointer()
useDetectWindows()
return <div>Your app</div>
}Tailwind Plugin
// tailwind.config.js
const { mobileDevicePlugin } = require("mobile-device-detect")
module.exports = {
plugins: [
mobileDevicePlugin
]
}Now you can use device-specific variants:
.text-red-500 {
ios-device:text-blue-500;
android-device:text-green-500;
mobile-device:text-purple-500;
touch-device:bg-yellow-200;
coarse-pointer:border-4;
windows-device:font-mono;
}API
React Hooks
useMobileDeviceClasses()- Detects iOS/Android/touch/coarse pointer and adds appropriate classesuseDetectIOS()- Addsios-deviceclass for iOS devicesuseDetectAndroid()- Addsandroid-deviceclass for Android devicesuseDetectTouchScreen()- Addstouch-deviceclass for touch-capable devicesuseDetectCoarsePointer()- Addscoarse-pointerclass for devices with coarse pointer (touch)useDetectWindows()- Addswindows-deviceclass for Windows devices
Tailwind Variants
The plugin adds these variants:
ios-device:- Applies styles whenios-deviceclass is presentandroid-device:- Applies styles whenandroid-deviceclass is presentmobile-device:- Applies styles whenmobile-deviceclass is present (iOS, Android, or non-Windows with touch)touch-device:- Applies styles whentouch-deviceclass is presentcoarse-pointer:- Applies styles whencoarse-pointerclass is presentwindows-device:- Applies styles whenwindows-deviceclass is present
Detection Logic
- iOS: Detected via user agent pattern
/iPhone|iPod|iPad/i - Android: Detected via user agent pattern
/Android/i - Touch Screen: Detected via
ontouchstartin window ornavigator.maxTouchPoints > 0 - Coarse Pointer: Detected via CSS media query
(pointer: coarse) - Windows: Detected via user agent pattern
/Windows/i - Mobile Device: iOS, Android, or non-Windows devices with touch screen or coarse pointer
