Skip to content
Plume Visuals
← Back
Intermediate10 min read· Published on October 9, 2026

Styles, custom colors and JSON themes: dress every Plume visual at once

The Style card shared by every Plume Studio visual: 20 complete styles, free custom colors to step out of a style, and a JSON theme to apply your brand guidelines everywhere.

Lire en français

Every Plume Studio visual (Table Plume, Bar Plume, Ridgeline Plume, Map Plume, Bar Slicer Plume…) has the same Style card in the Format pane, right below the Plume Studio License card. It has four groups, in the same order:

PartWhat it does
StyleA complete ready-made look: colors, three palettes, fonts, frame, table header, bar fill, effects. Then Theme JSON ★, Follow report theme and Reverse gradients.
Custom colorsThe Customize colors switch: start from the style and pick the background, text, accent, series and gradient yourself. Free.
Text, AnimationsThe font (and, in slicers, the text size and density), then animations.

The background drawn by the visual, the border, the rounded corners and the shadow are in the Frame card (see the shared cards). In slicers, there is no Reverse gradients switch.

Pick the same Style (or paste the same Theme JSON) in every visual of a page: they match automatically.

1. Pick a style

StyleMoodOffer
NoneEach visual's default lookfree
MinimalSlate and a single bright color, no extra strokesfree
Black & WhiteNo color at all: black, grays and hatching, perfect for printfree
NewspaperNewsprint, black ink, double rule, small caps, one red accent★
Vintage (antique plate)Parchment, sepia, indigo and gold leaf, paper texture★
EarthTerracotta, olive, ochre and sand★
NordicGlacier blue, cold white, a touch of raspberry★
ExecutiveThe board report: navy, teal, filled header★
Accessible (high legibility)Okabe-Ito and Cividis (color-blind safe), strong contrast★
PastelSoft tints, very rounded corners, pill header★
Bauhaus (pop)Primary red, blue and yellow, thick black outlines, hard shadow★
ClimateWarming stripes, blues against reds★
BlueprintBlue paper, grid, dashed strokes, typewriter font★
Unknown PleasuresWhite lines on pure black★
Graphite (dark)Warm charcoal, raised cards, coral accent★
NeonIndigo night, magenta and cyan, glow, gradient bars★
Terminal (Matrix)Green phosphor screen, monospace font, scanlines★
InfographicNight slate, orange, pink, purple, cyan, pill bars★
Cockpit (HUD)Near-black fir green, mint, coral, amber, segmented bars★
HologramAbyssal blue, electric cyan, translucent fills and glow★

Each style carries three palettes: one for series (bars, lines, categories), one for gradients (heat maps, Ridgeline, Map Plume) and one for deviations (growth, above or below target). It also sets the favorable and unfavorable colors of KPI cards, Waterfall and Gantt.

Each visual adapts the style to its shape: in Table Plume, Executive uses a filled header and banded rows, Newspaper a double rule and small caps, Terminal lowercase "> column" headers; in Bar Plume, Neon draws gradient bars, Black & White hatching, Bauhaus outlines; in Ridgeline Plume, Terminal draws glowing green crest lines.

A setting you changed by hand (for example the label color) always wins over the style. To get the style's color back, set that option back to its default value (reset the card in the Format pane).

2. Step out of the style: custom colors (free)

Turn on Style › Custom colors › Customize colors. Each box shows the current style's color: change only the ones you want, the others keep following the style.

ColorWhat it changes
Background, Text, Secondary text, Lines and gridThe visual's background, titles and values, axes and notes, strokes
AccentSelection, cursor, buttons, links, data bars
Favorable, UnfavorablePositive and negative deviations (▲ ▼), Gantt statuses
Series 1 to Series 8Series and category colors, in order
Gradient paletteA gradient from the catalog: Viridis, Magma, Inferno, Cividis, Warming stripes, Spectral… (the Plume palettes are free)
Gradient: start, middle (diverging), endYour own gradient, applied last: it replaces the ends of the chosen palette. With a middle color it becomes diverging: centered on zero when values go from negative to positive. Series colors do not change

