Permissions Query API Demo - Online Check All APIs
Query the permission state of camera, microphone, geolocation, and more. See the response and learn the API.
UD5 Toolkit
Select properties to read from contacts
No contacts selected yet.
Configure properties and click "Select Contact(s)" to begin.
navigator.contacts.getProperties() to dynamically discover what's available. "name" and "tel" have the widest support across devices.
navigator.contacts.select() promise rejects with an error. You should always wrap the call in a try/catch block and handle this gracefully — for example, by showing a friendly message that no contacts were selected. The API does not expose whether the user explicitly denied or simply dismissed the dialog, which is intentional for privacy. Never assume the user will always grant access.
navigator.contacts.select()) is fundamentally different from older approaches: (1) It's a browser-native API — no plugin or Cordova required; (2) It uses a system picker UI so the website never sees the full contact list; (3) It's explicit opt-in per interaction — each select() call requires a fresh user gesture; (4) Older APIs like the deprecated navigator.contacts (Contacts API) allowed broader access and were removed due to privacy concerns. The new API is designed for the modern, privacy-conscious web.
Query the permission state of camera, microphone, geolocation, and more. See the response and learn the API.
Fill in a form and see the FormData object as JSON. Perfect for debugging multipart form submissions. Client-side.
Paste text with highlights (e.g., from Apple Books) and extract only the highlighted lines. Save as list.
Test how `content‑type: text/html` vs `content‑type: image/svg+xml` affects SVG rendering in the browser. Modern performance hint.
Paste Markdown and get warnings for common mistakes: inconsistent heading spacing, bare URLs, and broken links. All local.
A visual guide to common copy‑editing and proofreading symbols. Click a mark to see its meaning. For writers.
Convert Markdown to styled HTML that retains formatting when pasted into Google Docs or Word. Headings, bold, lists. Client‑side.
Enter a city name or coordinates and see today's sunrise, sunset, and twilight times. Approximate algorithm. Local.
Check a live URL to extract and validate its canonical link element. Ensure correct SEO configuration. Runs from your browser.
Convert messy URLs into clean, keyword-rich slugs. Remove stop words, replace spaces with hyphens. Lowercase transformation. All local.
Paste HTML or URL to extract canonical link tag. Verify self-referencing. Simple SEO audit step. Local only.
Shows a counter of how many seconds you have been idle. Tracks mouse and keyboard activity without recording.
See the healthy weight range for your height using standard BMI chart. Gender‑specific data. Quick reference.
Take a lighthearted inventory of your character strengths (not official VIA). Self-reflection tool. All in browser.
Paste Markdown and convert all links from absolute to relative (or vice‑versa) based on a base domain. Bulk edit.
Turn any sentence into mocking SpongeBob‑style text. Choose intensity. Copy and paste into chats. Pure client.
Configure how your PWA launches: focus existing or create new. Test with the launch_handler manifest field.
Compress and decompress text using the browser's native Compression Streams API. See the binary output size.
Connect a game controller and see every button press, axis movement, and vibration test. Uses the Gamepad API.
Unified input demo: see pressure, tilt, and type from any pointer. Compare pointerType values. Essential for drawing apps.
Modify the DOM via buttons and see MutationRecords logged. Understand childList, attributes, and subtree options.
Drag to resize a box and see the Resize Observer callback fire. Get contentRect and borderBoxSize. Learn the API.
Toggle a screen wake lock to prevent the device from dimming or sleeping. See the lock state and learn the API.
Test the experimental Translation API to translate text between languages directly in the browser, without cloud calls. Check support and copy the JavaScript starter.
Decode an image progressively using the ImageDecoder API. See partial results and metadata. Modern alternative to <img>.
Decode individual video frames from a local file using the VideoDecoder API. Step through frames. Cutting‑edge browser feature.
Limit browser gestures on an element: pan‑x, pinch‑zoom, manipulation. Draw on a canvas to test. Mobile dev helper.
Register a one‑off background sync and see it fire when connectivity returns. Debug service worker sync logic.
Request permission and detect when the user is idle (away from keyboard). See screen lock state. For native‑like apps.
Acquire and release locks across tabs. Prevent race conditions in IndexedDB or localStorage. Visual queue and lock state.