Skip to content

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": { "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.

  • Pass the mode the user has chosen in your app. If your app follows the system setting, read prefers-color-scheme on the client, send it to your embed-session route, and mint with the matching mode.
  • 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 radius to 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.

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 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.

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.