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.
Box Reveal
atlas-ui/box-revealRemovedComponent
A smooth reveal animation that slides a colored overlay away to introduce content as it enters the viewport.
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/box-reveal.jsonSource
1"use client";23import { useEffect, useRef } from "react";45import { motion, useAnimation, useInView } from "motion/react";67import { cn } from "@/lib/utils";89interface BoxRevealProps {10 children: React.ReactNode;11 side?: "left" | "right";12 width?: "fit-content" | "full";13 color?: string;14 className?: string;15}1617export const BoxReveal = ({18 children,19 side = "left",20 width = "fit-content",21 color = "#FACC15",22 className,23}: BoxRevealProps) => {24 const ref = useRef(null);25 const isInView = useInView(ref, { once: true });2627 const contentAnimation = useAnimation();28 const overlayAnimation = useAnimation();2930 useEffect(() => {31 if (isInView) {32 contentAnimation.start("visible");33 overlayAnimation.start("visible");34 }35 }, [isInView, contentAnimation, overlayAnimation]);3637 return (38 <div39 ref={ref}40 className={cn(41 "relative overflow-hidden",42 width === "full" ? "w-full" : "w-fit",43 className44 )}45 >46 <motion.div47 variants={{48 hidden: { opacity: 0, y: 75 },49 visible: { opacity: 1, y: 0 },50 }}51 initial="hidden"52 animate={contentAnimation}53 transition={{ duration: 0.5, delay: 0.35 }}54 viewport={{ once: true }}55 >56 {children}57 </motion.div>5859 <motion.div60 variants={{61 hidden: side === "right" ? { right: 0 } : { left: 0 },62 visible: side === "right" ? { right: "100%" } : { left: "100%" },63 }}64 initial="hidden"65 animate={overlayAnimation}66 transition={{ duration: 0.5, ease: "easeIn" }}67 viewport={{ once: true }}68 className="pointer-events-none absolute inset-0 top-1 bottom-1 z-20"69 style={{70 background: color,71 }}72 />73 </div>74 );75};
What it pulls in
npm packages
Other registry items
