Usage
base64 and mediaType map to its fields.aspectRatio.url wins. An empty url falls through to base64.mediaType defaults to image/png, and is also the fallback for an empty one. It is trimmed, lower-cased and cut at the first ; before it is put in the data URL (GI-7), so a file part's Image/PNG; charset=utf-8 works as is. Image rejects any other data: URL in development, so pass an image/* type.http(s) URLs are allowed (Image's allowRemoteSource), because a generated picture is usually hosted elsewhere. blob: URLs are rejected by Image in development.fit-content wide, capped at its container, with a medium radius, a subtle 1px edge, and overflow: hidden. A small picture keeps its natural size; a wide one shrinks and keeps its ratio. The picture is drawn with object-fit: contain.
A meaningful picture needs alt, typed LocalizedMessage. A decorative one passes decorative instead and gets an empty alt and aria-hidden. The type allows exactly one of the two.