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
| Element | Comes from | Notes |
|---|---|---|
| Title (bold) | First Information Field | Falls back to the Entity ID if no Information Field is bound. |
| Detail lines | 2nd and 3rd Information Fields | Truncated with an ellipsis when they don't fit. |
| Image | Image (Base-64) | Top-left of the card. |
| Link icon | Card URL | Top-right of the card. |
| KPI value + pill | KPI values, KPI Target, KPI Period | See KPIs, targets & trends. |
| Sparkline | KPI Period | Needs at least two points. |
| Accent border | Accent Color | Position and width are configurable. |
| Collapse toggle | The hierarchy | Shows 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.
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
| Requirement | Detail |
|---|---|
| Format | data:image/<type>;base64,<data> |
| Types | png, jpeg, jpg, gif, webp, svg+xml |
| Maximum size | About 500 KB per image once decoded |
| Not accepted | http:// 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:
- Get data → Folder, point it at the folder of images, and Transform Data.
- Keep the
ContentandNamecolumns. - Add a custom column that encodes the binary and prefixes the data URI:
= "data:image/png;base64," & Binary.ToText([Content], BinaryEncoding.Base64)
- Derive the join key from
Name(strip the extension) and merge it onto your entity table. - 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.
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.
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
| Setting | Options | Default |
|---|---|---|
| Show Image | On · Off | On |
| Size | 20 – 80 px | 40 |
| Border Radius (%) | 0 – 50 | 50 |
Border radius 50% gives a circle (the usual choice for people), 0% a square (better for logos and product shots).
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.
Card links
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://andhttps://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.
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
| Setting | Options | Default |
|---|---|---|
| Border Width | 1 – 10 px | 3 |
| Border Position | All sides · Left · Right · Top · Bottom | Left |
| Colors | One picker per group value | Report 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.
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.
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
| Setting | Default | Applies to |
|---|---|---|
| Background Color | #F0F6FF | The canvas behind the tree; also the base for swimlane band shading. |
| Card Background Color | #FFFFFF | The card body. |
| Card Text Color | #000000 | Titles 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.
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.
Related
- Data fields — Information Fields, Image, Card URL, Accent Color.
- Hierarchy & layout — card sizing and corner radius.
- Formatting reference — every setting with its default.