<!-- Do not edit this file. It is automatically generated by API Documenter. -->

[Home](./index.md) &gt; [@empathyco/x-components](./x-components.md) &gt; [MainScroll](./x-components.mainscroll.md)

## MainScroll variable

Extends the scroll making it able to sync the first visible element, and allowing the children position to be restored.

Each child element that wants to have this support must be wrapped in a [MainScrollItem](./x-components.mainscrollitem.md) component.

**Signature:**

```typescript
_default: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
    useWindow: {
        type: BooleanConstructor;
        default: boolean;
    };
    restoreScrollTimeoutMs: {
        type: NumberConstructor;
        default: number;
    };
    threshold: {
        type: NumberConstructor;
        default: number;
    };
    margin: {
        type: StringConstructor;
        default: string;
    };
}>, () => "" | import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
    [key: string]: any;
}>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
    useWindow: {
        type: BooleanConstructor;
        default: boolean;
    };
    restoreScrollTimeoutMs: {
        type: NumberConstructor;
        default: number;
    };
    threshold: {
        type: NumberConstructor;
        default: number;
    };
    margin: {
        type: StringConstructor;
        default: string;
    };
}>> & Readonly<{}>, {
    useWindow: boolean;
    restoreScrollTimeoutMs: number;
    threshold: number;
    margin: string;
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>
```
