Skip to content

Chat Themes Configuration โ€‹

Chat Themes control how your public chat interface looks and behaves. Create reusable visual identities โ€” colors, typography, spacing, header branding โ€” and apply them across multiple agents for consistent brand experiences.

Overview โ€‹

Access Chat Themes at /chat-themes to create and manage visual configurations for your public-facing chat interfaces.

What is a Chat Theme? โ€‹

A chat theme owns visual identity and behavior defaults. It does NOT own per-agent content (greeting messages, welcome modals, suggested prompts) โ€” those live in each agent's Chat Experience configuration.

The 3-Layer Model โ€‹

Chat appearance resolves from three layers, highest priority first:

LayerOwnsEdited in
Agent Chat UIPer-agent content: greeting, suggested prompts, follow-up prompts, auto-message. Also overrides theme behavior defaults (showHeader, showNewChatInNav, maxMessageLength) per-field.Agent form โ†’ Chat Experience tab
Chat ThemeReusable visual identity (branding) + behavior defaults (defaults). Agents can override defaults but never visuals./chat-themes editor
Component defaultsFallback values when neither agent nor theme specifies a setting.Code

Key principle: branding is theme-only โ€” once you set colors and typography in a theme, all agents using that theme share the same visual identity. Behavior like "show header" lives in defaults and agents can override it individually.

Example Use Case:

Theme: "Company Brand"
- Preset: Blue (base color palette)
- Primary color: #0052CC (brand exact)
- User bubble: navy bg, white text
- Font: Inter

Applied to:
- Support Agent (shows header, auto-connect on)
- Sales Agent (no header, follow-up prompts on)
- FAQ Agent (all defaults)

Result: Consistent brand colors across all agents; each agent controls its own layout.

Chat Theme List โ€‹

The main themes page displays all your custom themes.

View Modes โ€‹

  • List View: Table with detailed information
  • Grid View: Visual cards showing color previews

Theme Card/Row โ€‹

Each theme displays:

  • Color Preview: Gradient showing the theme colors
  • Name & Description: Theme identification
  • Default Badge: Shows if this is your default theme
  • In Use Count: Number of agents using this theme
  • Actions: Configure, View, Duplicate, Set/Clear Default, Delete

Creating a Chat Theme โ€‹

Navigate to /chat-themes/create for the theme editor. Editing an existing theme (/chat-themes/{id}) opens the same editor with the saved tokens already applied.

Editor Layout โ€‹

The editor is a split-panel interface: a non-interactive live preview on the left and a Controls panel on the right. There is no click-to-edit canvas; all colour and style inputs are in the Controls panel.

Region of the screenWhat it does
Toolbar (top)Theme name, surface tabs (Chat / Welcome / Sidebar), device-width preview (desktop / tablet / mobile), light/dark switch, undo/redo, Settings drawer, and Save
Preview (centre)Non-interactive live <GnosariChat> instance seeded with a demo conversation (user message, assistant reply with markdown and avatar, message input). Every Controls panel change is reflected here in real time; the preview is not clickable for editing
Controls panel (right)Brand โ€” colour-theme preset picker, custom primary accent hex, surface hex, and a read-only derived-ramp preview of all tokens that auto-derive from accent + surface; Shape & type โ€” global corner radius, font family, message density; Background pattern โ€” pattern type, intensity, and color-source toggle; Advanced (collapsed accordion) โ€” raw per-region hex overrides for user bubble, assistant bubble, header, and input (power-user escape hatch; a warn-inline fires when an override produces a sub-AA contrast pair)
Settings drawer (Settings button)Theme details (name, description, identifier, default), behaviour defaults, and the custom CSS class (branding.className)

Undo / redo and saving โ€‹

Every change โ€” Controls panel edits and the behaviour toggles in the drawer โ€” pushes onto a single undo stack. Use the toolbar buttons or โŒ˜/Ctrl+Z / โŒ˜/Ctrl+โ‡ง+Z. The undo floor is the loaded (or freshly initialised) theme, so undo can never wipe a loaded theme back to empty. An unsaved-changes dot sits on the Save button; saving fires a "Theme saved" confirmation. A saved theme renders identically in the editor preview, on /chat, and in the embedded widget (parity by construction).

Reset actions โ€‹

Two distinct reset actions exist โ€” they are not interchangeable:

ActionLocationWhat it resets
Reset demo conversationPreview header (next to the agent selector)Restores the seeded demo transcript in the preview. Tokens are untouched.
Reset theme to presetControls panel โ†’ Brand โ†’ Colour theme sectionClears all token overrides (accent, surface, input, header text, bubbles, radius, โ€ฆ) and restores the preset's base palette. One undo entry.

Where each setting lives โ€‹

