Native scrolling is the default. Set maxHeight and optionally maxWidth using CSS dimensions. enhanced adds themed scrollbars while retaining wheel, touch and native scrolling. variant controls track visibility; mask adds edge fades. ariaLabel names the viewport, tabindex controls focus and step controls enhanced scrollbar movement. scrollTo() can return to the start; scrollPositionChange reports observed dimensions and offsets.
Content belongs to default projection. scrollPositionChange reports scroll observations, not a controlled value proposal. Its left offset is logical and normalized for RTL. Call scrollTo() to scroll the viewport from your application.
Give scrollable content an ariaLabel so the focusable viewport is a named region. Arrow/Page keys retain native viewport scrolling. Enhanced tracks expose scrollbar roles, controlled viewport IDs and current/minimum/maximum values. Keep tabindex at 0 when keyboard users need access.
Key
Action
Tab
Focus the named scroll viewport and its interactive content.
Arrow keys
Scroll the focused viewport using native browser behaviour.
Reports observed top/left and scroll/client dimensions.
Templates
ng-content projects content into the component. TemplateRef inputs receive a template; ng-template directives identify templates with a typed context. A directive shared by an entrypoint is not necessarily a slot of this component.