ScrollShadow
HeroUIScrolling content, faded at each edge it hides more at.
Solidtype_heroui.Scroll_shadow is a <div> that scrolls, with the classes
HeroUI’s own scrollShadowVariants gives, faded at each edge it hides content
at. It measures itself as it scrolls, as it is resized and as its content
changes, as HeroUI’s hook does, and declares each edge as that hook writes
it. Kobalte has no scroll shadow.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam pulvinar risus non risus hendrerit venenatis. Pellentesque sit amet hendrerit risus, sed porttitor quam. Morbi accumsan cursus enim, sed ultricies sapien.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam pulvinar risus non risus hendrerit venenatis. Pellentesque sit amet hendrerit risus, sed porttitor quam. Morbi accumsan cursus enim, sed ultricies sapien.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam pulvinar risus non risus hendrerit venenatis. Pellentesque sit amet hendrerit risus, sed porttitor quam. Morbi accumsan cursus enim, sed ultricies sapien.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam pulvinar risus non risus hendrerit venenatis. Pellentesque sit amet hendrerit risus, sed porttitor quam. Morbi accumsan cursus enim, sed ultricies sapien.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam pulvinar risus non risus hendrerit venenatis. Pellentesque sit amet hendrerit risus, sed porttitor quam. Morbi accumsan cursus enim, sed ultricies sapien.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam pulvinar risus non risus hendrerit venenatis. Pellentesque sit amet hendrerit risus, sed porttitor quam. Morbi accumsan cursus enim, sed ultricies sapien.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam pulvinar risus non risus hendrerit venenatis. Pellentesque sit amet hendrerit risus, sed porttitor quam. Morbi accumsan cursus enim, sed ultricies sapien.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam pulvinar risus non risus hendrerit venenatis. Pellentesque sit amet hendrerit risus, sed porttitor quam. Morbi accumsan cursus enim, sed ultricies sapien.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam pulvinar risus non risus hendrerit venenatis. Pellentesque sit amet hendrerit risus, sed porttitor quam. Morbi accumsan cursus enim, sed ultricies sapien.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam pulvinar risus non risus hendrerit venenatis. Pellentesque sit amet hendrerit risus, sed porttitor quam. Morbi accumsan cursus enim, sed ultricies sapien.
module For = Solidtype.Formodule Scroll_shadow = Solidtype_heroui.Scroll_shadow
let lorem = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam pulvinar \ risus non risus hendrerit venenatis. Pellentesque sit amet hendrerit risus, \ sed porttitor quam. Morbi accumsan cursus enim, sed ultricies sapien."
let paragraphs () = <div class_="space-y-4"> <For each=(fun () -> Array.make 10 lorem)> (fun text _ -> <p>(fun () -> Solidtype.Jsx.string text)</p>) </For> </div>
let make () = <div class_="w-full p-0 sm:max-w-sm"> <Scroll_shadow class_="max-h-[240px] p-4"> (fun () -> Solidtype.Jsx.element (paragraphs ())) </Scroll_shadow> </div>Examples
Section titled “Examples”Orientation
Section titled “Orientation”Vertical
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam pulvinar risus non risus hendrerit venenatis. Pellentesque sit amet hendrerit risus, sed porttitor quam. Morbi accumsan cursus enim, sed ultricies sapien.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam pulvinar risus non risus hendrerit venenatis. Pellentesque sit amet hendrerit risus, sed porttitor quam. Morbi accumsan cursus enim, sed ultricies sapien.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam pulvinar risus non risus hendrerit venenatis. Pellentesque sit amet hendrerit risus, sed porttitor quam. Morbi accumsan cursus enim, sed ultricies sapien.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam pulvinar risus non risus hendrerit venenatis. Pellentesque sit amet hendrerit risus, sed porttitor quam. Morbi accumsan cursus enim, sed ultricies sapien.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam pulvinar risus non risus hendrerit venenatis. Pellentesque sit amet hendrerit risus, sed porttitor quam. Morbi accumsan cursus enim, sed ultricies sapien.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam pulvinar risus non risus hendrerit venenatis. Pellentesque sit amet hendrerit risus, sed porttitor quam. Morbi accumsan cursus enim, sed ultricies sapien.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam pulvinar risus non risus hendrerit venenatis. Pellentesque sit amet hendrerit risus, sed porttitor quam. Morbi accumsan cursus enim, sed ultricies sapien.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam pulvinar risus non risus hendrerit venenatis. Pellentesque sit amet hendrerit risus, sed porttitor quam. Morbi accumsan cursus enim, sed ultricies sapien.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam pulvinar risus non risus hendrerit venenatis. Pellentesque sit amet hendrerit risus, sed porttitor quam. Morbi accumsan cursus enim, sed ultricies sapien.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam pulvinar risus non risus hendrerit venenatis. Pellentesque sit amet hendrerit risus, sed porttitor quam. Morbi accumsan cursus enim, sed ultricies sapien.
Horizontal

