Custom web elements
The next examples show the same UI5 pattern as before for when built-in elements are not enough.
Carousel
#let carousel-image(src, alt) = html.img(
src: src, alt: alt, style: "width: 100%; height: auto; object-fit: contain; background: #f6f8fa;",
)
#html.elem("ui5-carousel", attrs: (
cyclic: "true",
style: "display: block; width: 100%; max-width: 42rem; aspect-ratio: 3 / 2; height: 28rem;",
))[
#carousel-image("../assets/flowers_01.jpg", "First flower")
#carousel-image("../assets/flowers_05.jpg", "Fifth flower")
#carousel-image("../assets/flowers_02.jpg", "Second flower")
#carousel-image("../assets/flowers_03.jpg", "Third flower")
#carousel-image("../assets/flowers_04.jpg", "Fourth flower")
]CSS hooks
calepin.elements.gallery injects its own base styles, and the lightbox/card styles are similarly opinionated. If needed, these selectors can be overridden:
.calepin-elements-gallery {}
.calepin-elements-gallery__item {}
.calepin-elements-gallery__image {}
.calepin-elements-gallery__caption {}
.calepin-elements-gallery--lightbox {}
.calepin-elements-card {}
.calepin-elements-tabs {}
.calepin-screenshot-thumb {}
.calepin-screenshot-dialog {}
.calepin-video-thumb {}
.calepin-video-dialog {}