Word cloud for Power BI Word Cloud Plume
A readable word cloud that is always the same: topics, customer reviews or open answers, in the shape and font of your choice.
Interactive demo
The real Power BI visual, running in your browser with the sample report's fictitious data. Switch scenario, style or year: the visual updates as it does in Power BI. Premium ★ features are shown here without the watermark; in Power BI, without a license, they show “Plume Visuals · Premium preview”.
Word Cloud Plume arranges words in the middle of a shape, largest first, without overlap and always the same way for the same data. It splits comments into words by itself, removes English and French stop words and French elisions, merges case and accents, and counts occurrences or follows your measure. Shapes (oval, rectangle, heart, cloud, star…), 55 Windows and Office fonts, horizontal, vertical or angled words, adjustable spacing: no word is dropped silently, the visual reports the ones that do not fit. A click on a word filters the page on the rows that contain it. With premium: two- or three-word phrases, color by a measure (the average sentiment of reviews), words rising or falling against another period, 131 more shapes and your own SVG, repeated words that fill the shape, and a cloud that changes month by month.
Use cases
- Customer reviews and answers to an open question, split into words, without stop words
- Most frequent complaint reasons or ticket titles, colored by sentiment
- Topics rising and falling compared with last year
- Keywords of the year, month by month, with the play axis
FreeIncluded for free
- A column of words or long texts, split automatically; size by a measure or by the number of occurrences
- Built-in English and French stop words, elisions, case, minimum length, top N, excluded words (pane or measure)
- Oval and rectangle that fill the visual, 22 free shapes (heart, cloud, star, house…)
- All horizontal, horizontal and vertical, diagonals, from one angle to another or free angles
- 55 Windows and Office fonts, weight, italic, minimum and maximum size, linear or square-root scale, spacing
- Dense, deterministic layout; words that do not fit are reported, never dropped silently
- Palette, single color, one color per word; click = cross-filtering, context menu, keyboard
- Special characters kept (#, @, emojis, amounts); sizes kept under filters (weight of the largest size)
- Dynamic formats: fx button on colors and texts, any option driven by DAX
PremiumPremium features
- Two- or three-word phrases (“customer service”, “delivery lead time”)
- Color by a measure, for example the average sentiment of the reviews that use the word
- Comparison of two periods: rising ▲, falling ▼ and new ✦ words
- 131 more shapes (France, light bulb, tree…) and your own SVG, pasted or returned by a measure
- Repeated words that fill the shape
- Play axis: one cloud per month, common words glide to their new place
- Merged plurals, once per comment, logarithmic and rank scales, gradient by size, background silhouette
- Catalog-wide styles (Neon, Newspaper, Nordic…), palettes, theme JSON
Usable without a key to try them, with a watermark.
Tutorials
Start with Getting started, then pick from the how-to guides. The Fields and settings page describes every option of the Format pane.
- Getting startedBeginner6 min readA readable word cloud in Power BI, even from free-text commentsGet started with Word Cloud Plume: build a cloud of topics or customer reviews, remove stop words, pick a shape, a font and the orientation, and filter the page with a click.
- How-to guidesIntermediate5 min readWord Cloud Plume: phrases, sentiment, comparison and shapesWord Cloud Plume recipes: stop words from your data, two-word phrases, color by sentiment, rising and falling words, SVG shape, and a cloud that changes month by month.
- Fields and settingsIntermediate13 min readWord Cloud Plume: every field and every settingComplete reference of Word Cloud Plume: fields (words, size, color, comparison, excluded words, SVG shape, play axis) and every Format pane setting with its values.
- BasicsGetting started with Plume visualsInstallation, license, styles and the settings shared by every visual.
Fields to drop into the visual
| Field | Content | |
|---|---|---|
| Words or text | Column of words, labels or comments (split automatically) | Required |
| Size | Measure that gives the size; otherwise the number of occurrences | Optional |
| Color | Color as text, or a number for a gradient ★ (sentiment) | Optional |
| Comparison | Same measure for an earlier period: rising, falling, new words | OptionalPremium |
| Excluded words | Text measure (CONCATENATEX) of words to remove | Optional |
| Shape (SVG) | Measure that returns an SVG: the shape of the cloud | OptionalPremium |
| Play axis | Date or ordered category: one cloud per value | OptionalPremium |
| Tooltips | Extra measures | Optional |
| Dynamic format | Measures renamed card.setting (e.g. title.text): the Format pane driven by DAX | Optional |
Missing a feature? We adapt our visuals or build custom ones. Request a custom visual
Found a bug in Word Cloud Plume, or have an idea to improve it? Report a bug · Suggest an idea
Technical reference for AI assistants
This section is meant for AI assistants (ChatGPT, Claude, Copilot…): every field, every Format pane option with its internal name, the expected data shape and DAX examples. Generated from the visual's code, version 1.1.0.0. Paste it into your assistant so it can guide you.
Raw Markdown version (/ai/visuals/word-cloud.md)# Word Cloud Plume: technical reference for AI assistants
> Power BI custom visual by Plume Studio (Plume Visuals). Visual version **1.1.0.0**. This page is generated from the visual's source code at each site build: field names, option names and defaults are exact for this version.
Use it to help someone build a report with Word Cloud Plume: which fields to drag, how to shape the data, which Format pane option to change, or how to write the visual's settings in a PBIP `visual.json` file.
- Product page: https://plumevisuals.com/en/visuals/word-cloud (French: https://plumevisuals.com/fr/visuels/word-cloud)
- Summary: A readable word cloud that is always the same: topics, customer reviews or open answers, in the shape and font of your choice.
- Power BI visual GUID (`visualType`): `plumeWordCloudEF71B057859746CE8A28DD8261953560`
- Power BI visuals API: 5.11.1
- Support: https://plumevisuals.com/support · contact@plumevisuals.com
- Index of everything on the site for AI assistants: https://plumevisuals.com/llms.txt
## What the visual does
Word Cloud Plume (identifier `word-cloud`) is a Power BI custom visual (version 1.1.0.0, installed from its `.pbiviz` file; not yet on AppSource) that draws **word clouds**. Power BI Desktop has no native word cloud; Microsoft's free Word Cloud visual has English stop words only, no shapes and no font choice.
**New in version 1.1.0.0 (30/10/2026):** Format pane reorganized (`compare` → `comparison`); free "Keep special characters (#, @, emojis)" and a maximum-size weight to keep sizes under filters (`wordFont.weightMax`).
- **Words or long texts**: one column (`words` role). Short labels are kept whole; long texts (comments, survey answers) are **split into words automatically** (`words.split` = `auto`: when at least 20% of the values have 4 words or more, or 3 words on average), or always (`on`) / never (`off`).
- **Text cleaning built in**: French and English stop words (`words.stopWords` = `auto` | `fr` | `en` | `none`), French elisions removed (l', d', qu'… → `words.elision`), numbers ignored, minimum length (3 letters), case and accents merged (the most frequent form is shown; with split text a lowercase form wins over a sentence-initial capital), optional plural merging ★ (`words.mergePlurals`), excluded words from the pane (`words.customStop`) or from a text measure (`exclude` role, e.g. `CONCATENATEX`).
- **Size** = the `weight` measure, otherwise the number of occurrences (`words.countMode` = `occurrences` | `rows` ★: once per row). Empty, zero or negative sizes remove the word. Top N (`words.maxWords`, 150) and minimum weight.
- **Layout**: words placed largest first along an Archimedean or rectangular spiral from the center of the shape, collision test on a bitmap of the shape (like d3-cloud, written for Plume), adjustable spacing, **deterministic** (same data → same cloud; `layout.seed` gives another arrangement). A word that does not fit is retried in the other orientation, then smaller down to the minimum size; words that still do not fit are **counted** ("n word(s) not placed" note in edit mode, with the list in its tooltip), never dropped silently. 500 words are laid out in under a second in the test harness.
- **Shapes**: an oval (default) and a rectangle that fill the visual, plus the 153 shapes of the Plume shape library (22 free: circle, square, rounded square, rectangle, triangle, diamond, hexagon, star, heart, cloud, drop, bubble, arrow, person, house, barrel, bottle, glass, wine glass, thermometer, battery, vertical battery), a custom SVG ★ pasted in the pane or returned by the `shapeSvg` measure (sanitized: no script, no image, no web link; only its geometry is used); keep proportions or stretch; optional silhouette ★.
- **Orientation**: all horizontal, horizontal and vertical (share of rotated words, reading direction), all vertical, diagonals ±45°, N even steps from one angle to another, free angles between two limits. A word always keeps the same orientation.
- **Fonts**: the style font or one of 55 fonts installed with Windows or Microsoft Office (no web font), with fallback stacks; weight (regular, semibold, bold, bold for the largest words), italic; minimum / maximum size; size scale linear, square root (default), logarithmic ★ or by rank ★; "Fill the shape" adapts the largest size.
- **Colors**: style palette (in size order or fixed per word), single color, ★ gradient by size, one color per word (categories), colors given as text by the `colorBy` field; ★ gradient by a numeric `colorBy` measure (the weighted average of the rows using the word, e.g. review sentiment; sequential or diverging around 0); ★ change versus the `compare` measure.
- ★ **Phrases**: two-word, words + two-word, or three-word phrases (`words.ngrams`); a stop word never starts or ends a phrase and phrases never cross punctuation.
- ★ **Comparison**: with a `compare` measure (same measure for an earlier period), words get ▲ (rising), ▼ (falling), ✦ (new) written small after the word, favorable / unfavorable / gray colors, "a decrease is favorable", negligible change threshold, a clickable legend and the change in % in the tooltip.
- ★ **Repeated words** (`layout.repeat`): smaller copies fill the room left in the shape (texture), decorative only.
- ★ **Play axis** (`play` role, premium since the rebalancing of 22/10/2026): one cloud per value (month, year) with the shared Plume play bar; common words keep a reference position and glide to their new place, the others fade in or out.
## Free vs premium (★)
- Every feature works without a key and nothing is ever blocked. Free features never show a watermark, and a freshly inserted visual uses only free settings.
- Shared Style card (the same in every Plume visual): the styles `none`, `minimal` and `blackWhite`, the two Plume gradient palettes (`crest`, `crestDiverging`), "Follow report theme" and all custom colors are **free**; every other `style.preset`, the other gradient palettes (`style.palette`) and `style.themeJson` ("Theme JSON ★") are **premium**.
- Free in Word Cloud Plume: splitting, stop words, elisions, case, exclusions, top N; the oval, the rectangle and the 22 free shapes; every orientation; every font; sizes (linear or square-root scale), spacing, spiral, layout variant, intro animation; palette, single color, per-word colors, text colors from `colorBy`; selection, tooltips, keyboard.
- Premium features of Word Cloud Plume: `words.ngrams` other than `1` (when the text is split); `dataColors.mode` = `field` with a numeric Color field (also chosen automatically when the mode is left on `palette`); the `compare` role (`dataColors.mode` = `change`); `shape.shape` other than `oval`, `rect` and the 22 free shapes; `shape.shape` = `custom` with an SVG, or the `shapeSvg` role; `layout.repeat`; since the rebalancing of 22/10/2026: the `play` role (as soon as it holds data), `dataColors.mode` = `weight`, `wordFont.sizeScale` = `log` or `rank`, `words.mergePlurals`, `words.countMode` = `rows` (when the text is split), `shape.silhouette`.
- Without a valid key, a premium feature in use shows, in edit mode, a "Premium preview" note in the footer; in reading view, **"Plume Visuals · Premium preview"** (French « Plume Visuals · Aperçu premium ») is repeated lightly across the whole visual, without catching the mouse. It disappears once a key is pasted in **Format › Plume Studio License › License key** (`license.key`), the **first card** of the Format pane. Premium options and list values have " ★" appended to their label.
- Accepted keys: only keys starting with `PLUM1.` shown in the buyer's account on plumevisuals.com, checked offline (Ed25519 signature), covering `word-cloud` or the whole catalog. In edit mode, a wrong key shows "Invalid license key", "License expired (date)" or "This key does not cover this visual".
- Licenses last one year (one-time payment, no automatic renewal, key accepted for 30 more days, reminders 30 and 7 days before the end). Prices: 39 € personal, 99 € SME, 299 € enterprise per year, or the catalog pack (199 € / 399 € / 1,199 € per year; tiers by number of users: personal 1–10, SME 11–200, enterprise more than 200).
## Expected data shape
Either one row per word with a measure, or one row per text.
| Words or text (`words`) | Size (`weight`) | Color (`colorBy`) | Comparison (`compare`) |
|---|---|---|---|
| delivery | 980 | | 784 |
| customer service | 790 | | 963 |
| "Fast delivery, careful packaging" | 1 | 0.82 | |
- **Words or text** (`words`, « Mots ou texte », one column, required): words, labels or long texts. Numbers and dates are written with the column format.
- **Size** (`weight`, « Taille », one measure): the size; with split text, each word receives the row value for each occurrence. Power BI groups identical texts into one row: use a count measure (`COUNTROWS`) so that identical comments count.
- **Color** (`colorBy`, « Couleur », one measure): a color as text (`#RRGGBB`, `red`) applied as is, or a number for a gradient ★.
- **Comparison ★** (`compare`, « Comparaison »), **Excluded words** (`exclude`, « Mots exclus », text measure), **Shape (SVG) ★** (`shapeSvg`, « Forme (SVG) »), **Play axis ★** (`play`, « Axe de lecture ★ », one column, premium), **Tooltips** (`tooltips`), **Dynamic format** (`format`).
- Volume of data: windows of 30,000 rows, more fetched with `fetchMoreData` up to 100,000 rows; 100,004 comments are split and drawn in a few seconds (2 to 4 s measured in the test harness).
## DAX recipes
```dax
// Size: count the reviews behind each text (identical texts are grouped by Power BI)
Number of reviews = COUNTROWS ( Reviews )
// Color ★: average sentiment (−1 to 1) of the reviews that use the word
Average sentiment = AVERAGE ( Reviews[Sentiment] )
// Comparison ★: the same measure one year earlier
Mentions last year = CALCULATE ( [Number of mentions], SAMEPERIODLASTYEAR ( 'Date'[Date] ) )
// Excluded words: from a table
Excluded word list = CONCATENATEX ( 'Excluded words', 'Excluded words'[Word], ";" )
```
## Interactions with the report
- Click a word: cross-filter on every row that contains it (up to 5,000 rows per word); Ctrl for several; click the background to clear; a click on a legend group of the comparison selects its words. Context menu everywhere (word, background, landing page).
- Hover: the hovered word stands out (`interaction.hover`); Power BI tooltip with the word, size, occurrences, comparison and change, color value, Tooltips measures; report-page tooltips are supported. No cross-highlighting from other visuals (the visual is filtered instead).
- Keyboard: Tab to the cloud, arrows from the largest word to the smallest, Enter selects, Esc clears; the cloud is labeled with its five largest words for screen readers. High contrast, French and English.
## Dynamic formats
- **fx button** (Power BI conditional formatting) on colors and texts of the Format pane (e.g. `title.text`, `shape.svg`).
- **"Dynamic format" well** (`format`): measures renamed `card.setting` (e.g. `wordFont.maxSize`, `layout.orientation`, `shape.shape`) drive any setting and win over the fixed value. Driving a ★ setting by DAX still shows the watermark without a key.
## Format pane: option IDs
- Card order: `license`, `style`, `dataColors`, `words`, `wordFont`, `shape`, `layout`, `comparison` (with the Comparison field), `legend` (with a gradient or the comparison), `play` (« Lecture ★ », with the Play axis field), `interaction`, then `title`, `source`, `container`, `texts`. Format pane in version 1.1.0.0 (30/10/2026), top to bottom: `license`, `style`, `layout`, `dataColors`, `words`, `wordFont`, `shape`, `legend`, `comparison`, `play`, `interaction`, `tooltip`, `title`, `source`, `container`, `texts`. Settings moved or renamed in this version keep working in older reports (the old names are still read).
- `dataColors`: `mode` (`palette` | `single` | `weight` ★ | `field` ★ | `change` ★), `single`, `gradient` (`sequential` | `diverging`), `byRank` (true), `fill` per word (category selector).
- `words`: `split` (`auto` | `on` | `off`), `ngrams` (`1` | `2` ★ | `12` ★ | `3` ★), `countMode` (`occurrences` | `rows` ★), `minLength` (1–20, 3), `removeNumbers` (true), `elision` (true), `mergePlurals` ★ (false), `textCase` (`auto` | `lower` | `upper` | `title`), `stopWords` (`auto` | `fr` | `en` | `none`), `customStop` (text), `maxWords` (1–1000, 150), `minWeight` (0).
- `wordFont`: `font` (`auto` or a font name such as `Segoe UI`, `Calibri`, `Georgia`, `Bahnschrift SemiCondensed`, `Segoe Print`, `Impact`), `fontWeight` (`normal` | `semibold` | `bold` | `bySize`), `italic`, `minSize` (6–80, 11), `maxSize` (8–300, 64), `sizeScale` (`linear` | `sqrt` | `log` ★ | `rank` ★).
- `shape`: `shape` (`oval` | `rect` | `custom` ★ | a library shape ID such as `heart`, `cloud`, `star`, `france` ★, `tree` ★), `svg` (text), `fit` (`contain` | `stretch`), `silhouette` ★, `silhouetteColor`, `silhouetteOpacity` (5–100, 40), `margin` (0–80, 4).
- `layout`: `orientation` (`horizontal` | `hv` | `vertical` | `diagonal` | `range` | `random`), `rotatedShare` (0–100, 25), `verticalDir` (`up` | `down`), `angleFrom` (−90–90, −60), `angleTo` (60), `steps` (2–19, 5), `spacing` (0–30 px, 2), `fit` (`auto` | `shrink` | `none`), `spiral` (`archimedean` | `rectangular`), `seed` (1–999, 1), `repeat` ★, `repeatOpacity` (10–100, 55), `repeatMax` (50–3000, 900), `intro` (`grow` | `fade` | `none`).
- `comparison`: `arrows` (true), `lowerIsBetter`, `neutral` (0–100 %, 5), `risingColor`, `fallingColor`, `newWords` (true).
- `legend`: `show`, `position` (`bottom`), `align` (`center`), `showTitle`, `titleText`, `fontSize` (9), `color`, `interactive`.
- `play`: `start` (`last` | `first`), `speed` (100–10000 ms, 1000), `loop`, `autoPlay`, `transition`, `controls`, `position`, `ticks`, `tickLabels`, `stepButtons`, `speedButton`, `showLabel`, `labelSize` (44), `labelPosition`.
- `interaction`: `hover`, `dim` (5–80, 25).
## Editing a PBIP report (visual.json)
`visualType` is the visual GUID, `queryState` keys are the data role names, `objects` keys are the option IDs. Booleans `true` / `false`, numbers suffixed with `D`, strings and enumeration values in single quotes.
```json
{
"visualType": "plumeWordCloudEF71B057859746CE8A28DD8261953560",
"query": {
"queryState": {
"words": { "projections": [ { "field": { "Column": { "Expression": { "SourceRef": { "Entity": "Reviews" } }, "Property": "Comment" } }, "queryRef": "Reviews.Comment", "nativeQueryRef": "Comment" } ] },
"weight": { "projections": [ { "field": { "Measure": { "Expression": { "SourceRef": { "Entity": "Reviews" } }, "Property": "Number of reviews" } }, "queryRef": "Reviews.Number of reviews", "nativeQueryRef": "Number of reviews" } ] }
}
},
"objects": {
"shape": [ { "properties": { "shape": { "expr": { "Literal": { "Value": "'heart'" } } }, "silhouette": { "expr": { "Literal": { "Value": "true" } } } } } ],
"layout": [ { "properties": { "orientation": { "expr": { "Literal": { "Value": "'horizontal'" } } }, "spacing": { "expr": { "Literal": { "Value": "1D" } } } } } ],
"wordFont": [ { "properties": { "font": { "expr": { "Literal": { "Value": "'Georgia'" } } } } } ]
}
}
```
The custom visual package must also be embedded in the report (Power BI does this when the visual is imported from the `.pbiviz` file).
## Styles and theme JSON
- `style.preset` takes one of the 20 style IDs shared by every Plume visual: `none`, `minimal`, `blackWhite`, `press`, `vintage`, `earth`, `nordic`, `executive`, `accessible`, `pastel`, `bauhaus`, `climate`, `blueprint`, `unknownPleasures`, `dark`, `neon`, `terminal`, `infographic`, `cockpit`, `hologram`. The style gives the palette and the font ("Style font"); `minimal`, `unknownPleasures`, `terminal` and `blueprint` lay words out horizontally when the orientation is left by default.
- `style.themeJson` (Theme JSON ★): a JSON theme as plain text (format v2 with optional `extends` and groups `colors`, `palettes`, `typography`, `shape`, `table`, `marks`, `effects`). Full reference: https://plumevisuals.com/ai/tutorials/en/themes-json.md.
## Common pitfalls
- Every word has the same size: no Size measure and each word appears once.
- A whole comment shows as one word: texts are short; set `words.split` = `on`.
- Identical comments count once: Power BI groups identical values; put `COUNTROWS` in Size.
- "n word(s) not placed": the shape is too small; enlarge the visual, lower `wordFont.minSize`, `layout.spacing` or `words.maxWords`, or use a wider shape / `shape.fit` = `stretch`.
- Words in an unexpected font on a Mac or in a browser: the chosen Windows or Office font is missing there; the fallback stack is used.
- Pale words with a diverging gradient: tints too light are darkened automatically; choose `sequential` for stronger colors.
- "SVG shape: …" message: the pasted SVG is unreadable or has no filled shape; the oval is used meanwhile.
- Watermark visible: phrases, a ★ shape or custom SVG, a numeric Color field, the Comparison field, repeated words, a ★ style or a theme JSON, without a valid key.
- The visual makes no network request: data, SVG and license key stay in the report.
## Features that do NOT exist (do not suggest them)
Images loaded from a web address as a shape (only pasted or measure SVG), web fonts, automatic sentiment analysis or language detection (sentiment comes from a measure), lemmatization beyond simple plurals, lasso selection, cross-highlighting (the cloud is filtered instead), editing words by hand in the visual, exporting the cloud as an image.
## Data fields (wells)
Internal name = data role name (PBIP `queryState` key). Labels as shown in Power BI (English / French). ★ = premium.
| Internal name | Label (EN) | Label (FR) | Kind | Max fields | Description |
|---|---|---|---|---|---|
| `words` | Words or text | Mots ou texte | column | 1 | A column of words or labels, or long texts (comments, answers) that the visual splits into words |
| `weight` | Size | Taille | measure | 1 | A measure that sizes the words; without it, the number of occurrences |
| `colorBy` | Color | Couleur | measure | 1 | A color (#RRGGBB, red…) per word, or a number for a gradient ★ |
| `compare` | Comparison ★ | Comparaison ★ | measure | 1 | The same measure for an earlier period: words on the rise or falling, new words ★ |
| `exclude` | Excluded words | Mots exclus | measure | 1 | A text measure listing words to remove, separated by ; , or new lines (e.g. CONCATENATEX) |
| `shapeSvg` | Shape (SVG) ★ | Forme (SVG) ★ | measure | 1 | A measure that returns an SVG: the words fill this shape (cleaned, no web link) |
| `play` | Play axis ★ | Axe de lecture ★ | column | 1 | A date, a year or an ordered category: one cloud per value, common words glide to their new place |
| `tooltips` | Tooltips | Infobulles | measure | several | |
| `format` | Dynamic format | Format dynamique | measure | several | Measures named card.setting (e.g. title.fontSize): drive any Format option with DAX |
Data view: categorical, categories = `words` + `play` (one row per combination), 30,000 rows per data window (more fetched automatically); measures = `weight`, `colorBy`, `compare`, `exclude`, `shapeSvg`, `tooltips`, `format`.
Capabilities: supportsKeyboardFocus, supportsMultiVisualSelection, supportsLandingPage, supportsEmptyDataView.
Network access: none (no privileges requested, no external request).
## Format pane options (145)
Columns: option ID (`object.property`), labels EN / FR as shown in Power BI, control type, PBIP literal type, default value, allowed values, notes.
### Plume Studio License / Licence Plume Studio (`license`, Format pane)
| Option ID | Label (EN) | Label (FR) | Control | Type | Default | Allowed values | Notes |
|---|---|---|---|---|---|---|---|
| `license.buy` | Get a license | Obtenir une licence | info | text | `plumevisuals.com` | | |
| `license.key` | License key | Clé de licence | text | text | (empty) | | Paste the key received after purchase on plumevisuals.com (starts with PLUM1.). Checked offline. |
| `license.showOwner` | Show license holder (edit mode) | Afficher le titulaire (mode édition) | toggle | bool | `true` | true / false | |
### Style (`style`, Format pane)
**Style**
| Option ID | Label (EN) | Label (FR) | Control | Type | Default | Allowed values | Notes |
|---|---|---|---|---|---|---|---|
| `style.preset` | Style | Style | dropdown | enumeration | `none` | `none` None; `minimal` Minimal; `blackWhite` Black & White; `press` Newspaper ★; `vintage` Vintage (antique plate) ★; `earth` Earth ★; `nordic` Nordic ★; `executive` Executive ★; `accessible` Accessible (high legibility) ★; `pastel` Pastel ★; `bauhaus` Bauhaus (pop) ★; `climate` Climate ★; `blueprint` Blueprint ★; `unknownPleasures` Unknown Pleasures ★; `dark` Graphite (dark) ★; `neon` Neon ★; `terminal` Terminal (Matrix) ★; `infographic` Infographic ★; `cockpit` Cockpit (HUD) ★; `hologram` Hologram ★ | Complete look shared by all Plume visuals: colors, three palettes, fonts, frame, table header, marks and effects. Customize colors below. |
| `style.themeJson` | Theme JSON ★ | Thème JSON ★ | textarea | text | (empty) | | Paste a JSON theme: see the 'JSON themes' tutorial on plumevisuals.com |
| `style.followTheme` | Follow report theme | Suivre le thème du rapport | toggle | bool | `false` | true / false | Text, background, accent and data colors come from the Power BI report theme. |
| `style.reverse` | Reverse gradients | Inverser les dégradés | toggle | bool | `false` | true / false | |
**Custom colors / Couleurs personnalisées**
| Option ID | Label (EN) | Label (FR) | Control | Type | Default | Allowed values | Notes |
|---|---|---|---|---|---|---|---|
| `style.customColors` | Customize colors | Personnaliser les couleurs | toggle | bool | `false` | true / false | Start from the style and pick your own colors. A color left empty keeps the style's color. |
| `style.colorBackground` | Background | Fond | color | fill | (empty) | hex color | Visible when `style.customColors` = `true` |
| `style.colorText` | Text | Texte | color | fill | (empty) | hex color | Visible when `style.customColors` = `true` |
| `style.colorMuted` | Secondary text | Texte secondaire | color | fill | (empty) | hex color | Visible when `style.customColors` = `true` |
| `style.colorGrid` | Lines and grid | Traits et grille | color | fill | (empty) | hex color | Visible when `style.customColors` = `true` |
| `style.colorAccent` | Accent | Accent | color | fill | (empty) | hex color | Visible when `style.customColors` = `true` |
| `style.colorPositive` | Favorable | Favorable | color | fill | (empty) | hex color | Visible when `style.customColors` = `true` |
| `style.colorNegative` | Unfavorable | Défavorable | color | fill | (empty) | hex color | Visible when `style.customColors` = `true` |
| `style.series1` | Series 1 | Série 1 | color | fill | (empty) | hex color | Visible when `style.customColors` = `true` |
| `style.series2` | Series 2 | Série 2 | color | fill | (empty) | hex color | Visible when `style.customColors` = `true` |
| `style.series3` | Series 3 | Série 3 | color | fill | (empty) | hex color | Visible when `style.customColors` = `true` |
| `style.series4` | Series 4 | Série 4 | color | fill | (empty) | hex color | Visible when `style.customColors` = `true` |
| `style.series5` | Series 5 | Série 5 | color | fill | (empty) | hex color | Visible when `style.customColors` = `true` |
| `style.series6` | Series 6 | Série 6 | color | fill | (empty) | hex color | Visible when `style.customColors` = `true` |
| `style.series7` | Series 7 | Série 7 | color | fill | (empty) | hex color | Visible when `style.customColors` = `true` |
| `style.series8` | Series 8 | Série 8 | color | fill | (empty) | hex color | Visible when `style.customColors` = `true` |
| `style.palette` | Gradient palette | Palette du dégradé | dropdown | enumeration | `auto` | `auto` Style or theme palette; `crest` Plume (sequential); `crestDiverging` Plume (diverging); `viridis` Viridis ★; `magma` Magma ★; `inferno` Inferno ★; `cividis` Cividis (colorblind-safe) ★; `warmingStripes` Warming stripes ★; `rdYlBu` Red–Yellow–Blue ★; `brBG` Brown–Teal (drought) ★; `spectral` Spectral ★; `blues` Blues ★; `reds` Reds ★; `grays` Grays ★; `press` Press (ink and paper) ★; `nordic` Nordic ★; `earth` Earth (ochre to umber) ★; `pastel` Pastel ★; `okabeIto` Okabe-Ito (colorblind-safe) ★ | Visible when `style.customColors` = `true`. Gradient from the catalog (Viridis, Magma…). The start, middle and end colors below replace it. |
| `style.scaleLow` | Gradient: start | Dégradé : début | color | fill | (empty) | hex color | Visible when `style.customColors` = `true` |
| `style.scaleMid` | Gradient: middle (diverging) | Dégradé : milieu (écarts) | color | fill | (empty) | hex color | Visible when `style.customColors` = `true` |
| `style.scaleHigh` | Gradient: end | Dégradé : fin | color | fill | (empty) | hex color | Visible when `style.customColors` = `true` |
**Text / Texte**
| Option ID | Label (EN) | Label (FR) | Control | Type | Default | Allowed values | Notes |
|---|---|---|---|---|---|---|---|
| `style.fontFamily` | Font | Police | font | formatting | `Segoe UI, wf_segoe-ui_normal, helvetica, arial, sans-serif` | | Used by every text of the visual (title, axes, labels, cells). |
**Animations**
| Option ID | Label (EN) | Label (FR) | Control | Type | Default | Allowed values | Notes |
|---|---|---|---|---|---|---|---|
| `style.animate` | Animations | Animations | toggle | bool | `true` | true / false | Smooth transitions when data changes. Automatically disabled when the system asks to reduce motion. |
### Layout / Disposition (`layout`, Format pane)
**Orientation**
| Option ID | Label (EN) | Label (FR) | Control | Type | Default | Allowed values | Notes |
|---|---|---|---|---|---|---|---|
| `layout.orientation` | Word orientation | Orientation des mots | dropdown | enumeration | `hv` | `horizontal` All horizontal; `hv` Horizontal and vertical; `vertical` All vertical; `diagonal` Horizontal and diagonals (±45°); `range` From one angle to another (even steps); `random` Free angles between two limits | |
| `layout.rotatedShare` | Share of rotated words (%) | Part des mots tournés (%) | number | integer | `25` | 0 to 100 | Visible when `layout.orientation` = `hv` or `diagonal` |
| `layout.verticalDir` | Direction of vertical words | Sens des mots verticaux | dropdown | enumeration | `up` | `up` Bottom to top; `down` Top to bottom | Visible when `layout.orientation` = `hv` or `vertical` |
| `layout.angleFrom` | Start angle (°) | Angle de départ (°) | number | integer | `-60` | -90 to 90 | Visible when `layout.orientation` = `range` or `random` |
| `layout.angleTo` | End angle (°) | Angle d'arrivée (°) | number | integer | `60` | -90 to 90 | Visible when `layout.orientation` = `range` or `random` |
| `layout.steps` | Number of orientations | Nombre d'orientations | number | integer | `5` | 2 to 19 | Visible when `layout.orientation` = `range` |
**Placement**
| Option ID | Label (EN) | Label (FR) | Control | Type | Default | Allowed values | Notes |
|---|---|---|---|---|---|---|---|
| `layout.spacing` | Spacing between words (px) | Espacement entre les mots (px) | number | integer | `2` | 0 to 30 | |
| `layout.fit` | Size fitting | Ajustement des tailles | dropdown | enumeration | `auto` | `auto` Fill the shape (shrink or enlarge); `shrink` Shrink only when needed; `none` Fixed sizes | Fill the shape: the words grow until they fill the shape (never below the minimum size); when the shape is small for every word, the least frequent ones are left out rather than shrinking everything. |
| `layout.spiral` | Placement spiral | Spirale de placement | dropdown | enumeration | `archimedean` | `archimedean` Round (cloud); `rectangular` Rectangular (block) | |
| `layout.seed` | Layout variant | Variante de disposition | number | integer | `1` | 1 to 999 | The layout is always the same for the same data; change this number to try another arrangement. |
**Fill ★ / Remplissage ★**
| Option ID | Label (EN) | Label (FR) | Control | Type | Default | Allowed values | Notes |
|---|---|---|---|---|---|---|---|
| `layout.repeat` | Fill the shape with repeated words ★ | Remplir la forme avec des répétitions ★ | toggle | bool | `false` | true / false | Once every word is placed, smaller copies fill the remaining space so that the shape reads clearly (texture). |
| `layout.repeatOpacity` | Repeated words opacity (%) | Opacité des répétitions (%) | number | integer | `55` | 10 to 100 | |
| `layout.repeatMax` | Maximum number of repetitions | Nombre maximal de répétitions | number | integer | `900` | 50 to 3000 | |
**Animation**
| Option ID | Label (EN) | Label (FR) | Control | Type | Default | Allowed values | Notes |
|---|---|---|---|---|---|---|---|
| `layout.intro` | Words appear | Apparition des mots | dropdown | enumeration | `grow` | `grow` From the center; `fade` Fade; `none` None | When the data changes. Never when animations are reduced (Style › Animations or the system). |
### Data colors / Couleurs des données (`dataColors`, Format pane)
Per-item card: Power BI shows it once per series, category, column or KPI (an "Apply settings to" list where relevant). In PBIP `visual.json`, each entry of `objects.dataColors` carries a `selector` (`metadata` = the field's queryRef, or `data` for a category value); an entry without a selector applies to all items.
| Option ID | Label (EN) | Label (FR) | Control | Type | Default | Allowed values | Notes |
|---|---|---|---|---|---|---|---|
| `dataColors.mode` | Coloring | Coloration | dropdown | enumeration | `palette` | `palette` Palette (one color per word); `single` Single color; `weight` Gradient by size ★; `field` Gradient by the “Color” field ★; `change` Change (“Comparison” field) ★ | |
| `dataColors.single` | Color | Couleur | color | fill | (empty) | hex color | |
| `dataColors.fill` | Color | Couleur | color | fill | (empty) | hex color | |
| `dataColors.gradient` | Gradient | Dégradé | dropdown | enumeration | `sequential` | `sequential` Sequential (style palette); `diverging` Diverging (around the middle) | |
| `dataColors.byRank` | Colors in size order | Couleurs dans l'ordre des tailles | toggle | bool | `true` | true / false | Palette: the largest word takes the first color, the next one the second… Off: each word keeps its color whatever its size. |
### Words / Mots (`words`, Format pane)
**Text splitting / Découpage du texte**
| Option ID | Label (EN) | Label (FR) | Control | Type | Default | Allowed values | Notes |
|---|---|---|---|---|---|---|---|
| `words.split` | Split text into words | Découper le texte en mots | dropdown | enumeration | `auto` | `auto` Automatic (long texts); `on` Yes; `off` No (one value = one word or phrase) | Automatic: values of several words (comments, titles) are split into words; short labels are kept whole. |
| `words.ngrams` | Phrases | Expressions | dropdown | enumeration | `1` | `1` Single words; `2` Two-word phrases ★; `12` Words and two-word phrases ★; `3` Three-word phrases ★ | Phrases (“customer service”, “delivery time”) are counted like words; stop words never start or end a phrase. |
| `words.countMode` | Count | Compter | dropdown | enumeration | `occurrences` | `occurrences` Every occurrence; `rows` Once per row (answer, comment) ★ | Once per row: a word repeated in the same comment counts once (share of answers that use it). |
| `words.minLength` | Minimum length (letters) | Longueur minimale (lettres) | number | integer | `3` | 1 to 20 | |
| `words.removeNumbers` | Ignore numbers | Ignorer les nombres | toggle | bool | `true` | true / false | |
| `words.specialChars` | Keep special characters (#, @, emojis) | Garder les caractères spéciaux (#, @, émojis) | toggle | bool | `false` | true / false | Hashtags (#sale), mentions (@store), amounts ($20, 20€) and emojis are kept as words. |
| `words.elision` | Remove French elisions (l', d', qu'…) | Retirer les élisions (l', d', qu'…) | toggle | bool | `true` | true / false | |
| `words.mergePlurals` | Merge singular and plural ★ | Regrouper singulier et pluriel ★ | toggle | bool | `false` | true / false | “order” and “orders” become one word (the most frequent form is shown). |
**Case / Casse**
| Option ID | Label (EN) | Label (FR) | Control | Type | Default | Allowed values | Notes |
|---|---|---|---|---|---|---|---|
| `words.textCase` | Word case | Casse des mots | dropdown | enumeration | `auto` | `auto` Most frequent form; `lower` lowercase; `upper` UPPERCASE; `title` Capitalized | Words are always grouped regardless of case (“Delivery” and “delivery” are one word). |
**Stop words / Mots vides**
| Option ID | Label (EN) | Label (FR) | Control | Type | Default | Allowed values | Notes |
|---|---|---|---|---|---|---|---|
| `words.stopWords` | Built-in stop words | Mots vides intégrés | dropdown | enumeration | `auto` | `auto` French and English; `fr` French; `en` English; `none` None | Common words without meaning of their own (the, and, le, de, pour…) are removed when the text is split. |
| `words.customStop` | Other words to exclude | Autres mots à exclure | textarea | text | (empty) | | Case and accents ignored. The “Excluded words” field does the same with a text measure. |
**Number of words / Nombre de mots**
| Option ID | Label (EN) | Label (FR) | Control | Type | Default | Allowed values | Notes |
|---|---|---|---|---|---|---|---|
| `words.maxWords` | Maximum number of words (top N) | Nombre maximal de mots (N premiers) | number | integer | `150` | 1 to 1000 | |
| `words.minWeight` | Minimum weight (0 = all) | Poids minimal (0 = tous) | number | numeric | `0` | 0 to … | Words whose weight (or number of occurrences) is below this value are not shown. |
### Word text / Texte des mots (`wordFont`, Format pane)
| Option ID | Label (EN) | Label (FR) | Control | Type | Default | Allowed values | Notes |
|---|---|---|---|---|---|---|---|
| `wordFont.font` | Font | Police | dropdown | enumeration | `auto` | `auto` Style font; `Segoe UI` Segoe UI; `Segoe UI Light` Segoe UI Light; `Segoe UI Semilight` Segoe UI Semilight; `Segoe UI Semibold` Segoe UI Semibold; `Segoe UI Black` Segoe UI Black; `Arial` Arial; `Arial Narrow` Arial Narrow · Office; `Aptos` Aptos · Office; `Bahnschrift` Bahnschrift; `Bahnschrift SemiCondensed` Bahnschrift SemiCondensed; `Bahnschrift Condensed` Bahnschrift Condensed; `Calibri` Calibri; `Calibri Light` Calibri Light; `Candara` Candara; `Century Gothic` Century Gothic · Office; `Corbel` Corbel; `Ebrima` Ebrima; `Franklin Gothic Medium` Franklin Gothic Medium; `Gadugi` Gadugi; `Gill Sans MT` Gill Sans MT · Office; `Leelawadee UI` Leelawadee UI; `Lucida Sans Unicode` Lucida Sans Unicode; `Microsoft Sans Serif` Microsoft Sans Serif; `Nirmala UI` Nirmala UI; `Tahoma` Tahoma; `Trebuchet MS` Trebuchet MS; `Tw Cen MT` Tw Cen MT · Office; `Verdana` Verdana; `Book Antiqua` Book Antiqua (serif) · Office; `Bookman Old Style` Bookman Old Style (serif) · Office; `Cambria` Cambria (serif); `Constantia` Constantia (serif); `Garamond` Garamond (serif) · Office; `Georgia` Georgia (serif); `Palatino Linotype` Palatino Linotype (serif); `Rockwell` Rockwell (serif) · Office; `Sitka Text` Sitka Text (serif); `Sitka Heading` Sitka Heading (serif); `Sylfaen` Sylfaen (serif); `Times New Roman` Times New Roman (serif); `Cascadia Code` Cascadia Code (monospace); `Cascadia Mono` Cascadia Mono (monospace); `Consolas` Consolas (monospace); `Courier New` Courier New (monospace); `Lucida Console` Lucida Console (monospace); `Comic Sans MS` Comic Sans MS (handwriting); `Gabriola` Gabriola (handwriting); `Ink Free` Ink Free (handwriting); `MV Boli` MV Boli (handwriting); `Segoe Print` Segoe Print (handwriting); `Segoe Script` Segoe Script (handwriting); `Bradley Hand ITC` Bradley Hand ITC (handwriting) · Office; `Lucida Handwriting` Lucida Handwriting (handwriting) · Office; `Arial Black` Arial Black (display); `Impact` Impact (display) | Fonts installed with Windows or Microsoft Office (no web font); a similar font is used when one is missing. |
| `wordFont.fontWeight` | Weight | Graisse | dropdown | enumeration | `semibold` | `normal` Regular; `semibold` Semibold; `bold` Bold; `bySize` Bold for the largest words | |
| `wordFont.italic` | Italic | Italique | toggle | bool | `false` | true / false | |
| `wordFont.minSize` | Minimum size (px) | Taille minimale (px) | number | formatting | `11` | 6 to 80 | |
| `wordFont.maxSize` | Maximum size (px) | Taille maximale (px) | number | formatting | `64` | 8 to 300 | |
| `wordFont.sizeScale` | Size by weight | Taille selon le poids | dropdown | enumeration | `sqrt` | `linear` Linear; `sqrt` Square root (balanced); `log` Logarithmic (compressed) ★; `rank` By rank ★ | Weight = the “Size” measure, or the number of occurrences without it. |
| `wordFont.weightMax` | Weight at the maximum size (empty = automatic) | Poids de la taille maximale (vide = automatique) | text | text | (empty) | | Keeps the sizes when another visual filters the cloud: a measure named wordFont.weightMax in “Dynamic format”, e.g. CALCULATE ( MAXX ( VALUES ( Topics[Topic] ), [Mentions] ), ALL ( Topics ) ) (ALL or REMOVEFILTERS ignores the filter; ALLSELECTED follows it), with Layout › Size fitting › Fixed sizes. |
### Shape / Forme (`shape`, Format pane)
| Option ID | Label (EN) | Label (FR) | Control | Type | Default | Allowed values | Notes |
|---|---|---|---|---|---|---|---|
| `shape.shape` | Shape | Forme | dropdown | enumeration | `oval` | `oval` Oval (fills the visual); `rect` Rectangle (fills the visual); `custom` Custom SVG ★; `circle` Basic · Circle; `square` Basic · Square; `roundedSquare` Basic · Rounded square; `rectangle` Basic · Rectangle; `triangle` Basic · Triangle; `diamond` Basic · Diamond; `hexagon` Basic · Hexagon; `star` Basic · Star; `heart` Basic · Heart; `ellipse` Basic · Ellipse ★; `pentagon` Basic · Pentagon ★; `octagon` Basic · Octagon ★; `rightTriangle` Basic · Right triangle ★; `parallelogram` Basic · Parallelogram ★; `trapezoid` Basic · Trapezoid ★; `ring` Basic · Ring ★; `semicircle` Basic · Semicircle ★; `arch` Basic · Arch ★; `capsule` Basic · Pill ★; `star6` Basic · Six-pointed star ★; `seal` Basic · Seal ★; `cross` Basic · Cross ★; `arrow` Arrows and symbols · Arrow; `arrowUp` Arrows and symbols · Arrow up ★; `arrowDown` Arrows and symbols · Arrow down ★; `arrowLeft` Arrows and symbols · Arrow left ★; `doubleArrow` Arrows and symbols · Double arrow ★; `chevron` Arrows and symbols · Chevron ★; `check` Arrows and symbols · Check mark ★; `close` Arrows and symbols · Close (X) ★; `plus` Arrows and symbols · Plus ★; `minus` Arrows and symbols · Minus ★; `warning` Arrows and symbols · Warning ★; `info` Arrows and symbols · Information ★; `playButton` Arrows and symbols · Play button ★; `bubble` Arrows and symbols · Speech bubble; `thought` Arrows and symbols · Thought bubble ★; `flag` Arrows and symbols · Flag ★; `bookmark` Arrows and symbols · Bookmark ★; `tag` Arrows and symbols · Tag ★; `bolt` Arrows and symbols · Lightning bolt ★; `shield` Arrows and symbols · Shield ★; `award` Arrows and symbols · Award ★; `puzzle` Arrows and symbols · Puzzle piece ★; `gear` Arrows and symbols · Gear ★; `lock` Arrows and symbols · Lock ★; `key` Arrows and symbols · Key ★; `bell` Arrows and symbols · Bell ★; `eye` Arrows and symbols · Eye ★; `cloud` Nature and weather · Cloud; `drop` Nature and weather · Drop; `sun` Nature and weather · Sun ★; `moon` Nature and weather · Moon ★; `snowflake` Nature and weather · Snowflake ★; `leaf` Nature and weather · Leaf ★; `pine` Nature and weather · Pine tree ★; `tree` Nature and weather · Tree ★; `flower` Nature and weather · Flower ★; `mountain` Nature and weather · Mountain ★; `wave` Nature and weather · Wave ★; `flame` Nature and weather · Flame ★; `umbrella` Nature and weather · Umbrella ★; `apple` Nature and weather · Apple ★; `fish` Nature and weather · Fish ★; `paw` Nature and weather · Paw print ★; `rain` Nature and weather · Rain ★; `sprout` Nature and weather · Sprout ★; `person` People · Person; `man` People · Man ★; `woman` People · Woman ★; `child` People · Child ★; `people` People · Group of people ★; `bust` People · User bust ★; `house` Objects and buildings · House; `building` Objects and buildings · Office building ★; `factory` Objects and buildings · Factory ★; `castle` Objects and buildings · Castle ★; `shop` Objects and buildings · Shop ★; `bank` Objects and buildings · Bank ★; `hospital` Objects and buildings · Hospital ★; `book` Objects and buildings · Book ★; `envelope` Objects and buildings · Envelope ★; `phone` Objects and buildings · Phone ★; `laptop` Objects and buildings · Laptop ★; `monitor` Objects and buildings · Monitor ★; `gift` Objects and buildings · Gift ★; `clock` Objects and buildings · Clock ★; `calendar` Objects and buildings · Calendar ★; `pencil` Objects and buildings · Pencil ★; `lightbulb` Objects and buildings · Light bulb ★; `cup` Objects and buildings · Trophy ★; `crown` Objects and buildings · Crown ★; `trashCan` Objects and buildings · Trash can ★; `barrel` Containers and gauges · Barrel; `bottle` Containers and gauges · Bottle; `wineGlass` Containers and gauges · Wine glass; `glass` Containers and gauges · Glass; `mug` Containers and gauges · Mug ★; `jar` Containers and gauges · Jar ★; `bucket` Containers and gauges · Bucket ★; `battery` Containers and gauges · Battery; `batteryVertical` Containers and gauges · Vertical battery; `thermometer` Containers and gauges · Thermometer; `testTube` Containers and gauges · Test tube ★; `tank` Containers and gauges · Tank ★; `funnel` Containers and gauges · Funnel ★; `hourglass` Containers and gauges · Hourglass ★; `bag` Containers and gauges · Bag ★; `piggyBank` Containers and gauges · Piggy bank ★; `flask` Containers and gauges · Flask ★; `beaker` Containers and gauges · Beaker ★; `can` Containers and gauges · Can ★; `coffeeCup` Containers and gauges · Coffee cup ★; `vase` Containers and gauges · Vase ★; `milkCarton` Containers and gauges · Milk carton ★; `france` Maps and places · Metropolitan France ★; `africa` Maps and places · Africa ★; `australia` Maps and places · Australia ★; `southAmerica` Maps and places · South America ★; `pin` Maps and places · Map pin ★; `globe` Maps and places · Globe ★; `foldedMap` Maps and places · Folded map ★; `compass` Maps and places · Compass ★; `city` Maps and places · City skyline ★; `target` Business · Target ★; `barChart` Business · Bar chart ★; `pieChart` Business · Pie chart ★; `trendUp` Business · Trend up ★; `coin` Business · Coin ★; `banknote` Business · Banknote ★; `wallet` Business · Wallet ★; `creditCard` Business · Credit card ★; `cart` Business · Shopping cart ★; `briefcase` Business · Briefcase ★; `percent` Business · Percent ★; `podium` Business · Podium ★; `megaphone` Business · Megaphone ★; `gem` Business · Gem ★; `medal` Business · Medal ★; `clipboard` Business · Clipboard ★; `handshake` Business · Handshake ★; `car` Transport · Car ★; `truck` Transport · Truck ★; `bus` Transport · Bus ★; `bicycle` Transport · Bicycle ★; `plane` Transport · Plane ★; `boat` Transport · Sailboat ★; `train` Transport · Train ★; `rocket` Transport · Rocket ★; `helicopter` Transport · Helicopter ★; `ship` Transport · Cargo ship ★; `fuel` Transport · Fuel pump ★; `scooter` Transport · Scooter ★ | The words fill this shape. ★ shapes and the custom SVG show the premium watermark without a license. |
| `shape.svg` | Shape SVG | SVG de la forme | textarea | text | (empty) | | Visible when `shape.shape` = `custom`. Paste an SVG (or a path “d”); it is cleaned (no script, no web link). The “Shape (SVG)” field does the same with a measure. |
| `shape.fit` | Proportions | Proportions | dropdown | enumeration | `contain` | `contain` Keep proportions; `stretch` Stretch to fill the visual | Visible when `shape.shape` = `custom` or `circle` or `square` or `roundedSquare` or `rectangle` or `triangle` or `diamond` or `hexagon` or `star` or `heart` or `ellipse` or `pentagon` or `octagon` or `rightTriangle` or `parallelogram` or `trapezoid` or `ring` or `semicircle` or `arch` or `capsule` or `star6` or `seal` or `cross` or `arrow` or `arrowUp` or `arrowDown` or `arrowLeft` or `doubleArrow` or `chevron` or `check` or `close` or `plus` or `minus` or `warning` or `info` or `playButton` or `bubble` or `thought` or `flag` or `bookmark` or `tag` or `bolt` or `shield` or `award` or `puzzle` or `gear` or `lock` or `key` or `bell` or `eye` or `cloud` or `drop` or `sun` or `moon` or `snowflake` or `leaf` or `pine` or `tree` or `flower` or `mountain` or `wave` or `flame` or `umbrella` or `apple` or `fish` or `paw` or `rain` or `sprout` or `person` or `man` or `woman` or `child` or `people` or `bust` or `house` or `building` or `factory` or `castle` or `shop` or `bank` or `hospital` or `book` or `envelope` or `phone` or `laptop` or `monitor` or `gift` or `clock` or `calendar` or `pencil` or `lightbulb` or `cup` or `crown` or `trashCan` or `barrel` or `bottle` or `wineGlass` or `glass` or `mug` or `jar` or `bucket` or `battery` or `batteryVertical` or `thermometer` or `testTube` or `tank` or `funnel` or `hourglass` or `bag` or `piggyBank` or `flask` or `beaker` or `can` or `coffeeCup` or `vase` or `milkCarton` or `france` or `africa` or `australia` or `southAmerica` or `pin` or `globe` or `foldedMap` or `compass` or `city` or `target` or `barChart` or `pieChart` or `trendUp` or `coin` or `banknote` or `wallet` or `creditCard` or `cart` or `briefcase` or `percent` or `podium` or `megaphone` or `gem` or `medal` or `clipboard` or `handshake` or `car` or `truck` or `bus` or `bicycle` or `plane` or `boat` or `train` or `rocket` or `helicopter` or `ship` or `fuel` or `scooter`. Keep proportions: a heart stays a heart (it fills the height of a wide visual). Stretch: the shape covers the whole visual. |
| `shape.silhouette` | Silhouette in the background ★ | Silhouette en fond ★ | toggle | bool | `false` | true / false | |
| `shape.silhouetteColor` | Silhouette color (empty = grid) | Couleur de la silhouette (vide = grille) | color | fill | (empty) | hex color | Visible when `shape.silhouette` = `true` |
| `shape.silhouetteOpacity` | Silhouette opacity (%) | Opacité de la silhouette (%) | number | integer | `40` | 5 to 100 | Visible when `shape.silhouette` = `true` |
| `shape.margin` | Margin around the shape (px) | Marge autour de la forme (px) | number | integer | `4` | 0 to 80 | |
### Legend / Légende (`legend`, Format pane)
The card header toggle is `legend.show`.
| Option ID | Label (EN) | Label (FR) | Control | Type | Default | Allowed values | Notes |
|---|---|---|---|---|---|---|---|
| `legend.show` | Show | Afficher | toggle | bool | `true` | true / false | Shown when the chart has several series. |
| `legend.position` | Position | Position | dropdown | enumeration | `bottom` | `top` Top; `bottom` Bottom; `right` Right; `left` Left | |
| `legend.align` | Alignment | Alignement | dropdown | enumeration | `center` | `left` Start; `center` Center; `right` End | Visible when `legend.position` = `top` or `bottom` |
| `legend.showTitle` | Legend title | Titre de la légende | toggle | bool | `false` | true / false | |
| `legend.titleText` | Title text | Texte du titre | text | text | (empty) | | Visible when `legend.showTitle` = `true` |
| `legend.fontSize` | Size | Taille | number | formatting | `9` | 6 to 24 | |
| `legend.color` | Color (empty = secondary text) | Couleur (vide = texte secondaire) | color | fill | (empty) | hex color | |
| `legend.interactive` | Click = select the series | Clic = sélectionner la série | toggle | bool | `true` | true / false | |
### Comparison ★ / Comparaison ★ (`comparison`, Format pane)
This card controls premium features (★): they work without a license key but show the watermark while in use.
| Option ID | Label (EN) | Label (FR) | Control | Type | Default | Allowed values | Notes |
|---|---|---|---|---|---|---|---|
| `comparison.arrows` | ▲▼ arrows in the cloud | Flèches ▲▼ dans le nuage | toggle | bool | `true` | true / false | The direction is also written in the tooltip: the meaning never relies on color alone. |
| `comparison.lowerIsBetter` | A decrease is favorable | Une baisse est favorable | toggle | bool | `false` | true / false | |
| `comparison.neutral` | Negligible change (± %) | Variation négligeable (± %) | number | integer | `5` | 0 to 100 | |
| `comparison.risingColor` | Favorable color (empty = style) | Couleur favorable (vide = style) | color | fill | (empty) | hex color | |
| `comparison.fallingColor` | Unfavorable color (empty = style) | Couleur défavorable (vide = style) | color | fill | (empty) | hex color | |
| `comparison.newWords` | Mark new words (✦) | Marquer les nouveaux mots (✦) | toggle | bool | `true` | true / false | |
### Playback ★ / Lecture ★ (`play`, Format pane)
This card controls premium features (★): they work without a license key but show the watermark while in use.
| Option ID | Label (EN) | Label (FR) | Control | Type | Default | Allowed values | Notes |
|---|---|---|---|---|---|---|---|
| `play.start` | Frame shown on opening | Image affichée à l'ouverture | dropdown | enumeration | `last` | `last` The last one (most recent); `first` The first one | |
| `play.speed` | Duration of a frame (ms) | Durée d'une image (ms) | number | integer | `1000` | 100 to 10000 | At speed ×1; the speed button of the play bar multiplies it (×0.5 to ×4) for the session. |
| `play.loop` | Loop | Lecture en boucle | toggle | bool | `false` | true / false | |
| `play.autoPlay` | Play automatically on opening | Lecture automatique à l'ouverture | toggle | bool | `false` | true / false | Once, from the first frame. Not when animations are reduced (Style › Animations or the system) nor on a dashboard tile. |
| `play.transition` | Animated transitions | Transitions animées | toggle | bool | `true` | true / false | Values, positions and colors move smoothly from one frame to the next. |
| `play.controls` | Play bar | Barre de lecture | toggle | bool | `true` | true / false | |
| `play.position` | Bar position | Position de la barre | dropdown | enumeration | `bottom` | `bottom` Bottom; `top` Top | Visible when `play.controls` = `true` |
| `play.ticks` | Tick marks | Graduations | dropdown | enumeration | `auto` | `auto` Automatic; `all` Every frame; `none` None | Visible when `play.controls` = `true` |
| `play.tickLabels` | Tick labels | Étiquettes des graduations | toggle | bool | `true` | true / false | Visible when `play.controls` = `true` |
| `play.stepButtons` | Start and end buttons | Boutons début et fin | toggle | bool | `true` | true / false | Visible when `play.controls` = `true` |
| `play.speedButton` | Speed button | Bouton de vitesse | toggle | bool | `true` | true / false | Visible when `play.controls` = `true` |
| `play.showLabel` | Current value in large type | Valeur en cours en grand | toggle | bool | `true` | true / false | |
| `play.labelSize` | Large value size | Taille de la valeur en grand | number | formatting | `44` | 12 to 160 | Visible when `play.showLabel` = `true` |
| `play.labelPosition` | Large value position | Position de la valeur en grand | dropdown | enumeration | `bottomRight` | `bottomRight` Bottom right; `topRight` Top right; `topLeft` Top left; `bottomLeft` Bottom left; `center` Center | Visible when `play.showLabel` = `true` |
### Interactions (`interaction`, Format pane)
| Option ID | Label (EN) | Label (FR) | Control | Type | Default | Allowed values | Notes |
|---|---|---|---|---|---|---|---|
| `interaction.hover` | Highlight on hover | Mettre en avant au survol | toggle | bool | `true` | true / false | |
| `interaction.dim` | Dimmed items opacity (%) | Opacité des éléments estompés (%) | number | integer | `25` | 5 to 80 | |
### Tooltips / Infobulles (`tooltip`, Format pane)
The card header toggle is `tooltip.show`.
| Option ID | Label (EN) | Label (FR) | Control | Type | Default | Allowed values | Notes |
|---|---|---|---|---|---|---|---|
| `tooltip.show` | Show | Afficher | toggle | bool | `true` | true / false | Tooltip on hover (with the fields of the "Tooltips" well and report page tooltips). |
### Title / Titre (`title`, Format pane)
The card header toggle is `title.show`.
**Title / Titre**
| Option ID | Label (EN) | Label (FR) | Control | Type | Default | Allowed values | Notes |
|---|---|---|---|---|---|---|---|
| `title.show` | Show | Afficher | toggle | bool | `true` | true / false | |
| `title.text` | Text | Texte | text | text | (empty) | | Leave empty for an automatic title built from the fields. |
| `title.fontSize` | Size | Taille | number | formatting | `14` | 7 to 40 | |
| `title.bold` | Bold | Gras | toggle | bool | `true` | true / false | |
| `title.italic` | Italic | Italique | toggle | bool | `false` | true / false | |
| `title.underline` | Underline | Souligné | toggle | bool | `false` | true / false | |
| `title.color` | Color (empty = text) | Couleur (vide = texte) | color | fill | (empty) | hex color | |
| `title.bgColor` | Background color | Couleur d'arrière-plan | color | fill | (empty) | hex color | |
| `title.align` | Horizontal alignment | Alignement horizontal | dropdown | enumeration | `left` | `left` Left; `center` Center; `right` Right | |
| `title.wrap` | Text wrap | Retour automatique à la ligne | toggle | bool | `true` | true / false | |
**Subtitle / Sous-titre**
| Option ID | Label (EN) | Label (FR) | Control | Type | Default | Allowed values | Notes |
|---|---|---|---|---|---|---|---|
| `title.subtitle` | Subtitle | Sous-titre | text | text | (empty) | | Several lines allowed: type \n to go to the next line. |
| `title.subFontSize` | Size | Taille | number | formatting | `11` | 7 to 30 | Visible when `title.subtitle` = |
| `title.subColor` | Color (empty = secondary text) | Couleur (vide = texte secondaire) | color | fill | (empty) | hex color | Visible when `title.subtitle` = |
| `title.subItalic` | Italic | Italique | toggle | bool | `false` | true / false | Visible when `title.subtitle` = |
**Divider / Séparateur**
| Option ID | Label (EN) | Label (FR) | Control | Type | Default | Allowed values | Notes |
|---|---|---|---|---|---|---|---|
| `title.divider` | Show divider | Afficher le séparateur | toggle | bool | `false` | true / false | |
| `title.dividerColor` | Color (empty = lines) | Couleur (vide = traits) | color | fill | (empty) | hex color | Visible when `title.divider` = `true` |
| `title.dividerStyle` | Line style | Style de trait | dropdown | enumeration | `solid` | `solid` Solid; `dashed` Dashed; `dotted` Dotted | Visible when `title.divider` = `true` |
| `title.dividerWidth` | Width | Épaisseur | number | integer | `1` | 1 to 6 | Visible when `title.divider` = `true` |
**Spacing / Espacement**
| Option ID | Label (EN) | Label (FR) | Control | Type | Default | Allowed values | Notes |
|---|---|---|---|---|---|---|---|
| `title.spaceBelow` | Space below the title (px) | Espace sous le titre (px) | number | integer | `4` | 0 to 40 | |
### Source note / Note de source (`source`, Format pane)
The card header toggle is `source.show`.
| Option ID | Label (EN) | Label (FR) | Control | Type | Default | Allowed values | Notes |
|---|---|---|---|---|---|---|---|
| `source.show` | Show | Afficher | toggle | bool | `false` | true / false | |
| `source.text` | Text | Texte | text | text | (empty) | | |
| `source.fontSize` | Size | Taille | number | formatting | `9` | 6 to 20 | |
| `source.italic` | Italic | Italique | toggle | bool | `false` | true / false | |
| `source.color` | Color (empty = secondary text) | Couleur (vide = texte secondaire) | color | fill | (empty) | hex color | |
| `source.align` | Alignment | Alignement | dropdown | enumeration | `left` | `left` Left; `center` Center; `right` Right | |
### Frame / Cadre (`container`, Format pane)
**Background / Arrière-plan**
| Option ID | Label (EN) | Label (FR) | Control | Type | Default | Allowed values | Notes |
|---|---|---|---|---|---|---|---|
| `container.bgShow` | Background | Arrière-plan | toggle | bool | `false` | true / false | |
| `container.bgColor` | Color | Couleur | color | fill | `#FFFFFF` | hex color | Visible when `container.bgShow` = `true` |
| `container.bgColor2` | Gradient end (optional) | Fin du dégradé (optionnel) | color | fill | (empty) | hex color | Visible when `container.bgShow` = `true` |
| `container.bgTransparency` | Transparency (%) | Transparence (%) | slider | numeric | `0` | 0 to 100 | Visible when `container.bgShow` = `true` |
**Border / Bordure**
| Option ID | Label (EN) | Label (FR) | Control | Type | Default | Allowed values | Notes |
|---|---|---|---|---|---|---|---|
| `container.border` | Border | Bordure | toggle | bool | `false` | true / false | |
| `container.borderColor` | Color (empty = lines) | Couleur (vide = traits) | color | fill | (empty) | hex color | Visible when `container.border` = `true` |
| `container.borderWidth` | Width | Épaisseur | number | integer | `1` | 0 to 6 | Visible when `container.border` = `true` |
| `container.radius` | Rounded corners | Coins arrondis | number | integer | `8` | 0 to 24 | |
**Shadow / Ombre**
| Option ID | Label (EN) | Label (FR) | Control | Type | Default | Allowed values | Notes |
|---|---|---|---|---|---|---|---|
| `container.shadow` | Shadow | Ombre | toggle | bool | `false` | true / false | |
| `container.shadowColor` | Color (empty = soft) | Couleur (vide = douce) | color | fill | (empty) | hex color | Visible when `container.shadow` = `true` |
| `container.shadowSize` | Blur (px) | Flou (px) | number | integer | `12` | 0 to 40 | Visible when `container.shadow` = `true` |
**Spacing / Marges**
| Option ID | Label (EN) | Label (FR) | Control | Type | Default | Allowed values | Notes |
|---|---|---|---|---|---|---|---|
| `container.padding` | Inner padding | Marge intérieure | number | integer | `8` | 0 to 40 | |
### Language and numbers / Langue et nombres (`texts`, Format pane)
| Option ID | Label (EN) | Label (FR) | Control | Type | Default | Allowed values | Notes |
|---|---|---|---|---|---|---|---|
| `texts.language` | Interface language | Langue de l'interface | dropdown | enumeration | `auto` | `auto` Same as Power BI; `fr` French; `en` English | |
| `texts.numberLocale` | Number format locale (e.g. en-GB) | Format des nombres (ex. fr-FR) | text | text | (empty) | | Thousands and decimal separators. Empty: same as Power BI. |
### Other objects (not in the Format pane cards above)
- `compare`: `compare.arrows` (bool), `compare.lowerIsBetter` (bool), `compare.neutral` (integer), `compare.risingColor` (fill), `compare.fallingColor` (fill), `compare.newWords` (bool).