Widget theming and customization
Customize the chat widget’s appearance to match your brand with colors, fonts, positioning, and styling options.
Accessing theme settings
- Open your Product
- Select your chat Surface
- Go to the Ship tab
- On the chat widget style card, click Customize to open the Chat Style Editor
The Chat Style Editor has tabs for Generate (AI theme generation), Style (colors and typography), Design (layout and shape), and Configure (launcher and behavior).
Color customization
Control the widget’s color scheme:
- Primary color — Buttons, links, and send button
- Secondary color — Accents and hover states
- Background color — Widget background
- Text color — Message text
- User message bubble — User’s message background
- AI message bubble — AI response background
Enter hex codes or use the color picker to adjust each.
Typography
Customize fonts and text sizing:
- Font family — System font, custom font, or Google Fonts
- Font size — Base size for messages (14-18px recommended)
- Font weight — Regular, medium, or semibold
- Line height — Spacing between lines
For custom fonts, provide a font URL or use Google Fonts integration.
Widget positioning
In the Configure tab, set the launcher Position — where the chat launcher sits on the page, such as bottom-right or bottom-left.
Bubble and header styling
Adjust the chat bubble and header appearance:
- Border radius — Rounded corners (0-24px)
- Shadow — Drop shadow intensity
- Avatar — Upload an image or use initials
- Header text — Title shown in widget header
- Welcome message — First message users see
Editing the theme directly
There is no free-form custom-CSS field. For control beyond the editor’s controls, set the widget’s theme by hand in your embed code. The theme is a structured object with three layers:
palette— raw design scales holding the actual values (hex colors, sizes):colors,spacing,typography,shadows,borders, andradius.semantic— named tokens that reference the palette by string (for example,semantic.colors.primarypoints atpalette.colors.primary.500), so they hold token-reference strings, not raw values.components— per-component overrides for thebutton,input,launcher,panel,header, andmessageelements.
Because semantic tokens are references, set your brand colors at the palette layer. You only set the tokens you want to change; Runtype fills in the rest from the defaults. For example:
The embed snippets Runtype generates already use this format, so copy one from the Ship tab as a starting point.
Mobile preview
The widget automatically adapts to mobile screens. To check how it looks, switch the preview between Desktop and Mobile using the device toggle in the preview toolbar.
Preview changes
See your changes in real-time with the preview panel:
- Make styling changes
- Check the preview on the right side
- Adjust until it looks correct
- Click Save to apply
The preview shows both light and dark mode versions.
Theme presets
Start with a pre-built theme preset and customize from there. Available presets include Clean, Midnight, Forest, Sunset, Ocean, Lavender, Noir, Rose, Cyberpunk, and Vintage.
Select a preset from the theme picker, then customize as needed.
AI-powered theming
Let Runtype generate a theme based on your brand. See AI-powered theme generation.