Skip to main content
Target the widget’s data-ringg attributes from CSS or JavaScript when the configuration options don’t cover what you need. Don’t target the ringg_ai-* class names: they are generated and change between releases.

Before you start

An installed widget

The attributes are on the elements it renders.

A 2.0 widget version

The attributes ship in the 2.0.0-beta builds; the 1.0 line doesn’t have them.

Recipes

Restyle the launcher

Mute from your own button

Glow on lit visualizer dots

Wait for the widget to load

The trigger renders when loadAgent finishes; widget-root appears only once the panel opens.
For open, close, conversation and rating changes, listen to the widget events instead of watching the DOM.

State attributes

These update live. Use them in attribute selectors, or watch them with MutationObserver.

Element reference

Elements are grouped by where they appear in the widget.

Top level

Call controls (audio mode)

Compact centered mute/end pair, no text labels, since icons carry the meaning.

Action buttons (start screen)

The start screen shows both buttons side by side (Chat left, Call right), each starting its mode directly. With hideTabSelector: true only the defaultTab mode’s button renders, full-width.

Loading bar

Quick replies and options

Quick-reply chips (free presentation) and boxed option lists rendered below an agent message.

Typing indicator

Shown while an agent reply is pending. Cycles through the typingWords config, each word rendered with a left→right text shimmer.

Messages

System log pill

The inline activity feed in the transcript. Rendered only with eventLogs: { enabled: true } in loadAgent; see Agent actions.

Slash command menu

Voice animation

data-ringg-lit updates at audio rate, so a heavy transition or an expensive observer on it runs every frame. Keep transitions light, for example transition: opacity 50ms.

Interactive flow

Message input (text mode)

Feedback screen

When the ended conversation has text messages, the transcript stays readable and the rating renders as a footer below it (data-ringg-variant="transcript"); tapping a star submits immediately. The legacy centered card (comment box + submit/skip) renders when there is no transcript. With a transcript: Without a transcript:

Components

The cards, forms and pickers built under Embed & Widgets → Components (see Components). They render full-width in the transcript.

End-call confirm dialog

The end-call confirm dialog renders in a portal outside [data-ringg="widget-root"]. Scope its selectors at the document level.

Next steps

Prepare for launch

Domains, , version pinning and browser QA before production.