Skip to main content

Styling

Set the theme in the dashboard​

Most styling lives in the dashboard under Widget: your colors or Match your site, light or dark, and corners. Changes apply without a deploy. See Widget and theme.

Override it in code​

<FrankieProvider
publishableKey="pk_live_…"
theme={{ primary: "#4f46e5", radius: "1", mode: "dark" }}
>
FieldWhat it sets
primary, primaryForegroundButtons, links and the launcher, and the text on them
background, foregroundThe chat's surface and text
muted, borderSecondary surfaces and hairlines
warningThe accent of an action waiting for approval: its border, tint and shield (--frankie-warning). Defaults to amber, #d97706 light and #f59e0b dark.
radiusCorner radius in rem, for example "0.75"
fontFamilyThe chat's font
mode"light", "dark" or "system" (follows your app's own dark/light class or data-theme on <html>/<body>, else the OS)

Scoped styles​

Everything is scoped under .frankie-root and driven by CSS variables, and the stylesheet ships without a CSS reset, so it can't restyle your page.

import "@frankieai/react/styles.css";

With Tailwind v4​

If you already run Tailwind v4, skip the stylesheet and let the widget compile against your own design tokens:

@source "../node_modules/@frankieai/react/dist";

Then pass injectStyles={false} to the provider.