Skip to content
Stand with Ukraine flag

Info Card

  • Widget
  • 13 installs
  • v1.1.0
  • Aug 11, 2026
  • MIT license
  • v4.2+
Info Card

Flexible info card widget for ThingsBoard dashboards. Dynamic rows, title, subtitle and image URL are configured through datasource data key roles; static rows remain in widget settings. Includes glass style presets, auto-fit layout, optional row icons, hover-to-copy values, image positioning and custom CSS.

Widget Type
  • Latest
Category
  • Cards & Info

Info Card

Info Card displays a compact entity profile or status card using the latest values from ThingsBoard data keys. It can show a dynamic title, subtitle, image, and information rows from telemetry, attributes, or entity fields, plus optional static rows configured directly in the widget settings.

Use it for person cards, device overview cards, asset information panels, smart building dashboards, SCADA screens, and operator UI panels.

Features

  • Dynamic title, subtitle, image URL, and info rows from datasource data keys.
  • Static rows for fixed text such as department, location, support contact, or asset ID.
  • Data-key-specific configuration for labels, icons, order, prefixes, suffixes, fallback values, and empty-value handling.
  • Auto-fit, vertical, and horizontal layouts.
  • Auto-fit image frame with responsive placeholder icon.
  • Dark glass, light glass, and custom appearance presets.
  • Optional row icons.
  • Optional copy-on-hover action for row values.
  • Scoped custom CSS using the :card root selector.

Widget type

This widget is a Latest values widget. It reads the most recent value of each configured data key and updates when ThingsBoard pushes new values.

Data keys

Add one datasource and then add the data keys you want to display. Each data key can be telemetry, an attribute, or an entity field supported by ThingsBoard Latest values widgets.

The widget uses the Info Card role setting of each data key to decide how that key is used.

Info Card rolePurposeExpected value
Info item rowAdds a row to the card contentAny text, number, boolean, or formatted value
Main titleUses this key as the main card titleText, for example a name or device label
SubtitleUses this key as the card subtitleText, for example a job title, device type, or status
Image URLUses this key as the image sourcePublic URL, ThingsBoard-accessible image URL, or base64/data URL

Only the first data key assigned to Main title, Subtitle, or Image URL is used for that role. All keys assigned to Info item row are rendered as rows.

For a person profile card:

KeyTypeSuggested roleNotes
fullNameAttribute / entity fieldMain titlePerson or user name
jobTitleAttributeSubtitlePosition or role
photoUrlAttributeImage URLProfile image URL
departmentAttributeInfo item rowDepartment row
emailAttributeInfo item rowEmail row, useful with copy-on-hover
phoneAttributeInfo item rowPhone row, useful with copy-on-hover
locationAttributeInfo item rowOffice, floor, room, or zone
employeeIdAttributeInfo item rowEmployee or badge ID

For a device or asset card:

KeyTypeSuggested roleNotes
nameEntity fieldMain titleDevice or asset name
typeEntity fieldSubtitleDevice or asset type
imageUrlAttributeImage URLDevice photo, icon, or equipment image
statusTelemetry / attributeInfo item rowOnline, offline, alarm, maintenance, etc.
serialNumberAttributeInfo item rowSerial number
firmwareAttributeInfo item rowFirmware version
batteryTelemetryInfo item rowAdd % as suffix when needed
locationAttributeInfo item rowSite, area, room, GPS label, or zone

Data key settings

Each data key has its own Info Card settings.

Common setting

SettingValuesDefaultDescription
Info Card roleInfo item row, Main title, Subtitle, Image URLInfo item rowDefines how this data key is used by the card.

Main title settings

Visible when Info Card role = Main title.

SettingTypeDefaultDescription
Fallback titleTextEmptyUsed when the title data key has no value. Leave empty to hide the title when data is missing.

Subtitle settings

Visible when Info Card role = Subtitle.

SettingTypeDefaultDescription
Fallback subtitleTextEmptyUsed when the subtitle data key has no value. Leave empty to hide the subtitle when data is missing.

Image URL settings

Visible when Info Card role = Image URL.

SettingTypeDefaultDescription
Fallback image URLTextEmptyUsed when the image data key has no value. Leave empty to show the placeholder icon.

Info item row settings

Visible when Info Card role = Info item row.

SettingTypeDefaultDescription
IconMaterial icon nameinfoIcon displayed next to the row when row icons are enabled. Examples: email, phone, place, business, badge.
Label overrideTextEmptyCustom row label. If empty, the widget uses the data key label or data key name.
OrderNumber100Sorting order. Lower values appear first.
PrefixTextEmptyText added before the value, only when the value exists.
SuffixTextEmptyText added after the value, only when the value exists.
Empty value placeholderText--Text shown when the value is missing and the row is not hidden.
Hide this row when value is missingBooleanfalseHides this row when the value is empty.

Widget settings

Layout

