// placeholder.jsx — Subtly striped placeholder with a mono label. // No hand-drawn SVG imagery. Just tone + type. function Placeholder({ label = "image", tint, bg, ratio = "16/9", style = {}, kind = "stripe" }) { const fg = tint || "rgba(0,0,0,0.28)"; const bgColor = bg || "rgba(0,0,0,0.04)"; const stripe = `repeating-linear-gradient( 135deg, ${bgColor} 0px, ${bgColor} 14px, color-mix(in oklch, ${fg} 14%, transparent) 14px, color-mix(in oklch, ${fg} 14%, transparent) 15px )`; const dots = `radial-gradient( color-mix(in oklch, ${fg} 26%, transparent) 1px, transparent 1.5px )`; const bgImage = kind === "dots" ? dots : stripe; const bgSize = kind === "dots" ? "18px 18px" : "auto"; return (
{label}
); } window.Placeholder = Placeholder;