brand-lmstudio-icon
itshover/brand-lmstudio-iconFreeComponent
itshover publishes no description for this item.
Install it
npx shadcn@latest add https://itshover.com/r/brand-lmstudio-icon.jsonSource
1import { forwardRef, useImperativeHandle, useCallback } from "react";2import type { AnimatedIconHandle, AnimatedIconProps } from "./types";3import { motion, useAnimate } from "motion/react";45const lines = [6 ".lm-line-1",7 ".lm-line-2",8 ".lm-line-3",9 ".lm-line-4",10 ".lm-line-5",11 ".lm-line-6",12];1314const BrandLmStudioIcon = forwardRef<AnimatedIconHandle, AnimatedIconProps>(15 (16 { size = 24, color = "currentColor", strokeWidth = 1, className = "" },17 ref,18 ) => {19 const [scope, animate] = useAnimate();2021 const start = useCallback(() => {22 lines.forEach((line, i) => {23 const strength = 1 + i * 0.06;24 animate(25 line,26 {27 scaleX: [1, strength, 0.9, strength * 0.95, 1],28 },29 {30 duration: 1.4,31 delay: i * 0.08,32 ease: "easeInOut",33 repeat: Infinity,34 },35 );36 });37 }, [animate]);3839 const stop = useCallback(() => {40 animate(41 lines.join(", "),42 { scaleX: 1 },43 { duration: 0.2, ease: "easeOut" },44 );45 }, [animate]);4647 useImperativeHandle(48 ref,49 () => ({50 startAnimation: start,51 stopAnimation: stop,52 }),53 [start, stop],54 );5556 return (57 <motion.svg58 ref={scope}59 width={size}60 height={size}61 viewBox="0 0 24 24"62 fill={color}63 strokeWidth={strokeWidth}64 className={className}65 xmlns="http://www.w3.org/2000/svg"66 onHoverStart={start}67 onHoverEnd={stop}68 >69 <title>LM Studio</title>7071 <motion.path72 className="lm-line-1"73 style={{ transformBox: "fill-box", transformOrigin: "center" }}74 d="M2.84 2a1.273 1.273 0 100 2.547h10.287a1.274 1.274 0 000-2.547H2.84z"75 />7677 <motion.path78 className="lm-line-2"79 style={{ transformBox: "fill-box", transformOrigin: "center" }}80 d="M7.935 5.33a1.273 1.273 0 000 2.548H18.22a1.274 1.274 0 000-2.547H7.935z"81 />8283 <motion.path84 className="lm-line-3"85 style={{ transformBox: "fill-box", transformOrigin: "center" }}86 d="M3.624 9.935c0-.704.57-1.274 1.274-1.274h10.286a1.273 1.273 0 010 2.547H4.898c-.703 0-1.274-.57-1.274-1.273z"87 />8889 <motion.path90 className="lm-line-4"91 style={{ transformBox: "fill-box", transformOrigin: "center" }}92// … 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 |