The slicers have one more color: Bar track.

To go back to the style, turn the switch off: the colors above are then ignored, except the Gradient palette (and, in Ridgeline Plume and Map Plume, colors 1 to 5 of the Custom palette), which stays applied. To remove it, pick Style or theme palette. A box set back to empty (reset) takes the style's color again.

Custom colors are free, even on a ★ style: only the ★ style then shows the "Premium preview" watermark.

3. Paste a JSON theme

A JSON theme describes your brand in a short text. Copy an example below, adapt it, then paste it into Style › Theme JSON ★. Every field is optional: only include what you want to change.

Easier: build your style guide in the brand kit. You pick colors, fonts and palettes, the real visuals update live, and the page writes the JSON for you.

The v2 format groups the settings and starts from a style with extends:

{
  "name": "Acme brand",
  "extends": "executive",
  "colors": { "accent": "#C81D25", "positive": "#1E7A4F", "negative": "#C81D25" },
  "palettes": {
    "categorical": ["#0B3954", "#087E8B", "#BFD7EA", "#FF5A5F", "#C81D25"],
    "sequential": "viridis",
    "diverging": ["#0B3954", "#F2F2F2", "#C81D25"]
  },
  "typography": { "fontFamily": "Segoe UI", "numberFamily": "Bahnschrift", "headerCase": "upper", "letterSpacing": 0.06 },
  "shape": { "radius": 4, "borderStyle": "solid", "shadow": "soft" },
  "table": { "header": "filled", "headerBackground": "#0B3954", "headerColor": "#FFFFFF", "banding": true },
  "marks": { "fill": "solid", "barRadius": 2, "lineWidth": 2, "curve": "smooth" },
  "effects": { "glow": false, "texture": "none" }
}
GroupFieldValues
—extends (or style)id of one of the 20 styles: none, minimal, blackWhite, press, vintage, earth, nordic, executive, accessible, pastel, bauhaus, climate, blueprint, unknownPleasures, dark, neon, terminal, infographic, cockpit, hologram
colorsbackground, background2color, or null / "transparent" (transparent background); background also accepts "none": a visual with no background (see below)
surfaceKPI cards, headers, highlighted cells
foreground, muted, grid, stroketext, secondary text, strokes, outlines
accent, accent2accent, second accent (glow)
positive, negativefavorable, unfavorable
palettescategorical2 to 12 colors, or a palette id
sequential2 to 12 colors, or an id (viridis, magma, inferno, cividis…; in Map Plume also sepia, hypso, parchment)
diverging3 to 12 colors (neutral middle), or an id
reversetrue / false: reverse the gradients (adds to the "Reverse gradients" switch: either one is enough)
typographyfontFamily, titleFamily, numberFamilyfont of text, titles, numbers
headerCasenone, upper, smallcaps, italic, prompt ("> column" headers)
headerWeight, letterSpacing100 to 900; 0 to 0.3 (em)
shaperadius0 to 24
border, borderWidth, borderStyle, borderColortrue/false; 0 to 4; solid, dashed, dotted, double; color
shadownone, soft, hard (offset shadow), glow
tableheaderplain, rule, thickRule, double, filled, pill, ticks, stripes
headerBackground, headerColorcolors of the filled header
banding, rowLines, colLinestrue/false; solid, dashed, dotted, none; true/false
marksfillsolid, gradient, outlined, glass, hatch, halftone, segmented
barRadius, lineWidth, curve, markers, outline0 to 99 (99 = pill); 0.5 to 6; linear, smooth, step; true/false; none, auto
effectsglow, glowColor, texturetrue/false; color; none, paper, halftone, grid, scanlines, stripes

Colors are written in hexadecimal: #B8462A (also #RGB and #RRGGBBAA, whose opacity is ignored). A value outside the list or the range is clamped to the nearest bound or ignored.

The former format (v1) is still accepted

