Skip to main content
The bundled UIs render inside an isolated Shadow DOM, so your page styles never leak in and the dialer never leaks out. Customization goes through the theme object, CSS custom properties, and copy overrides.

Language

English is the default. Spanish is available explicitly:

Copy overrides

strings replaces individual labels on top of the selected language:
Override only what you need — everything else falls back to the locale.
The bundled UIs translate backend error codes into actionable messages for you. In Headless, that mapping is yours to write — see Errors.

Theme object

Update it at runtime:

Theme fields

"auto" follows the viewer’s system preference.

CSS custom properties

The same values are settable as CSS variables on any ancestor, which is often easier when you already have design tokens:
Wire these to your existing tokens and the dialer follows your theme switcher automatically — no setTheme() call needed.

Workspace label

Show which Ringee workspace the agent is calling from in the panel footer:

Optional controls

Hold and resume are hidden by default. Enable them when your team uses them:

When theming is not enough

If you need a layout the bundled UIs do not offer — a dialer embedded in a table row, a custom call screen, a completely different flow — use Headless. It exposes authentication, calls, devices and events with no markup at all. The ui-gallery playground in the repository renders every Floating and Bar state against a simulated dialer, with no network or WebRTC. It is the fastest way to check a theme against real states:

Next steps

API reference

Every option in one table

Headless

Full control over the interface