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 whenloadAgent finishes; widget-root appears only once the panel opens.
State attributes
These update live. Use them in attribute selectors, or watch them withMutationObserver.
Element reference
Elements are grouped by where they appear in the widget.Top level
Header
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. WithhideTabSelector: 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 thetypingWords config, each word rendered with a left→right text shimmer.
Messages
System log pill
The inline activity feed in the transcript. Rendered only witheventLogs: { 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.