Integrations

Vitrine elements are standard custom elements: every framework can render them. Pass data you did not write through properties, listen to vt-* events, and submit tags with your forms.

Live binding

The field below is a <vt-tags> inside a form. Every change fires vt-change; the panel on the right shows the event and the value the form would submit.

Plain HTML and JavaScript

One script tag defines every element. Inline content is fine for your own text; use the content property for anything else.

ES modules, one per component

Load only the elements a page uses. Shared code is split into chunks and downloaded once; the configuration stays shared.

Vue 3

Tell the compiler that vt-* tags are custom elements, then bind properties with .prop and listen with @vt-….

React 19

React 19 sets properties on custom elements and attaches listeners for their events. Earlier versions need a ref.

Svelte 5

Angular

Add CUSTOM_ELEMENTS_SCHEMA to the component, then bind properties with […] and events with (…).

Forms

<vt-tags name="…"> is a real form field: it is submitted, validated with required, reset with the form, and disabled with a <fieldset disabled>.

Backend suggestions

Point suggest-src at an endpoint returning a JSON array, or set the suggest property to your own function. Typing is debounced and stale requests are cancelled.

PHP and Django

Never print user data inside the element: the browser would parse it as page HTML. Put it in a JSON script and hand it over with JavaScript.