> ## Documentation Index
> Fetch the complete documentation index at: https://docs.keloa.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Widget appearance

> Style your web chat widget to match your brand.

Tune how the widget looks on your site — colours, greeting, intro bubbles, suggested questions, position, and branding. Changes preview live on the right of the settings page.

## Open widget settings

Sidebar → **Settings** → **Widget**.

## What you can customise

| Setting                   | Details                                                                            |
| ------------------------- | ---------------------------------------------------------------------------------- |
| **Theme color**           | Bubble and header background. Pick from the colour input or paste a hex.           |
| **Launcher position**     | `right` (default) or `left`.                                                       |
| **Greeting**              | Fallback intro message. Used when no intro bubbles are set.                        |
| **Display name (header)** | Overrides the AI agent name in the widget header.                                  |
| **Bot avatar**            | Set on the AI agent itself (**AI agents → edit**). Brand logo is the fallback.     |
| **Intro bubbles**         | Up to 5 short "hello" bubbles shown when the widget opens.                         |
| **Suggested questions**   | Up to 6 one-tap chips. Auto-seeded from your onboarding site scan.                 |
| **Privacy policy URL**    | Optional link in the widget footer.                                                |
| **Origin allowlist**      | Empty = allowed everywhere. Add domains to restrict the widget to your sites only. |
| **Hide branding**         | Removes "Powered by Keloa" from the footer. **Business+ only.**                    |

## Plan-gated features

Two widget capabilities are locked behind plan caps:

* **`hide_branding`** — requires the `widget_unbranded` cap. Available on Business and Scale.
* **Proactive triggers** — requires the `proactive_triggers` cap. Available on Business and Scale.
* **Working hours integration** — requires the `working_hours` cap. Available on Business and Scale. Configure in **Settings → Workspace → Business hours**.

See [Billing & plans](/billing/plans) for the full cap matrix.

## Preview

The live preview on the right updates as you type. Click **Open preview** to launch the widget on a sandboxed host page (`/widget/host-demo`) — useful for clicking through a real conversation flow without touching your site.

## Languages

The widget greeting is translated automatically into English, Dutch, German, French and Spanish. The visitor's locale is detected from `navigator.language`, with the brand language as fallback. The greeting you type in **Settings → Widget → Greeting** is used as the operator-customised version for your brand's primary locale.

## Accessibility

* **WCAG 2.2 AA** contrast on default theme colours.
* The launcher is focusable via keyboard (`Tab`) and the chat panel is operable with arrow keys.
* Screen reader announcements fire on every state change.

## Mobile behaviour

* The widget opens full-screen on mobile breakpoints.
* The launcher offset honours iOS safe areas.

## Identifying logged-in users

If your site authenticates visitors, you can pass identity data to the widget. See the [widget docs](/channels/web-widget#identify-a-logged-in-user).

## Save

Changes save on click. The next loader fetch on your site picks up the change (CDN cache 60 seconds).
