Reading-progress indicator — fixed bar or circular ring — driven by scroll position via useSmoothScroll, with spring smoothing.
npx shadcn@latest add @beui/scroll-progress
scroll-progress