RiseUI
Components

Scroll shadow

Edge fades for scrollable overflow — HeroUI ScrollShadow parity (vertical, horizontal, size, hide scrollbar, visibility).

Usage

`Default`: max height 240px, padding 16 — lorem paragraphs like Storybook `LoremContent`.

SizedBox(
  height: 240,
  child: RiseScrollShadow(
    child: ListView(
      padding: EdgeInsets.all(16),
      children: [
        // … lorem paragraphs
      ],
    ),
  ),
)

Variants

Fade vs blur edge treatment (`RiseScrollShadowEffect` — Storybook “Fade / Blur” labels).

Column(
  crossAxisAlignment: CrossAxisAlignment.start,
  children: [
    Text('Fade (opacity effect)'),
    SizedBox(
      height: 240,
      child: RiseScrollShadow(
        effect: RiseScrollShadowEffect.fade,
        child: listView,
      ),
    ),
    Text('Blur (blur effect)'),
    SizedBox(
      height: 240,
      child: RiseScrollShadow(
        effect: RiseScrollShadowEffect.blur,
        child: listView,
      ),
    ),
  ],
)

Orientation

`Orientation`: vertical surface + horizontal doc image strip (`LoremCards`).

Column(
  children: [
    RiseSurface(
      child: SizedBox(
        height: 240,
        child: RiseScrollShadow(child: verticalList),
      ),
    ),
    SizedBox(
      height: 112,
      child: RiseScrollShadow(
        axis: Axis.horizontal,
        child: horizontalImageCards,
      ),
    ),
  ],
)

Hide scrollbar

`hideScrollBar` — webkit-style hidden scrollbar ([scroll-shadow.css](https://github.com/heroui-inc/heroui/blob/v3/packages/styles/components/scroll-shadow.css) `.scroll-shadow--hide-scrollbar`).

SizedBox(
  height: 240,
  child: RiseScrollShadow(
    hideScrollBar: true,
    child: ListView(...),
  ),
)

Custom size

`CustomSize`: 20px · 40px (default) · 80px shadow extent.

SizedBox(
  height: 200,
  child: RiseScrollShadow(
    size: 40,
    child: ListView(...),
  ),
)

Visibility state

`VisibilityChange`: vertical + horizontal `onVisibilityChange` with state panels.

RiseScrollShadow(
  onVisibilityChange: (v) => setState(() => _vertical = v),
  child: ListView(...),
)

With card

`WithCard`: terms shell, `height: 300`, `size: 80`, footer actions.

SizedBox(
  height: 300,
  child: RiseScrollShadow(
    size: 80,
    child: ListView(...),
  ),
)