- Slack: Block Kit
- Teams: Adaptive Cards
- Google Chat: Card v2
Usage
Cards support both function calls and JSX syntax.Function API
JSX API
RequiresjsxImportSource: "chat" in tsconfig.json.
Card
Root container for card content.string
Card title (displayed as header)
string
Card subtitle (displayed below title)
string
Header image URL
CardChild[]
Card content elements
CardOptions Type
Text
Text content element.string
required
Text content (supports markdown on some platforms)
'plain' | 'bold' | 'muted'
Text style
Image
Image element.string
required
Image URL
string
Alt text for accessibility
Divider
Visual divider/separator.Section
Container for grouping elements.Actions
Container for buttons and selects.Button
Interactive button that triggers an action.string
required
Unique action ID for callback routing
string
required
Button label text
'primary' | 'danger' | 'default'
Visual style
string
Optional payload value sent with action callback
boolean
If true, button is displayed inactive and doesn’t respond to clicks
LinkButton
Button that opens a URL when clicked.string
required
URL to open when clicked
string
required
Button label text
'primary' | 'danger' | 'default'
Visual style
Field
Key-value pair for displaying structured data.string
required
Field label
string
required
Field value
Fields
Container for multi-column field layout.Table
Structured data table.string[]
required
Column header labels
string[][]
required
Data rows (each row is an array of cell strings)
('left' | 'center' | 'right')[]
Column alignment
CardLink
Inline hyperlink element.string
required
URL to link to
string
required
Link label text