UNPKG

@react-three/uikit-default

Version:

Default (shadcn) kit for @react-three/uikit

15 lines (14 loc) 687 B
import { Container } from '@react-three/uikit'; import React, { forwardRef, useMemo, useRef } from 'react'; import { borderRadius, colors } from './theme.js'; import { useFrame } from '@react-three/fiber'; import { signal } from '@preact/signals-core'; export const Skeleton = forwardRef((props, ref) => { const opacity = useMemo(() => signal(1), []); const time = useRef(0); useFrame((_, delta) => { opacity.value = Math.cos(time.current * Math.PI) * 0.25 + 0.75; time.current += delta; }); return (React.createElement(Container, { borderRadius: borderRadius.md, backgroundColor: colors.muted, backgroundOpacity: opacity, ref: ref, ...props })); });