header element
Introductory content for a page or a section; often the site header inside a component.
Renders
<header>Required
Nothing beyond
type.Native apps
Compiled native apps and server-driven apps
Syntax
header element
{ "type": "header" }An element lives in a screen's sections, another element's elements, a layout slot or a component root.
Properties
| Property | Type | Description |
|---|---|---|
elements | array of element | |
layout | object |
|
gap | string | |
content | string | literal text, or an expression starting with = ("=product.name") |
data | object |
|
item | element |
Plus the properties every element accepts: id, className, style, responsive, states, animation, visible, ariaLabel, attributes and more.
Example
header example
{
"type": "header",
"layout": { "align": "center", "justify": "between" },
"elements": [
{ "type": "link", "label": "Lumen & Oak", "target": "/", "className": "brand" },
{
"type": "link",
"label": "Sign in",
"target": "/login",
"visible": { "auth": "signed-out" }
}
]
}For a header with a collapsing menu use navbar; for the site-wide frame use a layout.
Expected output
The HTML IWC rendered for the example above (inside the page's content wrapper). Class names such as i807b63fc are generated per element for its scoped CSS.
Rendered HTML
<div class="iwc-page ipage" id="iwc-content">
<header class="iwc-header i5c7f5888">
<a class="iwc-link ide8237b3 brand" href="/">Lumen & Oak</a><a class="iwc-link i669abede" href="/login">Sign in</a>
</header>
</div>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.