string
appearance object to .create():
That exception belongs to having it embedded in your site. If your guests book on the
page Restoo hosts for you, the appearance always comes from your account: no
installation can deviate there, and whatever you configure applies as it is.
appearance: { variables: { colorAccent: "#c0392b" } } gives you that accent and Restoo’s defaults for everything else; your account’s fonts, radii and background are gone.
Setting
colorAccent is usually enough: Restoo derives its hover, contrast,
and soft variants from it. There are many more variables
for fine-tuning, but most installations never need them."rounded" | "sharp" | "pill"
default:"rounded"
Controls the corner radius of buttons and cards:
Example:
style: "pill".boolean
default:"false"
Adds a drop shadow around the widget.
boolean
default:"false"
Adds a frosted-glass / blur effect.
object[]
Web fonts to load before applying
variables.fontFamilyBody /
variables.fontFamilyHeading. Each entry is the address of a font stylesheet — a Google Fonts
URL, for example. Restoo loads it, and you then use the font’s name in variables. cssSrc
must be an absolute HTTPS URL.If the font name contains spaces, wrap it in quotes inside the CSS value —
e.g.
'"Playfair Display", serif' — otherwise the browser won’t recognize it
as a single font name.object
Individual colors, typography, and corner radii — see Commonly used
variables.
Background of the hosted page
These three fields dress the page Restoo hosts for you, not the widget itself. Embedded in your own site they do nothing: there the widget sits inside an iframe sized to its content, so there is no page around it to dress. They are configured in your account, like the rest of the appearance. Both URLs must be absolute and HTTPS. The widget does not validate them, so a broken URL warns you nowhere — the background simply does not show.string
Full-screen background image for the page.
string
Full-screen background video for the page, in MP4. It plays on its own, muted
and looping. While it loads,
backgroundImageUrl is shown if you have defined
one, so it is worth declaring both.boolean
default:"false"
Extends to desktop the darkening and blur layer that sits over the background.
With an image or a video, Restoo already applies it on mobile so the text
stays readable; turn this on if desktop needs it too.
Declaring a background image or video changes three defaults so the widget
stays legible on top of it: it turns on
hasShadowEffect and sets
colorPageBackground to white and colorWidgetShadow to a translucent black.
Whatever you declare yourself wins over all three.colorPageBackground and colorPageForeground, belong with this group: they are part of the hosted page’s frame too.
Variables reference
All fields are optional strings. Anything you omit insideappearance falls back to the widget’s default styling, not to your account’s.
We recommend hex values (e.g.
"#c0392b") for all color variables, as used
throughout this page’s examples.Commonly used variables
These cover the vast majority of branding needs — matching your accent color, widget background, and typography:string
Your brand/action color — buttons, links, selected states. Example:
"#c0392b".string
Background color of the widget container. In
OVERLAY mode, also sets the
background of the modal panel itself (the chrome around the widget, outside
the iframe). Example: "#ffffff".string
Foreground color of the widget container. In
OVERLAY mode, also sets the
color of the close button. Example: "#1a1a1a".If you set a dark
colorWidgetBackground, set colorWidgetForeground too —
the modal panel’s contrast isn’t computed automatically, same as everywhere
else in the widget.string
Font family for body text. Example:
"Inter, sans-serif".string
Font family for headings. Example:
'"Playfair Display", serif' — note the
quotes around the font name, needed because it contains a space.All other variables
Most installations never need these — they let you fine-tune individual
colors, radii, and typography details beyond the commonly used variables
above.
Typography
Typography
string
Weight used for light text. Example:
"300".string
Weight used for regular body text. Example:
"400".string
Weight used for mildly emphasized text. Example:
"500".string
Weight used for headings and buttons. Example:
"600".Text transform applied to body text. Example:
"none".string
Text transform applied to headings. Example:
"capitalize".string
Text transform applied to button labels. Example:
"uppercase".Base colors
Base colors
string
Dark reference color the widget uses as its darkest base. Example:
"#111111".string
Background of the page the widget sits on. Only visible on the page hosted
by Restoo. Example:
"#ffffff".string
Foreground color used on that page, such as the footer text. Also only on
the hosted page. Example:
"#1a1a1a".string
Color of the scrollbar thumb. Example:
"#c1c1c1".string
Color of the scrollbar track. Example:
"#f1f1f1".string
Opacity applied to muted elements, such as secondary text. Also drives the
muted text inside the payment form. Example:
"0.6".Semantic colors and generated variants
Semantic colors and generated variants
The semantic color roles are
Accent, Neutral, Success, Warning, and
Danger. Set their base values with colorAccent, colorNeutral,
colorSuccess, colorWarning, and colorDanger.So the complete accent family is
colorAccent, colorAccentHover,
colorAccentSoft and colorAccentSoftHover. Setting the base is normally
enough — Restoo derives the other three.The text color shown on each of these backgrounds isn’t a variable. Restoo
picks black or white against the color you set, so it always meets the
WCAG AA contrast minimum. If the result isn’t what you want, change the
base color rather than the text on top of it.
Inputs & form controls
Inputs & form controls
string
Border color of inputs. Example:
"#d4d4d4".string
Background color of inputs. Example:
"#ffffff".string
Background color used when an input option is hovered. Example:
"#1a1a1a1a".string
Foreground color of inputs, used by the typed value. Example:
"#1a1a1a".string
Color of icons shown inside an input: a field’s leading icon, the select
chevron, the date picker arrows and the number stepper controls. Defaults
to
colorAccent. Example: "#6b7280".string
Color of placeholder text. Example:
"#a3a3a3".string
Border color of an unselected radio-style button. Example:
"#d4d4d4".string
Background color of an unselected radio-style button. Example:
"#ffffff".string
Text and icon color of an unselected radio-style button. Example:
"#1a1a1a".string
Border color of the selected radio-style button. Example:
"#c0392b".string
Background color of the selected radio-style button. Example:
"#c0392b".string
Text and icon color of the selected radio-style button. Example:
"#ffffff".string
Track color of a switch that is off. Defaults to
colorWidgetForeground at
25%. Example: "#d4d4d4".string
Track color of a switch that is on. Defaults to
colorAccent. Example:
"#c0392b".The switch knob is not configurable: it is derived so that it stays legible
on its track, and on the “on” track it follows the contrast computed for
colorAccent. If you set colorToggleBackgroundSelected to something far
from your accent, check that the knob still reads well against it.Corner radius & effects
Corner radius & effects
Each radius scale is set from a single base value, and the widget derives
the steps from it — so the proportions stay consistent.
string
Base corner radius cards and surfaces derive from. Example:
"8px".string
Base corner radius buttons derive from. Example:
"4px".string
Base corner radius inputs and form controls derive from. Example:
"2px".string
Corner radius of the outer widget container. Example:
"16px".string
Base rem size the widget’s type and spacing scales derive from. The widget
scales it up on very large screens and uses a print-friendly size when the
page is printed. Example:
"16px".string
Blur intensity used when
hasGlassEffect is enabled. Example: "12px".Full example
A realistic config combining a top-level field, a few commonly used variables, and a couple of less common ones from different categories — you don’t need to set all of them, just the ones that differ from the widget’s defaults:Next steps
Set Up Your Integrations
Enable GA4, Google Ads, Meta, TikTok, ChatGPT Ads, or GTM in your Restoo account.
Consent
Until the visitor’s decision is known, nothing goes out to any platform.