The reference tables below describe what each token and setting does โ€” they remain accurate regardless of where the control sits in the editor.

Setting groupWhere to find it now
Theme details (name, description, identifier, default)Settings drawer โ†’ Details (name also editable inline in the toolbar)
Colour preset + custom accent + surfaceControls panel โ†’ Brand
Bubble / surface / header colours (raw per-region overrides)Controls panel โ†’ Advanced (collapsed accordion)
Font, global corner radius, densityControls panel โ†’ Shape & type
Background patternControls panel โ†’ Background pattern
Behaviour defaults (header, sidebar, model selection, auto-connect)Settings drawer โ†’ Behaviour
Custom CSS classSettings drawer โ†’ Advanced (branding.className)
Welcome experience & promptsAgent-level content (see Welcome Experience and Prompts below) โ€” set as theme defaults, each agent can override

Theme Details โ€‹

Basic information about your theme (set in the Settings drawer โ†’ Details; the name is also editable inline in the toolbar).

FieldDescriptionRequired
NameFriendly theme name (e.g., "Customer Support Theme")Yes
DescriptionBrief description of theme purposeNo
IdentifierURL-friendly slug (auto-generated from name)Auto
Set as DefaultApply this theme to new agents automaticallyNo

Example:

Name: Customer Support Professional
Description: Clean, professional theme for support conversations
Identifier: customer-support-professional
Default: Yes

Color Theme and Branding Tokens โ€‹

The preset picker, accent, and surface inputs live in the Controls panel โ†’ Brand; per-region hex overrides (bubble, header, input) live in Controls panel โ†’ Advanced; font, radius, density, and background pattern live in their respective Controls panel sections. The tables below are the token reference โ€” they describe what each token controls regardless of where the control sits in the editor.

Preset Color Themes โ€‹

Choose from 22 professionally designed color palettes as a starting point.

Classic Themes (7) โ€‹

ThemeBest For
PurpleCreative services, design agencies
BlueCorporate, financial services, tech support
GreenEco-friendly, health & wellness, nature
OrangeFood & beverage, events, retail
PinkFashion, beauty, lifestyle
IndigoLegal, consulting, premium services
CyanTech startups, SaaS, innovation

Fresh & Modern Themes (7) โ€‹

ThemeBest For
RoseWedding services, gifts, luxury
AmberPremium products, high-end services
TealWellness, meditation, healthcare
FuchsiaEntertainment, nightlife, bold brands
SkyTravel, aviation, cloud services
EmeraldJewelry, luxury goods, finance
VioletMusic, arts, entertainment

Social & Trendy Themes (8) โ€‹

ThemeBest For
SunsetPhotography, travel, experiences
OceanMarine services, water sports, travel
ForestOutdoor activities, eco products
NeonGaming, tech, nightlife
GoldVIP services, luxury, finance
CoralHospitality, restaurants, home decor
LavenderWellness, beauty, relaxation
MintHealth, hygiene, modern brands

A preset is a starting-point token bundle that the chat interface expands at render time. Selecting a preset covers the base color scheme โ€” explicit tokens you set below override the preset value by value.

Custom Tokens โ€‹

Custom tokens let you override individual design decisions within the preset. Explicit tokens win over the preset. All token fields are optional.

Color Tokens โ€‹

Primary path: Accent (Primary Color) and Surface are the only direct user inputs on the primary editor path. All other tokens โ€” on-surface text, hover/active states, border, link, gradient stops โ€” derive automatically with WCAG-AA contrast guaranteed in both light and dark modes. The Advanced panel exposes raw per-region hex overrides for edge cases; any sub-AA override triggers a warn-inline in the editor and CI red-gates the merge.

TokenWhat it controlsFormat
Primary ColorInput focus rings, send button, avatar, badges, linksHex: #7c3aed or #fff
Surface (Light)Chat background in light modeHex: #ffffff
Surface (Dark)Chat background in dark modeHex: #0a0a0a
Input BackgroundMessage composer backgroundHex: #f4f4f5
Input BorderMessage composer borderHex: #e4e4e7
Placeholder TextComposer placeholder text colourHex: #a1a1aa

Bubble Tokens โ€‹

Configure user and assistant message bubbles independently:

TokenOptions
BackgroundHex color
TextHex color
Radiusnone / sm / md / lg / xl

Example โ€” brand-matched bubbles:

User bubble:      bg #0052CC, text #ffffff, radius xl
Assistant bubble: bg #f4f4f5, text #18181b, radius xl

Layout Tokens โ€‹

TokenOptionsDefault
Global Radiusnone / sm / md / lg / xlpreset value
Densitycompact / comfortable / spaciouscomfortable
Font FamilySee allowlist belowInter

