Skip to main content

Card content & styling

This page covers what goes on a card beyond the KPI — text, images, links, accent colours — and how the whole chart is themed.

What's on a card

ElementComes fromNotes
Title (bold)First Information FieldFalls back to the Entity ID if no Information Field is bound.
Detail lines2nd and 3rd Information FieldsTruncated with an ellipsis when they don't fit.
ImageImage (Base-64)Top-left of the card.
Link iconCard URLTop-right of the card.
KPI value + pillKPI values, KPI Target, KPI PeriodSee KPIs, targets & trends.
SparklineKPI PeriodNeeds at least two points.
Accent borderAccent ColorPosition and width are configurable.
Collapse toggleThe hierarchyShows the count of hidden children.

Text on the card

Put up to three columns or measures in Information Fields. Order matters: the first is the title.

Values are formatted with the column's model format string, so a date column shows as a date and a currency measure keeps its symbol.

tip

Cards get crowded fast. A good default is name → role → location. Anything else belongs in Tooltips, which costs no card space.

Images on cards

The visual is Microsoft-certified, which means it cannot fetch anything from the internet — so images must be supplied as data, not as web links. The Image (Base-64) field takes a data URI.

What's accepted

RequirementDetail
Formatdata:image/<type>;base64,<data>
Typespng, jpeg, jpg, gif, webp, svg+xml
Maximum sizeAbout 500 KB per image once decoded
Not acceptedhttp:// and https:// links, relative paths, anything else

Invalid or oversized values are skipped silently — the card renders without an image rather than breaking.

Producing the column in Power Query

If your images are files in a folder, this is the reliable route:

  1. Get data → Folder, point it at the folder of images, and Transform Data.
  2. Keep the Content and Name columns.
  3. Add a custom column that encodes the binary and prefixes the data URI:
= "data:image/png;base64," & Binary.ToText([Content], BinaryEncoding.Base64)
  1. Derive the join key from Name (strip the extension) and merge it onto your entity table.
  2. Load, then drag the resulting column into Image (Base-64).

If your images already live in the source database as Base64 strings, just prefix them:

= "data:image/png;base64," & [PhotoBase64]

Keeping images small

This is the part that catches people out. Resize before you encode.

Power BI truncates any text value longer than 32,766 characters when it is loaded into the model. Because Base64 adds about 33% to a file's size, that ceiling works out at roughly 24 KB per image — and it bites long before the visual's own ~500 KB limit does. A truncated string is no longer a valid image, so the card silently renders without one.

Staying under it is easy:

  • Cards display images between 20 and 80 px, so a 128 × 128 source is more than enough. A 128 px PNG is typically 5–20 KB — comfortably inside the limit.
  • Resize (and compress) the files before the Power Query step, not after.
  • A few hundred images will still add weight to the model and slow refreshes. Treat this as a thumbnail column, not a photo library.
warning

A photo straight from a phone camera will be truncated on load and the card will show no image. Resize it to 128 px first — at the size a card displays it, the result is indistinguishable.

note

The usual Power BI workaround for oversized Base64 images — splitting the string across rows and reassembling it with CONCATENATEX in a measure — does not apply here. The Image (Base-64) field accepts a column, not a measure. Resizing the source images is the supported route.

Image appearance

Format → Image

SettingOptionsDefault
Show ImageOn · OffOn
Size20 – 80 px40
Border Radius (%)0 – 5050

Border radius 50% gives a circle (the usual choice for people), 0% a square (better for logos and product shots).

tip

Show Image off is a fast way to make a dense chart readable without unbinding the field — useful when the same report page has both a detailed view and an overview.

Bind an absolute http(s) address to Card URL and a small link icon appears in the top-right of each card that has one. Clicking it opens the address in a new browser tab; the card's own click behaviour (cross-filtering) is untouched.

  • Only http:// and https:// are opened. Everything else is ignored for safety.
  • Hide the icon everywhere with Format → Card Configuration → Show Card URL Link.
  • Keyboard equivalent: focus the card and press Alt+Enter.
  • The icon is not shown when the report is in a context where interaction is disabled.
tip

Card URLs turn the chart into a launchpad: an employee's profile in your HR system, a cost centre's detail page, a ticket in a service desk. Build the URL in DAX from an ID column, e.g. "https://hr.example.com/people/" & [EmployeeID].

Accent colours

Bind a categorical column to Accent Color and each distinct value gets its own colour, drawn as a border on the card.

Format → Accent Color

SettingOptionsDefault
Border Width1 – 10 px3
Border PositionAll sides · Left · Right · Top · BottomLeft
ColorsOne picker per group valueReport theme palette

Every distinct value in the field gets a swatch in the Colors group, labelled with the value itself. Colours start from the report theme's palette and stick to their group once you change them — including across data refreshes and report reopening.

Limit

Up to 30 distinct values get their own picker. Beyond that, additional groups are still coloured — using the report theme palette — but have no swatch to customise. If your category has more than 30 values, it's probably too granular to read as colour anyway; consider grouping it first.

tip

A Left border reads as a category stripe and stays out of the way. All sides is bolder and works well when the accent colour is the point of the chart (a RAG status, for example).

Chart colours

Format → Display

SettingDefaultApplies to
Background Color#F0F6FFThe canvas behind the tree; also the base for swimlane band shading.
Card Background Color#FFFFFFThe card body.
Card Text Color#000000Titles and detail lines.

Connector colour lives in Link Configuration, KPI status colours in KPI Configuration, and legend text colour in Legend.

Dark mode

Format → Display → Dark Mode

One switch repaints the whole chart — canvas, cards, text, connectors, KPI colours, swimlane bands, the top bar, and the legend — using a palette tuned for dark report themes.

While dark mode is on, the colour pickers it overrides are hidden from the format pane, because they can't take effect:

  • Background Color, Card Background Color, Card Text Color
  • Link Color
  • Positive / Neutral / Negative KPI colours
  • Legend Font Color

Your chosen values are kept, not cleared — turn dark mode off and every picker returns exactly as you left it.

tip

Dark mode is per-visual, not per-report. If your report page has a dark background, turn it on so the chart doesn't sit on a bright rectangle.

High contrast

When a viewer turns on Windows high-contrast mode, the visual switches to Power BI's system colour palette automatically: system foreground and background, outlined cards and pills, and outlined swimlane bands. No configuration is required, and your own colour settings are untouched.

Because KPI status is encoded by icon shape as well as colour, the pills stay readable when every colour collapses to the system palette.