A progressive image loader — skeleton, blur-up or color placeholder, a 400ms cross-fade on load and an error panel when the URL fails.
npx shadcn@latest add @zyeon/image-placeholderZyeon UI limits how often it can be asked, and Image Placeholder hasn't had its turn. Its source will show here once it has.