# ScrollSnapshot

Source: /tuil/docs/reference/packages/scroll/api/scroll-snapshot
Locale: en

interface exported by @mwillbanks/tuil-scroll.



{/* Generated by tooling/docs/generate-reference.ts. */}

## interface [#interface]

Public interface exported by `@mwillbanks/tuil-scroll`.

```ts
export interface ScrollSnapshot {
  readonly id: string;
  readonly position: ScrollPosition;
  readonly viewport: ScrollViewport;
  readonly extent: ScrollExtent;
  readonly atTop: boolean;
  readonly atBottom: boolean;
  readonly atLeft: boolean;
  readonly atRight: boolean;
}
```

## Members [#members]

| Member     | Type             | Required | Description                                               | Related types                                                           |
| ---------- | ---------------- | -------- | --------------------------------------------------------- | ----------------------------------------------------------------------- |
| `id`       | `string`         | Yes      | The `id` member uses the `string` contract.               | —                                                                       |
| `position` | `ScrollPosition` | Yes      | The `position` member uses the `ScrollPosition` contract. | [`ScrollPosition`](/tuil/docs/reference/packages/scroll/api/scroll-position) |
| `viewport` | `ScrollViewport` | Yes      | The `viewport` member uses the `ScrollViewport` contract. | [`ScrollViewport`](/tuil/docs/reference/packages/scroll/api/scroll-viewport) |
| `extent`   | `ScrollExtent`   | Yes      | The `extent` member uses the `ScrollExtent` contract.     | [`ScrollExtent`](/tuil/docs/reference/packages/scroll/api/scroll-extent)     |
| `atTop`    | `boolean`        | Yes      | The `atTop` member uses the `boolean` contract.           | —                                                                       |
| `atBottom` | `boolean`        | Yes      | The `atBottom` member uses the `boolean` contract.        | —                                                                       |
| `atLeft`   | `boolean`        | Yes      | The `atLeft` member uses the `boolean` contract.          | —                                                                       |
| `atRight`  | `boolean`        | Yes      | The `atRight` member uses the `boolean` contract.         | —                                                                       |

## Parameters [#parameters]

This declaration has no public members.

## Returns [#returns]

This declaration does not return a value.

## Throws [#throws]

No thrown errors are documented for this declaration.

## Related types [#related-types]

* [`ScrollExtent`](/tuil/docs/reference/packages/scroll/api/scroll-extent)
* [`ScrollPosition`](/tuil/docs/reference/packages/scroll/api/scroll-position)
* [`ScrollViewport`](/tuil/docs/reference/packages/scroll/api/scroll-viewport)

## Source [#source]

[View the secondary source reference](https://github.com/mwillbanks/tuil/blob/main/packages/scroll/src/index.ts)

## Package [#package]

[@mwillbanks/tuil-scroll](/tuil/docs/reference/packages/scroll)