SettingValuesDefaultDescription
Layout modeAuto-fit content, Vertical, HorizontalAuto-fit contentControls the card layout. Auto-fit chooses a layout based on widget proportions and may wrap rows into columns on wide widgets.
Hide dynamic rows when value is missingtrue / falsefalseGlobally hides dynamic data-key rows with missing values. Static rows still use their own empty-value placeholder.

Appearance

SettingValues / rangeDefaultDescription
Style presetDark glass, Light glass, CustomDark glassBase visual style.
BackgroundCSS color#444444C0Custom preset only. Card background color.
Border radiusCSS size16pxCustom preset only. Card border radius.
Border colorCSS color#E4E4E4E6Custom preset only. Card border color.
Border width, px082Custom preset only. Card border width in pixels.
Show row iconstrue / falsetrueShows or hides icons next to info rows.
Copy value on item hovertrue / falsetrueShows a copy icon on row hover. Clicking it copies the displayed row value and briefly shows a check icon.
Title font sizeCSS size28pxMain title font size.
Subtitle font sizeCSS size16pxSubtitle font size.
Content font sizeCSS size15pxInfo row value font size.
Card paddingCSS size16pxInternal card padding.
Advanced: Custom CSSCSSEmptyCustom preset only. Use :card as the root selector.

Font weights are optimized for readability: title uses 700, row labels use 700, and row values use 500.

Image

SettingValuesDefaultDescription
Show imagetrue / falsetrueShows or hides the image area.
Image frame modeAuto-fit frame, Fixed rounded square, Fixed circle, Fixed squareAuto-fit frameControls image sizing and shape.
Image positionStart edge, Center, End edgeCenterIn vertical layout: left / center / right. In horizontal layout: top / center / bottom.
Placeholder iconMaterial icon namepersonIcon shown when no image URL is available or the image fails to load.
Fixed image sizeCSS size148pxUsed only by fixed image modes.

Auto-fit frame uses the available image area and keeps the text area usable. The placeholder icon scales with the image frame size.

Static items

Static items are configured in the widget settings and do not require datasource data keys.

SettingTypeDefaultDescription
IconMaterial icon nameinfoRow icon.
LabelTextLabelRow label.
ValueTextValueStatic row value.
PrefixTextEmptyText added before the value when it exists.
SuffixTextEmptyText added after the value when it exists.
Empty value placeholderText--Text shown when the static value is empty.
OrderNumber100Sorting order. Lower values appear first.

Value handling

  • Dynamic rows use the latest value from each configured data key.
  • Numeric values respect the ThingsBoard data key decimals and units configuration when available.
  • Prefix and suffix are applied only when a real value exists.
  • Missing values show the configured empty-value placeholder, unless the row is hidden.
  • Copy-on-hover copies the displayed row value, including prefix and suffix.

Value ranges

This widget does not apply built-in semantic ranges, thresholds, or color-coded value bands. All incoming values are displayed as text. Use data key labels, prefixes, suffixes, ThingsBoard decimals/units, or custom CSS to adapt the presentation.

For configuration values, use these ranges:

SettingSupported range / values
Border width, px08
OrderAny numeric value; lower values appear first
Layout modeAuto-fit content, Vertical, Horizontal
Image frame modeAuto-fit frame, Fixed rounded square, Fixed circle, Fixed square
Image positionStart edge, Center, End edge
Boolean switchestrue or false
CSS size fieldsValid CSS sizes such as 14px, 1rem, 80%
CSS color fieldsValid CSS colors such as #444444C0, rgba(255,255,255,0.6), or named colors

Example configuration

  1. Add the widget to a dashboard.
  2. Select a single entity datasource, for example a Device, Asset, or Entity alias.
  3. Add data keys such as fullName, jobTitle, photoUrl, email, phone, and location.
  4. Open each data key settings panel and assign an Info Card role.
  5. For info rows, set icon, label override, order, prefix, suffix, and empty-value behavior.
  6. Use static items for fixed values that should not come from telemetry or attributes.
  7. Adjust layout, image mode, and appearance in the widget settings.

Custom CSS

When Style preset = Custom, use :card as the scoped root selector.

:card {
backdrop-filter: blur(14px);
}
:card .tb-info-card-title {
text-transform: uppercase;
}
:card .tb-info-card-item-value {
letter-spacing: 0.01em;
}

Troubleshooting

  • If the image does not appear, check that the Image URL data key contains a browser-accessible URL or a valid data URL.
  • If the title or subtitle is empty, check that a data key has the correct role and that the key has a latest value or fallback text.
  • If a row is missing, check Hide dynamic rows when value is missing and the per-key Hide this row when value is missing option.
  • If rows appear in the wrong order, adjust the Order value in data key settings or static item settings.
  • If icons do not render, verify that the icon names are valid Material icon names.

Share Your Widget with the Community

Built a custom widget? Export it as a JSON from ThingsBoard and publish it to the IoT Hub through a simple 4-step wizard (Upload, Listing, Readme, Review & Submit). Share it with thousands of ThingsBoard developers worldwide and get featured in the catalog.