{ "style": "nordic", "palette": ["#0b3954", "#087e8b", "#ff5a5f"], "accent": "#c81d25", "background": null, "radius": 0 }

Flat fields (accent, foreground, muted, grid, stroke, background, background2, fontFamily, radius, border) and palette (list of colors or id) still work.

Example: just your accent color

{ "colors": { "accent": "#0057B8" } }

Example: a custom dark mode, starting from Graphite

{
  "extends": "dark",
  "colors": { "background": "#0f172a", "surface": "#1e293b", "accent": "#38bdf8" },
  "palettes": { "categorical": ["#38bdf8", "#f472b6", "#facc15", "#4ade80"] },
  "effects": { "glow": true }
}

Example: a visual with no background, sitting on the page

{ "extends": "minimal", "noBackground": true }

"noBackground": true (or "background": "none", flat or inside colors) makes the visual fully transparent: no background, no card (surface), no border and no shadow. The visual sits directly on the page color or image. "background": null or "transparent" only removes the background and keeps the style's border and shadow.

Example: a map in hypsometric tints (Map Plume)

{ "extends": "nordic", "palettes": { "sequential": "hypso" } }

The same text works in every Plume visual: paste it into each of them to harmonize a whole page. Fields a visual does not use are simply ignored.

Which groups each visual uses

GroupVisuals
colors, typography, shape, effectsevery visual; the theme's background, border, corner radius and shadow fill the Frame card while its settings are left at their default (a setting changed by hand wins)
palettes.categoricalcharts, KPI cards and tables (series, categories); no effect on the slicers
palettes.sequential, palettes.divergingvisuals that draw a gradient or deviations (Ridgeline Plume, Map Plume, color scales of Table Plume and Matrix Plume…)
tableTable Plume and Matrix Plume
markscharts (bars, lines, points, ridges, map); no effect on the slicers

In the slicers (Bar Slicer, Basic Slicer, Filter Bar, Period, Range, Date Picker, Text Plume), the theme acts on background, foreground, muted, grid, accent, borderColor, glowColor, the fonts (fontFamily, titleFamily), headerCase, letterSpacing, the frame (radius, border, borderWidth, borderStyle, shadow), glow and texture. Palettes, surface, background2, stroke, accent2, positive, negative and numberFamily have no effect there (except the older palette given as a list of colors without accent, which sets the accent color). The theme's font, corner radius and frame only apply while the matching Format pane options are left at their default.

4. What wins?

Settings apply in this order; the last one wins:

  1. the visual's default values;
  2. the Style;
  3. the Theme JSON;
  4. the Gradient palette (when it is not Style or theme palette);
  5. Follow report theme;
  6. the Custom colors;
  7. settings you changed by hand in the other cards;
  8. formats driven by a DAX formula (fx button, "Dynamic format" field);
  9. Windows high contrast mode, always first for accessibility.

5. Troubleshooting

  • "Invalid theme JSON: ignored" shows in edit mode: the text is not valid JSON. Check the straight quotes " (not “ ”), the commas between fields and that there is no comma after the last field. The visual keeps its look meanwhile.
  • A color does not change: it may be set by hand in another card (it then wins), or written in an unsupported format (red, rgb(…)): use #RRGGBB.
  • A palette chosen in an older report: it shows in Custom colors › Gradient palette, even with the switch off; pick Style or theme palette to go back to the style.
  • The font does not change: it must be installed on every report reader's computer. Styles only use fonts shipped with Windows (Segoe UI, Bahnschrift, Consolas, Georgia, Times New Roman, Verdana, Arial); web fonts are never loaded (Microsoft certification rule).

Free or premium?

The None, Minimal and Black & White styles, Custom colors, the Plume palettes and Follow report theme are free. The other styles, the other gradient palettes and Theme JSON are premium features: without a license key they work with a "Premium preview" watermark. A key bought on the Pricing page removes it. A free style makes its own palettes free: Minimal's gray gradient does not trigger the watermark.