Reel
This page is currently under construction
Lism UI (@lism-css/ui) is still in preparation.
Examples of creating a reel component that displays content with horizontal scrolling.
Implementation with Flex
↓
Implementation with Flex ( Scroll to preview )






<Flex hasSnap ov="auto" g="20" bdrs="20"> <ReelImages ar="16/9" fxsh="0" w="100%" bdrs="20" /></Flex> ↓
Snap position aligned with reel padding ( Scroll to preview )





Resize
<Flex hasSnap ov="auto" bgc="black" p="20" g="20" bdrs="30" style={{ 'scroll-padding': 'var(--p)' }}> <Frame ar="16/9" bdrs="20" fxsh="0" w="90%"> <img src="https://cdn.lism-css.com/img/u-1.jpg" alt="" /> </Frame> <Frame ar="16/9" bdrs="20" fxsh="0" w="90%"> <img src="https://cdn.lism-css.com/img/u-2.jpg" alt="" /> </Frame> <Frame ar="16/9" bdrs="20" fxsh="0" w="90%"> <img src="https://cdn.lism-css.com/img/u-3.jpg" alt="" /> </Frame> <Frame ar="16/9" bdrs="20" fxsh="0" w="90%"> <img src="https://cdn.lism-css.com/img/u-4.jpg" alt="" /> </Frame> <Frame ar="16/9" bdrs="20" fxsh="0" w="90%"> <img src="https://cdn.lism-css.com/img/u-5.jpg" alt="" /> </Frame></Flex> ↓
Center snap with responsive element sizing ( Scroll to preview )





Resize
<Flex hasSnap ov="auto" g="20" p="15" bgc="black" bdrs="20" style={{ '--snapAlign': 'center' }}> <Frame ar="16/9" fxsh="0" w={['80%', '60%']} mx-s={['10%', '20%']} bdrs="20"> <img src="https://cdn.lism-css.com/img/u-1.jpg" alt="" /> </Frame> <Frame ar="16/9" fxsh="0" w={['80%', '60%']} bdrs="20"> <img src="https://cdn.lism-css.com/img/u-2.jpg" alt="" /> </Frame> <Frame ar="16/9" fxsh="0" w={['80%', '60%']} bdrs="20"> <img src="https://cdn.lism-css.com/img/u-3.jpg" alt="" /> </Frame> <Frame ar="16/9" fxsh="0" w={['80%', '60%']} bdrs="20"> <img src="https://cdn.lism-css.com/img/u-4.jpg" alt="" /> </Frame> <Frame ar="16/9" fxsh="0" w={['80%', '60%']} mx-e={['10%', '20%']} bdrs="20"> <img src="https://cdn.lism-css.com/img/u-5.jpg" alt="" /> </Frame></Flex>Implementation with Grid
↓
Preview ( Scroll to preview )






Resize
<Grid hasSnap ov="auto" gaf="column" gac="100%" g="20" bdrs="20" tabIndex="0"> <ReelImages ar="16/9" bdrs="20" /></Grid>When responsively adjusting child element sizes in a Grid-based reel, specify --cols for gac (grid-auto-columns) if available.
(gac does not support responsive values by default.)
↓
Preview ( Scroll to preview )





Resize
<Grid hasSnap ov="auto" gaf="column" gac="var(--cols)" cols={['70%', '40%']} g="15" bdrs="20" tabIndex="0"> <Frame ar="16/9" bdrs="20"> <img src="https://cdn.lism-css.com/img/u-1.jpg" alt="" /> </Frame> <Frame ar="16/9" bdrs="20"> <img src="https://cdn.lism-css.com/img/u-2.jpg" alt="" /> </Frame> <Frame ar="16/9" bdrs="20"> <img src="https://cdn.lism-css.com/img/u-3.jpg" alt="" /> </Frame> <Frame ar="16/9" bdrs="20"> <img src="https://cdn.lism-css.com/img/u-4.jpg" alt="" /> </Frame> <Frame ar="16/9" bdrs="20"> <img src="https://cdn.lism-css.com/img/u-5.jpg" alt="" /> </Frame></Grid>Adding navigation
By adding an id to each reel item and providing anchor links, you can create navigation controls.
↓
Adding button navigation
<Grid hasSnap ov="auto" gaf="column" gac="75%" g="15" bdrs="20" style={{ '--snapAlign': 'center', 'scroll-behavior': 'smooth' }}> <Frame id="image-1" ar="16/9" bdrs="20"><img src="https://cdn.lism-css.com/img/u-1.jpg" alt="" /></Frame> <Frame id="image-2" ar="16/9" bdrs="20"><img src="https://cdn.lism-css.com/img/u-2.jpg" alt="" /></Frame> <Frame id="image-3" ar="16/9" bdrs="20"><img src="https://cdn.lism-css.com/img/u-3.jpg" alt="" /></Frame> <Frame id="image-4" ar="16/9" bdrs="20"><img src="https://cdn.lism-css.com/img/u-4.jpg" alt="" /></Frame> <Frame id="image-5" ar="16/9" bdrs="20"><img src="https://cdn.lism-css.com/img/u-5.jpg" alt="" /></Frame></Grid><Flex g="15" jc="center" lh="1" my-s="15"> <Lism as="a" href="#image-1" c="inherit" bgc="base-2" w="2em" h="2em" ta="center" ac="center" bdrs="10" td="none" hov="-o">1</Lism> <Lism as="a" href="#image-2" c="inherit" bgc="base-2" w="2em" h="2em" ta="center" ac="center" bdrs="10" td="none" hov="-o">2</Lism> <Lism as="a" href="#image-3" c="inherit" bgc="base-2" w="2em" h="2em" ta="center" ac="center" bdrs="10" td="none" hov="-o">3</Lism> <Lism as="a" href="#image-4" c="inherit" bgc="base-2" w="2em" h="2em" ta="center" ac="center" bdrs="10" td="none" hov="-o">4</Lism> <Lism as="a" href="#image-5" c="inherit" bgc="base-2" w="2em" h="2em" ta="center" ac="center" bdrs="10" td="none" hov="-o">5</Lism></Flex>Disabling the reel at larger screen sizes
To show the reel only on small screens, set gaf (grid-auto-flow) back to row.
The following example demonstrates switching to a 2-column layout by setting gtc (grid-template-columns) to repeat(2, 1fr) at the same breakpoint.
↓
Example: disable reel only at
~@md ( Scroll to preview )





Resize
<Grid hasSnap ov="auto" g="15" gaf={['column', null, 'row']} gac="75%" gtc={[null, null, 'repeat(2, 1fr)']}> ...</Grid>Vertical reel
↓
Preview ( Scroll to preview )




Resize
<Box max-w="24rem" mx="auto"> <Box class="has--snap" ov="auto" ar="3/4" bdrs="20" bgc="black"> <Frame ar="3/4"> <img src="https://cdn.lism-css.com/img/v/u-1.jpg" alt="" /> </Frame> <Frame ar="3/4"> <img src="https://cdn.lism-css.com/img/v/u-2.jpg" alt="" /> </Frame> <Frame ar="3/4"> <img src="https://cdn.lism-css.com/img/v/u-3.jpg" alt="" /> </Frame> <Frame ar="3/4"> <img src="https://cdn.lism-css.com/img/v/u-4.jpg" alt="" /> </Frame> </Box></Box>