Theming
The widget’s look is set when you mint the session. There is no CSS injection into the iframe; the three theme fields cover what matters for it to read as part of your product.
Theme fields
Section titled “Theme fields”{ "theme": { "mode": "dark", "accent": "#6d5efc", "radius": "12px" }, "locale": "nl"}| Field | Values | What it changes |
|---|---|---|
mode |
dark, light |
The whole palette: page, panels, text, borders. Default dark |
accent |
Any CSS hex colour | Primary buttons, links, focus rings, the selected day in the calendar, unread badges. Default #6d5efc |
radius |
Any CSS length | Corner radius of cards, inputs and buttons. Default 12px. Use 0px for a square UI |
locale |
en, nl |
UI language, date formats, relative times. Default en |
The widget uses a transparent page background and draws its own panels, so it sits on your page colour in both modes.
Match your product
Section titled “Match your product”- Pass the mode the user has chosen in your app. If your app follows the system setting, read
prefers-color-schemeon the client, send it to your embed-session route, and mint with the matchingmode. - Pass your brand colour as
accent. Check contrast: the accent is used as a button background with white text, so a very light accent will produce low-contrast buttons. - Match
radiusto your own inputs. It is the most noticeable mismatch when it is wrong. - Place the iframe inside your own card or panel rather than on the bare page. The widget has no outer border, so the frame you give it becomes its edge.
Switching theme at runtime
Section titled “Switching theme at runtime”The theme is fixed for the life of the session. To switch, mint a new session with the new mode and swap the iframe src. The loader does this if you change data-session and call window.MissLessSocial.mount(element) again.
Locale
Section titled “Locale”locale covers the widget’s own strings and formats. It does not translate captions, messages or anything that comes from users or from Meta. Dutch (nl) uses 24-hour times and day-month ordering; English (en) uses the same 24-hour clock and day-month ordering, without American formats.
What is not themeable
Section titled “What is not themeable”Fonts, spacing scale and layout are fixed. The widget ships with a neutral sans-serif close to Inter and a compact density that fits product UIs. If you need a different layout, build on the API instead; the surfaces are conveniences, not a design system.