scrollbar‑gutter Tester - Online Prevent Layout Shift
Toggle scrollbar‑gutter: stable to reserve space for the scrollbar and avoid content jumps. Visual demo with two columns.
UD5 Toolkit
Test and compare how overscroll-behavior CSS property prevents pull-to-refresh and scroll chaining.
Best experienced on mobile — try scrolling each phone simulator to the edge!
body { overscroll-behavior-y: none; } to prevent pull-to-refresh on this entire page.
Try it on mobile!
Over-scroll effects propagate to ancestor scroll containers. Pull-to-refresh is enabled on mobile. Best for general web pages.
overscroll-behavior: auto;
Stops scroll chaining to parent elements. The element retains its own elastic bounce effect. Great for modals & sidebars.
overscroll-behavior: contain;
Completely disables over-scroll effects and scroll chaining. Prevents pull-to-refresh on mobile. Ideal for PWAs and full-screen apps.
overscroll-behavior: none;
overscroll-behavior is a CSS property that controls what happens when a user scrolls past the boundary of a scrollable area. By default (auto), the scroll momentum "chains" to parent containers and can trigger browser-level actions like pull-to-refresh on mobile. Using contain or none gives you fine-grained control over this behavior, improving UX for modals, drawers, and single-page applications.
contain if you want to keep the elastic bounce within the element but stop it from triggering a page-level refresh.
Common use cases:
overscroll-behavior: contain on the modal body so scrolling inside doesn't move the background page.body { overscroll-behavior-y: none; } to prevent accidental pull-to-refresh and make the app feel native.overscroll-behavior-x: contain to prevent horizontal swipe from triggering page navigation gestures.overscroll-behavior-y: none to body or html prevents the entire page from triggering pull-to-refresh. This is commonly used in Progressive Web Apps (PWAs). Try the toggle above on your mobile device to experience it live on this very page.
| Browser | Minimum Version | Notes |
|---|---|---|
| Chrome | 63+ | Full support |
| Firefox | 59+ | Full support |
| Safari | 16+ | macOS Ventura & iOS 16+ |
| Edge | 79+ | Chromium-based, full support |
| Opera | 50+ | Full support |
| Samsung Internet | 8.2+ | Full support |
Toggle scrollbar‑gutter: stable to reserve space for the scrollbar and avoid content jumps. Visual demo with two columns.
Toggle scroll‑behavior: smooth and click anchor links to see the scrolling animation. Implement modern UX.
Use CSS masks and fixed backgrounds to create a unique parallax reveal effect. Copy the code. No JavaScript.
Simulate reduced motion preference and test your animations. Copy the media query snippet. Keep your users safe.
Paste your full CSS and HTML; automatically identify and extract the styles needed for the visible part. Reduce render‑blocking resources.
Create an animation that advances with scroll using animation‑timeline: scroll(). See the visual timeline editor. Modern CSS.
Compare break‑all, keep‑all, and overflow‑wrap: anywhere/break‑word. Paste long words and see how they wrap.
Simulate forced‑colors mode and see how your site looks. Adjust CSS system colors. Make your design accessible.
Detect browser support for font‑tech() and font‑format() values in @font‑face src. Check COLRv1, variable, etc.
Start from a base color and use `oklch(from color l c h)` to create lighter or darker variants. Copy the code.
Create a pure CSS countdown timer with a flipping number effect. Adjust duration and style. No JavaScript needed for display.
Create vertically oriented text layouts with `writing‑mode`. See the effect and copy the complete CSS. For vertical languages.
Create outlined text with the text‑stroke property. Adjust width and color. Preview and copy the CSS.
Build a complete font‑stack for your website. Choose a primary font and get the best fallback options for different OS. Copy the CSS.
Toggle between light and dark mode for a demo page. See how to use the media query. Copy the pattern.
Enter a URL and get a quick simulation of First Contentful Paint, LCP, and CLS using browser metrics. Lightweight alternative.
See how a full paragraph looks with your chosen text and background colors. Not just a ratio; the real appearance.
Create glowing, neon‑style text effects with multiple text‑shadows. Adjust colors and intensity. Copy the CSS.
Nest elements in 3D space with preserve‑3d vs flat. Rotate the parent and see children behave differently.
Compare all CSS easing presets side by side on a bouncing ball. See which curve fits your UI animation.
Animate elements as they enter and exit the viewport using view() timeline. Parallax and reveal effects without JS.
Apply content‑visibility: auto to off‑screen sections and see the rendering cost drop. Demos for infinite scroll optimization.
Paste a website's HTML and see which text is only visible to screen readers (e.g., .sr‑only). Preview the accessible layer.
Toggle between full and reduced motion on a live animated page. See how to design for vestibular disorders. Educational.
Tap any key to the beat and get the BPM (beats per minute). Useful for DJs, musicians, and running. Simple and accurate.
Test different line‑break and word‑break values on Chinese/Japanese/Korean text. See how browsers wrap. Essential for i18n.
See the difference between clone and slice on inline boxes that break across lines. Useful for multi‑line headings.
Paste your CSS and strip all `!important` declarations in one click. See a list of affected rules. Local tool.
See which fonts map to generic families (serif, sans‑serif, monospace) on different operating systems. A handy reference.
Animated SVG steps showing how to fold a fitted sheet perfectly. Clean visual reference.