A big number that counts from `from` to `to` as p goes 0 to 1, with thousands separators, prefix, suffix, fixed decimals and an optional small-caps caption under it. The generic form of a stat for any topic: nights, artists, kilometres, followers. Plain HTML and CSS, no script: it moves with the --p custom property that a motion_timeline p track sets, and standalone it renders its final state.
| Surface | Note |
|---|---|
| Prints the final state (type fully revealed, numbers at their values, shapes drawn); no motion | |
| google-chat | Inline CSS functions and custom properties are not supported |
| Field | Type | Required |
|---|---|---|
| to | number. Value at p = 1. Default 100. | optional |
| from | number. Value at p = 0. Default 0. | optional |
| decimals | integer. 0-3. Default 0. | optional |
| prefix | string (optional, max 4). | optional |
| suffix | string (optional, max 8). | optional |
| label | string (optional, max 40). Caption. | optional |
| label_size | integer. Caption px, 8-80. Default a fifth of size. | optional |
| size | integer. Number size px, 10-400. Default 96. | optional |
| font | "sans" | "serif" | "mono" | "display" (optional, default "display") | optional |
| weight | "regular" | "bold" | "black" (optional, default "black") | optional |
| color | "#rrggbb". Default the stage ink. | optional |
| align | "start" | "middle" | "end" (optional, default "start") | optional |
| roll | bool. Odometer: every digit is a 0-9 strip that scrolls to its value, left to right, as p goes 0 to 1. Counts from zero (from is ignored). Default false. | optional |
{
"type": "motion_counter"
}
{
"identifier": "urn:air:a2uicatalog.ai:atom:motion_counter",
"displayName": "Motion Counter",
"type": "application/vnd.a2ui.atom+json",
"url": "https://a2uicatalog.ai/atoms/motion_counter",
"capabilities": [
"web",
"google-meet-stage",
"google-apps-script-web",
"mcp-apps",
"android"
],
"description": "A big number that counts from `from` to `to` as p goes 0 to 1, with thousands separators, prefix, suffix, fixed decimals and an optional small-caps caption under it. The generic form of a stat for any topic: nights, artists, kilometres, followers. Plain HTML and CSS, no script: it moves with the --p custom property that a motion_timeline p track sets, and standalone it renders its final state.",
"representativeQueries": [
"show a big counting number with an optional caption",
"a big number that counts from `from` to `to` as p goes 0 to 1, with thousands separators, prefix, su",
"render a motion counter"
]
}
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 →