@react-three/uikit-default
Version:
Default (shadcn) kit for @react-three/uikit
15 lines (14 loc) • 687 B
JavaScript
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 }));
});