Loading...
Loading...
Use this skill when overlaying HTML elements on the PixiJS v8 canvas. Covers DOMContainer with element, anchor, and scene-graph-driven CSS transforms, the pixi.js/dom side-effect import, DOMPipe registration, visibility sync, pointer-events handling. Triggers on: DOMContainer, pixi.js/dom, DOMPipe, HTML overlay, input on canvas, iframe overlay, DOMContainerOptions, element, anchor, constructor options.
npx skill4agent add pixijs/pixijs-skills pixijs-scene-dom-containerDOMContainerpixi.jsDOMPipeimport 'pixi.js/dom'is marked EXPERIMENTAL in PixiJS v8. The API may change between minor releases.DOMContainer
pixijs-scene-core-conceptsDOMContainerViewContainerDOMContainerContainerimport "pixi.js/dom";
const input = document.createElement("input");
input.type = "text";
input.placeholder = "Enter name...";
const dom = new DOMContainer({
element: input,
anchor: 0.5,
});
dom.position.set(app.screen.width / 2, app.screen.height / 2);
app.stage.addChild(dom);pixijs-scene-core-conceptspixijs-scene-containerpixijs-eventspixijs-accessibilityContainerpositionscaletintlabelfilterszIndexskills/pixijs-scene-core-concepts/references/constructor-options.mdDOMContainerOptions| Option | Type | Default | Description |
|---|---|---|---|
| | | The HTML element the container drives. Any element is valid: |
| | | Origin of the element relative to its own dimensions. |
tintfiltersmaskblendModeContainerimport "pixi.js/dom";
import { DOMContainer } from "pixi.js";import { DOMContainer } from "pixi.js/dom";pixi.jspixi.js/dombrowserAll.tsDOMContainerimport 'pixi.js/dom'skipExtensionImports: trueconst dom = new DOMContainer({
element: document.createElement("div"),
anchor: 0.5,
});
dom.position.set(400, 300);
dom.scale.set(1.5);
dom.rotation = Math.PI / 8;
dom.alpha = 0.5;DOMContainertransformanchor00.51{ x, y }alphastyle.opacityelement<div>const panel = document.createElement("div");
panel.innerHTML = "<h2>Score</h2><p>1500</p>";
panel.style.color = "white";
panel.style.fontFamily = "Arial";
panel.style.pointerEvents = "none";
const dom = new DOMContainer({ element: panel });
dom.position.set(50, 50);
app.stage.addChild(dom);<div>pointer-events: nonepointer-events: autononedom.visible = false;
dom.visible = true;
dom.destroy();visible = falseDOMContainerdestroy()const element = dom.element;
dom.destroy();
document.body.appendChild(element);<div>z-index: 1000app.domContainerRootHTMLDivElementDOMContainerDOMContainerapp.canvasdocument.body.appendChild(app.canvas);
document.body.appendChild(app.domContainerRoot);getBoundingClientRect()ResizeObserverDOMPipeawait app.init({ skipExtensionImports: true });
// Now you must add this yourself:
import "pixi.js/dom";DOMContainerconst dom = new DOMContainer();
dom.filters = [new BlurFilter()];dom.element.style.filter = "blur(4px)";mix-blend-modeconst dom = new DOMContainer();
dom.addChild(new Sprite(texture));const group = new Container();
group.addChild(dom, new Sprite(texture));DOMContainerViewContainerallowChildren = falseDOMContainerContainerelement.appendChild(...)(0, 0)anchor: 0.5const dom = new DOMContainer({ element: myElement, anchor: 0.5 });
dom.position.set(400, 300);