View Transitions API Demo - Online Smooth Page Switch
See the View Transitions API in action. Crossβfade and morph between two states. Copy the JavaScript starter code.
UD5 Toolkit
element.animate(), control playback, reverse animations, adjust speed, and respond to animation eventsβall programmatically without relying on external libraries.animation.finished); and create animations based on user interaction or real-time data. WAAPI also provides better performance for complex animations since it leverages the browser's compositor thread.element.animate(keyframes, options). Keyframes is an array of objects defining CSS property values at each step. Options include duration (ms), iterations (number or Infinity), easing, fill, and direction. Example: el.animate([{opacity:0},{opacity:1}],{duration:500}). The method returns an Animation object you can control with .play(), .pause(), .reverse(), etc.offset property in each keyframe object to control exact timing. For example: [{opacity:0,offset:0},{opacity:0.8,offset:0.3},{opacity:1,offset:1}]. If offsets are omitted, they're distributed evenly. Offsets give you fine-grained control over animation pacing.animation.finished property which returns a Promise that resolves when the animation completes. You can chain animations using .then() or async/await: await el.animate([...],{duration:500}).finished; await el.animate([...],{duration:300}).finished;. This makes sequencing complex multi-step animations clean and manageable, without nested setTimeout calls.ease, ease-in, ease-out, ease-in-out, linear, step-start, step-end, and custom cubic-bezier() curves. You can also use steps() for frame-by-frame animation. The easing can be set globally in timing options or per-keyframe for even more control.fill option controls how styles are applied before and after the animation. 'none' (default): styles only apply during active playback. 'forwards': the element retains the last keyframe's styles after the animation ends. 'backwards': styles from the first keyframe are applied during any delay. 'both': combines forwards and backwards behavior. Fill modes are especially useful for animations that should leave elements in a final state.See the View Transitions API in action. Crossβfade and morph between two states. Copy the JavaScript starter code.
Write or paste HTML, CSS, and JavaScript and instantly see the rendered output in a sandboxed iframe. A handy frontend prototyping tool.
Create an animation that advances with scroll using animationβtimeline: scroll(). See the visual timeline editor. Modern CSS.
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.
Query the permission state of camera, microphone, geolocation, and more. See the response and learn the API.
Unified input demo: see pressure, tilt, and type from any pointer. Compare pointerType values. Essential for drawing apps.
Toggle a screen wake lock to prevent the device from dimming or sleeping. See the lock state and learn the API.
Write a compute shader in WGSL and run it in the browser. See the output on a canvas. Learn WebGPU. Realβtime compilation.
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.
Experiment with the Federated Credential Management API. Simulate a signβin flow without thirdβparty cookies. Privacyβfirst.
Request HID devices and list them. Read input reports and send output. For custom hardware and controllers.
Request permission and detect when the user is idle (away from keyboard). See screen lock state. For nativeβlike apps.
Demonstrate how the Web OTP API automatically reads oneβtime codes from SMS (mobile). Simulation with a fake SMS input.
Acquire and release locks across tabs. Prevent race conditions in IndexedDB or localStorage. Visual queue and lock state.
Connect a gamepad and see all button presses and axis movements visually. Check that every input is detected correctly.
Trigger different vibration patterns on mobile devices. Test if your phone supports haptic feedback. Simple demo.
See your device's battery level, charging status, and discharge time using the Battery Status API. Fun utility.
Check current screen orientation and test the lock API. Useful for mobile web apps. Demo with code.
Test the Fullscreen API: request fullscreen on a colored div, detect changes, and copy the JavaScript boilerplate.
Test the new HTML popover attribute for creating accessible tooltips, menus, and dialogs without JavaScript. Copy code snippets.
Experiment with the Async Clipboard API: read/write text and images from the clipboard. Verify permissions and see demo code.
Press any key to see the complete KeyboardEvent properties: key, code, keyCode, modifiers. Indispensable for game & shortcut developers.
Test the Web Share API by sharing text, links, and files directly from the browser. Check compatibility and see example code.
Enter an API URL and quickly check its HTTP status code and response time. See response headers and body. Browser fetch.
Pick a method, URL, headers, and body, then send an HTTP request directly from your browser. Debug APIs easily.
Paste any JavaScript snippet and get a readyβtoβdrag bookmarklet link. Minify and encode automatically. Pure client.
Experiment with CSS Grid properties visually. Add rows, columns, and areas. See the grid in action and copy the code.
Generate random JSON data with customizable fields (users, products, orders). Useful for frontend mocking. All local.