Calorie Burn by Activity - Online Walking Running Cycling Estimator
Estimate calories burned during common exercises using MET values. Input weight and duration. Compare activities. Educational, not medical advice.
UD5 Toolkit
Simulate & preview how animations adapt to user accessibility preferences
@media (prefers-reduced-motion: reduce)
window.matchMedia('(prefers-reduced-motion: reduce)')
Detecting...
Full Motion (default)
prefers-reduced-motion is a CSS media feature and a user preference setting that allows websites to detect whether the user has requested minimal non-essential motion on their device. It was introduced as part of the Media Queries Level 5 specification and is widely supported across all modern browsers. When a user enables "Reduce Motion" in their operating system accessibility settings, websites can respond by disabling or minimizing animations, transitions, and parallax effects.
prefers-reduced-motion setting, developers create inclusive experiences that do not physically harm users who are sensitive to motion. It is a core requirement of WCAG 2.2 Success Criterion 2.3.3 (Animation from Interactions).
@media (prefers-reduced-motion: reduce) { ... } to wrap or override animation styles. In JavaScript, use window.matchMedia('(prefers-reduced-motion: reduce)').matches to conditionally trigger animations. Best practice is to design animations progressively: start with static designs, then add motion as an enhancement for users who have not opted out. Always ensure that no critical content or functionality depends on motion.
prefers-reduced-motion is the recommended technique to meet these criteria and ensure Level AA or AAA compliance.
no-preference (default): The user has not indicated any preference regarding motion. Websites are free to display animations as designed.reduce: The user has explicitly requested that non-essential motion be minimized. Websites should remove, pause, or significantly tone down animations. The only valid values are no-preference and reduce — there is no prefers-more-motion or similar option.
Estimate calories burned during common exercises using MET values. Input weight and duration. Compare activities. Educational, not medical advice.
Convert energy units: Joule, calorie, BTU, kilowatt-hour, electronvolt. Useful for science and household energy calculations. Fully local.
Log your daily plastic use and see monthly weight estimate. Help track reduction goals. Data stays local. Motivate eco-friendly habits.
Estimate the fuel cost for a trip based on distance, vehicle mileage, and fuel price. Supports multiple units (miles, km, liters, gallons).
Estimate total fuel cost for a road trip. Enter distance, vehicle MPG or L/100km, and fuel price. See cost per person for sharing. Simple & local.
Enter distance and miles per day to estimate food carry weight and next resupply point. Long‑distance hiking.
Estimate BAC based on gender, weight, drinks consumed, and time. Uses Widmark formula. Educational tool, never encourage drunk driving. Local only.
Compute compound interest with various compounding frequencies (daily, weekly, monthly). Compare APY with simple interest. Local and secure.
Register a periodic background sync with a minimum interval. See the registration state and tags. Keep content fresh.
Create a 'drawing' effect for any SVG path. Adjust speed and delay. Copy the CSS and SVG code. No JS needed.
Experiment with scroll‑state container queries to style elements when they are stuck, snapped, or overflowed. Experimental.
Process audio faster than real‑time with OfflineAudioContext. Apply filters and export the result. Dev tool.
Toggle image‑rendering: auto, pixelated, crisp‑edges on a scaled image. Essential for pixel art display.
Calculate large Fibonacci numbers in a Web Worker. See the UI remain responsive. Copy the pattern for your app.
See how grid-auto-flow: row vs column changes item placement. Add and remove items to understand the algorithm. Visual.
Request notification permission and create a push subscription. See the subscription object. Learn how web push works.
Demonstrate how to add custom headers and POST‑like functionality to EventSource using a polyfill. Code and example.
See the difference between clone and slice on inline boxes that break across lines. Useful for multi‑line headings.
See the roving tabindex pattern in action. Use arrow keys to navigate a list. Copy the accessible JavaScript pattern.
See how align‑items: baseline works in grid to align different font sizes on the same baseline. Visual guide.
Test the experimental Translation API to translate text between languages directly in the browser, without cloud calls. Check support and copy the JavaScript starter.
Resize the container and see the difference between repeat(auto‑fill, …) and auto‑fit. Understand responsive grid behavior.
Toggle scrollbar‑gutter: stable to reserve space for the scrollbar and avoid content jumps. Visual demo with two columns.
View all CSS system colors (Canvas, ButtonFace, GrayText) as swatches. Click to copy. For forced‑colors adaptation.
Acquire and release locks across tabs. Prevent race conditions in IndexedDB or localStorage. Visual queue and lock state.
Register a periodic background sync to fetch fresh data even when the tab is closed. Understand the API and limits.
Search and filter all CSS properties that can be animated. See value types and example keyframes. Quick dev reference.
Test the Fullscreen API: request fullscreen on a colored div, detect changes, and copy the JavaScript boilerplate.
See the View Transitions API in action. Cross‑fade and morph between two states. Copy the JavaScript starter code.
Scroll down to see images load lazily. Code snippet provided. Learn how native loading='lazy' works.