scale-letter-text
eldoraui/scale-letter-textFreeComponent
A scale letter text component.
Live preview
live · rendered by the registry
Rendered by eldoraui on their own page — this is the component running, not a screenshot of it.Install it
npx shadcn@latest add https://eldoraui.site/r/scale-letter-text.jsonSource
1"use client"23import React, { useState } from "react"45interface ScaleLetterTextProps {6 text: string7 className?: string8}910export default function ScaleLetterText({11 text,12 className = "",13}: ScaleLetterTextProps) {14 const [hoveredIndex, setHoveredIndex] = useState<number>(-1)1516 const getLetterStyle = (index: number) => {17 const isHovered = hoveredIndex === index18 const distance = hoveredIndex >= 0 ? Math.abs(index - hoveredIndex) : 01920 let scale = 121 let translateY = 022 let rotateX = 023 let brightness = 12425 if (hoveredIndex >= 0) {26 if (isHovered) {27 scale = 1.428 translateY = -2029 rotateX = -1530 brightness = 1.331 } else if (distance === 1) {32 scale = 1.233 translateY = -1034 rotateX = -835 brightness = 1.1536 } else if (distance === 2) {37 scale = 1.138 translateY = -539 rotateX = -440 brightness = 1.0841 }42 }4344 return {45 transform: `46 perspective(1000px)47 translateY(${translateY}px)48 rotateX(${rotateX}deg)49 scale(${scale})50 translateZ(${isHovered ? 30 : distance <= 2 ? 15 : 0}px)51 `,52 filter: `brightness(${brightness})`,53 textShadow:54 distance <= 255 ? "0 2px 6px rgba(0,0,0,0.15)"56 : "0 1px 2px rgba(0,0,0,0.08)",57 transition: "all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275)",58 zIndex: isHovered ? 10 : distance <= 2 ? 5 : 1,59 marginRight: "0.1em",60 }61 }6263 return (64 <div className={className}>65 {text.split("").map((letter, index) => (66 <span67 key={index}68 className="relative inline-block cursor-pointer"69 style={getLetterStyle(index)}70 onMouseEnter={() => setHoveredIndex(index)}71 onMouseLeave={() => setHoveredIndex(-1)}72 >73 <span className="font-bold">74 {letter === " " ? "\u00A0" : letter}75 </span>76 </span>77 ))}78 </div>79 )80}
What it pulls in
npm packages
Files it writes
More from eldoraui
All 115 items| Component | Registry | Kind | Access | Installs | Command |
|---|---|---|---|---|---|
| animated-badgeanimated-badge | eldoraui | Components | Free | 2 deps | |
| animated-frameworksanimated-frameworks | eldoraui | Components | Free | 2 deps | |
| animated-grid-patternanimated-grid-pattern | eldoraui | Components | Free | 3 deps | |
| animated-listanimated-list | eldoraui | Components | Free | 1 dep | |
| animated-shiny-buttonanimated-shiny-button | eldoraui | Components | Free | 1 dep | |
| blur-in-textblur-in-text | eldoraui | Components | Free | 3 deps | |
| browserbrowser | eldoraui | Components | Free | 2 deps | |
| card-flip-hovercard-flip-hover | eldoraui | Components | Free | 1 dep |
