brand-windows-icon
itshover/brand-windows-iconFreeComponent
itshover publishes no description for this item.
Install it
npx shadcn@latest add https://itshover.com/r/brand-windows-icon.jsonSource
1import { forwardRef, useImperativeHandle } from "react";2import type { AnimatedIconHandle, AnimatedIconProps } from "./types";3import { motion, useAnimate } from "motion/react";45const BrandWindowsIcon = forwardRef<AnimatedIconHandle, AnimatedIconProps>(6 (7 { size = 24, color = "currentColor", strokeWidth = 1, className = "" },8 ref,9 ) => {10 const [scope, animate] = useAnimate();1112 const start = async () => {13 // Stage 1: All windows explode outward (Windows key press!)14 await animate(15 "path:nth-of-type(2)", // Top-right16 {17 x: [0, 8, 6],18 y: [0, -8, -6],19 rotate: [0, 15, 10],20 scale: [1, 1.1, 1.05],21 },22 { duration: 0.4, ease: [0.34, 1.56, 0.64, 1] },23 );2425 animate(26 "path:nth-of-type(3)", // Bottom-left27 {28 x: [0, -8, -6],29 y: [0, 8, 6],30 rotate: [0, -15, -10],31 scale: [1, 1.1, 1.05],32 },33 { duration: 0.4, ease: [0.34, 1.56, 0.64, 1] },34 );3536 animate(37 "path:nth-of-type(4)", // Top-left38 {39 x: [0, -8, -6],40 y: [0, -8, -6],41 rotate: [0, -15, -10],42 scale: [1, 1.1, 1.05],43 },44 { duration: 0.4, ease: [0.34, 1.56, 0.64, 1] },45 );4647 await animate(48 "path:nth-of-type(5)", // Bottom-right49 {50 x: [0, 8, 6],51 y: [0, 8, 6],52 rotate: [0, 15, 10],53 scale: [1, 1.1, 1.05],54 },55 { duration: 0.4, ease: [0.34, 1.56, 0.64, 1] },56 );5758 // Stage 2: 3D flip the entire icon59 await animate(60 scope.current,61 {62 rotateY: [0, 180, 360],63 scale: [1, 1.15, 1],64 },65 { duration: 0.6, ease: "easeInOut" },66 );6768 // Stage 3: Windows snap back together with bounce69 animate(70 "path:nth-of-type(2)",71 { x: 0, y: 0, rotate: 0, scale: 1 },72 { duration: 0.5, ease: [0.34, 1.56, 0.64, 1] },73 );7475 animate(76 "path:nth-of-type(3)",77 { x: 0, y: 0, rotate: 0, scale: 1 },78 { duration: 0.5, ease: [0.34, 1.56, 0.64, 1] },79 );8081 animate(82 "path:nth-of-type(4)",83 { x: 0, y: 0, rotate: 0, scale: 1 },84 { duration: 0.5, ease: [0.34, 1.56, 0.64, 1] },85 );8687 await animate(88 "path:nth-of-type(5)",89 { x: 0, y: 0, rotate: 0, scale: 1 },90 { duration: 0.5, ease: [0.34, 1.56, 0.64, 1] },91 );9293// … truncated
What it pulls in
npm packages
Files it writes
More from itshover
All 263 items| Component | Registry | Kind | Access | Installs | Command |
|---|---|---|---|---|---|
| accessibility-iconaccessibility-icon | itshover | Components | Free | 1 dep · 2 files | |
| airplane-iconairplane-icon | itshover | Components | Free | 1 dep · 2 files | |
| alarm-clock-plus-iconalarm-clock-plus-icon | itshover | Components | Free | 1 dep · 2 files | |
| align-center-iconalign-center-icon | itshover | Components | Free | 1 dep · 2 files | |
| align-vertical-space-around-iconalign-vertical-space-around-icon | itshover | Components | Free | 1 dep · 2 files | |
| ambulance-iconambulance-icon | itshover | Components | Free | 1 dep · 2 files | |
| ampersand-iconampersand-icon | itshover | Components | Free | 1 dep · 2 files | |
| angry-iconangry-icon | itshover | Components | Free | 1 dep · 2 files |
