Power BI: Theme‑Farben direkt im Visual referenzieren (pbip + visual.json)

Auch wenn der Farbwähler in Power BI die Sentiment‑ (Good/Bad/Neutral) und Divergent‑Farben (Min/Mid/Max) nicht anbietet, kannst du Visual‑Eigenschaften direkt auf diese semantischen Farb‑Tokens binden. Der Trick: Speichere den Bericht als Power BI Project (.pbip), öffne die visual.json des betroffenen Visuals und ersetze fest verdrahtete Hex‑Werte durch die gewünschten Color Codes (z. B. good, bad, neutral, minColor, midColor, maxColor). Ab dann steuert dein Theme die Farbe zentral, ohne manuelles Nachfärben im UI.

🔎 Wichtig zur Begriffsklärung: Die editierbaren JSON‑Dateien (u. a. visual.json) stehen dir mit .pbip (Power BI Project) zur Verfügung, nicht mit .pbit (Template). Templates sind weiter hilfreich, aber für das direkte Bearbeiten der Visual‑Definitionen brauchst du .pbip.


Kontext & Anschluss an frühere Beiträge

Dieser Artikel erweitert beide Perspektiven: Wir binden die Farben direkt am Visual und zwar so, dass sie über das Theme zentral steuerbar bleiben.


Was Power BI (noch) nicht im UI bietet und was trotzdem geht

Im Farbwähler fehlen heute die semantischen Theme‑Farben, obwohl es in Themes dafür eigene Tokens gibt. Genau diese Lücke schließen wir manuell über die visual.json des jeweiligen Visuals.

Power BI: Farbwähler vs. Sentiment/Divergent aus dem Theme (Mockup)

Vorteil: Du erhältst die Best of both worlds – Visuals bleiben an das Theme gebunden, während du im UI weiterhin frei bist. Änderst du später z. B. good im Theme, aktualisieren sich alle verknüpften Visuals automatisch.


Schritt‑für‑Schritt: So bindest du ein Visual an Theme‑Farben

⚠️ Voraussetzung: Power BI Desktop mit aktiviertem Power BI Project (.pbip). Speichere deinen Bericht als .pbip und arbeite auf einer Kopie (Versionskontrolle zahlt sich aus).

  1. Als .pbip speichern
    Datei → Speichern unter → Dateityp Power BI Project (.pbip). Danach liegt dein Bericht als Ordnerstruktur vor.
  2. visual.json des Ziel‑Visuals öffnen
    Navigiere im Projektordner zum Berichtsteil/Visual (je nach Struktur etwa Report/definition/pages/<id>/visuals/<id>/visual.json).
  3. Farb‑Eigenschaft finden
    Suche nach der betroffenen Property. Häufig triffst du auf eine Struktur mit einem festen Hex‑Wert:
{
  "fill": {
    "solid": {
      "color": {
        "expr": {
          "Literal": {
            "Value": "'#E91E63'"
          }
        }
      }
    }
  }
}
  1. Hex‑Wert durch semantisches Token ersetzen
    Ersetze den Hex‑Wert durch Theme‑Tokens, z. B. good, bad, neutral oder für Divergenz minColor, midColor, maxColor.
{
  "fill": {
    "solid": {
      "color": {
        "expr": {
          "Literal": {
            "Value": "'good'"
          }
        }
      }
    }
  }
}

💡 Hinweis: Die genaue JSON‑Form kann je nach Visual und Eigenschaft variieren. Als Faustregel gilt: Wo ein Hex‑Wert steht, kann häufig ein Token stehen. Suche nach Feldern wie color, fill, foreground, background o. ä.

  1. Speichern & in Desktop neu laden
    Speichere die Datei. Beim erneuten Öffnen/Laden der .pbip in Power BI Desktop sollte die Farbe nun aus dem Theme kommen. Teste die Bindung, indem du im Theme den entsprechenden Token änderst.

Die wichtigsten Color‑Tokens (Auswahl)

