Animated Form
forgeui/animated-formFreeComponent
Animated form mimicking account creation with progressive name/password animation and completion checkmarks.
Live preview
live · rendered by the registry
Rendered by ForgeUI on their own page — this is the component running, not a screenshot of it.Install it
npx shadcn@latest add https://forgeui.in/r/animated-form.jsonSource
1"use client";23import { cn } from "@/lib/utils";4import { motion } from "motion/react";5import { FaGithub } from "react-icons/fa6";6import { useEffect, useState } from "react";7import { IoMdCheckmark } from "react-icons/io";89type AnimatedFormProps = {10 delay?: number;11 name?: string;12};1314const AnimatedForm = ({15 delay = 7000,16 name = "Alex Morgan",17}: AnimatedFormProps) => {18 const [animationKey, setAnimationKey] = useState(0);1920 const delayTime = Math.max(delay, 7000);2122 useEffect(() => {23 const interval = setInterval(() => {24 setAnimationKey((prev) => prev + 1);25 }, delayTime);2627 return () => clearInterval(interval);28 }, [delayTime]);2930 return <Animatedform key={animationKey} name={name} />;31};3233export default AnimatedForm;3435const Animatedform = ({ name }: { name: string }) => {36 const password = "********";37 const circleLength = 2 * Math.PI * 50;3839 const nameAnimationDuration = Math.ceil(name.length / 5);40 const passwordAnimationDuration = 2;41 const nameStaggerDelay = nameAnimationDuration / name.length;42 const passwordStaggerDelay = passwordAnimationDuration / password.length;4344 const icons = [45 {46 icon: <FaGithub className="text-primary size-6" />,47 key: "github",48 },49 {50 icon: <ShopifyIcon className="size-6" />,51 key: "shopify",52 },53 {54 icon: <TwitchIcon className="size-6" />,55 key: "twitch",56 },57 {58 icon: <YoutubeIcon className="size-6" />,59 key: "youtube",60 },61 ];6263 return (64 <div className={cn("relative", "w-full max-w-85")}>65 <div className="w-full rounded-[12px] border border-neutral-200/60 p-1.5 dark:border-neutral-900/60">66 <div67 className={cn(68 "relative",69 "flex flex-col gap-1 divide-y divide-neutral-200 rounded-lg",70 "border border-neutral-200 dark:divide-neutral-900 dark:border-neutral-900",71 )}72 >73 <div74 className={cn(75 "px-3 pt-3 pb-2 text-[14px] leading-4 tracking-wide text-transparent",76 "bg-linear-to-r from-neutral-700 to-neutral-300 bg-clip-text dark:from-neutral-400 dark:to-neutral-700",77 )}78 >79 Create Account80 </div>81 <div className="flex flex-col gap-2 p-2">82 <div83 className={cn(84 "w-full rounded-md border p-2",85 "flex items-center justify-between gap-4",86// … truncated
Files it writes
More from ForgeUI
All 28 items| Component | Registry | Kind | Access | Installs | Command |
|---|---|---|---|---|---|
| Animated OTPanimated-otp | ForgeUI | Components | Free | no deps | |
| Animated Tabsanimated-tabs | ForgeUI | Components | Free | no deps | |
| Auralisauralis | ForgeUI | Components | Free | no deps | |
| Bot Detectionbot-detection | ForgeUI | Components | Free | no deps | |
| Chromatic Fluidchromatic-fluid | ForgeUI | Components | Free | no deps | |
| Cloudscapecloudscape | ForgeUI | Components | Free | no deps | |
| Cosmicriftcosmicrift | ForgeUI | Components | Free | no deps | |
| Expandable Cardexpandable-card | ForgeUI | Components | Free | no deps |
