# List95

A selectable list with classic rows, separators, icons, and scroll treatment.

List95 supports unselected, single-selection, multiple-selection, and sectioned data without replacing your model identity.

![Compact List95 with Item 2 and Item 4 selected](/images/list95-compact-macos.png)

The compact multi-selection list rendered by the snippet below.

## Use it

```swift
import Swift95
import SwiftUI

private struct ListItem: Identifiable {
  let id: Int
  let title: String
}

struct List95Example: View {
  private let items = (1...12)
    .map {
      ListItem(id: $0, title: "Item \($0)")
    }
  @State private var selection: Set<Int> = [2, 4]

  var body: some View {
    List95(items, selection: $selection, style: .compact) { item in
      Row95 { Text95(item.title) }
    }
    .frame(width: 380, height: 212)
  }
}
```

## Essential behavior

**Identity**Rows use each Identifiable element’s stable ID.

**Selection**Optional single and Set bindings support selection.

**Style**Choose largeIcon or compact row metrics and opt into separators.

## Related

- [ScrollView95](/components/scroll-view/)
- [ScrollIndicator95](/components/scroll-indicator/)
- [Divider95](/components/divider/)

[Open the complete List95 API reference →](/api/documentation/swift95/list95)
