V4 identity playground

The selected oversized LOOM artwork with a sticker family, four operational state specimens and a separate health band reference, all painted by the website's real tokens.

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

Do and don't

Do: Identity family

Rendered by identity-playground.ts

Open example: V4 identity playground · Do: Identity family Use the full-page example to follow page links.

The selected expressions together.

Do: Compact lettering

Rendered by identity-playground.ts

Open example: V4 identity playground · Do: Compact lettering Use the full-page example to follow page links.

A compact brand specimen.

Do: Japanese identity family

Rendered by identity-playground.ts

Open example: V4 identity playground · Do: Japanese identity family Use the full-page example to follow page links.

The full family retains translated specimen captions and the distinction between states and score bands.

Do: Compact lettering in English

Rendered by identity-playground.ts

Open example: V4 identity playground · Do: Compact lettering in English Use the full-page example to follow page links.

The compact composition retains its real exploration link without claiming an exercised focus or activation state.

Don't: Present the band reference as an audit result

Rendered by identity-playground.ts

Open example: V4 identity playground · Don't: Present the band reference as an audit result Use the full-page example to follow page links.

The proposed claim "Your system scored 90" would turn reference thresholds into an unsupported measured result. Keep the threshold labels and use attributable audit output for a real score. The adjacent native artwork is the valid reference; this warning describes a misuse, not an executed negative test.

Don't: Use the expressive lettering as a 16px favicon

Rendered by identity-playground.ts

Open example: V4 identity playground · Don't: Use the expressive lettering as a 16px favicon Use the full-page example to follow page links.

Shrinking this large composition into a favicon would lose its expressive detail. Use the Logo mark-small variant for an asset at 16 to 24px and retain the existing navigation lockup. The adjacent native artwork is the valid large reference; the small-size misuse is described, not rendered or rejected.

Rules

RuleWhyCheck
Positive specimens declare their rendered initial state and document language; each registered visual variant has a positive example.Machine and Library consumers need the same examples without turning declarations into execution evidence.Automated: tests/unit/v4-example-coverage.test.ts
Health specimens retain rubric thresholds and words.The expressive identity must not change the meaning of health.Automated: tests/unit/site-identity.test.ts

API

PropTypeRequiredDefaultWhat it does
langen | jaNo"en"Panel language.
compactbooleanNofalseLettering-only panel; placement is decided through the consumer’s page contract.

Contract details

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

Identity

AspectValue
Ididentity-playground
LayerOrganisms
Categoryidentity
OwnerSite system lead
Statusdraft
Version1.0.0
Sourceapps/showcase/site/system/organisms/identity-playground.ts (private repository; the contract and the render function are this one module)
VersionDateChange
1.0.02026-10-27Created from the owner-selected V4 direction (D-SITE-019).

Use when

  • The website's expressive identity panel and its brand field guide. Why: The lettering, crossings and badges remain one coherent family.

Do not use when

  • Replacing the first-screen product promise with a slogan. Why: The owner kept the clear explanation of what Loom does.

Anatomy

PartWhat it is
rootIdentity panel
wordGeometric lettering
stickersSeven source-defined silhouettes
bandsOperational state specimens and a separate health band reference

Made of: identity-art, identity-sticker, band-word, state-badge.

Used in: pages directly.

Variants

VariantWhenWhy
fullIn the identity field guide.Shows the family together with its meanings.
compactIn a compact identity reference.Adds the expressive lettering without duplicating the field guide.

States

StateRendered or not applicable
defaultdefault
hoverInteractive links retain their text and visible affordance on hover.
focus-visibleThe compact variant has an Explore the identity link with a visible focus ring; the full static family has no controls.
activeEnter activates the focused link; native buttons also accept Space. Parent content does not move.
disabledNot applicable: Identity playground has nothing to disable.
loadingNot applicable: Identity playground is rendered at build time and is complete when the page loads.
emptyNot applicable: Content is generated from registered system definitions and has no empty-list variant.
errorNot applicable: Identity playground shows no data that can fail.
currentNot applicable: Identity playground has no current item.
visitedNot applicable: These navigational links keep their semantic colour; browser history does not imply task completion.
expandedNot applicable: Identity playground does not open or close.

Tokens

PartToken
--identity-playground-labelvar(--type-label)
--identity-playground-trackingvar(--ls-label)
--identity-playground-gap-captionvar(--space-5)
--identity-playground-surfacevar(--cotton)
--identity-playground-inkvar(--ink)
--identity-playground-ink-mutedvar(--ink-2)
--identity-playground-linevar(--line-strong)
--identity-playground-rulevar(--rule-hair)
--identity-playground-linkvar(--link)
--identity-playground-captionvar(--type-small)
--identity-playground-titlevar(--type-h3)
--identity-playground-gapvar(--space-6)
--identity-playground-gap-smallvar(--space-3)
--identity-playground-paddingvar(--space-8)
--identity-playground-marginvar(--space-9)
--identity-playground-targetvar(--space-11)
--identity-playground-focusvar(--focus)
--identity-playground-focus-widthvar(--rule)
--identity-playground-focus-offsetvar(--space-2)
--identity-playground-gap-mediumvar(--space-4)

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
internal--space-8
external--space-9
rhythmOne brand composition followed by explanatory content.

Motion

AspectValue
NoneNo intrinsic element animation. The optional claude-entrance consumer profile may translate below-fold structure once (20px, --dur-weave, --ease-enter, --stagger); reduced motion disables it. This preserved baseline entrance is separate from element playback.

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
roleStatic family composition; one link in the compact variant
nameLabelled expressive artwork and visible captions; compact link has visible text
keyboardCompact link supports Tab and Enter; full composition has no controls
focusVisible component ring on the compact link
screenReaderThe lettering has an image description; stickers and state/band specimens retain distinct captions
contrastThe family composes mode-aware registered artwork, badges and labels
targetCompact link uses the component target token

Content

SlotLengthVoice
captionOne sentenceDescribe the family without making a result claim.

Good: “One boundary. Many states.”

Bad: “Every system is fixed.”

Japanese: 一つの境界。さまざまな状態。 All specimens carry translated labels.

Icons and illustrations

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

Decisions and exceptions

Usage

16 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.