Bridging the Future
Today, 6:30 PM

Bridging the Future
Today, 6:30 PM

Bridging the Future
Today, 6:30 PM

Bridging the Future
Today, 6:30 PM

Bridging the Future
Today, 6:30 PM

Bridging the Future
Today, 6:30 PM

Bridging the Future
Today, 6:30 PM

Bridging the Future
Today, 6:30 PM

Bridging the Future
Today, 6:30 PM

Bridging the Future
Today, 6:30 PM
module For = Solidtype.Formodule Card = Solidtype_heroui.Cardmodule Scroll_shadow = Solidtype_heroui.Scroll_shadow
let lorem = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam pulvinar \ risus non risus hendrerit venenatis. Pellentesque sit amet hendrerit risus, \ sed porttitor quam. Morbi accumsan cursus enim, sed ultricies sapien."
let paragraphs () = <div class_="space-y-4"> <For each=(fun () -> Array.make 10 lorem)> (fun text _ -> <p>(fun () -> Solidtype.Jsx.string text)</p>) </For> </div>
let images = [| "https://heroui-assets.nyc3.cdn.digitaloceanspaces.com/docs/robot1.jpeg"; "https://heroui-assets.nyc3.cdn.digitaloceanspaces.com/docs/avocado.jpeg"; "https://heroui-assets.nyc3.cdn.digitaloceanspaces.com/docs/oranges.jpeg"; |]
let cards () = <div class_="flex flex-row gap-4"> <For each=(fun () -> Array.init 10 (fun i -> images.(i mod 3)))> (fun image _ -> <Card class_="flex min-w-[200px] flex-row gap-3 p-1" variant=`transparent> <img alt="Lorem Card" class_="aspect-square h-16 w-16 shrink-0 rounded-xl object-cover \ select-none sm:h-20 sm:w-20" loading="lazy" src=(fun () -> image) /> <div class_="flex flex-1 flex-col justify-center gap-1"> <Card.Title class_="text-sm">"Bridging the Future"</Card.Title> <Card.Description class_="text-xs"> "Today, 6:30 PM" </Card.Description> </div> </Card>) </For> </div>
let make () = <div class_="w-full sm:max-w-sm"> <div class_="mb-8 w-full"> <h4 class_="mb-2 text-sm font-semibold">"Vertical"</h4> <Card class_="w-full p-0"> <Scroll_shadow class_="max-h-[240px] p-4" orientation=`vertical> (fun () -> Solidtype.Jsx.element (paragraphs ())) </Scroll_shadow> </Card> </div> <div class_="w-full"> <h4 class_="mb-2 text-sm font-semibold">"Horizontal"</h4> <Card class_="w-full p-0"> <Scroll_shadow class_="p-4" orientation=`horizontal> (fun () -> Solidtype.Jsx.element (cards ())) </Scroll_shadow> </Card> </div> </div>Shadow Size
Section titled “Shadow Size”Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam pulvinar risus non risus hendrerit venenatis. Pellentesque sit amet hendrerit risus, sed porttitor quam. Morbi accumsan cursus enim, sed ultricies sapien.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam pulvinar risus non risus hendrerit venenatis. Pellentesque sit amet hendrerit risus, sed porttitor quam. Morbi accumsan cursus enim, sed ultricies sapien.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam pulvinar risus non risus hendrerit venenatis. Pellentesque sit amet hendrerit risus, sed porttitor quam. Morbi accumsan cursus enim, sed ultricies sapien.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam pulvinar risus non risus hendrerit venenatis. Pellentesque sit amet hendrerit risus, sed porttitor quam. Morbi accumsan cursus enim, sed ultricies sapien.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam pulvinar risus non risus hendrerit venenatis. Pellentesque sit amet hendrerit risus, sed porttitor quam. Morbi accumsan cursus enim, sed ultricies sapien.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam pulvinar risus non risus hendrerit venenatis. Pellentesque sit amet hendrerit risus, sed porttitor quam. Morbi accumsan cursus enim, sed ultricies sapien.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam pulvinar risus non risus hendrerit venenatis. Pellentesque sit amet hendrerit risus, sed porttitor quam. Morbi accumsan cursus enim, sed ultricies sapien.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam pulvinar risus non risus hendrerit venenatis. Pellentesque sit amet hendrerit risus, sed porttitor quam. Morbi accumsan cursus enim, sed ultricies sapien.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam pulvinar risus non risus hendrerit venenatis. Pellentesque sit amet hendrerit risus, sed porttitor quam. Morbi accumsan cursus enim, sed ultricies sapien.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam pulvinar risus non risus hendrerit venenatis. Pellentesque sit amet hendrerit risus, sed porttitor quam. Morbi accumsan cursus enim, sed ultricies sapien.
module For = Solidtype.Formodule Scroll_shadow = Solidtype_heroui.Scroll_shadow
let lorem = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam pulvinar \ risus non risus hendrerit venenatis. Pellentesque sit amet hendrerit risus, \ sed porttitor quam. Morbi accumsan cursus enim, sed ultricies sapien."
let paragraphs () = <div class_="space-y-4"> <For each=(fun () -> Array.make 10 lorem)> (fun text _ -> <p>(fun () -> Solidtype.Jsx.string text)</p>) </For> </div>
let make () = <div class_="w-full p-0 sm:max-w-sm"> <Scroll_shadow class_="max-h-[240px] p-4" size=80> (fun () -> Solidtype.Jsx.element (paragraphs ())) </Scroll_shadow> </div>With Card
Section titled “With Card”Terms and Conditions
Please review before proceeding
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam pulvinar risus non risus hendrerit venenatis. Pellentesque sit amet hendrerit risus, sed porttitor quam. Morbi accumsan cursus enim, sed ultricies sapien.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam pulvinar risus non risus hendrerit venenatis. Pellentesque sit amet hendrerit risus, sed porttitor quam. Morbi accumsan cursus enim, sed ultricies sapien.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam pulvinar risus non risus hendrerit venenatis. Pellentesque sit amet hendrerit risus, sed porttitor quam. Morbi accumsan cursus enim, sed ultricies sapien.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam pulvinar risus non risus hendrerit venenatis. Pellentesque sit amet hendrerit risus, sed porttitor quam. Morbi accumsan cursus enim, sed ultricies sapien.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam pulvinar risus non risus hendrerit venenatis. Pellentesque sit amet hendrerit risus, sed porttitor quam. Morbi accumsan cursus enim, sed ultricies sapien.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam pulvinar risus non risus hendrerit venenatis. Pellentesque sit amet hendrerit risus, sed porttitor quam. Morbi accumsan cursus enim, sed ultricies sapien.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam pulvinar risus non risus hendrerit venenatis. Pellentesque sit amet hendrerit risus, sed porttitor quam. Morbi accumsan cursus enim, sed ultricies sapien.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam pulvinar risus non risus hendrerit venenatis. Pellentesque sit amet hendrerit risus, sed porttitor quam. Morbi accumsan cursus enim, sed ultricies sapien.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam pulvinar risus non risus hendrerit venenatis. Pellentesque sit amet hendrerit risus, sed porttitor quam. Morbi accumsan cursus enim, sed ultricies sapien.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam pulvinar risus non risus hendrerit venenatis. Pellentesque sit amet hendrerit risus, sed porttitor quam. Morbi accumsan cursus enim, sed ultricies sapien.
module For = Solidtype.Formodule Button = Solidtype_heroui.Buttonmodule Card = Solidtype_heroui.Cardmodule Scroll_shadow = Solidtype_heroui.Scroll_shadow
let lorem = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam pulvinar \ risus non risus hendrerit venenatis. Pellentesque sit amet hendrerit risus, \ sed porttitor quam. Morbi accumsan cursus enim, sed ultricies sapien."
let paragraphs () = <div class_="space-y-4"> <For each=(fun () -> Array.make 10 lorem)> (fun text _ -> <p>(fun () -> Solidtype.Jsx.string text)</p>) </For> </div>
let make () = <Card class_="max-w-[400px]"> <Card.Header> <Card.Title>"Terms and Conditions"</Card.Title> <Card.Description>"Please review before proceeding"</Card.Description> </Card.Header> <Card.Content class_="p-0"> <Scroll_shadow class_="h-[300px] px-4" size=80> (fun () -> Solidtype.Jsx.element (paragraphs ())) </Scroll_shadow> </Card.Content> <Card.Footer class_="mt-4 flex flex-row gap-2"> <Button class_="w-full" variant=`secondary>"Cancel"</Button> <Button class_="w-full">"Accept"</Button> </Card.Footer> </Card>Hide Scroll Bar
Section titled “Hide Scroll Bar”Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam pulvinar risus non risus hendrerit venenatis. Pellentesque sit amet hendrerit risus, sed porttitor quam. Morbi accumsan cursus enim, sed ultricies sapien.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam pulvinar risus non risus hendrerit venenatis. Pellentesque sit amet hendrerit risus, sed porttitor quam. Morbi accumsan cursus enim, sed ultricies sapien.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam pulvinar risus non risus hendrerit venenatis. Pellentesque sit amet hendrerit risus, sed porttitor quam. Morbi accumsan cursus enim, sed ultricies sapien.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam pulvinar risus non risus hendrerit venenatis. Pellentesque sit amet hendrerit risus, sed porttitor quam. Morbi accumsan cursus enim, sed ultricies sapien.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam pulvinar risus non risus hendrerit venenatis. Pellentesque sit amet hendrerit risus, sed porttitor quam. Morbi accumsan cursus enim, sed ultricies sapien.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam pulvinar risus non risus hendrerit venenatis. Pellentesque sit amet hendrerit risus, sed porttitor quam. Morbi accumsan cursus enim, sed ultricies sapien.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam pulvinar risus non risus hendrerit venenatis. Pellentesque sit amet hendrerit risus, sed porttitor quam. Morbi accumsan cursus enim, sed ultricies sapien.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam pulvinar risus non risus hendrerit venenatis. Pellentesque sit amet hendrerit risus, sed porttitor quam. Morbi accumsan cursus enim, sed ultricies sapien.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam pulvinar risus non risus hendrerit venenatis. Pellentesque sit amet hendrerit risus, sed porttitor quam. Morbi accumsan cursus enim, sed ultricies sapien.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam pulvinar risus non risus hendrerit venenatis. Pellentesque sit amet hendrerit risus, sed porttitor quam. Morbi accumsan cursus enim, sed ultricies sapien.
module For = Solidtype.Formodule Scroll_shadow = Solidtype_heroui.Scroll_shadow
let lorem = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam pulvinar \ risus non risus hendrerit venenatis. Pellentesque sit amet hendrerit risus, \ sed porttitor quam. Morbi accumsan cursus enim, sed ultricies sapien."
let paragraphs () = <div class_="space-y-4"> <For each=(fun () -> Array.make 10 lorem)> (fun text _ -> <p>(fun () -> Solidtype.Jsx.string text)</p>) </For> </div>
let make () = <div class_="w-full p-0 sm:max-w-sm"> <Scroll_shadow hide_scroll_bar=true class_="max-h-[240px] p-4"> (fun () -> Solidtype.Jsx.element (paragraphs ())) </Scroll_shadow> </div>Visibility Change
Section titled “Visibility Change”on_visibility_change is told each change of the edges content is hidden
at.
Vertical Shadow State: none
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam pulvinar risus non risus hendrerit venenatis. Pellentesque sit amet hendrerit risus, sed porttitor quam. Morbi accumsan cursus enim, sed ultricies sapien.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam pulvinar risus non risus hendrerit venenatis. Pellentesque sit amet hendrerit risus, sed porttitor quam. Morbi accumsan cursus enim, sed ultricies sapien.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam pulvinar risus non risus hendrerit venenatis. Pellentesque sit amet hendrerit risus, sed porttitor quam. Morbi accumsan cursus enim, sed ultricies sapien.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam pulvinar risus non risus hendrerit venenatis. Pellentesque sit amet hendrerit risus, sed porttitor quam. Morbi accumsan cursus enim, sed ultricies sapien.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam pulvinar risus non risus hendrerit venenatis. Pellentesque sit amet hendrerit risus, sed porttitor quam. Morbi accumsan cursus enim, sed ultricies sapien.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam pulvinar risus non risus hendrerit venenatis. Pellentesque sit amet hendrerit risus, sed porttitor quam. Morbi accumsan cursus enim, sed ultricies sapien.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam pulvinar risus non risus hendrerit venenatis. Pellentesque sit amet hendrerit risus, sed porttitor quam. Morbi accumsan cursus enim, sed ultricies sapien.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam pulvinar risus non risus hendrerit venenatis. Pellentesque sit amet hendrerit risus, sed porttitor quam. Morbi accumsan cursus enim, sed ultricies sapien.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam pulvinar risus non risus hendrerit venenatis. Pellentesque sit amet hendrerit risus, sed porttitor quam. Morbi accumsan cursus enim, sed ultricies sapien.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam pulvinar risus non risus hendrerit venenatis. Pellentesque sit amet hendrerit risus, sed porttitor quam. Morbi accumsan cursus enim, sed ultricies sapien.
Horizontal Shadow State: none

Bridging the Future
Today, 6:30 PM

Bridging the Future
Today, 6:30 PM

Bridging the Future
Today, 6:30 PM

Bridging the Future
Today, 6:30 PM

Bridging the Future
Today, 6:30 PM

Bridging the Future
Today, 6:30 PM

Bridging the Future
Today, 6:30 PM

Bridging the Future
Today, 6:30 PM

Bridging the Future
Today, 6:30 PM

Bridging the Future
Today, 6:30 PM
module S = Solidtype.Solidmodule For = Solidtype.Formodule Card = Solidtype_heroui.Cardmodule Scroll_shadow = Solidtype_heroui.Scroll_shadow
let lorem = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam pulvinar \ risus non risus hendrerit venenatis. Pellentesque sit amet hendrerit risus, \ sed porttitor quam. Morbi accumsan cursus enim, sed ultricies sapien."
let paragraphs () = <div class_="space-y-4"> <For each=(fun () -> Array.make 10 lorem)> (fun text _ -> <p>(fun () -> Solidtype.Jsx.string text)</p>) </For> </div>
let images = [| "https://heroui-assets.nyc3.cdn.digitaloceanspaces.com/docs/robot1.jpeg"; "https://heroui-assets.nyc3.cdn.digitaloceanspaces.com/docs/avocado.jpeg"; "https://heroui-assets.nyc3.cdn.digitaloceanspaces.com/docs/oranges.jpeg"; |]
let cards () = <div class_="flex flex-row gap-4"> <For each=(fun () -> Array.init 10 (fun i -> images.(i mod 3)))> (fun image _ -> <Card class_="flex min-w-[200px] flex-row gap-3 p-1" variant=`transparent> <img alt="Lorem Card" class_="aspect-square h-16 w-16 shrink-0 rounded-xl object-cover \ select-none sm:h-20 sm:w-20" loading="lazy" src=(fun () -> image) /> <div class_="flex flex-1 flex-col justify-center gap-1"> <Card.Title class_="text-sm">"Bridging the Future"</Card.Title> <Card.Description class_="text-xs"> "Today, 6:30 PM" </Card.Description> </div> </Card>) </For> </div>
let said = function | `top -> "top" | `bottom -> "bottom" | `left -> "left" | `right -> "right" | `both -> "both" | `none -> "none"
let make () = let vertical, set_vertical = S.create_signal `none in let horizontal, set_horizontal = S.create_signal `none in <div class_="w-full sm:max-w-sm"> <div class_="mb-8 flex flex-col gap-2"> <div class_="rounded bg-default p-4"> <p class_="text-sm font-semibold"> (fun () -> Solidtype.Jsx.string ("Vertical Shadow State: " ^ said (S.get vertical))) </p> </div> <Scroll_shadow class_="max-h-[240px] p-4" orientation=`vertical on_visibility_change=(S.set set_vertical)> (fun () -> Solidtype.Jsx.element (paragraphs ())) </Scroll_shadow> </div> <div class_="flex flex-col gap-2"> <div class_="rounded bg-default p-4"> <p class_="text-sm font-semibold"> (fun () -> Solidtype.Jsx.string ("Horizontal Shadow State: " ^ said (S.get horizontal))) </p> </div> <Scroll_shadow class_="p-4" orientation=`horizontal on_visibility_change=(S.set set_horizontal)> (fun () -> Solidtype.Jsx.element (cards ())) </Scroll_shadow> </div> </div>Customization
Section titled “Customization”Tailwind CSS
Section titled “Tailwind CSS”class_ is added after HeroUI’s classes.
Reviewed quarterly goals with the design team.
Shipped dark mode tokens to production.
Merged accessibility fixes for form fields.
Published updated component documentation.
Scheduled performance audit for next sprint.
Added scroll shadow demos to the docs site.
module For = Solidtype.Formodule Scroll_shadow = Solidtype_heroui.Scroll_shadow
let entries = [| "Reviewed quarterly goals with the design team."; "Shipped dark mode tokens to production."; "Merged accessibility fixes for form fields."; "Published updated component documentation."; "Scheduled performance audit for next sprint."; "Added scroll shadow demos to the docs site."; |]
let make () = <div class_="w-full sm:max-w-sm"> <Scroll_shadow hide_scroll_bar=true class_="max-h-48 rounded-xl border border-border/80 bg-linear-to-b \ from-neutral-50/90 to-white p-4 ring-1 ring-black/5 \ dark:from-neutral-900/80 dark:to-neutral-900 dark:ring-white/10" size=48 variant=`fade> <div class_="space-y-3"> <For each=(fun () -> entries)> (fun entry _ -> <p class_="text-sm leading-relaxed text-neutral-600 \ dark:text-neutral-400"> (fun () -> Solidtype.Jsx.string entry) </p>) </For> </div> </Scroll_shadow> </div>Global CSS
Section titled “Global CSS”HeroUI’s classes are global, so a stylesheet restyles every scroll shadow, as with HeroUI in React:
@layer components { .scroll-shadow { @apply rounded-xl border border-default-200; }
.scroll-shadow--vertical { @apply pr-2; }}Styling Reference
Section titled “Styling Reference”CSS Classes
Section titled “CSS Classes”.scroll-shadow, and.scroll-shadow--vertical,.scroll-shadow--horizontal,.scroll-shadow--hide-scrollbar
CSS Variables
Section titled “CSS Variables”--scroll-shadow-size, the fade’s size, fromsize--scroll-shadow-offset, how far it scrolls before the fade starts, fromoffset--scroll-shadow-scrollbar-size, the gutter kept for a native scrollbar
Data Attributes
Section titled “Data Attributes”[data-top-scroll],[data-bottom-scroll],[data-left-scroll],[data-right-scroll]:"true"where content is hidden at that edge,"false"where it is not[data-top-bottom-scroll],[data-left-right-scroll]: content hidden at both edges[data-orientation],[data-scroll-shadow-size][data-scroll-shadow-mode]:"auto"where the fade follows the scroll,"manual"wherevisibilityis given or it is disabled
A shadow is measured once it is in the browser, so a prerendered one marks no
edge until it is; where a browser has scroll-driven animations, HeroUI’s
styles fade an "auto" shadow from its first paint without them.
API Reference
Section titled “API Reference”Each prop beside the name HeroUI’s React component gives it.
ScrollShadow
Section titled “ScrollShadow”| React | solidtype | Type | Default | Description |
|---|---|---|---|---|
orientation |
orientation |
[ `vertical | `horizontal ] |
`vertical |
The way it scrolls |
variant |
variant |
[ `fade ] |
`fade |
Its shadow |
size |
size |
int |
40 |
The fade’s size, in pixels |
offset |
offset |
int |
0 |
How far it scrolls before the fade starts, in pixels |
hideScrollBar |
hide_scroll_bar |
bool |
false |
Whether the native scrollbar is hidden |
isEnabled |
is_enabled |
bool |
true |
Whether it measures itself |
visibility |
visibility |
[ `auto | `top | `bottom | `left | `right | `both | `none ] |
`auto |
The edges it marks, or `auto for those measured |
onVisibilityChange |
on_visibility_change |
Scroll_shadow.edge -> unit |
Told each change of the edges measured | |
className |
class_ |
string |
Added after HeroUI’s classes | |
children |
children |
elements | What it scrolls |
Beside React
Section titled “Beside React”Original HeroUI documentation: ScrollShadow.
The same HeroUI ScrollShadow twice, under the same props: in solidtype on the left, in React on the right. Below them, every attribute of the two: a marked row is one they disagree on. Scroll them to see the edges each marks.
Line 1
Line 2
Line 3
Line 4
Line 5
Line 6
Line 7
Line 8
| attribute | solidtype | React |
|---|
