Skip to content

Rule.io SDK


Rule.io SDK / rcml/src / createEmailTheme

Function: createEmailTheme()

createEmailTheme(overrides?): EmailTheme

Defined in: rcml/src/email/create-theme.ts:75

Build an EmailTheme seeded with the rcml defaults.

Without an argument, the returned theme has every field populated with the values from theme-defaults.ts (four colour slots, six default social links, six default font-styles, no images, no fonts, no brandStyleId).

When overrides is provided, each bucket is applied on top of the base theme with the same semantics as the corresponding updater:

BucketSemantics
brandStyleIdScalar set.
colorsReset to defaults, then overlay provided entries by type.
linksReset to defaults, then overlay provided entries by type.
imagesFull replace; empty array clears all images.
fontsFull replace; empty array removes every font registration.
fontStylesReset to defaults, then partial-merge each override into its slot.

The returned object is a plain POJO — safe to JSON.stringify, structuredClone, or snapshot in tests.

Parameters

overrides?

EmailThemePatch

Optional per-field values to apply on top of the defaults.

Returns

EmailTheme

A fresh EmailTheme. The input is not mutated.

Example

ts
// Defaults only.
const theme = createEmailTheme()

// Brand style + a custom primary colour, everything else default.
const branded = createEmailTheme({
  brandStyleId: 99999,
  colors: [{ type: EmailThemeColorType.Primary, hex: '#FF0000' }],
})