overscroll-behavior
scroll-behavior
scrollbar-gutter
scroll-timeline
view-timeline
scroll-snap-type, scroll-snap-align, scroll-padding…
scroll-snap-type
scroll-snap-align
scroll-padding
.scroller { height: 300px; overflow-y: scroll; scroll-snap-type: y mandatory; } .scroller section { scroll-snap-align: start; }
.foo { height: 200px; overflow: auto; overscroll-behavior-y: contain; }
.foo { scroll-behavior: auto; scroll-behavior: smooth; }
.container { scrollbar-gutter: stable; }
::view-transition-old(main-image), ::view-transition-new(main-image) { transform-origin: right top; } ::view-transition-new(main-image) { animation: 400ms ease-out both grow; } figure { view-transition-name: main-image; }
#container { height: 300px; overflow-y: scroll; scroll-timeline: --squareTimeline y; position: relative; }
.animation { view-timeline: --subjectReveal block; animation-name: appear; animation-fill-mode: both; animation-duration: 1ms; }
/* IS-OPEN STATE */ dialog[open] { translate: 0 0; } /* EXIT STATE */ dialog { transition: translate 0.7s ease-out, display 0.7s ease-out allow-discrete; translate: 0 100vh; } /* 0. BEFORE-OPEN STATE */ @starting-style { dialog[open] { translate: 0 100vh; } }