{ "$schema": "https://ui.shadcn.com/schema/registry-item.json", "name": "holographic-wall-shadcnui", "type": "registry:ui", "title": "Holographic Wall", "description": "Black wall with Pharaonic hieroglyphs and golden cursor light reflection", "dependencies": [ "framer-motion", "react" ], "files": [ { "path": "@uitripled/react-shadcn/src/components/motion-core/holographic-wall.tsx", "content": "\"use client\";\n\nimport { motion } from \"framer-motion\";\nimport { MouseEvent, useEffect, useState } from \"react\";\n\ntype HolographicWallProps = {\n intensity?: number;\n radius?: number;\n};\n\n// Pharaonic hieroglyphic symbols\nconst HIEROGLYPHS = [\n \"𓄿\",\n \"𓇋\",\n \"𓅱\",\n \"𓃀\",\n \"𓊪\",\n \"𓆑\",\n \"𓅓\",\n \"𓈖\",\n \"𓂋\",\n \"𓉔\",\n \"𓎛\",\n \"𓐍\",\n \"𓄡\",\n \"𓋴\",\n \"𓈙\",\n \"𓈎\",\n \"𓎡\",\n \"𓎼\",\n \"𓏏\",\n \"𓂧\",\n];\n\nexport function HolographicWall({\n intensity = 0.8,\n radius = 200,\n}: HolographicWallProps) {\n const [mousePosition, setMousePosition] = useState<{\n x: number;\n y: number;\n } | null>(null);\n const [letters, setLetters] = useState<\n Array<{ char: string; x: number; y: number }>\n >([]);\n\n useEffect(() => {\n // Generate random letters across the wall\n const gridSize = 20;\n const spacingX = window.innerWidth / gridSize;\n const spacingY = 400 / gridSize;\n const newLetters: Array<{ char: string; x: number; y: number }> = [];\n\n for (let i = 0; i < gridSize; i++) {\n for (let j = 0; j < gridSize; j++) {\n newLetters.push({\n char: HIEROGLYPHS[Math.floor(Math.random() * HIEROGLYPHS.length)],\n x: i * spacingX,\n y: j * spacingY,\n });\n }\n }\n setLetters(newLetters);\n }, []);\n\n const handleMouseMove = (e: MouseEvent) => {\n const rect = e.currentTarget.getBoundingClientRect();\n const x = e.clientX - rect.left;\n const y = e.clientY - rect.top;\n setMousePosition({ x, y });\n };\n\n const handleMouseLeave = () => {\n setMousePosition(null);\n };\n\n return (\n \n {/* Pharaonic hieroglyphs on the wall */}\n
\n {letters.map((letter, index) => {\n const distance = mousePosition\n ? Math.sqrt(\n Math.pow(letter.x - mousePosition.x, 2) +\n Math.pow(letter.y - mousePosition.y, 2)\n )\n : Infinity;\n\n const letterIntensity =\n mousePosition && distance < radius\n ? Math.max(0, 1 - distance / radius) * intensity\n : 0;\n\n return (\n \n {letter.char}\n \n );\n })}\n
\n\n {/* Golden cursor light reflection - only around cursor */}\n {mousePosition && (\n \n {/* Additional halo effect for extra glow */}\n \n \n )}\n \n );\n}\n", "type": "registry:ui", "target": "components/uitripled/holographic-wall-shadcnui.tsx" } ] }