PRO

Vertical Dial Nav

Scroll-linked section navigation with distance-faded labels. The active section gains weight and scale as it crosses 30% of the viewport. Click a label to scroll to its section. Pure React, with support for nested scroll containers.

Component

AI Coder

3D Generalist

Digital Artist

Product Designer

Detail Obessed

Curious

Active label
Fade distance2
Label spacing12
Install
npx shadcn@latest add @compronents/vertical-dial-nav

Installs from ui.aryank.space. Needs a registry token and a one-time @compronents entry in components.json. The docs walk through both.

Files
Checking access…
API
PropTypeDefaultDescription
sectionsreadonly DialSection[]—Section IDs and labels, in scroll order. IDs must match elements inside the scroll root.
scrollRootRefObject<HTMLElement | null>—Optional section scroll container. Omit to observe window scrolling.
activeColorstringrgb(26, 26, 26)Selected label color.
fadeDistancenumber2Number of neighboring labels before opacity reaches 0.2.
fontCSSProperties—Label font styling. Defaults to 16px Geist with -0.05em letter spacing.
dialWidthnumber180Navigation width in pixels.
dialRadiusnumber0Clipping radius in pixels.
itemSpacingnumber12Vertical gap between labels in pixels.
alignment"left" | "center" | "right""right"Label alignment.
styleCSSProperties—Additional navigation container styling. Give its parent a height.
classNamestring—Additional navigation class.
Customize
activeColorcolor

Selected label color.

fadeDistanceslider

Neighboring label fade range.

itemSpacingslider

Vertical label spacing.

Dependencies
None.