### Overflow scroll gradient Adds a fading gradient to an overflowing element to better indicate there is more content to be scrolled. #### HTML ```html
Content to be scrolled
``` #### CSS ```css .overflow-scroll-gradient { position: relative; } .overflow-scroll-gradient::after { content: ''; position: absolute; bottom: 0; width: 300px; height: 25px; background: linear-gradient(rgba(255, 255, 255, 0.001), white); /* transparent keyword is broken in Safari */ } .overflow-scroll-gradient__scroller { overflow-y: scroll; background: white; width: 300px; height: 250px; line-height: 1.2; text-align: center; } ``` #### Demo
Content to be scrolled
#### Explanation 1. `position: relative` on the parent establishes a Cartesian positioning context for psuedo elements. 2. `::after` defines a pseudo element. 3. `background-image: linear-gradient(...)` adds a linear gradient that fades from transparent to white (top to bottom). 4. `position: absolute` takes the pseudo element out of the flow of the document and positions it in relation to the parent. 5. `width: 300px` matches the size of the scrolling element (which is a child of the parent that has the pseudo element). 6. `height: 25px` is the height of the fading gradient psuedo element, which should be kept relatively small. 7. `bottom: 0` positions the pseudo element at the bottom of the parent. #### Browser support ✅ No caveats. * https://caniuse.com/#feat=css-gradients