HTML table with styled headers, alternating rows, horizontal scroll
| Surface | Note |
|---|---|
| google-chat | HTML tables not supported in Chat cards — use bullet_list or key_value instead |
| Field | Type | |
|---|---|---|
| caption | string | optional |
| headers | list[string] | required |
| rows | list[list[string]] | required |
| col_widths | list[string] (optional, added 2026-07-24). One CSS width per column (e.g. ["46%","18%","18%","18%"]), switches to table-layout:fixed. Without it, a long label in one column can pull free space away from short single-glyph cells in the others. | optional |
{
"type": "table",
"headers": [
"Name",
"Value",
"Status"
],
"rows": [
[
"Example",
"42",
"Active"
],
[
"Another",
"17",
"Pending"
]
]
}
{
"identifier": "urn:air:a2uicatalog.ai:atom:table",
"displayName": "Table",
"type": "application/vnd.a2ui.atom+json",
"url": "https://a2uicatalog.ai/atoms/table",
"capabilities": [
"web",
"google-meet-stage",
"email",
"pdf",
"google-apps-script-web",
"mcp-apps"
],
"description": "HTML table with styled headers, alternating rows, horizontal scroll",
"representativeQueries": [
"show a data table with header row on mobile",
"html table with styled headers, alternating rows, horizontal scroll",
"render a table"
]
}
The renderer is an open-source Google Apps Script web app. Deploy your own instance in 4 commands — you own the URL, no dependency on the demo endpoint.
git clone https://github.com/a2uicatalog/a2ui
cd a2ui/apps-script-surface/gas-wired-renderer
clasp push && clasp deploy
Full deploy guide →