Layout
How many slides are in view, how far they are apart, which way they go: all of it is CSS, and the script measures what the page lays out.
The script measures what the page lays out, so responsive settings are media queries:
.gs { --gs-per-view: 1.2; --gs-gap: 12px; }
@media (min-width: 960px) {
.gs { --gs-per-view: 3; }
}
Give the slides a height, an aspect-ratio, or use autoHeight().
Downwards
createSlider( element, { axis: 'y' } );
.gs { height: 70vh; --gs-per-view: 1.5; }
The slides follow each other downwards: drag up and down, arrow up and down, the wheel as it is. At its ends the wheel scrolls the page. The slider needs a height. Effects are written for a row and are turned with the slider.
Rows
Nothing of the script: a grid that flows in columns. A column is a snap.
.gs-track {
display: grid;
grid-auto-flow: column;
grid-template-rows: repeat( 2, 1fr );
grid-auto-columns: calc( ( 100% - 2 * var(--gs-gap) ) / 3 );
gap: var(--gs-gap);
}
Focus point
.gs { --gs-focus: 30% 70%; }
What object-position is for an image: the point that stays in view when the image is cut. The canvas takes it from the page.







