メインコンテンツへスキップ

Sample contract · AUP cross-device · ARC 2.0.0-beta.28

`view` primitive

Use the portable container primitive for structure, tabs, and steps — not for layout.aup site sections.

view 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

FieldValue
Primitive nameview
LayerAUP cross-device primitive (AUP_PRIMITIVES)
Public statusreleased
Document capabilitynative
Shared degradation chainNone (document reports native)
Author entryAUP tree · DSL · Markdown container directives (::::view, steps)
Document renderer / notesrenderer/primitives/view.ts (tabs / steps / card modes)
Showcase evidenceComposition across Showcase pages; tabs path verified on document

When to use

Need a semantic container, panel grouping, mode=tabs, or mode=steps that other devices can interpret.

When not to use

Do not use view as a Web Device layout.aup section stand-in for portal-header, content-card, or other site components.

Sample contract

FieldValue
PurposeStatic tabs chrome on the document target
BoundariesNo session patch, no exec, no layout-component API
Author entryGeneric container directive ::::view
SurfaceWeb Device document
Public statusreleased on document
Fallback / failureMissing label omits accessible tablist name; wrong fence depth drops panels
VerificationRoutes below · arc --version = 2.0.0-beta.28

Document sample (tabs)

This is an unbound document-target view with mode="tabs". Switching tabs only changes which panel is visible in the browser. It does not open an AUP session or write content.

Source:

markdown
::::view{id="docs-prim-view-tabs" mode="tabs" label="Package manager"}
:::view{label="pnpm"}
Install with `pnpm install`.
:::

:::view{label="npm"}
Install with `npm install`.
:::
::::

Rendered:

Install with pnpm install.

Install with npm install.

The outer fence needs more colons than nested containers. Same contract as Live examples: scope and contract.

Failure and limits

SituationExpected result
Leaf ::view with no bodyEmpty panel / no body content
Outer fence with too few colonsParser misreads structure; panels may drop
No label on the tabs containerTabs still render; accessible name on the tablist is omitted
Treating tabs as layout .web componentsWrong surface — layout components use layout.aup, not this directive

Document sample (steps mode via view)

mode="steps" is also available on a generic view container. The Markdown-native tutorial path is ::::steps / :::step (see steps); both land on document view rendering.

Source:

markdown
::::view{id="docs-prim-view-steps" mode="steps" label="Two checks"}
:::view{title="Check the surface"}
Confirm you are on the document target, not a layout section.
:::

:::view{title="Check the fence depth"}
Outer containers need more colons than nested ones.
:::
::::

Rendered:

  1. Check the surface

    Confirm you are on the document target, not a layout section.

  2. Check the fence depth

    Outer containers need more colons than nested ones.

Verification evidence

ItemValue
Baseline2026-08-09 · arc --version → 2.0.0-beta.28
Capability rowdocs/aup/capability-matrix.md (internal, non-routed) · view
Implementationproviders/runtime/web-device/src/content-reader.ts (generic container); renderer/primitives/view.ts (tabs / steps)
Public routes/en/docs/aup/primitives/view/ · /zh/docs/aup/primitives/view/
Local runarc service start --blocklet blocklets/arcblock --port 4900 then open those routes (desktop + ~390px)
AcceptSource fence matches rendered tabs/steps; tab switch does not network-write; fence errors do not crash the page

Evidence anchors

ItemValue
Registrypackages/aup/src/aup-types.ts · AUP_PRIMITIVES
Document capsproviders/runtime/web-device/src/device-caps.ts · DEVICE_CAPS_DOCUMENT
Degradationpackages/aup/src/degradation.ts · DEGRADATION_CHAINS
Internal matrixdocs/aup/capability-matrix.md (internal, non-routed)
Taxonomy hubPrimitive taxonomy and evidence
Sample contract rulesLive examples: scope and contract

Nearby pages