# Scroll​Indicator95

A standalone classic vertical scroll track, thumb, and line controls.

ScrollIndicator95 is for custom scrolling surfaces that already own a content-coordinate offset.

![ScrollIndicator95 track and thumb](/images/scrollindicator95-macos.png)

Overflowing and non-scrollable indicators rendered by the snippet below.

## Use it

```swift
import Swift95
import SwiftUI

struct ScrollIndicator95Example: View {
  var body: some View {
    HStack(alignment: .top, spacing: 24) {
      ScrollIndicator95(
        contentOffset: .constant(240),
        contentLength: 720,
        viewportLength: 180,
        lineIncrement: 24
      )
      .frame(height: 180)

      ScrollIndicator95(
        contentOffset: .constant(0),
        contentLength: 100,
        viewportLength: 180
      )
      .frame(height: 180)
    }
  }
}
```

## Essential behavior

**Offset**The binding is measured in content coordinates and clamped to the valid scrollable range.

**Thumb**Content and viewport lengths determine the thumb’s size and position.

**Use**Prefer [ScrollView95](/components/scroll-view/) or [List95](/components/list/) unless building a custom scrolling host.

## Related

- [ScrollView95](/components/scroll-view/)
- [List95](/components/list/)
- [Metrics95](/components/metrics/)

[Open the complete ScrollIndicator95 API reference →](/api/documentation/swift95/scrollindicator95)
