Skip to main content
Make the widget feel like a natural part of your website by customizing its colors and appearance.

Widget title

Set the title option to change the text displayed in the widget header:

Custom colors

Pass a colors object to override the default theme. You only need to specify the colors you want to change. Each color accepts:
  • hex, as #2563EB or the short form #26E (the # is optional);
  • rgb(), as rgb(37, 99, 235) or rgb(37 99 235);
  • hsl(), as hsl(221, 83%, 53%) or hsl(221 83% 53%).
Colors must be opaque, except sendButton, which also accepts transparent. The widget ignores named colors (red), other color functions such as oklch(), translucent values and option names it doesn’t recognize, and logs a warning for each in the browser console.

Available color options

Background colors

Card colors

Popover colors

Text colors

Primary colors

Secondary colors

Accent colors

Border & Input

Send button

New Chat button

Sign in button

Close button

Chat list

Backdrop

Status colors

Other

Deprecated options

These options have no effect. The widget still accepts them, so existing configurations keep loading, and logs a console warning for each one you set.

Answer, panel and backdrop style

Pass a style object to change how answers are framed, whether the panel casts a shadow and how strongly the page behind the widget is dimmed:

Font

The widget uses the system font stack by default. To use your own font, load it on your page, then name it in style.fontFamily:
Your page has to load the font because the widget renders in a shadow root, where it can’t load fonts itself. A font your page has loaded works inside the widget.

Example: Dark theme

Example: Brand colors

Start by customizing just primary to match your brand’s primary color. Add more overrides as needed.