POWER BI THEME JSON - CHEAT SHEET
Restyle a Power BI Report in One Click with a Custom Theme  |  PK: An Excel Expert  |  www.pk-anexcelexpert.com
====================================================================================================

HOW TO APPLY A THEME
  View > Themes (dropdown arrow) > Browse for themes > pick the .json file > Open.
  Every page and every visual that has NOT been formatted by hand changes at once.

HOW TO TWEAK ONE WITHOUT CODE
  View > Themes > Customize current theme  (Name and colors, Text, Visuals, Page, Filter pane) > Apply.
  View > Themes > Save current theme  -> exports your changes as a .json you can share.

FILE 1 - Themes\1-Harbor-Brand-Colors.json (the smallest useful theme)
  "name"        what Power BI shows in the Themes list
  "dataColors"  the series colours in order: first series = first colour, and so on
  "background"  visual background colour      "foreground"  main text colour
  "tableAccent" the accent line on tables and matrices

FILE 2 - Themes\2-Harbor-Pro-Theme.json (one file for every report on the team)
  1) Colours      dataColors, good / neutral / bad (conditional formatting), maximum / center / minimum (gradients)
  2) textClasses  callout = the big number on cards, title = visual titles, header, label = axis and data labels
  3) visualStyles "*" -> "*"   defaults for EVERY visual: background, border with rounded corners (radius),
                               dropShadow, title, padding
  4) visualStyles per visual   overrides for one visual type:
       "page"      page background and the grey area around it (outspace)
       "card"      card label size/colour and a caramel border
       "tableEx"   table header (espresso, white bold), striped rows, horizontal grid lines
       "slicer"    header and items
       "textbox"   no background/border/shadow so page titles sit on the page
       "lineChart", "clusteredBarChart", "clusteredColumnChart", "donutChart"  line width, labels, legend

  Colours are written as { "solid": { "color": "#4B2E2A" } } inside visualStyles, but as plain "#4B2E2A" at the top.

THE GOTCHA
  A visual you formatted by hand keeps that formatting - the theme never overrides it.
  Fix: select the visual > Format pane > the section you changed > Reset to default.

IF THE IMPORT FAILS ("We couldn't import your theme")
  The file is not valid JSON - usually a missing comma or an extra one before } or ].
  Edit theme files in VS Code or Notepad++, or paste them into jsonlint.com to find the line.

HARBOR COFFEE BRAND PALETTE
  Espresso #4B2E2A   Caramel #C8873A   Harbor Teal #2F6F6A   Sage #8DAA91   Latte #D9B48F
  Roast #7A4E3A      Cream #F6EFE6     Foam #FFFDF9          Line #E6DACB   Muted text #7A6A64
