Customizing your styling and themes
The plugin maps these CSS variables to ready-made utility classes (For example, .boomi-btn-primary, .boomi-input, .boomi-card), ensuring consistent overrides across all UI components.
Built-in themes
| Theme | Look and feel summary | When to use |
|---|---|---|
light | Neutral, accessible light palette with subtle shadows. | Standard web apps with light mode are the primary experience. |
dark | High-contrast dark palette tuned for low-light environments. | Developer tools, dashboards, night-friendly apps. |
boomi | Boomi-branded accents and backgrounds, polished styling. | When you want Boomi’s brand language out of the box. |
You can do the following operations using Boomi EmbedKit:
- Enable theme switching for users.
- Pick a default theme at startup.
- Create your own themes by defining CSS variables under
cssVarsByThemeinboomi.config.js.
Configuration file (boomi.config.js) at a glance
boomi.config.js
// boomi.config.js
export default {
theme: {
allowThemes: true, // let users or your app toggle themes
defaultTheme: 'dark', // 'light' | 'dark' | 'boomi' | '<your-custom>'
},
integrationsMain: { // default key for integrations component Note: you can create your own
integrations: { // integrations component
title: 'My Integrations', // optional: title for the integrations page
description: 'This is a sample description', // optional: description for the integrations page
}
},
// Define overrides per theme using CSS custom properties (design tokens)
cssVarsByTheme: {
// example custom theme
sepia: {
'--boomi-root-bg-color': '#A0E8AF',
'--boomi-btn-primary-bg': '#FFDE59',
'--boomi-btn-primary-fg': '#2B2B2B',
// ...any other design CSS classes you want to override
},
},
};
Creating a custom theme
To create a new theme, add a new key under cssVarsByTheme and define the CSS variables you want to override. The plugin’s CSS uses these classes throughout buttons, inputs, cards, menus, tables, modals, wizards, mapping canvas, schedules, etc.
This example shows you how to create a new one.
-
In the root directory of your project, create a new file named
boomi.config.js. -
Copy the following code snippet into your
boomi.config.jsfile. This example sets up a theme named sepia and designates it as the defaultTheme by passing the variablecssVarsByTheme.boomi.config.js
// boomi.config.js (excerpt)
export const boomiConfig = {
theme: {
allowThemes: true,
defaultTheme: 'sepia', // switch to your custom theme by default
},
cssVarsByTheme: {
sepia: {
},
},
}; -
Add the specific CSS variables you want to override inside the
sepiaobject. These variables control the colors, borders, and shadows of elements such as buttons, cards, and notices. Your completeboomi.config.jsfile should now look like this:boomi.config.js
// boomi.config.js (excerpt)
export const boomiConfig = {
theme: {
allowThemes: true,
defaultTheme: 'sepia', // switch to your custom theme by default
},
cssVarsByTheme: {
sepia: {
/* Brand & Surface */
'--boomi-root-bg-color': '#A0E8AF',
'--boomi-page-bg-color': '#A0E8AF',
'--boomi-header-bg-color': '#5CD4F0',
'--boomi-header-fg-color': '#000000',
/* Buttons */
'--boomi-btn-primary-bg': '#FFDE59',
'--boomi-btn-primary-fg': '#2B2B2B',
'--boomi-btn-primary-border': '#000000',
'--boomi-btn-primary-shadow': '4px 4px 0 #000000',
'--boomi-btn-primary-bg-hover': '#FFD633',
/* Inputs */
'--boomi-input-bg': '#FFFFFF',
'--boomi-input-fg': '#2B2B2B',
'--boomi-input-border': '#000000',
'--boomi-input-shadow': '3px 3px 0 #000000',
/* Cards */
'--boomi-card-bg': '#FFFFFF',
'--boomi-card-border': '#000000',
'--boomi-card-shadow': '4px 4px 0 #000000',
/* Notices */
'--boomi-notice-success-bg': '#6EEB83',
'--boomi-notice-success-fg': '#111111',
'--boomi-notice-success-border': '#000000',
},
},
}; -
After saving your changes, reinitialize the plugin so that the new styling and theme take effect in your application.
The new styling will automatically cascade across all plugin UI elements that use the overridden classes (For example,
.boomi-btn-primary,.boomi-input,.boomi-card).
How do the UI components map to CSS styles?
The plugin’s stylesheet wires CSS variables to utility classes you apply or the components use internally.
| UI components | CSS styles |
|---|---|
| Primary Button | --boomi-btn-primary-bg, --boomi-btn-primary-fg, --boomi-btn-primary-border, --boomi-btn-primary-shadow |
| Secondary Button | --boomi-btn-secondary-bg, --boomi-btn-secondary-fg, --boomi-btn-secondary-border, --boomi-btn-secondary-shadow |
| Inputs | --boomi-input-bg, --boomi-input-fg, --boomi-input-border, --boomi-input-shadow, --boomi-input-border-focus |
| Cards / Panels | --boomi-card-bg, --boomi-card-border, --boomi-card-shadow, --boomi-card-hover-shadow |
| Menus | --boomi-menu-bg, --boomi-menu-fg, --boomi-menu-border, --boomi-menu-item-bg-hover |
| Modals | --boomi-modal-bg, --boomi-modal-fg, --boomi-modal-border, --boomi-modal-shadow |
| Notices / Alerts | --boomi-notice-*-bg, --boomi-notice-*-fg, --boomi-notice-*-border, --boomi-notice-shadow |
| Wizard | --boomi-wizard-step-dot-*, --boomi-wizard-card-*, --boomi-wizard-link-* |
| Tables | --boomi-table-header-*, --boomi-table-row-odd-bg, --boomi-table-row-even-bg |
| Mapping Canvas | --boomi-map-line, --boomi-map-card-*, --boomi-map-pin-*, --boomi-accent, --boomi-muted |
| Schedule UI | --boomi-sched-card-*, --boomi-sched-header-*, --boomi-sched-input-*, --boomi-sched-action-* |
You can override only the CSS styles you need; everything else inherits from the active theme (light, dark, boomi, or your custom theme).
Best practices for styling and theming
- Start your theme customization with the
boomifor a polished look, then adjust a few CSS styles to align with your brand. - For accessibility, ensure enough contrast for text in inputs, buttons, and tables.
- Scope overrides per theme in
cssVarsByThemeso you can switch safely without leaking styles. - You can omit the
aiblock if your app doesn't use AI features, as AI settings are optional.