slot element
Marks where a component places the child elements it was given.
Renders
Required
root.Native apps
Compiled native apps and server-driven apps
Syntax
{ "type": "slot" }An element lives in a screen's sections, another element's elements, a layout slot or a component root.
Properties
| Property | Type | Description |
|---|---|---|
slot | string | in a component: the prop holding child elements |
Plus the properties every element accepts: id, className, style, responsive, states, animation, visible, ariaLabel, attributes and more.
Example
{
"type": "column",
"className": "stat",
"elements": [
{ "type": "text", "variant": "caption", "bind": "props.label" },
{ "type": "text", "variant": "h3", "bind": "props.value" },
{ "type": "slot" }
]
}This example is a component's root. A page using the component writes {"type": "component", "use": "stat.component.iwc", "props": {…}, "elements": [ … ]} and those elements appear where the slot is. slot names a prop that holds elements, for components with more than one slot.
Expected output
This example depends on project configuration (an API, a component or a widget file), so it is not rendered here; it is validated against the schema.
Data, conditions & styling
- Conditional rendering:
"visible": {"auth": "signed-in"},{"roles": ["admin"]}or an expression such as"=product.stock > 0". Decided on the server: hidden elements are never sent. - Data binding:
bindtakes text from data (name,user.name,props.title,params.slug,state.cart.count);bindsbinds attributes. Containers become data-driven withdata+item. See data binding. - Styling:
classNamefor your stylesheets,stylefor CSS in JSON,statesfor hover/focus/active,animationfor entrance motion. See the style property reference. - Responsive behaviour:
responsiveapplies CSS at or below a breakpoint ({"mobile": {"padding": "12px"}}); grids also takeresponsiveColumns.