Imagery

The only photographs-like images on the site are real screens of Loom with sample records, captured by the build from the product tour; no stock photos, no people.

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

Reference

Source reference; not an executed check.

screens
ops/overview, ops/support, ops/comms …
og
/og/
.png

Do and don't

2 positive / 2 negative authored documentation examples (2 each required); 1 reference (1 required); 0 failed. References and failures do not count; this is not behavior acceptance.

Do: A real product screen with sample records

Authored by imagery.ts

Rendered consumer example; not an executed correctness check. product-screen Isolated document follows the browser's colour and contrast preferences. The outer theme toolbar does not control this document.

Open example: Imagery · Do: A real product screen with sample records Use the full-page example to follow page links.

The existing native screenshot shows actual UI and identifies its sample records/source. It does not establish a client deployment or recapture the screen in this example.

Do: A Japanese caption preserves the source language

Authored by imagery.ts

Rendered consumer example; not an executed correctness check. product-screen Isolated document follows the browser's colour and contrast preferences. The outer theme toolbar does not control this document.

Open example: Imagery · Do: A Japanese caption preserves the source language Use the full-page example to follow page links.

The same native capture receives the existing Japanese caption path, disclosing the English UI and sample records. Native Japanese review remains pending.

Don't: Sample operations labelled as a client's live data

Authored by imagery.ts

Rule illustration; not an executed check. imagery / imagery.real

Caption on a tour screenshot: "A client running its live operations."
Actual source: the read-only product tour with sample records.
A genuine UI capture does not authenticate the data as client activity; the provenance wording must match its actual source.

Don't: A stock mock-up replaces a captured screen

Authored by imagery.ts

Rule illustration; not an executed check. imagery / imagery.real

A stock dashboard image is labelled "Loom operations screen" without a product-tour source or capture.
The decorative mock-up is substituted for the actual working UI.
The imagery policy requires source-attributable screens. An illustration cannot stand in for captured product behavior.

Rules

RuleWhyCheck
Every screen is captured from the read-only tour and captioned as real screen, sample records.Truthfulness (AGR-0001).Automated: npm run site:screens and the product-screen caption

API

No props.

Contract details

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

Identity

AspectValue
Idimagery
LayerFoundations
Categoryfoundation
OwnerSite system lead
Statusstable
Version1.0.0
Sourceapps/showcase/site/system/foundations/imagery.ts (private repository; the contract and the render function are this one module)
VersionDateChange
1.0.02026-10-26Imagery as one module: its markup moved out of the page builder (scripts/site) into the system.

Use when

  • Product screens on operations and role pages. Why: Real screens prove the product exists.

Do not use when

  • Stock photography or generated people. Why: Invented imagery undermines a site whose argument is evidence.

Anatomy

PartWhat it is
screensapps/showcase/public/product/img/ops/*.webp (npm run site:screens)
ogOpen Graph images drawn from the brand (scripts/site/brand-images.ts)

Made of: nothing (a base element).

Used in: pages directly.

Variants

VariantWhenWhy
light and darkEvery page, following the reader's setting.The same roles resolve to light or dark values, so no element chooses its own.

States

StateRendered or not applicable
defaultThe specimen.
hoverNot applicable: A foundation is not interactive.
focus-visibleNot applicable: Not focusable.
activeNot applicable: Not interactive.
disabledNot applicable: Nothing to disable.
loadingNot applicable: Values are built into the stylesheet.
emptyNot applicable: The build fails if a value is missing.
errorNot applicable: Unresolved values fail the brand gate, not the reader.
currentNot applicable: No current item.
visitedNot applicable: Not a link.
expandedNot applicable: Does not open.

Tokens

PartToken
screen.border--rule-hair --line-strong

Layout

AspectValue
breakpointsRequired review at 390, 768, 1024 and 1440 px; execution is not implied by this declaration; columns stack under 768 px; the wrap keeps a 16 px gutter on phones.
wrappingText wraps; nothing scrolls sideways.
textExpansionJapanese runs 20 to 40% longer; headings break between phrases (jaBreaks) and blocks grow downwards.

Spacing and rhythm

AspectValue
internalNot applicable: a foundation has no box of its own.
externalNot applicable.
rhythmApplies to every element that reads it.

Motion

AspectValue
NoneA foundation does not move.

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
roleNot rendered on the site; its specimen in the Library is a list
nameThe foundation's name
keyboardNot interactive.
focusNot focusable.
screenReaderThe specimen is a plain list of names and values.
contrastEvery text and ground pair in the palette is checked (check-brand).
targetNot a target.

Content

SlotLengthVoice
screen caption and provenance (ProductScreen / screenShot)ProductScreen declares two sentences; the native renderer owns its source and captured-date suffixSay what the real screen shows and that the records are sample records. Preserve the actual tour source and captured date when available; do not invent a capture date.
image alternative (screenShot data)The actual screen title and caption; no independent foundation propDescribe the screen's content, not a device mock-up or a fictional client result. Keep the sample-data disclosure in the same view.

Good: “Real screen, sample records (ProductScreen's native provenance tag)” · “Open the read-only tour (screenShot's source link)”

Bad: “Mock-up (ProductScreen's rejected description of a real capture)” · “A client's live operations (unsupported claim for tour sample records)”

Japanese: Use ProductScreen's existing Japanese caption path where provided; scripts/site/visuals.ts retains English fallback for screens without SCREENS_JA entries. Japanese captions explicitly identify the English UI and sample records. This foundation neither translates the captured UI nor completes native Japanese review.

Icons and illustrations

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

Decisions and exceptions

  • None.

Usage

118 owned-class occurrences in built pages plus metadata-token references in built CSS (measured by npm run site:system).

No application mechanism is declared.

Current check result: not assessed by this report. Declarations and source-file presence do not establish executed enforcement or accepted coverage.

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.