Product tour

A fixed English link from Site content into the separately routed read-only product tour. It renders no application fields, panels, records or embedded task.

Organism · beta · v1.0.0 · owner: Site system lead · contract 19 of 20 points (open: figma)

Do and don't

Do: English link

Rendered by product-tour.ts

Open example: Product tour · Do: English link Use the full-page example to follow page links.

The existing native destination and visible words.

Do: English link to the separate tour

Rendered by product-tour.ts

Open example: Product tour · Do: English link to the separate tour Use the full-page example to follow page links.

This renderer stays English; locale selection belongs to the destination app.

Don't: Treating the link as an embedded app

Rendered by product-tour.ts

Open example: Product tour · Don't: Treating the link as an embedded app Use the full-page example to follow page links.

The rendered link contains no application fields or panels.

Don't: Claiming a translated wrapper

Rendered by product-tour.ts

Open example: Product tour · Don't: Claiming a translated wrapper Use the full-page example to follow page links.

The same fixed English link is rendered; title alone cannot establish a Japanese specimen.

Rules

RuleWhyCheck
The Site wrapper emits only its fixed English native link to /product-tour/#/control; destination-app internals are a separate consumer.Consumers must not infer embedded fields, translated copy, data loading or task acceptance from a navigation link.Automated: tests/unit/site-system.test.ts (actual positive renders); tests/site/pages.spec.ts (every internal link resolves)

API

No props.

Contract details

The full contract: identity, anatomy, variants, states, tokens, layout, motion, accessibility, content, tests

Identity

AspectValue
Idproduct-tour
LayerOrganisms
Categorynavigation
OwnerSite system lead
Statusbeta
Version1.0.0
Sourceapps/showcase/site/system/organisms/product-tour.ts (private repository; the contract and the render function are this one module)
VersionDateChange
1.0.02026-10-26Site link to the separately routed read-only product tour.

Use when

  • Site content offers the read-only product tour. Why: A native link takes the reader into the separate app without pretending to embed its screens.

Do not use when

  • An embedded application or form is required. Why: This wrapper is only navigation; the destination app owns its own routes, locale and task behavior.

Anatomy

PartWhat it is
rootA native paragraph
linka[href="/product-tour/#/control"] with its fixed visible English name

Made of: tokens:type, tokens:colour.

Used in: page-apps.

Variants

VariantWhenWhy
defaultWherever the page declaration places it.One shape per job keeps pages predictable.

States

StateRendered or not applicable
defaultThis Site component renders one English link to /product-tour/#/control. The separately routed read-only app owns its own screens and lifecycle.
hoverThe native link uses the surrounding Site link hover affordance.
focus-visibleThe native link takes focus in reading order and uses the Site focus ring.
activeNot applicable: Following a link is native navigation, not an in-place pressed/playback state.
disabledNot applicable: The renderer always supplies its existing destination; it has no disabled-link API.
loadingNot applicable: The link is complete build-time content; loading in the destination app is outside this renderer.
emptyNot applicable: The fixed link text/destination has no empty-data variant.
errorNot applicable: Destination app errors are outside this link renderer; no managed host or task-app failure UI is rendered here.
currentNot applicable: This link leads into the tour and does not mark a current app screen.
visitedVisited history belongs to the native link; Site link color remains inherited.
expandedNot applicable: The link does not disclose an embedded application.

Tokens

PartToken
link.colorinherit
link.underline--rule-hair
link.underline-offset--space-2
link.focus--focus
--product-tour-font-type-bodyvar(--type-body)
--product-tour-letter-spacing-ls-bodyvar(--ls-body)

Layout

AspectValue
breakpointsUses the containing text column at its supported viewport widths; no embedded app layout.
wrappingThe native link wraps at spaces.
textExpansionFixed English wording; no locale prop or translated link is implemented here.

Spacing and rhythm

AspectValue
internalNo wrapper padding; native link in a paragraph.
externalThe containing Site composition owns paragraph spacing.
rhythmAt the point where the reader is offered the separate tour.

Motion

AspectValue
NoneA static native link; the destination application is a separate consumer.

Runtime and reuse

  1. Render-only element; mount any registered child enhancements separately. Preserve required Site CSS, fonts, responsive and locale rules from nativeElement.

Accessibility passport

AspectValue
roleNative link; this renderer does not contain application panels or fields.
nameIts visible text
keyboardTab to the link; Enter follows its existing destination.
focusThe link follows normal document reading order.
screenReaderReads Open the read-only product tour and its link role.
contrastInherits the surrounding Site text/link colors; evaluate the actual containing field.
targetNative text-link target; no dedicated44px control surface is implemented by this wrapper. Check target spacing in the consuming layout.

Content

SlotLengthVoice
link name (fixed English renderer text; no content prop)Open the read-only product tour exactlyDescribe native navigation into the separate read-only tour. Do not imply that the Site wrapper renders application fields, translated screens or a live client system.

Good: “Open the read-only product tour”

Bad: “An embedded form or translated app is rendered here”

Japanese: This wrapper link remains English. The separately routed destination owns its own locale; no Japanese link label is authored by this renderer. Mark the English source language in a Japanese consuming context instead of claiming a translated wrapper.

Icons and illustrations

None: this element uses no icon or illustration of its own.

Decisions and exceptions

  • None.

Usage

7 uses across the built pages (measured by npm run site:system).

Tests

AspectValue
unittests/unit/site-system.test.ts: renders every do and don't example through the registry and checks the classes it owns
visualNot yet: there are no screenshot baselines; the Library page is checked for sideways scroll at 1440 px by tests/site/system.spec.ts
a11ytests/site/system.spec.ts: axe (0 serious or critical) on the element's Library page in light and dark
parityscripts/site/system/check.ts: Library examples are rendered by the same render function the site imports

Figma

not-yet: The Loom Site Figma library is the last stage of the plan; this element is not mapped yet.

Open in Storybook

Start with a conversation about your system.

We read your system, show you what we found, and agree with your team what to fix first.