Motion Counter

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.

Surfaces
webgoogle-meet-stagegoogle-apps-script-webmcp-appsandroid
Degraded on
SurfaceNote
pdfPrints the final state (type fully revealed, numbers at their values, shapes drawn); no motion
google-chatInline CSS functions and custom properties are not supported
Live preview
100
Fields
FieldTypeRequired
tonumber. Value at p = 1. Default 100.optional
fromnumber. Value at p = 0. Default 0.optional
decimalsinteger. 0-3. Default 0.optional
prefixstring (optional, max 4).optional
suffixstring (optional, max 8).optional
labelstring (optional, max 40). Caption.optional
label_sizeinteger. Caption px, 8-80. Default a fifth of size.optional
sizeinteger. 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
rollbool. 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
Example payload
{
  "type": "motion_counter"
}
ARD catalog entry
{
  "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"
  ]
}
← Full ARD catalog
Deploy your own Google Apps Script renderer

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 →