MessageScroller
neon-ui/message-scrollerFreeComponent
Chat scroll container with turn anchoring, auto-follow, and jump-to-latest.
Install it
npx shadcn@latest add https://ui.neon.com/r/message-scroller.jsonSource
1import * as React from "react"2import {3 MessageScroller as MessageScrollerPrimitive,4 useMessageScroller,5 useMessageScrollerScrollable,6 useMessageScrollerVisibility,7} from "@shadcn/react/message-scroller"89import { cn } from "@/lib/utils"10import { Button } from "@/components/ui/button"11import { HugeiconsIcon } from "@hugeicons/react";12import { ArrowDownIcon } from "@hugeicons/core-free-icons";1314function MessageScrollerProvider(15 props: React.ComponentProps<typeof MessageScrollerPrimitive.Provider>16) {17 return <MessageScrollerPrimitive.Provider {...props} />18}1920function MessageScroller({21 className,22 ...props23}: React.ComponentProps<typeof MessageScrollerPrimitive.Root>) {24 return (25 <MessageScrollerPrimitive.Root26 data-slot="message-scroller"27 className={cn(28 "group/message-scroller relative flex size-full min-h-0 flex-col overflow-hidden",29 className30 )}31 {...props}32 />33 )34}3536function MessageScrollerViewport({37 className,38 ...props39}: React.ComponentProps<typeof MessageScrollerPrimitive.Viewport>) {40 return (41 <MessageScrollerPrimitive.Viewport42 data-slot="message-scroller-viewport"43 className={cn(44 "size-full min-h-0 min-w-0 scroll-fade-b scrollbar-thin scrollbar-gutter-stable overflow-y-auto overscroll-contain contain-content data-autoscrolling:scrollbar-thumb-transparent data-autoscrolling:scrollbar-track-transparent",45 className46 )}47 {...props}48 />49 )50}5152function MessageScrollerContent({53 className,54 ...props55}: React.ComponentProps<typeof MessageScrollerPrimitive.Content>) {56 return (57 <MessageScrollerPrimitive.Content58 data-slot="message-scroller-content"59 className={cn("flex h-max min-h-full flex-col gap-6", className)}60 {...props}61 />62 )63}6465function MessageScrollerItem({66 className,67 scrollAnchor = false,68 ...props69}: React.ComponentProps<typeof MessageScrollerPrimitive.Item>) {70 return (71 <MessageScrollerPrimitive.Item72 data-slot="message-scroller-item"73 scrollAnchor={scrollAnchor}74 className={cn(75 "min-w-0 shrink-0 [contain-intrinsic-size:auto_10rem] [content-visibility:auto]",76 className77 )}78 {...props}79 />80 )81}8283function MessageScrollerButton({84 direction = "end",85 className,86 children,87 render,88 variant = "secondary",89 size = "icon-sm",90 ...props91}: React.ComponentProps<typeof MessageScrollerPrimitive.Button> &92// … truncated
What it pulls in
npm packages
Other registry items
Files it writes
More from neon-ui
All 77 items| Component | Registry | Kind | Access | Installs | Command |
|---|---|---|---|---|---|
| ActivityFeedactivity-feed | neon-ui | Components | Free | 2 deps | |
| AgentChatagent-chat | neon-ui | Components | Free | 6 deps | |
| AnimatedWashanimated-wash | neon-ui | Components | Free | no deps · 2 files | |
| ApiKeyListapi-key-list | neon-ui | Components | Free | 2 deps | |
| AppCardapp-card | neon-ui | Components | Free | 2 deps | |
| AppCreatorapp-creator | neon-ui | Components | Free | 2 deps | |
| AuthFormauth-form | neon-ui | Components | Free | no deps | |
| AutoscaleChartautoscale-chart | neon-ui | Components | Free | 1 dep |
