# `ShadcnUI.Components.Motion.ScrollIndicator`
[🔗](https://github.com/pcharbon70/shadcn_ui/blob/main/lib/shadcn_ui/components/motion/scroll_indicator.ex#L1)

A named native block scroller with optional decorative scroll-position fill.

Requires a stable `id`, exactly one `accessible_label` or `labelledby` (existing
heading IDs), and trusted `inner_block`. Optional `description` is escaped.
Sizes `:small`, `:default`, `:large` cap the region at 12, 20, 32rem; short
content does not need to overflow. The region is a native Tab stop and keeps
caller links/forms, keyboard, wheel and touch scrolling and scroll escape.

A deterministic named timeline belongs only to this instance. Its aria-hidden
track has no progressbar, value, reading/completion or live-region semantics.
Joint scroll-timeline, animation-range and timeline-scope support may fill the
track; without it the track is neutral. Short content has no progress to show.
No document-clock animation, listeners, observer or callback is installed.

`motion: :none`, ancestor `data-shadcn-motion="reduce"`, OS reduced motion and
forced colors retain native content with neutral decoration. Missing CSS
expands the complete content in document flow. Applications own content,
permissions, actions and scroll restoration after replacement.

# `scroll_indicator`

Renders native scroll content with a neutral-first decorative track.
## Attributes

* `id` (`:string`) (required)
* `accessible_label` (`:string`) - Defaults to `nil`.
* `labelledby` (`:string`) - Defaults to `nil`.
* `description` (`:string`) - Defaults to `nil`.
* `size` (`:atom`) - Defaults to `:default`. Must be one of `:small`, `:default`, or `:large`.
* `motion` (`:atom`) - Defaults to `:system`. Must be one of `:system`, or `:none`.
* `class` (`:any`) - Defaults to `nil`.
* Global attributes are accepted.
## Slots

* `inner_block` (required)

---

*Consult [api-reference.md](api-reference.md) for complete listing*
