Scroll area
A box that scrolls instead of the page, its bars thin or drawn over it.
The browser's bars #
- Release 0.24.0
- Release 0.23.0
- Release 0.22.0
- Release 0.21.0
- Release 0.20.0
- Release 0.19.0
- Release 0.18.0
- Release 0.17.0
- Release 0.16.0
- Release 0.15.0
- Release 0.14.0
- Release 0.13.0
- Release 0.12.0
- Release 0.11.0
- Release 0.10.0
- Release 0.9.0
- Release 0.8.0
- Release 0.7.0
- Release 0.6.0
- Release 0.5.0
- Release 0.4.0
- Release 0.3.0
- Release 0.2.0
- Release 0.1.0
// The box scrolls instead of the page, in the browser's own thin bars. Its
// height is the caller's: the recipe extended by one, here.
export const ScrollAreaStyle = forSlots(ScrollAreaSlots)(
Recipes.ScrollArea.extend({ base: { viewport: { maxBlockSize: '12rem' } } })({}),
)
const releases = (h: HtmlBuilder<never>): Html =>
h.ul(
[h.Style({ margin: '0', paddingInline: '1rem' })],
Array.from({ length: 24 }, (_, index) => h.li([], [`Release 0.${24 - index}.0`])),
)
export const scrollArea = (
style: NamedStyle<typeof ScrollAreaSlots>,
h: HtmlBuilder<never>,
): Html =>
ScrollArea.view(
{
content: releases(h),
style,
},
h,
)Overlay bars #
- Release 0.24.0
- Release 0.23.0
- Release 0.22.0
- Release 0.21.0
- Release 0.20.0
- Release 0.19.0
- Release 0.18.0
- Release 0.17.0
- Release 0.16.0
- Release 0.15.0
- Release 0.14.0
- Release 0.13.0
- Release 0.12.0
- Release 0.11.0
- Release 0.10.0
- Release 0.9.0
- Release 0.8.0
- Release 0.7.0
- Release 0.6.0
- Release 0.5.0
- Release 0.4.0
- Release 0.3.0
- Release 0.2.0
- Release 0.1.0
// Bars drawn over the content in place of the browser's, on a pointer that
// can hover; a coarse pointer keeps the browser's. Off unless passed.
export const scrollAreaOverlay = (
style: NamedStyle<typeof ScrollAreaSlots>,
h: HtmlBuilder<never>,
): Html =>
ScrollArea.view(
{
content: releases(h),
mixins: ScrollArea.overlayBars,
style,
},
h,
)Usage
Each example above names the function that drew it, over the theme module Create a theme writes. The preview passes it the style picked above instead of its default.