
Custom Power BI Themes for Branding
Apply consistent corporate branding across all Power BI reports with custom JSON theme files. Colors, fonts, visual defaults, and conditional formatting.
Power BI themes enforce visual consistency across every report in your organization through a single JSON configuration file. Without themes, every report creator makes independent decisions about colors, fonts, borders, and backgrounds—resulting in a patchwork of inconsistent reports that undermine brand credibility and confuse users switching between dashboards. A well-crafted theme file ensures that every chart, card, table, and slicer automatically adopts your corporate identity, accessibility standards, and design guidelines. Creating one theme file saves hundreds of hours of manual formatting across dozens of reports. Our Power BI consulting team helps enterprises establish design systems including custom themes, templates, and branding standards.
Theme Architecture
A Power BI theme is a JSON file that defines default formatting properties at multiple levels. Understanding the hierarchy is essential for building effective themes:
| Level | What It Controls | Override Priority | |---|---|---| | Global defaults | Background, foreground, text classes (title, header, label) | Lowest—applies everywhere unless overridden | | Data colors | Chart series colors (bars, lines, pie slices) | Mid—overrides global but can be overridden per visual | | Visual type defaults | Properties specific to each visual type (card, table, slicer, etc.) | High—overrides global and data colors for that visual type | | Manual formatting | Properties set manually on individual visuals | Highest—always wins over theme |
This means you can set organization-wide defaults (global), then customize specific visual types (e.g., tables always have gridlines), while still allowing report creators to override individual visuals when needed.
Building a Corporate Theme
Color Palette Design
The most impactful part of any theme is the color palette. Follow these guidelines:
Data Colors (Chart Series): Define 8-12 colors for chart data series. These should be: - Distinguishable from each other (no two similar blues) - Accessible for color-blind users (test with a color blindness simulator) - Printable in grayscale (different lightness values) - Brand-aligned but not restricted to only brand colors (you need enough variety for multi-series charts)
Semantic Colors: Define colors with consistent meaning: - Positive/growth: Green (#2E8B57 or similar) - Negative/decline: Red (#DC3545 or similar) - Neutral/baseline: Gray (#6C757D) - Warning/attention: Amber (#FFC107)
Background and Foreground: Choose combinations that meet WCAG 2.1 AA contrast requirements (4.5:1 minimum for normal text, 3:1 for large text). Dark text on light backgrounds is recommended for data-dense reports.
Theme JSON Structure
A production-ready theme JSON includes several sections:
Core Properties: - `name`: Theme identifier displayed in Power BI - `dataColors`: Array of hex colors for chart series (minimum 8 recommended) - `background`: Default visual background color - `foreground`: Default text color - `tableAccent`: Header color for tables and matrices
Text Classes control typography: - `title`: Visual title formatting (font family, size, color, bold) - `header`: Column headers in tables and matrices - `label`: Axis labels, data labels, slicer items - `callout`: Large numbers in card visuals
Visual Styles define properties per visual type: - `card`: Background, border, shadow, callout formatting - `tableEx`: Row colors, gridlines, padding for new table visual - `slicer`: Input styling, item formatting, header formatting - `lineChart`: Line width, marker size, axis formatting - `barChart`: Border radius, spacing, label positioning
Essential Design Decisions
Font Selection: Choose a single font family for the entire theme. Segoe UI (Power BI default) works well. If your brand requires a custom font, verify it is available on all devices where reports will be viewed—Power BI Service renders on the server, which may not have your custom font installed.
Border and Shadow: Decide on a consistent visual container style: - Clean/flat: No borders, no shadows, subtle background differentiation - Card-style: Light border (1px #E0E0E0), subtle shadow - Outlined: Strong border, no shadow
Spacing and Padding: While themes cannot control visual positioning (that is layout, not formatting), they can control internal padding within visuals. Consistent padding creates visual harmony across the report.
Applying and Managing Themes
In Power BI Desktop
- Navigate to View > Themes > Browse for themes
- Select your JSON file
- All existing visuals update to theme defaults (unless manually overridden)
- New visuals automatically use theme formatting
Organization-Wide Distribution
For enterprise deployment, establish a theme distribution strategy:
- Shared drive or SharePoint: Store the canonical theme file in a location accessible to all report creators. Include versioning (theme-v2.3.json) and a changelog.
- Power BI template files (.pbit): Create report templates with the theme pre-applied. New reports start from the template, inheriting the theme automatically.
- Governance policy: Require certified reports to use the approved theme. Include theme compliance in report certification criteria.
- Multiple theme variants: Create variants for different purposes—a standard light theme, a dark theme for ambient displays, a presentation theme with larger fonts, and a print-optimized theme with white backgrounds.
Theme Versioning
When updating your theme, consider the impact on existing reports:
- Non-breaking changes: Adding new visual type defaults, adding more data colors, adjusting colors slightly. Existing reports pick up these changes when the theme is reapplied.
- Breaking changes: Removing data colors (shifts remaining colors), changing font family (layout may shift), dramatically changing background colors. Test against representative reports before distributing.
Advanced Customization
Conditional Formatting Defaults
Themes can define default conditional formatting rules that apply automatically:
- Table row alternation: Define alternate row background colors in the theme rather than configuring per table
- Sentiment colors: Define positive/negative/neutral colors that conditional formatting features use by default
- Data bar colors: Set default data bar fill and direction colors
Dark Mode Theme
Creating a dark theme requires more than inverting colors:
- Background: Dark gray (#1E1E1E) not pure black (easier on eyes)
- Text: Light gray (#E0E0E0) not pure white (reduces glare)
- Data colors: Increase saturation and brightness to maintain contrast against dark backgrounds
- Borders: Use subtle lighter borders (#333333) for visual separation
- Cards: Slightly lighter than page background (#2D2D2D) for visual hierarchy
Accessibility Compliance
Ensure your theme meets WCAG 2.1 accessibility standards:
- Contrast ratios: All text-background combinations must meet 4.5:1 (AA) or 7:1 (AAA)
- Color independence: Information should not be conveyed by color alone—add patterns, labels, or shapes
- Font sizing: Minimum 12px for body text, 14px for important labels
- Color blind safety: Test all data color combinations with Coblis or similar simulators for protanopia, deuteranopia, and tritanopia
Common Pitfalls
| Problem | Cause | Solution | |---|---|---| | Theme does not apply to some visuals | Manual formatting overrides on those visuals | Reset visual formatting to default, then reapply theme | | Colors shift after updating theme | Data color array order changed | Only add colors at the end; never reorder existing colors | | Font looks different in Service vs Desktop | Custom font not available on server | Use web-safe fonts or Segoe UI | | Theme JSON errors on import | Invalid JSON syntax | Validate JSON with jsonlint.com before importing | | Dark theme unreadable in print | Dark backgrounds print as intended | Create a separate print theme with white background |
Best Practices
- Start from an existing theme and modify rather than building from scratch—use Power BI's built-in themes as starting points
- Test with all visual types including tables, matrices, slicers, cards, and charts before distributing
- Include 10+ data colors to handle charts with many series without color repetition
- Document your palette with hex codes, intended use, and accessibility compliance notes
- Create a style guide showing the theme applied to sample reports so report creators understand the intended look
- Review quarterly as brand guidelines evolve and new visual types are added to Power BI
Related Resources
Frequently Asked Questions
Can I share themes across reports?
Yes, export your theme as a JSON file and share it with your team. Any report can import the same theme file to ensure consistent branding across all Power BI content.
Do themes affect existing visuals?
Themes apply default formatting. Existing visuals with manual formatting overrides retain their custom settings, but new visuals use the theme defaults.