UNPKG

threed-garden

Version:

ThreeD Garden: WebGL 3D Environment Interface for Next.JS React TypeScript Three.JS React-Three Physics, 2D Paper.JS; APIs: Apollo GraphQL, WordPress; CSS: Tailwind, Radix-UI; Libraries: FarmBot 3D; AI: OpenAI, DeepSeek

30 lines (25 loc) 803 B
import { useRef, useState } from 'react' import { useFrame } from '@react-three/fiber' import { Box as NativeBox } from '@react-three/drei' export default function Box(props) { const mesh = useRef(null) const [hovered, setHover] = useState(false) const [active, setActive] = useState(false) useFrame(() => (mesh.current.rotation.x = mesh.current.rotation.y += 0.01)) return ( <NativeBox args={[1, 1, 1]} {...props} ref={mesh} scale={active ? [6, 6, 6] : [5, 5, 5]} onClick={() => setActive(!active)} onPointerOver={() => setHover(true)} onPointerOut={() => setHover(false)} > <meshStandardMaterial attach="material" color={hovered ? '#2b6c76' : '#720b23'} /> </NativeBox> ) }