Theme Lab / free, no sign-up
Power BI theme generator with contrast built in.
Drop in your logo and get a complete Power BI theme JSON: brand data colours, readable text, page and visual backgrounds, borders and title fonts. Every text pair is checked against WCAG before you can download it.
Short answer
Is there a free Power BI theme generator?
Theme Lab is a free Power BI theme generator that runs in your browser with no account. Start from your colours, a logo or an existing theme file, set colours and fonts, check the contrast of every colour pair, and download a theme JSON that imports in Power BI Desktop or the Power BI service.
Local calibration bench
Shape the system, then inspect the result.
Logo or image (PNG, JPG, WebP, SVG · 8 MB) or theme JSON (512 KB) · read in this tab, no upload
Data and semantic color6 data colors
Surfaces and borderVisual container defaults
Type and rhythmTheme + companion tokens
Power BI theme JSON formats visuals, but it cannot enforce page layout spacing. Download the companion token recipe to retain this value for report modernization.
VizForge Calibrated
Contrast ledger
Required text pairs pass.
- Border on visual surface is 1.51:1 against its surface; 3:1 is recommended for non-text UI cues.
Deterministic output
Compile only what Power BI themes can express.
Unsupported imported fields are surfaced before export. No hidden token metadata is inserted into the Power BI theme.
Preview compiled JSON
{
"name": "VizForge Calibrated",
"dataColors": [
"#3559E0",
"#24A9B5",
"#7A4DD8",
"#D46B28",
"#16794C",
"#B42318"
],
"background": "#F7F9FC",
"foreground": "#111827",
"tableAccent": "#1D4ED8",
"good": "#16794C",
"neutral": "#8A5D00",
"bad": "#B42318",
"maximum": "#16794C",
"center": "#8A5D00",
"minimum": "#B42318",
"null": "#4B5563",
"textClasses": {
"callout": {
"fontFace": "Segoe UI",
"fontSize": 30,
"color": "#111827"
},
"title": {
"fontFace": "Segoe UI",
"fontSize": 13,
"color": "#111827"
},
"header": {
"fontFace": "Segoe UI",
"fontSize": 11,
"color": "#111827"
},
"label": {
"fontFace": "Segoe UI",
"fontSize": 10,
"color": "#111827"
}
},
"visualStyles": {
"page": {
"*": {
"background": [
{
"color": {
"solid": {
"color": "#F7F9FC"
}
},
"transparency": 0
}
]
}
},
"*": {
"*": {
"background": [
{
"show": true,
"color": {
"solid": {
"color": "#FFFFFF"
}
},
"transparency": 0
}
],
"border": [
{
"show": true,
"color": {
"solid": {
"color": "#CBD3DF"
}
},
"radius": 6
}
],
"title": [
{
"show": true,
"fontFamily": "Segoe UI",
"fontSize": 13,
"fontColor": {
"solid": {
"color": "#111827"
}
},
"alignment": "left"
}
]
}
}
}
}
Theme Lab reads selected JSON and images with browser file APIs and a local canvas. The file, token values, extracted colours, diagnostics, and compiled output are not sent to VizForge and are not written to your account or a database. The Design Studio link carries the theme inside the URL itself. Site analytics may still record a page visit.
Apply it in two minutes
Import the theme JSON in Power BI Desktop
The same steps work for a .pbix file and a PBIP project. In the Power BI service, edit the report and open View → Theme pane instead of the Design ribbon.
Download the theme JSON
Fix any blockers in the contrast ledger, then choose Download Power BI theme. You get one .json file named after your theme.
Open the Design ribbon in Power BI Desktop
Open your report and select the Design ribbon. The Themes gallery sits there, with Import theme and Customize theme next to it.
Import theme
Choose Import theme (or Customize theme → Theme settings → Import theme), pick the downloaded .json file and select Open. Desktop confirms that the theme was imported. In the Power BI service, edit the report and use View → Theme pane. Older Desktop builds: View → Themes → Browse for themes.
Check visuals that ignore the theme
Visuals that were formatted by hand keep their own colours. Select one and use Reset to default in the Format pane so the theme can apply.
Save it with the report
Save the .pbix or PBIP project. The theme is stored inside the report, so colleagues see it without importing the file again.
Path: Design ribbon Import theme select your .json (service: View Theme pane)
A precise boundary
A theme is a system of defaults—not a report rewrite.
Data and semantic colors, text classes, page and visual backgrounds, visual borders, titles, and supported font sizes.
Density and spacing intent for later PBIR modernization, where layout and explicit per-visual formatting can be patched safely.
Desktop rendering, semantic bindings, bookmarks, visual-level overrides, customer-data behavior, or Microsoft approval.
Questions
Power BI theme generator FAQ
What does a Power BI theme generator actually produce?
A report theme JSON file. This one writes name, dataColors, background, foreground, tableAccent, good, neutral, bad, the diverging maximum/center/minimum colours, textClasses (callout, title, header, label) and visualStyles for the page background plus the default visual background, border, corner radius and title font. Power BI Desktop reads it through Design ribbon → Import theme (the service through View → Theme pane).
How do I build a Power BI theme from my company logo?
Choose Generate from logo and pick a PNG, JPG, WebP or SVG file. The image is decoded in your browser, its colours are grouped with a median-cut algorithm, and the most saturated, most visible colour becomes the accent and first data colour. Text, muted text and borders are then pushed darker or lighter until they pass the WCAG target you picked. Logos on a transparent background give the cleanest result.
Why did my brand colour change slightly?
Bright brand colours such as yellow, lime or sky blue often fall below 3:1 against a white visual. The generator darkens them just enough to reach 3:1 for indicators and 4.5:1 (AA) or 7:1 (AAA) for text, and tells you when it did. You can type the original hex back in; the contrast ledger will show what that costs.
Why are some visuals not changing colour after I import the theme?
Formatting set directly on a visual overrides the theme. Select the visual and use Reset to default on the property (or the whole Format pane section) and it will pick up the theme. Custom visuals only follow a theme if their author reads the theme colours.
Can a theme JSON set a page background image?
Yes. Power BI themes can embed a page background as a base64 data URI. Theme Lab sets the page colour; to design a full background with header bars, cards and your logo, open the theme in the Design Studio and export the background PNG or a theme with the image embedded. In the Format page pane, set Image fit to Fill and transparency to 0%.
What happens to theme properties I leave out?
They fall back to the report's base theme. New reports use the Fluent 2 base theme (Classic 2026 was the previous default), so any data colour, text class or visual style your JSON does not set comes from Fluent 2, including the 1920×1080 default size for new pages. Set a property explicitly when you need the same result in every report, and keep the base theme in mind when you compare a Fluent 2 report with an older Classic one.
Is my file uploaded anywhere?
No. JSON files and images are read with browser file APIs and a local canvas. Nothing is sent to VizForge or stored in a database. The Open in Design Studio link carries the theme inside the URL itself.
Does this work with PBIP and PBIR reports?
Yes. A theme is applied the same way to a .pbix or a PBIP project, and Desktop saves it inside the report folder. PBIR is now the default report format for new reports, so a PBIP project keeps the theme as a readable JSON file you can track in Git.
Need a chart Power BI doesn’t ship?
Describe it in plain English and VizForge generates a custom visual as a .pbiviz file, with its TypeScript source. In the design studio, hand any visual slot to the AI and the brief carries the slot size and your brand colours. Sankey, Gantt, bullet, waterfall and more: see the visual catalog.
Generate a custom visual with AI · starts free →