Skip to main content
The widget’s appearance is driven by CSS custom properties. You send Ripio a CSS file with the ones you want to change, it’s stored against your account, and the widget applies it at runtime — no rebuild, no per-partner deploy.

How it works

Your file only needs the variables you’re overriding — everything you leave out keeps its default. A minimal theme is genuinely small:
Theming is an account-level setting. There’s no query parameter or runtime API for it — send the file to your Ripio contact. You can also override individual variables yourself at the document level; see Embedding the widget.

The stable contract

These variables are the supported white-label surface. They won’t be renamed, so a theme built on them keeps working as the widget’s internals change. Overriding --ripio-color-primary alone repaints buttons, links, focus rings and selected states, because the internal tokens point at it.

Component and scale tokens

Beyond the contract above, the widget exposes design-system scales and per-component tokens. These are safe to override for finer control, but they belong to the design system and may be renamed as it evolves — prefer the contract above where it’s enough.

What not to override

The design-system primitives — --violet-*, --gray-*, --error-*, --warning-*, --success-* — and the transaction status-chip tokens --st-* are internal. They’re the raw palette the semantic tokens are built from, they aren’t part of the contract, and they can change without notice. Override the semantic layer instead: setting --ripio-color-primary propagates everywhere --violet-600 would have.
Theming only repaints the widget — it can’t reposition, resize or hide anything inside it.

Usage

Customize the typography

Import the font from a static host, then set the variable that owns font-family.
One variable changes the typeface everywhere: headings, body copy, inputs and buttons all inherit from it.

Customize buttons

Only variables starting with --ripio-btn modify the buttons. Primary button
Secondary button
Tertiary button

Before and after

The widget with Ripio's default theme
The same widget with a partner's brand theme applied