Font Family allowlist (only these values are accepted):

Inter ยท system-ui ยท Roboto ยท Open Sans ยท Lato
Montserrat ยท Poppins ยท Source Sans 3 ยท Nunito ยท DM Sans
Lora ยท Playfair Display ยท JetBrains Mono

Header Tokens โ€‹

TokenDescription
Header BackgroundHex override for the chat header bar
Header TextHex colour for the agent name and text in the header bar

Background Pattern โ€‹

Add subtle decorative patterns to the chat background (Controls panel โ†’ Background pattern).

Pattern Types โ€‹

PatternDescription
NoneSolid background color, no pattern
DotsRepeating dot grid
GridSubtle grid lines
WavesFlowing wave pattern
CirclesOverlapping circles
StripesDiagonal stripes
HexagonsHoneycomb pattern

Intensity Levels โ€‹

IntensityOpacity Range
Subtle5-10%
Medium15-25%
Strong30-40%

Use Theme Color โ€‹

  • On: Pattern uses the primary color token
  • Off: Pattern uses neutral gray tones

Welcome Experience โ€‹

Configure how users are greeted when they first open the chat. Preview it with the Welcome surface tab in the toolbar.

These are theme-level defaults. Each agent can override them individually in the agent's Chat Experience tab.

Agent Greeting โ€‹

First message from AI (appears automatically):

FieldDescription
Show Greeting MessageDisplay AI greeting with typewriter effect
Greeting TextThe message the agent "types" when chat starts

Empty State โ€‹

What users see before sending first message:

FieldDescription
TitleHeading when no messages exist
DescriptionSubtitle in empty state
Welcome ImageIcon or image URL for empty state

Interface & Behavior Defaults โ€‹

Control behavior defaults for chat interface elements (Settings drawer โ†’ Behaviour). Each agent using this theme can override these per-field in its Chat Experience configuration.

Behavior Defaults โ€‹

SettingDescriptionDefault
Show HeaderDisplay top navigation headerOn
Show New Chat in NavShow "new chat" action in navigationOn

Note: The conversation sidebar is an owner-authenticated-only feature and is not configurable here. Internal pages that mount the owner's chat hardcode :show-sidebar="true" directly.


Prompts โ€‹

Help users start conversations with clickable suggestions.

These are theme-level defaults. Each agent can override them individually in the agent's Chat Experience tab.

Suggested Prompts โ€‹

Clickable prompts shown in empty state (before first message):

Each prompt has:

  • Icon: Visual identifier (e.g., i-heroicons-shopping-cart)
  • Title: Short label (e.g., "Track Order")
  • Text: Full prompt sent to AI (e.g., "Where is my order?")

Follow-Up Prompts โ€‹

Suggestions shown after AI's first response:

FieldDescriptionDefault
Enable Follow-UpsShow suggestions after first responseOff
TitleSection heading"Try asking..."
Max VisibleNumber of prompts to show3

Configuration Presets โ€‹

Quick-start templates for common use cases. Presets emit v2 {branding, defaults} bundles โ€” they set visual branding and behavior defaults. Content (greeting, welcome modal text, suggested prompts) is not part of a preset; it lives in each agent's configuration.

Available Presets โ€‹

PresetDescription
MinimalClean, simple interface โ€” basic chat, no extras
StandardBalanced interface โ€” header on, suggested prompts defaults on
Full FeaturedAll configurable options enabled โ€” header, model selection, follow-up prompts
ShowcaseDemonstration-ready setup โ€” visible header, auto-connect, follow-up prompts on
EmbeddableOptimized for website embedding โ€” minimal chrome, no header

Applying a Preset:

  1. Click "Load Preset" dropdown
  2. Select preset
  3. Configuration updates automatically
  4. Customize further as needed

Behavior Settings โ€‹

Advanced configuration options (set in the Settings drawer โ†’ Behaviour โ€” listed here for reference).

SettingDescriptionDefault
Auto ConnectAutomatically establish chat connectionOn
Enable Model SelectionAllow users to switch AI modelsOff
Max Message LengthCharacter limit for user messages. Configurable via agent chat_ui.maxMessageLength โ†’ theme defaults.maxMessageLength โ†’ component default (4000)4000

File uploads/attachments are not a theme setting โ€” they're a plain per-agent capability toggled in the agent form's Data Collection section (or via MCP). See Chat Attachments for the upload UX and the wizard guardrail that keeps agent instructions honest about this setting.


Using Themes with Agents โ€‹

Assigning a Theme โ€‹

  1. Edit an agent (/gnosaris/[id]/edit)
  2. Go to Publication section
  3. Select a chat theme from dropdown
  4. Save agent

