Message Scroller
Keeps a message list anchored with controls for returning to the latest item.
Installation
Install Message Scroller from Oros with shadcn CLI 4.13.0.
pnpm dlx shadcn@4.13.0 add @oros/message-scrollerUsage
import {
MessageScrollerProvider,
MessageScroller,
MessageScrollerViewport,
MessageScrollerContent,
MessageScrollerItem,
MessageScrollerButton,
} from "@/components/ui/message-scroller"Open the Source tab in the preview for a complete working example.
Anatomy
| Export | Responsibility |
|---|---|
| MessageScrollerProvider | Provides shared state and behavior to descendant parts. |
| MessageScroller | A composable part of the component anatomy. |
| MessageScrollerViewport | Defines the visible or scrollable content region. |
| MessageScrollerContent | Contains the primary visible content. |
| MessageScrollerItem | Represents one option or repeated child. |
| MessageScrollerButton | A composable part of the component anatomy. |
| useMessageScroller | Reads or controls the component's shared state. |
| useMessageScrollerScrollable | Reads or controls the component's shared state. |
| useMessageScrollerVisibility | Reads or controls the component's shared state. |
API Reference
Message Scroller exports 9 named entries. Component exports accept the props of their underlying HTML element or Base UI component, plus an optional className, unless the source defines a more focused type.
MessageScrollerProviderComponentMessageScrollerComponentMessageScrollerViewportComponentMessageScrollerContentComponentMessageScrollerItemComponentMessageScrollerButtonComponentuseMessageScrollerHookuseMessageScrollerScrollableHookuseMessageScrollerVisibilityHook
Accessibility
- Message Scroller adds no application-specific accessible name by itself; use semantic content and label any interactive descendants.
- Do not communicate state or meaning through color alone, and verify the composed result at text zoom and with keyboard navigation.
Source
Message Scroller uses the standard shadcn API and is distributed through Oros. Installing it adds the component source and required dependencies to your app. The Source tab above shows a complete usage example.