Welcome to Vanilla Breeze
This bell pulls live notifications from /go/notify/messages — the same contract documented at /docs/concepts/service-contracts/. Static articles like this one are the no-JS / no-backend fallback.
This bell pulls live notifications from /go/notify/messages — the same contract documented at /docs/concepts/service-contracts/. Static articles like this one are the no-JS / no-backend fallback.
A positioning helper for overlays, modals, and fixed UI elements. Uses CSS transforms for centering without requiring JavaScript calculations.
| Attribute | Values | Default | Description |
|---|---|---|---|
data-position |
center, top, bottom, start, end, top-start, top-end, bottom-start, bottom-end |
center |
Where to position the element within its container |
data-layout-fixed |
boolean | - | Uses fixed positioning instead of absolute |
data-margin |
s, m, l, xl |
- | Margin from edges when not centered |
data-contain |
boolean | - | Constrains size to viewport with overflow scroll |
The imposter positions itself within a positioned ancestor (or viewport when fixed).
<div style="position: relative; height: 200px;"> <layout-imposter> <div>Centered content</div> </layout-imposter></div>
The data-position attribute controls placement within the container.
<layout-imposter data-position="top" data-margin="s">...</layout-imposter><layout-imposter data-position="bottom" data-margin="s">...</layout-imposter><layout-imposter data-position="start" data-margin="s">...</layout-imposter><layout-imposter data-position="end" data-margin="s">...</layout-imposter>
<layout-imposter data-position="top-start" data-margin="s">...</layout-imposter><layout-imposter data-position="top-end" data-margin="s">...</layout-imposter><layout-imposter data-position="bottom-start" data-margin="s">...</layout-imposter><layout-imposter data-position="bottom-end" data-margin="s">...</layout-imposter>
<div style="position: relative; display: inline-block;"> <button type="button">Notifications</button> <layout-imposter data-position="top-end"> <span class="badge">3</span> </layout-imposter></div>
<div style="position: relative;"> <img src="image.jpg" alt="Photo" /> <layout-imposter data-position="bottom-start" data-margin="m"> <span class="caption">Photo caption</span> </layout-imposter></div>
<div style="position: relative;"> <layout-card data-variant="outlined" data-padding="l"> <strong>Project Alpha</strong> <p>Last updated yesterday</p> </layout-card> <layout-imposter data-position="top-end" data-margin="m"> <span class="status-badge">Active</span> </layout-imposter></div>
<layout-cover> - Full-height vertically centered layout<layout-center> - Horizontally centered container<layout-badge> - Badge component