Declarative custom element — minimal markup on the left, the live element on the right. Tip: click any deck to fluently toggle compact↔expanded (on by default; opt out with click-toggle="false"). ← all demos
<script type="module" src="https://cdn.jsdelivr.net/npm/[email protected]/dist/vexy-stax.element.js"></script> — these pages load the co-located local bundle, but the same code works verbatim from jsDelivr.slides attribute)<vexy-stax
slides="airbl-lores/airbl-020-source.png
airbl-lores/airbl-030-pink.png
airbl-lores/airbl-040-stars.png
airbl-lores/airbl-050-backdrop.png"
view="compact"
mode="playable">
</vexy-stax><vexy-stax
scene="airbl-demo.scene.json"
view="expanded"
mode="static">
</vexy-stax><vexy-stax
scene="airbl-demo.scene.json"
view="compact"
mode="playable">
</vexy-stax><script type="application/json"> child (no external scene URL)<vexy-stax view="compact" mode="playable">
<script type="application/json">
{
"version": 1,
"transition": { "kind": "expand_collapse" },
"slides": [
{ "src": "airbl-lores/airbl-020-source.png" },
{ "src": "airbl-lores/airbl-030-pink.png" },
{ "src": "airbl-lores/airbl-040-stars.png" },
{ "src": "airbl-lores/airbl-050-backdrop.png" }
]
}
</script>
</vexy-stax>aspect attribute (here 3, i.e. 3:1)<vexy-stax
scene="airbl-demo.scene.json"
view="expanded"
aspect="3">
</vexy-stax><vexy-stax
scene="airbl-demo.scene.json"
view="compact"
buttons="toggle">
</vexy-stax>--vexy-btn-*)<vexy-stax
scene="airbl-demo.scene.json" view="compact"
buttons="pair"
explain-label="Break apart" preview-label="Reassemble"
buttons-position="top"
style="--vexy-btn-color:#fff;
--vexy-btn-bg:rgba(0,0,0,0.45);
--vexy-btn-blur:14px">
</vexy-stax>