Skip to main content

Modules

Each browser Web API lives in its own module, published as a subpath export (e.g. @rtorcato/browser-common/clipboard). These pages are hand-written guides — a short description, a runnable example, and links to the underlying spec docs. For exact function signatures and types, see the generated API Reference.

The shared shape​

Every module exposes an is<Name>Available() feature check. Most operations degrade gracefully when the API is missing (returning null / false / empty). A few that must return a live object (createBroadcastChannel, getDisplayMedia, createCredential, createURLPattern) or a dialog result (showAlert / showConfirm / showPrompt) throw a clear requires a browser environment error instead — guard those with the feature check first.

Importing any module is always SSR / Node-safe; nothing touches window at module load, so calls simply no-op or throw at call time, never at import.

Support at a glance​

One row per module, for the main Web API it wraps. Baseline is the web-features status: Widely available (in every major browser for 30+ months), Newly available (in every major browser, recently), or Limited (missing from at least one). Each module page breaks this down per API, with notes on partial support.

ModuleBaselineChromeEdgeFirefoxSafariiOS Safari
alertWidely available✅ 1+✅ 12+✅ 1+✅ 1+✅ 1+
backgroundtasksLimited✅ 49+✅ 79+❌❌❌
batteryLimited✅ 38+✅ 79+❌ removed in 52❌❌
broadcastchannelWidely available✅ 54+✅ 79+✅ 38+✅ 15.4+✅ 15.4+
canvasWidely available✅ 1+✅ 12+✅ 1.5+✅ 2+✅ 1+
clipboardWidely available✅ 66+✅ 79+✅ 63+✅ 13.1+✅ 13.4+
commonWidely available✅ 1+✅ 12+✅ 1+✅ 1+✅ 1+
cookiesWidely available✅ 1+✅ 12+✅ 68+✅ 4+✅ 3.2+
domWidely available✅ 1+✅ 12+✅ 3.5+✅ 3.1+✅ 2+
draganddropWidely available✅ 3+✅ 12+✅ 3.5+✅ 4+✅ 3.2+
encodingapisWidely available✅ 38+✅ 79+✅ 18+✅ 10.1+✅ 10.3+
filesystemLimited✅ 86+✅ 86+❌❌❌
focusWidely available✅ 1+✅ 12+✅ 1.5+✅ 3+✅ 1+
formsWidely available✅ 5+✅ 12+✅ 4+✅ 5+✅ 5+
fullscreenLimited✅ 71+✅ 79+✅ 64+✅ 16.4+◐ partial 16.4+
geolocationWidely available✅ 5+✅ 12+✅ 3.5+✅ 5+✅ ≤3+
historyWidely available✅ 5+✅ 12+✅ 4+✅ 5+✅ 4+
htmlmediaWidely available✅ 3+✅ 12+✅ 3.5+✅ 3.1+✅ 3+
idleLimited✅ 94+✅ 114+❌❌❌
iframeWidely available✅ 1+✅ 12+✅ 1+✅ 3+✅ 1+
intersectionWidely available✅ 51+✅ 15+✅ 55+✅ 12.1+✅ 12.2+
keyboardWidely available✅ 51+✅ 12+✅ 23+✅ 10.1+✅ 10.3+
localstorageWidely available✅ 4+✅ 12+✅ 3.5+✅ 4+✅ 3.2+
locationWidely available✅ 1+✅ 12+✅ 1+✅ 1+✅ 1+
mediadevicesWidely available✅ 53+✅ 12+✅ 36+✅ 11+✅ 11+
motionWidely available✅ 31+✅ 12+✅ 6+✅ 17+✅ 4.2+
mutationobserverWidely available✅ 26+✅ 12+✅ 14+✅ 7+✅ 7+
notificationsLimited✅ 20+✅ 14+✅ 22+✅ 7+◐ partial 16.4+
orientationWidely available✅ 7+✅ 12+✅ 6+✅ 17+✅ 4.2+
performanceWidely available✅ 28+✅ 12+✅ 38+✅ 11+✅ 11+
permissionsWidely available✅ 43+✅ 79+✅ 46+✅ 16+✅ 16+
pointereventsWidely available✅ 55+✅ 12+✅ 59+✅ 13+✅ 13+
printWidely available✅ 1+✅ 12+✅ 1+✅ 1.1+✅ 1+
resizeobserverWidely available✅ 64+✅ 79+✅ 69+✅ 13.1+✅ 13.4+
screenWidely available✅ 1+✅ 12+✅ 1+✅ 1+✅ 1+
screencaptureLimited✅ 72+✅ 79+✅ 66+✅ 13+❌
selectionapiWidely available✅ 1+✅ 12+✅ 1+✅ 1.3+✅ 1+
serviceworkersWidely available✅ 40+✅ 17+✅ 44+✅ 11.1+✅ 11.3+
sessionstorageWidely available✅ 4+✅ 12+✅ 2+✅ 4+✅ 3.2+
toucheventsLimited✅ 22+✅ 79+✅ 52+❌✅ 3.2+
urlpatternNewly available✅ 95+✅ 95+✅ 142+✅ 26+✅ 26+
vibrateLimited✅ 32+✅ 79+❌ removed in 129❌❌
viewtransitionsNewly available✅ 111+✅ 111+✅ 144+✅ 18+✅ 18+
visualviewportWidely available✅ 61+✅ 79+✅ 91+✅ 13+✅ 13+
webanimationsWidely available✅ 36+✅ 79+✅ 48+✅ 13.1+✅ 13.4+
webauthnWidely available✅ 67+✅ 18+✅ 60+✅ 13+✅ 13+
weblocksWidely available✅ 69+✅ 79+✅ 96+✅ 15.4+✅ 15.4+
webshareLimited✅ 128+✅ 93+❌ flag only✅ 12.1+✅ 12.2+
websocketsWidely available✅ 5+✅ 12+✅ 11+✅ 5+✅ 4.2+
windowWidely available✅ 1+✅ 12+✅ 1+✅ 1+✅ 1+

Each module page links two external references:

  • 📖 MDN — the developer-facing reference for the underlying Web API.
  • 📊 caniuse — the live browser-support table for that API.

For the full support summary across all modules, see the Browser support guide.