import { defineRecipe } from '@pandacss/dev' export const skeleton = defineRecipe({ className: 'skeleton', jsx: ['Skeleton', 'SkeletonCircle', 'SkeletonText'], base: {}, variants: { loading: { true: { borderRadius: 'l2', boxShadow: 'none', backgroundClip: 'padding-box', cursor: 'default', color: 'transparent', pointerEvents: 'none', userSelect: 'none', flexShrink: '0', '&::before, &::after, *': { visibility: 'hidden', }, }, false: { background: 'unset', animation: 'fade-in var(--fade-duration, 0.1s) ease-out !important', }, }, circle: { true: { display: 'flex', alignItems: 'center', justifyContent: 'center', flex: '0 0 auto', borderRadius: '9999px', }, }, variant: { pulse: { background: 'gray.subtle.bg.active', animation: 'pulse', animationDuration: 'var(--duration, 1.2s)', }, shine: { '--animate-from': '200%', '--animate-to': '-200%', '--start-color': 'colors.gray.subtle.bg', '--end-color': 'colors.gray.subtle.bg.active', backgroundImage: 'linear-gradient(270deg,var(--start-color),var(--end-color),var(--end-color),var(--start-color))', backgroundSize: '400% 100%', animation: 'bg-position var(--duration, 5s) ease-in-out infinite', }, none: { animation: 'none', }, }, }, defaultVariants: { variant: 'pulse', loading: true, }, })