Key and value pairs for record inspectors and detail panes, rendered as a real dl of dt and dd pairs. Rows draw hairlines with a fixed term column; columns draw a grid of sunken cells with small uppercase labels. Display only; sui-config-list is the interactive sibling.
layout="rows" is the default: hairline rows with a fixed term column, for a detail pane beside a record. strong bolds a total; copy adds a copy control after the value.
layout="columns" stacks each term over its detail and flows them across the given number of tracks, for a summary header rather than an inspector rail.
A detail may be a string, a number or an HTMLElement, mounted as it is; that is how a status pill, a link or an inline control sits in the value column, and what it paints past its box on hover or focus is never clipped. A long text value wraps rather than truncating. term-width widens the term column.
Each copy control is named for its own row ("Copy Invoice"), and a polite status region announces "Copied". suiCopy follows a confirmed clipboard write; when the write fails the element shows no "Copied" state and emits suiCopyError with the same item.
Moves through the copy controls, one per item marked copy; the terms and values take no focus.
EnterSpace
Copies the value, swaps the icon to a check, announces Copied through a polite live region and emits suiCopy with the item; a blocked clipboard emits suiCopyError instead.
API
<sui-description-list>
Properties
Property
Attribute
Type
Default
Description
columns
columns
number
2
Grid column count in the columns layout.
items
property only
SuiDescriptionItem[]
[]
The pairs to show. An item with copy gets a copy control after its value, a sui-tooltip named "Copy" that writes the value text to the clipboard (a hidden textarea where navigator.clipboard is absent). Property, not attribute.
layout
layout
"columns" | "rows"
'rows'
rows (hairline rows, fixed term width) or columns (grid of sunken cells).
termWidth
term-width
number
150
Term column width in px in the rows layout.
Events
Event
Detail
React
Vue
Description
suiCopy
string
onSuiCopy
@sui-copy
Fires after a value reaches the clipboard, together with the short "Copied" state on the control; detail is the copied text, as on every element that copies.
suiCopyError
string
onSuiCopyError
@sui-copy-error
Fires when the write failed and no "Copied" state was shown; detail is the text that was not copied.
Types
SuiDescriptionIteminterfaceOne term and detail pair. detail may be text, a number or a DOM node.
term
string
The label (dt).
detail
string | number | HTMLElement
The value (dd). Strings and numbers render as text, and a long one wraps; an HTMLElement is mounted as-is, and what it paints past its box, an inline control's hover fill or a button's focus ring say, is never clipped by the value cell.
copy?
boolean
Shows a copy control after the value; copies its text and emits suiCopy.
strong?
boolean
Bold (700) value for totals and balances.
Theming
Every design token this element can render with, read from its own stylesheets and the ones it imports. Set a token on :root or on any ancestor and every use below follows it. The values shown are the ones in the theme you are viewing. The list is read per stylesheet, so an element that imports a shared drawing module lists that module's tokens too, whether or not it paints with all of them.