Skip to main content
You can fully customize the look and feel of the Cal.com embed by passing CSS variables through the Cal("ui", { cssVarsPerTheme }) API. This lets you match the Booker to your brand’s colors, spacing, and border radius — for both light and dark themes.
Pass the variable name without the -- prefix as the key in cssVarsPerTheme. For example, to override --cal-brand, use "cal-brand": "#6F61C0".

Variable reference

Brand

Text

Text semantic

Text status

These feed the text-info / text-error / text-success / text-attention utility classes as well as matching fill-* icon colors within the Booker (for example, Badge variants and form validation messages).

Background

Background semantic

Border

Booker border

Border radius

Spacing

Full example

Copy Prompt button

The Copy Prompt embed doesn’t load the embed script, so cssVarsPerTheme doesn’t apply to it. Pick its colors with Embed theme in the embed editor instead. The HTML snippet sets the button’s colors as CSS variables in its <style> block, so you can change them in the code you paste: With Auto, the snippet sets the light values first and the dark values again inside @media (prefers-color-scheme: dark). The React snippet doesn’t use these variables: it reads its colors from the COLORS object at the top of the component.