Files
MealQuest/web/src/ui/Skeleton.tsx
T
dev_agent 732aa92a8c
CI / ci (push) Successful in 1m30s
Sheet, ErrorBanner, Skeleton and EmptyState (#36)
Co-authored-by: dev_agent <dev_agent@cubecraftlabs.com>
Co-committed-by: dev_agent <dev_agent@cubecraftlabs.com>
2026-10-03 18:22:59 -04:00

13 lines
605 B
TypeScript

import type { ComponentPropsWithRef } from 'react'
import styles from './Skeleton.module.css'
export type SkeletonProps = Omit<ComponentPropsWithRef<'div'>, 'children'>
// Loading placeholder: a pill in --color-surface with a 1.2 s opacity pulse.
// Full width and 16 px tall by default; size it with className or style.
// Hidden from assistive technology — announce loading on the container.
export function Skeleton({ className, ...rest }: SkeletonProps) {
const classes = [styles.skeleton, className].filter(Boolean).join(' ')
return <div aria-hidden="true" className={classes} {...rest} />
}