Power BI kennt eine Reihe semantischer Farb‑Bezeichner, die du im Theme definieren und in visual.json referenzieren kannst. Eine (nicht vollständige) Auswahl:

  • Sentiment: good, neutral, bad
  • Divergent: minColor, midColor, maxColor
  • Weitere nützliche Tokens (je nach Theme/Visual): tableAccent, foreground, background, hyperlink, visitedHyperlink, disabledText, shapeStroke u. v. m.

Die folgende Übersicht aus meinem LinkedIn‑Post zeigt einige der von mir gefundenen Codes:

Beispielhafte Liste von Color Codes, die Power BI versteht

ℹ️ Reality Check: Nicht jedes Visual/eigene Property unterstützt alle Tokens. Wenn ein Token nicht greift, prüfe die konkrete Property, den Visual‑Typ und ob an anderer Stelle (z. B. durch UI‑Formatierung) ein härterer Wert gesetzt wird.


Theme‑Datei: Wo die Farben herkommen

Über die Ansicht‑Leiste kannst du in Power BI dein aktuelles Design einsehen und anpassen. Gehe dazu auf Ansicht Designs Aktuelles Design anpassen. Dort öffnet sich ein Dialog, in dem du die wichtigsten Farbwerte (u. a. Akzentfarben, Hintergrund, Textelemente) direkt editieren kannst. Änderst du hier z. B. die Akzentfarbe, wirkt sich das sofort auf dein gesamtes Reporting aus.

📚 Weiterführend & sehr empfehlenswert: SQLBI, „Re‑using visual formatting in and across Power BI reports“ – tiefer Blick in Wiederverwendung von Formatierungen, Themes und Techniken für saubere Wartbarkeit: https://www.sqlbi.com/articles/re-using-visual-formatting-in-and-across-power-bi-reports/


Best Practices & Fallstricke

  • Arbeite versionskontrolliert (Git), wenn du an .pbip und JSON schraubst.
  • UI‑Formatierung kann Tokens überschreiben. Wenn ein Hex‑Wert im UI gesetzt wird, dominiert der i. d. R. gegenüber dem Theme‑Token.
  • Nicht überall verfügbar: Manche Visuals oder Properties akzeptieren nur Hex/Palette. Dann hilft weiterhin der DAX‑Weg aus meinem früheren Artikel.
  • Portabilität: .pbip ist großartig für Teamarbeit und saubere Artefakte, stelle aber sicher, dass euer Build/Deployment die Projektstruktur versteht.

Wunsch an Microsoft: Tokens im Farbwähler!

Für Konsistenz und Wartbarkeit wäre es ideal, wenn der Farbwähler die Sentiment‑ und Divergent‑Farben (und weitere semantische Tokens) direkt anböte – inklusive Bindung ans Theme.

Ich habe eine passende Fabric‑Idea gefunden.
Bitte voten: https://community.fabric.microsoft.com/t5/Fabric-Ideas/Possiblity-to-name-colors-in-theme-color-selection/idc-p/4817910


Fazit

  • Ja, Theme‑Farben lassen sich direkt in Visuals referenzieren – auch ohne UI‑Support.
  • Ja, damit erreichst du zentrale Steuerung über das Theme und reduzierst manuellen Formatier‑Aufwand.
  • Und ja, bis Microsoft die Tokens in den Farbwähler aufnimmt, ist die pbip visual.json‑Route ein praxistauglicher Zwischenschritt.

Veröffentlicht von

Marcus Wegener

Marcus Wegener

Marcus Wegener ist Anwendungsentwickler für Business Intelligence und erstellt Lösungen, mit denen sich große Datenmengen schnell analysieren lassen. Kunden nutzen seine Lösungen, um die Vergangenheit zu analysieren, die Gegenwart zu steuern und die Zukunft zu planen, um damit mehr Erfolg zu generieren. Dabei ist seine einzigartige Kombination aus Wissen und Auffassungsgabe ein Garant für ihren Erfolg.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

I accept that my given data and my IP address is sent to a server in the USA only for the purpose of spam prevention through the Akismet program.More information on Akismet and GDPR.