Report design guide

A custom theme for the Fluent 2 base theme

By · Founder & Reliability Engineer · Updated

New Power BI reports start on the Fluent 2 base theme; Classic 2026 was the previous default and Classic 2018 covers legacy reports. A custom theme JSON sits on top of the base theme: anything it sets wins, and everything it leaves out comes from Fluent 2, including grey wallpaper and page background, visual titles on, axis titles off, more padding and rounded corners. So set the page background and wallpaper, visual backgrounds and text classes explicitly, then import the file from the Design ribbon → Import theme.

A theme that overrides Fluent 2's defaults

Below is the theme JSON the Design Studio writes for the Boardroom Blue theme, generated when this page was built. The table lists each Fluent 2 default it replaces; anything not in the file still comes from Fluent 2.

Fluent 2 defaults and the values this theme sets instead
Theme keyFluent 2 without a themeBoardroom Blue sets
Series colours (dataColors)The base theme's palette8 brand colours, contrast-checked
Text and canvas colour (foreground, background)The base theme's ink and surface#0F172A on #F3F5F9
Sentiment (good, neutral, bad)The base theme's KPI colours#15803D / #B45309 / #DC2626
Page background and wallpaperGrey wallpaper and page backgroundSet to the theme background, so new pages aren't grey
Visual backgroundDrawn, with Fluent 2 padding and rounded cornersOff, so a designed background shows through
Visual titlesOnOn, in the theme's title font and colour
Text classes (callout, title, header, label)The base theme's fonts and sizescallout, title, header, label
Boardroom Blue Power BI theme applied to the Executive KPI Scorecard report template, page background #F3F5F9
The same theme on a sample page, rendered by the studio engine.
Boardroom Blue.json (1,095 characters)
{
  "name": "Boardroom Blue",
  "dataColors": [
    "#2563EB",
    "#0D95D2",
    "#119B8B",
    "#8B5CF6",
    "#BF7B09",
    "#EF4444",
    "#64748B",
    "#EC4899"
  ],
  "background": "#F3F5F9",
  "foreground": "#0F172A",
  "tableAccent": "#2563EB",
  "good": "#15803D",
  "neutral": "#B45309",
  "bad": "#DC2626",
  "maximum": "#15803D",
  "center": "#B45309",
  "minimum": "#DC2626",
  "null": "#526075",
  "textClasses": {
    "callout": {
      "fontFace": "Segoe UI",
      "fontSize": 30,
      "color": "#0F172A"
    },
    "title": {
      "fontFace": "Segoe UI",
      "fontSize": 13,
      "color": "#0F172A"
    },
    "header": {
      "fontFace": "Segoe UI",
      "fontSize": 11,
      "color": "#0F172A"
    },
    "label": {
      "fontFace": "Segoe UI",
      "fontSize": 10,
      "color": "#0F172A"
    }
  },
  "visualStyles": {
    "page": {
      "*": {
        "background": [
          {
            "color": {
              "solid": {
                "color": "#F3F5F9"
              }
            },
            "transparency": 0
          }
        ],
        "outspace": [
          {
            "color": {
              "solid": {
                "color": "#F3F5F9"
              }
            },
            "transparency": 0
          }
        ]
      }
    },
    "*": {
      "*": {
        "background": [
          {
            "show": false,
            "color": {
              "solid": {
                "color": "#FFFFFF"
              }
            },
            "transparency": 100
          }
        ],
        "border": [
          {
            "show": false,
            "color": {
              "solid": {
                "color": "#D4D5D9"
              }
            },
            "radius": 8
          }
        ],
        "title": [
          {
            "show": true,
            "fontFamily": "Segoe UI",
            "fontSize": 13,
            "fontColor": {
              "solid": {
                "color": "#0F172A"
              }
            },
            "alignment": "left"
          }
        ],
        "dropShadow": [
          {
            "show": false
          }
        ]
      }
    }
  }
}

Step by step

  1. 1

    Check which base theme the report uses

    Reports created recently use Fluent 2; older reports may still be on Classic 2026 or Classic 2018. The base theme can be switched or updated from the theme settings. Compare like with like: a theme looks different on a Classic report because the values it doesn't set come from a different base.

  2. 2

    Set the colours every visual reads

    dataColors (the series palette), foreground, background, tableAccent and the sentiment colours good, neutral and bad. These are the keys a chart, table or KPI visual uses before any per-visual style.

  3. 3

    Set the page background and wallpaper

    Fluent 2 gives pages a grey wallpaper and background. If you use a background image or a brand colour, set visualStyles → page → * → background and outspace so every new page gets them instead of the grey.

  4. 4

    Decide on visual containers

    Fluent 2 draws visuals with more padding, rounded corners and titles on. Over a designed background, turn the visual background off (visualStyles → * → * → background show false) and keep or remove borders and shadows to match your panels.

  5. 5

    Set the text classes

    callout, title, header and label set the font face, size and colour for KPI numbers, visual titles, table headers and data labels. Use fonts installed on every viewer's machine, such as Segoe UI.

  6. 6

    Import and check

    In Power BI Desktop use the Design ribbon → Import theme; in the service, edit the report and use the Theme pane. Then check a table, a slicer and a chart with labels. Visuals formatted by hand keep their formatting until you use Reset to default.

Frequently asked questions

Is Fluent 2 the default Power BI theme now?

Yes. Microsoft Learn lists Fluent 2 as the default base theme for new reports, Classic 2026 as the previous default and Classic 2018 for legacy reports.

Do I need a different theme JSON for Fluent 2?

The file format is the same. What changes is the base underneath it: anything your theme doesn't set now comes from Fluent 2. Themes that only set dataColors will show Fluent 2's grey page and its visual styling, so set the page and visual container keys too.

Why is my page grey after importing a theme?

The theme doesn't set a page background or wallpaper, so Fluent 2's grey shows through. Add visualStyles → page → * → background and outspace with your colour, or set them in Format page.

Can Copilot create a report in my theme?

Microsoft documents that Copilot report creation doesn't support custom visuals or styling. Let Copilot draft the page, then import your theme and set the background afterwards.

Related

Sources

Checked 2026-11-05.

All how-to guides

Make the report.
Then make it yours.

The Design Studio, templates and tools are free with no account (exports carry a small VizForge mark until you sign in). Sign up when you want AI: 5 credits on us, no card.

Generated visuals are type-checked and built before you download them; one that fails the quality SLA refunds its credits. See all features or pricing.