Animated-Components
terminal animation
inspired by clerks website
1
2
3
4
5
6
{
"rateLimit": {
"limit": 10,
"interval": 1000
}
}
Rate limiting...
sk_TEwCE9AY9BFTq1XJdIO
dom@keyauth.dev
Rate Limits
Per IP, per user, per API key, or any identifier that matters to you. Enforced on the edge, as close to your users as possible, delivering fast and reliable rate limiting.
components/ui/animated.tsx
cracked
app/page.tsx
usage
"use client"import React, { useEffect, useRef } from "react";import { motion } from "framer-motion";export const AnimatedCircle: React.FC = () => {const canvasRef = useRef<HTMLCanvasElement>(null);useEffect(() => {const canvas = canvasRef.current;if (!canvas) return;const context = canvas.getContext("2d");if (!context) return; // Added null check for contextcanvas.width = 400;canvas.height = 300;const rectanglesPerRow = Math.floor((canvas.width - 5) / 5);const rectanglesPerColumn = Math.floor((canvas.height - 5) / 5);const totalRectangles = rectanglesPerRow * rectanglesPerColumn;const rectangles = Array.from({ length: totalRectangles }).map((_, index) => ({x: 5 + (index % rectanglesPerRow) * 5,y: 5 + Math.floor(index / rectanglesPerRow) * 5,width: 2,height: 2,opacity: 1,phase: Math.random() * Math.PI * 4,}),);function draw() {if (!context) return;if (!canvas) return;context.clearRect(0, 0, canvas.width, canvas.height);rectangles.forEach((rect) => {const time = (performance.now() / 1000) * 3;rect.opacity = 0.3 + 0.3 * Math.sin(time + rect.phase);context.fillStyle = `rgba(93, 227, 255, ${rect.opacity})`;context.fillRect(rect.x, rect.y, rect.width, rect.height);});requestAnimationFrame(draw);}draw();}, []);return (<motion.divclassName="group relative flex h-[300px] w-full max-w-[400px] items-center justify-center overflow-hidden rounded-2xl bg-[#212126]"whileHover="hover"><canvasref={canvasRef}className="opacity-0 transition-opacity duration-300 [mask-image:radial-gradient(circle,white,transparent_50%)] group-hover:opacity-100 group-hover:delay-600"/><motion.divclassName="absolute h-[120px] w-[120px] rounded-full border border-[rgba(93,228,255,0.3)] bg-transparent shadow-[0_0_10px_rgba(93,228,255,0.3)]"animate={{boxShadow: ["0 0 10px rgba(93,228,255,0.3)","0 5px 20px rgba(93,228,255,0.2)",],borderColor: ["rgba(93,228,255,0.3)", "rgba(93,228,255,0.5)"],}}transition={{ duration: 2, repeat: Infinity, repeatType: "reverse" }}variants={{hover: { opacity: 1, transition: { delay: 0.4 } },}}initial={{ opacity: 0 }}/><div className="absolute z-20 flex h-[120px] w-[120px] items-center justify-center overflow-hidden rounded-full border border-transparent bg-[rgba(0,0,0,0.5)] transition-all duration-500 group-hover:border-white/5 group-hover:shadow-[0_0_10px_rgba(255,255,255,0.1)]"><div className="h-[110px] w-[110px] rounded-full bg-[#212126]" /><motion.divclassName="absolute h-[80%] w-[20%] bg-white/10 blur-[20px]"initial={{ rotate: 80, x: -90, y: 0 }}variants={{hover: { x: 0, y: 0 },}}transition={{ duration: 0.5, ease: [0.68, 0.29, 0.005, 1.005] }}/></div><motion.svgviewBox="0 0 224 280"fill="none"aria-hidden="true"className="absolute right-0 h-[120%]"initial={{ x: 90 }}variants={{hover: { x: 200 },}}transition={{duration: 0.5,ease: [0.68, 0.29, 0.005, 1.005],delay: 0.4,}}><pathfill="#fff"fillOpacity="0.05"d="M8 .25a8 8 0 0 0-8 8v91.704c0 2.258.954 4.411 2.628 5.927l10.744 9.738A7.998 7.998 0 0 1 16 121.546v36.408a7.998 7.998 0 0 1-2.628 5.927l-10.744 9.738A7.998 7.998 0 0 0 0 179.546v92.204a8 8 0 0 0 8 8h308a8 8 0 0 0 8-8V8.25a8 8 0 0 0-8-8H8Z"/><pathstroke="#fff"stroke-opacity="0.05"d="M.5 99.954V8.25A7.5 7.5 0 0 1 8 .75h308a7.5 7.5 0 0 1 7.5 7.5v263.5a7.5 7.5 0 0 1-7.5 7.5H8a7.5 7.5 0 0 1-7.5-7.5v-92.204a7.5 7.5 0 0 1 2.464-5.557l10.744-9.737a8.5 8.5 0 0 0 2.792-6.298v-36.408a8.5 8.5 0 0 0-2.792-6.298l-10.744-9.737A7.5 7.5 0 0 1 .5 99.954Z"/></motion.svg><motion.svgviewBox="0 0 224 280"fill="none"aria-hidden="true"className="absolute left-0 h-[120%]"initial={{ x: -90, rotate: 180 }}variants={{hover: { x: -200, rotate: 180 },}}transition={{duration: 0.5,ease: [0.68, 0.29, 0.005, 1.005],delay: 0.4,}}><pathfill="#fff"fillOpacity="0.05"d="M8 .25a8 8 0 0 0-8 8v91.704c0 2.258.954 4.411 2.628 5.927l10.744 9.738A7.998 7.998 0 0 1 16 121.546v36.408a7.998 7.998 0 0 1-2.628 5.927l-10.744 9.738A7.998 7.998 0 0 0 0 179.546v92.204a8 8 0 0 0 8 8h308a8 8 0 0 0 8-8V8.25a8 8 0 0 0-8-8H8Z"/><pathstroke="#fff"stroke-opacity="0.05"d="M.5 99.954V8.25A7.5 7.5 0 0 1 8 .75h308a7.5 7.5 0 0 1 7.5 7.5v263.5a7.5 7.5 0 0 1-7.5 7.5H8a7.5 7.5 0 0 1-7.5-7.5v-92.204a7.5 7.5 0 0 1 2.464-5.557l10.744-9.737a8.5 8.5 0 0 0 2.792-6.298v-36.408a8.5 8.5 0 0 0-2.792-6.298l-10.744-9.737A7.5 7.5 0 0 1 .5 99.954Z"/></motion.svg></motion.div>);};