This component no longer exists. It was in atlas-ui’s manifest when we first indexed it and is not there now — the registry served its inventory on 2026-08-13 and this item was not on it. The install command below will fail. It is kept here because a tutorial somewhere still tells people to run it.
Dot And Circle Mouse Trailer
atlas-ui/dot-and-circle-mouse-trailerRemovedComponent
A simple Lazy Dot and Circle Mouse Trailer
Live preview
live · rendered by the registry
Rendered by atlas-ui on their own page — this is the component running, not a screenshot of it.Install it
npx shadcn@latest add https://atlasui.dev/r/dot-and-circle-mouse-trailer.jsonSource
1"use client";23import React, { useEffect, useState } from "react";45import { motion, useMotionValue, useSpring } from "motion/react";67export const DotAndCircleMouseTrailer = () => {8 const [isVisible, setIsVisible] = useState(false);910 // Cursor Dot11 const mouse = {12 x: useMotionValue(0),13 y: useMotionValue(0),14 };1516 const mouseMove = (e: any) => {17 const { clientX, clientY } = e;18 mouse.x.set(clientX - 4);19 mouse.y.set(clientY - 4);20 setIsVisible(true);21 };2223 const smoothOptions = {24 damping: 20,25 stiffness: 300,26 mass: 0.5,27 };2829 const smoothMouse = {30 x: useSpring(mouse.x, smoothOptions),31 y: useSpring(mouse.y, smoothOptions),32 };3334 // Cursor Outline35 const mouseOutline = {36 _x: useMotionValue(0),37 _y: useMotionValue(0),38 };3940 const outlineMouse = (e: any) => {41 const { clientX, clientY } = e;42 mouseOutline._x.set(clientX - 40);43 mouseOutline._y.set(clientY - 40);44 };4546 const outlineOptions = {47 damping: 10,48 stiffness: 50,49 mass: 0.5,50 };51 const smoothOutline = {52 _x: useSpring(mouseOutline._x, outlineOptions),53 _y: useSpring(mouseOutline._y, outlineOptions),54 };5556 useEffect(() => {57 window.addEventListener("mousemove", mouseMove);58 window.addEventListener("mousemove", outlineMouse);5960 return () => {61 window.removeEventListener("mousemove", mouseMove);62 window.removeEventListener("mousemove", outlineMouse);63 };64 }, []);6566 return (67 <motion.div68 className={`${69 isVisible ? "hidden md:block" : "hidden"70 } pointer-events-none fixed top-0 left-0 z-50 h-20 w-20 rounded-full border border-black dark:border-white`}71 style={{72 left: smoothOutline._x,73 top: smoothOutline._y,74 }}75 >76 <motion.div77 className="pointer-events-none fixed top-0 left-0 hidden h-2 w-2 rounded-full bg-black md:block dark:bg-white"78 style={{79 left: smoothMouse.x,80 top: smoothMouse.y,81 }}82 />83 </motion.div>84 );85};
What it pulls in
npm packages
