Image
Displays an image from a project asset or URL, with fit control, srcSet support and load/error signals.
Image renders an HTML img element. src takes a project asset path or a full URL (relative paths are resolved against the app's base URL); srcSet optionally provides responsive candidate images and alt the accessibility text. When sizeMode gives the image an explicit size, objectFit (Image Fit) chooses how the picture fills that box ('contain' by default, 'cover' for thumbnails). onLoad and onError are signals that fire when the browser finishes or fails loading the current source. It cannot have children and supports hover visual states for per-state styling.
When to use it
Any bitmap content: photos, thumbnails, logos, user uploads (a cloud file output connects straight to src). For vector glyphs from an icon set use net.noodl.visual.icon; for a decorative background prefer a Group's background image/color so children can sit on top; for video use Video.
At a glance
| Category | Visual |
| Type name | Image |
| Available in | browser |
| SSR compatibility | safe |
| Provided by | noodl-viewer-react |
| Behaviour spec | version 6 (under the hood) |
Inputs
Values
| Name | Type | Default | Description |
|---|---|---|---|
acceptDrops | Boolean | false | Lets a Draggable element be dropped here, which reveals the Drop Zone outputs. The innermost zone under the pointer takes the drop |
acceptFileDrops | Boolean | false | Lets a file dragged from the desktop be dropped onto this element, which reveals the File Drop outputs below |
acceptKind | String | — | Comma-separated Drag Kinds this zone takes; leave blank to take any Draggable. A source of another kind never lights this zone up |
acceptedFileTypes | String | — | Comma-separated extensions or MIME types this element will take — ".png, .jpg" or "image/*"; leave blank to accept every file. A drop of nothing but rejected files fires Files Rejected instead of Files Dropped |
alignX | Enum (left, center, right) | — | Horizontal alignment of this element within the space its parent gives it |
alignY | Enum (top, center, bottom) | — | Vertical alignment of this element within the space its parent gives it |
alt | String | `` | The alt text is used by screen readers, or if the image can't be downloaded or displayed |
blockTouch | Boolean | — | Stops every pointer event that lands here from reaching the nodes this one sits inside. Blunt: it takes hover and pointer-down with it, so reach for Click Bubbling first if it is only clicks you want to keep in |
borderBottomColor | Color | — | Colour of the bottom edge only, overriding Border Color |
borderBottomLeftRadius | Number | — | Rounds the bottom-left corner only, overriding Corner Radius |
borderBottomRightRadius | Number | — | Rounds the bottom-right corner only, overriding Corner Radius |
borderBottomStyle | Enum (none, solid, dotted, dashed) | — | Line style for the bottom edge only, overriding Border Style; None hides that edge |
borderBottomWidth | Number | — | Thickness of the bottom edge in pixels, and it adds to the element's size |
borderColor | Color | #000000 | Colour of the border, which has no effect while Border Style is None |
borderLeftColor | Color | — | Colour of the left edge only, overriding Border Color |
borderLeftStyle | Enum (none, solid, dotted, dashed) | — | Line style for the left edge only, overriding Border Style; None hides that edge |
borderLeftWidth | Number | — | Thickness of the left edge in pixels, and it adds to the element's size |
borderRadius | Number | 0 | Rounds all four corners, except any corner that sets its own radius |
borderRightColor | Color | — | Colour of the right edge only, overriding Border Color |
borderRightStyle | Enum (none, solid, dotted, dashed) | — | Line style for the right edge only, overriding Border Style; None hides that edge |
borderRightWidth | Number |