time is an AUP cross-device primitive, not a Web Device layout component and not a Web-only widget. It is one of the 18 names in AUP_PRIMITIVES and appears in every target's DeviceCaps.primitives map as native, webview, partial, or unsupported.
Contract
| Field | Value |
|---|---|
| Primitive name | time |
| Layer | AUP cross-device primitive (AUP_PRIMITIVES) |
| Public status | experimental |
| Document capability | partial |
| Shared degradation chain | time → text (when unsupported) |
| Author entry | AUP tree / DSL · generic Markdown ::time{…} |
| Document renderer / notes | renderer/primitives/time.ts (<time> element; clock mode snapshots at render) |
| Showcase evidence | blocklets/showcase-dsl/.aup/pages/time.aup |
When to use
You need a semantic time value (formatted display, clock, countdown) on a supporting target.
When not to use
Do not claim a ticking live clock on the static document target. Document is partial: static snapshot only.
Sample contract
| Field | Value |
|---|---|
| Purpose | Static <time> presentation on document (display mode) |
| Boundaries | No live clock promise on document; no picker session |
| Author entry | ::time{…} |
| Surface | Web Device document (partial) |
| Public status | experimental |
| Fallback / failure | Missing value → empty display; unsupported → text chain; clock mode is prerender snapshot |
| Verification | Routes below · arc --version = 2.0.0-beta.28 |
Document sample (display mode)
Source:
::time{id="docs-prim-time-display" mode="display" value="2026-02-21T14:30:00Z"}Rendered:
Accept interactive clock/countdown on Showcase time, not as a docs live ticker.
Failure and limits
| Situation | Expected result |
|---|---|
mode="clock" on document | Snapshot at prerender/request time — not a continuous client ticker |
Missing value in display mode | Empty / blank time text |
| Unsupported target | Chain to text |
| Treating this as a date picker | Out of contract |
Verification evidence
| Item | Value |
|---|---|
| Baseline | 2026-08-09 · arc --version → 2.0.0-beta.28 |
| Capability row | docs/aup/capability-matrix.md (internal, non-routed) · time |
| Implementation | renderer/primitives/time.ts; caps partial in device-caps.ts |
| Public routes | /en/docs/aup/primitives/time/ · /zh/docs/aup/primitives/time/ |
| Local run | arc service start --blocklet blocklets/arcblock --port 4900 · open routes; confirm static <time> text |
| Accept | Display sample shows formatted time; page states partial / no live clock |
Evidence anchors
| Item | Value |
|---|---|
| Registry | packages/aup/src/aup-types.ts · AUP_PRIMITIVES |
| Document caps | providers/runtime/web-device/src/device-caps.ts · DEVICE_CAPS_DOCUMENT |
| Degradation | packages/aup/src/degradation.ts · DEGRADATION_CHAINS |
| Internal matrix | docs/aup/capability-matrix.md (internal, non-routed) |
| Taxonomy hub | Primitive taxonomy and evidence |
| Sample contract rules | Live examples: scope and contract |