Skip to main content

Power BI Theme Best Practices: Brand Colors That Pass Accessibility

February 8, 2026

By Tony Thomas

TL;DR: A Power BI theme controls every color decision in your report — data series colors, background, text, and table styling. A well-constructed theme enforces brand consistency across all reports and meets WCAG accessibility requirements. Most organizations get the brand colors right but fail on contrast, particularly for data labels and axis text on colored backgrounds.


Why Themes Matter More Than You Think

Most Power BI developers apply a theme once and forget it. Import the company's brand colors, call it done. The report looks "on-brand," everyone's happy.

Until someone opens it on a projector. Or in dark mode. Or a user with reduced vision files a complaint with IT.

Themes are not cosmetic. They're a systematic description of every color relationship in your report. Get them wrong and you get:

  • Data labels that are unreadable because they're the same hue as the chart bar
  • Axis text that disappears against a light grey background at normal reading distance
  • Chart lines that are indistinguishable from each other in a print-to-PDF scenario
  • A report that fails an accessibility audit that your organization is legally required to pass

The brands that create beautiful, accessible Power BI reports treat theme design as an engineering problem, not a design exercise.

WCAG Contrast Requirements

The Web Content Accessibility Guidelines (WCAG) 2.2 define minimum contrast ratios for readable content. Power BI reports are increasingly covered by accessibility mandates in enterprise environments, and even where they're not legally required, meeting these standards improves usability for everyone.

The two key ratios:

  • 4.5:1 minimum contrast for normal text (data labels, axis labels, legend text, card titles) — defined in WCAG Success Criterion 1.4.3
  • 3:1 minimum contrast for large text (18pt+ or 14pt bold) and non-text elements (chart lines, bar borders, icons)

These ratios compare the relative luminance of the foreground and background colors. White on black is 21:1 — maximum contrast. Light grey text on a white background might be 2:1, which fails.

The failure modes in Power BI themes are predictable:

Data color on white background: A brand primary color that's a medium-saturation blue or green typically passes (dark enough). Brand yellows and light oranges frequently fail — they're visually prominent but low-luminance.

Text on colored panel backgrounds: If your theme uses a colored background for header panels or slicer backgrounds, any text on those panels needs to be checked against the panel color, not the page background.

Axis labels: These are small text, requiring the 4.5:1 ratio. If your axis text color is the default dark grey and your background is white, you're probably fine. If you've customized either, check it.

Common Theme Mistakes

1. Treating "brand colors" as "data colors." Your brand palette is typically 2-4 colors. A Power BI data color palette needs 6-8 colors to avoid repetition in multi-series charts. Stretching 3 brand colors into 8 data colors by adding tints creates pastel versions that fail contrast tests and look washed out.

2. One theme for all scenarios. A theme that looks great in a meeting room display fails in a printed report and looks mediocre in an embedded web app with a different background color. Consider maintaining two theme variants: light background and dark/navy background.

3. Ignoring tableAccent. The tableAccent color in Power BI themes controls alternating row backgrounds in table and matrix visuals. It's often left at the default light blue even when the rest of the theme is custom. Alternating rows with a blue tint on a white background can create contrast issues for text in the shaded rows.

4. Not testing with data labels on. Apply your theme to a test report with data labels turned on for every visual. This is the highest-risk scenario for contrast failures — data labels sit directly on the bars, lines, and areas they label.

Theme JSON Structure Basics

Power BI themes are JSON files with a predictable structure. Understanding it helps you maintain themes systematically rather than through the UI. Microsoft's Power BI theme documentation covers every supported field:

{
  "name": "Company Theme",
  "dataColors": ["#2DD4BF", "#1E40AF", "#7C3AED", "#DB2777", "#D97706", "#059669", "#DC2626", "#6B7280"],
  "background": "#FFFFFF",
  "foreground": "#0D1B2A",
  "tableAccent": "#E8F7F5",
  "visualStyles": { ... }
}

Key fields:

  • dataColors: Array of 6-8 hex colors. Power BI cycles through this list for multi-series charts. Order matters — the first color gets used most.
  • background: Default page background color.
  • foreground: Default text color for most text elements.
  • tableAccent: The tint color for alternating rows in tables and matrices.
  • visualStyles: Per-visual-type property overrides. This is where you set default font sizes, bar corner radius, axis line weights, etc.

Building a WCAG-Compliant Theme

The systematic approach:

Step 1: Anchor on your primary brand color. Choose the color that represents your brand most strongly — typically your primary button color or brand logo color. This will be your first data color.

Step 2: Derive complementary colors. Rather than manually picking data colors, use a color space designed for perceptual uniformity (OKLCH is best for this). Generate colors at evenly-spaced hue angles from your anchor, keeping lightness and chroma consistent. This ensures the colors are visually balanced when stacked in a legend. MDN's Understanding Colors and Luminance explains the perceptual science behind why uniform lightness matters.

Step 3: Check every combination. Test each data color against your background color. Test your foreground color against your background. Test the tableAccent against white (for the text in shaded rows). Fix any combination that falls below 4.5:1 for text or 3:1 for non-text elements.

Step 4: Verify with data labels on. Apply the theme to a report with dense data labels. If labels on bars use the bar's data color as background, ensure the label text color passes contrast against it.

Step 5: Test in print. Export a page to PDF and check that the color relationships hold. Some colors that look fine on screen flatten to indistinguishable greys in print.

How Draft BI Automates This

Manually checking 8 data colors against 2-3 background colors produces ~20 contrast ratios per theme. Add visualStyles overrides and the number climbs further. This isn't a task that should be done by hand.

Draft BI includes a theme generation tool that takes your primary brand color as input and produces a complete, WCAG-checked theme JSON. The algorithm:

  1. Takes your primary color and maps it to OKLCH color space
  2. Generates 7 complementary data colors at optimized hue angles
  3. Checks every generated color against your specified backgrounds
  4. Flags any failing combinations and automatically proposes adjusted values
  5. Exports a complete Power BI theme JSON ready to import

You get a theme that looks coherent (because it was derived algorithmically from a single anchor) and passes contrast checks (because they were verified before export). The "Fix All" function resolves all WCAG failures in one click by adjusting lightness values to meet the 4.5:1 threshold while preserving hue.

Putting It Together

A good Power BI theme is:

  1. Derived, not assembled — generated from a primary color rather than manually picking 8 swatches
  2. Contrast-verified — every color combination that appears in the report passes the relevant WCAG ratio
  3. Documented — the theme JSON lives in version control alongside the reports that use it
  4. Tested with real visuals — applied to a representative report with data labels, tables, and charts before being deployed

Pair your theme with a deliberate layout and you've addressed the two dimensions that most affect how professional a Power BI report looks: the structure and the color system.

Further Reading


Ready to generate a brand-compliant, accessible Power BI theme from your primary color? Generate a theme from your brand colors — and see Draft BI's pricing plans for teams building multiple report themes.

Draft BI
Tony Thomas

Founder of Draft BI, building the design-first companion for Power BI report development. Writing about PBIR, WCAG accessibility, DAX measures, and the workflows that help Power BI developers and analysts deliver better reports faster.