Scroll Progress Bar
Scroll Progress Bar é um componente de marquee para React e Tailwind CSS, da biblioteca Motion Primitives, com licença MIT. Copia e cola no teu projeto.
Motion Primitives
MIT
marquee
O que é
Scroll Progress Bar é um componente de marquee para React e Tailwind CSS, da biblioteca Motion Primitives, com licença MIT. Copia e cola no teu projeto.
Como usar
Abre o componente no catálogo, carrega em copiar, e cola no teu projeto. O prompt copiado leva o código e as regras para o teu agente o reproduzir sem alterar nada.
Cinco cópias grátis por mês. Sem cartão.
Precisa de
npm i motion
Licença
Este componente vem de Motion Primitives e é redistribuído sob a licença MIT, que permite uso comercial. O aviso de copyright viaja com o código.
Scroll Progress Bar
'use client';
import { motion, SpringOptions, useScroll, useSpring } from 'motion/react';
import { cn } from '@/lib/utils';
import { RefObject } from 'react';
export type ScrollProgressProps = {
className?: string;
springOptions?: SpringOptions;
containerRef?: RefObject<HTMLDivElement>;
};
const DEFAULT_SPRING_OPTIONS: SpringOptions = {
stiffness: 200,
damping: 50,
restDelta: 0.001,
};
export function ScrollProgress({
className,
springOptions,
containerRef,
}: ScrollProgressProps) {
const { scrollYProgress } = useScroll({
container: containerRef,
layoutEffect: Boolean(containerRef?.current),
});
const scaleX = useSpring(scrollYProgress, {
...DEFAULT_SPRING_OPTIONS,
...(springOptions ?? {}),
});
return (
<motion.div
className={cn('inset-x-0 top-0 h-1 origin-left', className)}
style={{
scaleX,
}}
/>
);
}