100% Free Forever
AI-Powered Learning
Industry Expert Content
Certificates & Badges
Learn At Your Own Pace
Programming

Report Formatting and Themes

How to use theme JSON, conditional formatting, bookmarks, and custom number formats to keep a Power BI report visually consistent and on-brand.

VisualizationBeginner8 min readJul 10, 2026
Analogies

Report Formatting and Themes

Consistent formatting-colors, fonts, spacing, and visual headers-turns a collection of charts into a coherent report, and Power BI centralizes most of this through the Format pane on each visual plus report-wide themes that cascade defaults everywhere.

🏏

Cricket analogy: A report without consistent formatting is like a stadium where every replay screen uses a different broadcaster's graphics package - technically functional, but jarring and unprofessional compared to one unified broadcast standard.

Report Themes: JSON-Based Styling

A theme is a JSON file (View > Themes > Browse for themes, or the built-in Customize current theme dialog) that defines a dataColors array, text classes, background colors, and visual-specific style overrides, letting an organization apply brand colors and fonts across every report in one import instead of manually restyling each visual.

🏏

Cricket analogy: A theme JSON's dataColors array applying a franchise's official yellow-and-blue palette across every report chart is like every CSK broadcast graphic using the same team colors regardless of which studio produced it.

Theme JSON supports a "visualStyles" section that targets specific visual types (e.g., all "card" visuals get a specific border) and even a "*" wildcard applying to every visual type, which is the mechanism designers use to enforce consistent title font sizes or background transparency report-wide.

🏏

Cricket analogy: The theme's visualStyles wildcard ("*") forcing every visual's title font to 14pt bold works like a broadcaster's style guide mandating the same lower-third font across cricket, football, and tennis coverage, while a "card" override sets special team-score tile styling only.

Page and Visual-Level Formatting Details

Bookmarks combined with the Selection pane let a designer save specific formatting/visibility states (e.g., a "Dark Mode" bookmark toggling a hidden dark-background layer), while Page Navigation buttons keep report navigation formatting consistent without relying on default page tabs, which is common in executive-facing reports.

🏏

Cricket analogy: A "Dark Mode" bookmark toggling a hidden dark-background layer works like a stadium's floodlight-versus-daylight broadcast preset, switching the whole visual feed's look with one saved setting instead of manually re-adjusting every camera.

Conditional formatting on table/matrix cells (background color, font color, or data bars driven by a measure) and consistent number formatting (custom format strings like "#,##0.0,,\"M\"") prevent a report from looking inconsistent when different authors build different pages.

🏏

Cricket analogy: Conditional formatting a strike-rate column with a red-to-green color scale highlights struggling versus in-form batsmen at a glance, the way a custom format string like "0.0\"%\"" keeps every economy rate consistently displayed to one decimal.

Accessibility matters when choosing theme dataColors: verify sufficient contrast between adjacent colors (a 3:1 minimum contrast ratio is a reasonable baseline) and avoid relying on red/green alone for conditional formatting, since roughly 8% of men have some form of color vision deficiency.

Manually formatting individual visuals (overriding font size or color directly in the Format pane) takes precedence over the report theme, so if different authors apply ad hoc manual overrides across pages, importing or changing the theme later won't fix the resulting inconsistency-those overrides must be cleared first.

JSON
{
  "name": "Corporate Brand Theme",
  "dataColors": [
    "#1F4E79", "#2E86AB", "#F2A104",
    "#A23B72", "#3B8686", "#C74B50"
  ],
  "background": "#FFFFFF",
  "foreground": "#252423",
  "visualStyles": {
    "*": {
      "*": {
        "title": [{ "fontSize": 14, "bold": true }]
      }
    },
    "card": {
      "*": {
        "labels": [{ "color": "#1F4E79" }]
      }
    }
  }
}
  • Themes are JSON files that define dataColors, background/foreground, and visual-specific style overrides.
  • The visualStyles "*" wildcard applies a rule to every visual type; specific visual-type keys override just that type.
  • Bookmarks combined with the Selection pane save formatting/visibility states like a toggleable dark mode layer.
  • Page Navigation buttons offer a consistent alternative to default page tabs, common in executive reports.
  • Conditional formatting (color scales, data bars, icons) driven by measures highlights patterns directly in tables/matrices.
  • Custom number format strings keep values like currency-in-millions or signed deltas consistently displayed.
  • Manual per-visual formatting overrides take precedence over the theme, so ad hoc overrides can undermine consistency even after a theme import.

Practice what you learned

Was this page helpful?

Topics covered

#Programming#PowerBIStudyNotes#ReportFormattingAndThemes#Report#Formatting#Themes#JSON#StudyNotes#SkillVeris#ExamPrep