ScrollBars

Interactive

Installation

npx shadcn@latest add @evilbuttons/scroll-bars

Usage

[]txt
"use client";

import { useScroll, motion } from "motion";
import { ScrollBars } from "@/components/evil-buttons/scroll-bars";

export function ScrollBarsPreview() {
  const { scrollYProgress } = useScroll();

  return (
    <ScrollBars
      scrollYProgress={scrollYProgress}
      barCount={31}
      majorEvery={5}
    />
  );
}

Vertical Variant

ScrollBars Vertical

Interactive

[]txt
import { ScrollBarsVertical } from "@/components/evil-buttons/scroll-bars";

<ScrollBarsVertical
  scrollYProgress={scrollYProgress}
  barCount={31}
  majorEvery={5}
/>

API Reference

Props

PropTypeDefaultDescription
scrollYProgressMotionValue<number>RequiredA Motion value from useScroll
roundedbooleanfalseWhether to use rounded corners
barCountnumber51Number of bar indicators
majorEverynumber5Every Nth bar is larger
classNamestring-Additional className
accentClassNamestring-ClassName for the moving indicator