modifying-theme-json

Installation
SKILL.md

Power BI Report Themes

Why Themes Matter

A report without a well-designed theme accumulates formatting debt. Every visual ends up with its own bespoke title size, shadow toggle, border style, and hardcoded colors in visual.json. This creates three problems:

  1. Inconsistency. Visuals drift apart as authors format each one individually. One card has 14pt titles, another has 12pt; one chart has shadows, another doesn't. The report looks unfinished.
  2. Fragility. Rebranding or updating the visual style means touching every visual.json individually. A report with 40 visuals across 8 pages means 40 files to edit. With a theme, it's one file.
  3. Bloated visual JSON. Each bespoke override adds lines to visual.json, making reports harder to diff, review, and maintain. A clean visual.json should contain field bindings, position, and conditional formatting; everything else should come from the theme.

Reports using the default Power BI theme or a minimal custom theme (just dataColors and a name) are leaving most formatting to Power BI's built-in defaults, which change between Desktop releases. A well-designed theme locks in the intended appearance.

Signs a theme needs attention:

  • Many visuals have objects or visualContainerObjects with redundant formatting
  • Visuals of the same type look inconsistent (different title fonts, shadows on some but not others)
  • The theme JSON has few or no visualStyles entries
  • The report uses a built-in theme like "Default" or "Classic" without customization

Tooling preference: Use pbir CLI when available (pbir theme colors, pbir visuals clear-formatting). Fall back to direct jq modification when unavailable. Always validate after every write.

Related skills

More from data-goblin/power-bi-agentic-development

Installs
13
GitHub Stars
573
First Seen
Apr 2, 2026