The theme applies to:

  • Public chat URL (/chat/[agent_identifier])
  • Embedded widgets
  • Password-protected chats

Default Theme โ€‹

Set a theme as default to auto-apply to new agents:

  1. Edit theme or check "Set as Default" when creating
  2. All new agents use this theme automatically
  3. Existing agents keep their current theme
  4. Only one theme can be default at a time

Multiple Agents, One Theme โ€‹

Apply the same theme to multiple agents for consistent brand identity:

Theme: "Company Support Style"
- Preset: Blue
- Primary color: #0052CC
- Font: Inter
- Density: comfortable

Applied to: Sales Agent, Support Agent, Onboarding Agent

Each agent controls: greeting, welcome modal text, suggested prompts, header visibility

Theme Management โ€‹

Duplicating Themes โ€‹

Create variations of existing themes:

  1. Click Duplicate on any theme
  2. Enter new name (e.g., "Summer Theme - Variant")
  3. New theme created with all settings copied
  4. Edit as needed

Deleting Themes โ€‹

Cannot delete themes currently assigned to agents.

  1. Unassign theme from all agents first
  2. Click Delete on theme
  3. Type theme name to confirm
  4. Theme permanently removed

Setting/Clearing Default โ€‹

Set as Default:

  • Click "Set as Default" action
  • Previous default theme loses default status
  • New agents use this theme automatically

Clear Default:

  • Click "Clear Default" on current default theme
  • No default theme (new agents have no theme until assigned)

Legacy Theme Upgrade โ€‹

Themes created before v2 show an upgrade banner in the editor. Editing and saving any field upgrades the theme to the v2 schema automatically. The theme continues working as-before until you save.


Live Preview โ€‹

The Preview in the centre of the editor is the live preview โ€” every change is applied to a real <GnosariChat> instance in real time, so what you see is exactly what visitors get on /chat and in the embedded widget.

Preview Features โ€‹

  • Color tokens applied to all elements as you set them
  • Background pattern rendered
  • Welcome modal appearance (Welcome surface tab)
  • Empty state with title and description
  • Message bubble styling (user and assistant), seeded with a demo conversation
  • Device-width preview (desktop / tablet / mobile) and light / dark switching from the toolbar

Tips & Best Practices โ€‹

Color Psychology โ€‹

Professional/Corporate โ†’ Blue, Indigo, Cyan
Creative/Artistic      โ†’ Purple, Violet, Fuchsia
Eco-Friendly/Natural   โ†’ Green, Emerald, Forest
Energetic/Fun          โ†’ Orange, Amber, Sunset
Calming/Wellness       โ†’ Teal, Lavender, Mint
Luxury/Premium         โ†’ Gold, Rose, Coral

Brand Matching โ€‹

For exact brand colors, go beyond the preset:

  1. Pick the closest preset as a base
  2. Override colorPrimary with your exact hex
  3. Set userBubble.bg to match your brand color
  4. Set fontFamily to your brand font (if in the allowlist)

A preset alone sets the base palette; custom tokens give per-element precision.

Pattern Selection โ€‹

Minimal/Professional โ†’ None or Subtle Dots
Playful/Casual       โ†’ Medium Circles or Waves
Technical/Modern     โ†’ Grid or Hexagons
Traditional          โ†’ Subtle Stripes

Prompt Writing โ€‹

Write effective suggested prompts:

Good:
- "Track my order"
- "How do I return an item?"
- "What are your hours?"

Avoid:
- "Click here"
- "Help" (too vague)
- "asdfasdfasdf" (test data left in)

Troubleshooting โ€‹

Preview Not Updating โ€‹

The preview updates live as you change any Controls panel field. If it looks stuck:

  1. Check you're editing in the right Controls panel section โ€” Brand, Shape & type, Background pattern, or the Advanced accordion (the per-region hex overrides live there, collapsed by default)
  2. Make sure the Controls panel field actually committed (the unsaved-changes dot on Save should appear)
  3. Use the Reset demo conversation button (preview header) to re-seed the transcript, or hard-reload the page
  4. Clear browser cache

Theme Won't Save โ€‹

Solutions:

  1. Fill all required fields (Name)
  2. Check for validation errors (red borders)
  3. Ensure unique identifier (not used by another theme)

Theme Not Appearing on Agent โ€‹

Solutions:

  1. Verify agent access level is Public or Password Protected
  2. Check agent is using correct chat theme ID
  3. Clear browser cache and reload chat page
  4. Ensure theme is not deleted

What's Next? โ€‹

  • Chat Attachments: Let visitors attach an image or PDF to a message
  • Chat Sidebar: Implement global floating chat widget
  • Widget Embedding: Embed chat on external websites with theme styling
  • Agent Publication: Configure agents to use your custom themes