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
- In meinem Beitrag „Power BI Designfarben in DAX referenzieren“ zeige ich, wie man Theme‑Farben in DAX nutzt, um konsistente Farbgebung zu erreichen: https://www.thinkbi.de/2024/03/07/power-bi-designfarben-in-dax-referenzieren/
- Später habe ich auf LinkedIn weitere Color Codes gesammelt, die Power BI versteht und die im Theme definiert werden können: https://www.linkedin.com/posts/marcuswegener_powerbiler-powerbi-dax-activity-7184434909657100288-1yuF
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.
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).
- Als .pbip speichern
Datei → Speichern unter → Dateityp Power BI Project (.pbip). Danach liegt dein Bericht als Ordnerstruktur vor. visual.json
des Ziel‑Visuals öffnen
Navigiere im Projektordner zum Berichtsteil/Visual (je nach Struktur etwaReport/definition/pages/<id>/visuals/<id>/visual.json
).- 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'"
}
}
}
}
}
}
- Hex‑Wert durch semantisches Token ersetzen
Ersetze den Hex‑Wert durch Theme‑Tokens, z. B.good
,bad
,neutral
oder für DivergenzminColor
,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. ä.
- 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:
ℹ️ 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.