Niantic Studio - HTML Loader
General HTML/CSS/JS loader to overlay niantic studio projects with html UI. Files need to be assets in order to be loaded by the scripts!
General HTML/CSS/JS loader to overlay niantic studio projects with html UI. Files need to be assets in order to be loaded by the scripts!
General HTML/CSS/JS loader to overlay niantic studio projects with html UI.
HTML Loader Components Documentation
Core Components
HTML Loader (html-loader.ts)
Main component for loading HTML content into the scene.
Schema
- htmlFile: String (asset) - HTML file to load
- htmlEventName: String - Custom event name for HTML loaded notification (default: 'html:loaded')
- zIndex: Integer - CSS z-index for the container
- disablePointerEvents: Boolean - Whether to disable pointer events
Functions
- Creates a container div with full viewport dimensions
- Loads and injects HTML content from asset file
- Dispatches events to child entities when HTML is loaded
- Handles error cases for asset loading
HTML CSS (html-css.ts)
Loads CSS files into the document.
Schema
- cssFile: String (asset) - CSS file to load
Functions
- Loads CSS files asynchronously
- Injects CSS into document head
- Handles loading errors
HTML JS (html-js.ts)
Loads JavaScript files into the document.
Schema
- jsFile: String (asset) - JavaScript file to load
- waitForHtml: Boolean - Whether to wait for HTML loading before loading JS
Functions
- Loads and injects JavaScript files
- Optional waiting for HTML load completion
- Promise-based loading mechanism
- Error handling for failed loads
Helper Components (/helper)
HTML Button Event (html-button-event.ts)
Handles button click events in HTML.
Schema
- htmlId: String - ID of the HTML button element
- target: Entity ID - Target entity to receive events (optional)
- event: String - Event name to dispatch (default: 'button:clicked')
Functions
- Adds click event listeners to specified buttons
- Dispatches events to specified target or globally
- Initializes on HTML load
HTML Dynamic Text (html-dynamic-text.ts)
Manages dynamic text content in HTML elements.
Schema
- htmlId: String - ID of the HTML text element
- initial: String - Initial text content
Functions
- addText: Sets initial text content
- changeText: Updates text content on 'text:change' events
- Listens for HTML load and text change events
HTML Hide (html-hide.ts)
Controls visibility of HTML elements.
Schema
- htmlId: String - ID of element to hide
- parent: Boolean - Whether to hide parent element instead
- eventTarget: Entity ID - Entity to listen for events on
- event: String - Event that triggers hiding
Functions
- Hides elements by setting display: none
- Responds to specified events for visibility control
HTML Image (html-img.ts)
Handles image loading and display.
Schema
- imgId: String - ID of the image element
- imgSrc: String (asset) - Image source file
- backgroundImage: Boolean - Whether to use as background image
- imageEvent: String - Event that triggers image loading (default: 'html:loaded')
Functions
- Loads images asynchronously with cross-origin support
- Can set as either src or background-image
- Uses state machine pattern for lifecycle management
- Handles loading errors
Common Features
- All components utilize @8thwall/ecs system
- Asset handling for external files
- Event-driven architecture
- Cross-component communication through events
- Error handling for asset loading
- Clean separation of concerns
Usage Notes
- All HTML, CSS, and JS files must be uploaded as asset bundles
- Best practice to put assets into folders, otherwise reupload will destroy component assignments
- Components can be used independently or together
- Event system enables modular communication between components
Other Work by VRketingTeam