Pointer Events Playground - Online Mouse, Touch & Pen
Unified input demo: see pressure, tilt, and type from any pointer. Compare pointerType values. Essential for drawing apps.
UD5 Toolkit
clientX, clientY, pageX, pageY), pressure (force), contact area size (radiusX, radiusY), and rotation angle (rotationAngle). Modern browsers expose this through the Touch Events API, enabling developers to build rich interactive experiences like pinch-to-zoom, multi-finger gestures, and collaborative drawing apps.
touchstart (fired when a finger first touches the surface), touchmove (fired repeatedly as the finger moves across the surface), touchend (fired when a finger is lifted), and touchcancel (fired when a touch is interrupted, e.g., by an incoming call or system gesture). Each event object contains a touches list of all currently active touch points, a targetTouches list for touches on the target element, and a changedTouches list for touches that triggered the event.
touch-action: none to the interactive element. This tells the browser not to handle any default touch gestures on that element. Alternatively, you can call event.preventDefault() inside the touchstart or touchmove handler, but note that for passive event listeners (default in many browsers for touchmove), you must explicitly set { passive: false } in addEventListener.
clientX / clientY return the touch coordinates relative to the viewport (the visible browser window), unaffected by page scroll. pageX / pageY return coordinates relative to the entire document, accounting for scroll offset. For most canvas or element-relative positioning, you'd compute local coordinates by subtracting the element's bounding rect (getBoundingClientRect()) from clientX/clientY.
force property (range 0.0 to 1.0) is supported on devices with pressure-sensitive screens, such as Apple's 3D Touch / Force Touch capable iPhones (iPhone 6s through XS), newer iPad models with Apple Pencil, and certain Android devices with pressure-sensitive digitizers. On unsupported hardware, force defaults to 0 (or 1 on some browsers for a simple touch). Similarly, radiusX and radiusY describe the contact area ellipse in pixels and are more widely supported, especially on larger touch targets like fingertips on capacitative screens.
navigator.maxTouchPoints in JavaScript. Many capacitive touchscreens physically max out at 10 points due to controller limitations, though some professional-grade panels support 20, 40, or even more concurrent touch points for collaborative scenarios.
Unified input demo: see pressure, tilt, and type from any pointer. Compare pointerType values. Essential for drawing apps.
Create animations that progress with scroll position. Experiment with animation‑timeline and view‑timeline. Cutting‑edge CSS.
Hover over tiles to see every CSS cursor value in action. Quick visual reference for choosing the right UI feedback.
Run up to 4 independent stopwatches at once with labels. Perfect for timing multiple tasks or sprints.
Hover over tiles to see every CSS cursor value in action. Quick visual reference for choosing the right UI feedback.
Browse a curated set of button hover animations. See each effect live and copy the CSS. Minimalist collection.
Write a fragment shader and see the result rendered on a full‑screen quad. For WebGL learners. Local compilation.
Build a complete Event structured data with performer, location, and dates. Get Google‑ready JSON‑LD for tickets.
Flip a virtual coin to make a decision or settle a dispute. Realistic animation and fair random outcome. Simple, fast, and always available.
Click on any bone in the human skeleton to see its name and learn about it. Rotatable 3D‑like view. Study aid.
See a literal illustration of an idiom and guess the phrase. Fun for English learners.
A curated collection of riddles. Load one per day with a button to reveal answer. Clean, simple, no tracking. Sharpen your mind.
Click to get a randomly generated, unique favicon. Download as .ico or SVG. For when you need a quick icon.
Click to get a randomly generated, unique abstract icon (geometric pattern). Download as SVG. For placeholder avatars and designs.
Enter student names and desks layout, then scramble periodically. Print new seating chart.
View every standard emoji in a searchable grid. Hover to see a larger preview. Click to copy. Updated with Unicode 16.
Click to get a randomly generated unique abstract icon (geometric pattern). Download as SVG. For placeholder avatars and designs.
Simple interactive eye dominance test: hold up a virtual dot and see which eye stays aligned. Educational.
Pick a color palette and the tool shows sample images that match it. Great for moodboard and brand inspiration. Static dataset.
Write a pattern and test it against URLs instantly. See which groups match. Learn the modern alternative to regex for routing. Works entirely in the browser.
A simple web‑based buzzer system for trivia nights. Assign teams and see who buzzes first. Works on phones.
Select your problem area (forward head, rounded shoulders, anterior pelvic tilt) and get a few random exercises to do.
Generate a random 4‑panel comic sketch with simple stick figures and funny dialogue. Just for laughs. Canvas.
Click to see a random, verified fun fact from science, history, and nature. Perfect for icebreakers. Static data.
Click to get a random element and a short story about its discovery and uses. Fascinating science.
Fetches a random Wikipedia article summary via API. Read interesting facts. Simple knowledge discovery tool. No data collected.
Combine two random elements and get a surprising result. Inspired by Little Alchemy. Infinite ideas. All local.
Pick a language and get a random useful travel phrase with pronunciation. For fun language learning. Static data.
Create ULIDs that are time‑based, URL‑safe, and sortable. Alternative to UUID for modern applications. Copy or download a list.
Enter a JSON pointer expression (/foo/bar) to extract a value from your pasted JSON. Debug nested objects quickly.