Finding

Shows one finding from Loom's checks: its severity in words, what is wrong and where.

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

Do and don't

Do: A real error

Rendered by finding.ts

Open example: Finding · Do: A real error Use the full-page example to follow page links.

Severity, message and place.

Do: A warning

Rendered by finding.ts

Open example: Finding · Do: A warning Use the full-page example to follow page links.

The word carries the severity.

Don't: An invented finding

Rendered by finding.ts

Open example: Finding · Don't: An invented finding Use the full-page example to follow page links.

Only real check output is shown.

Don't: Severity by colour only

Rendered by finding.ts

Open example: Finding · Don't: Severity by colour only Use the full-page example to follow page links.

Without the word the colour is the only signal.

Rules

RuleWhyCheck
Findings come from Loom's checks, run at build time or in the browser.The site promises real output, not illustrations.Automated: site interactives check (scripts/site/interactives/check.ts)

API

PropTypeRequiredDefaultWhat it does
severityhigh | mediumYesFrom the check's own severity.
messagestringYesThe check's message, verbatim.
wherestringNoFile and line.

Contract details

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

Identity

AspectValue
Idfinding
LayerMolecules
Categorydata
OwnerSite system lead
Statusbeta
Version1.0.0
Sourceapps/showcase/site/system/molecules/finding.ts (private repository; the contract and the render function are this one module)
VersionDateChange
1.0.02026-10-26One audit finding with its severity word, from Loom's real checks.

Use when

  • A showcase or report lists real check output. Why: Findings are the product's actual output, the strongest proof.

Do not use when

  • For invented problems. Why: Findings shown on the site are produced by Loom's code at build time or in the browser.

Anatomy

PartWhat it is
rootli in ul.findings
severityspan.sev.sev-high or .sev-medium with its word
messageThe finding text
whereThe file and line

Made of: band-word, code-block.

Used in: agent-check, conformance-table, drift-hero, read-your-stylesheet, repo-change, takenote-card.

Variants

VariantWhenWhy
highErrors.Madder ink word: fix first.
mediumWarnings.Saffron ink word: fix soon.

States

StateRendered or not applicable
defaultdefault
hoverNot applicable: A finding is not interactive, so it has no hover state.
focus-visibleNot applicable: A finding does not take focus; links and buttons inside it carry their own focus ring.
activeNot applicable: A finding cannot be pressed.
disabledNot applicable: A finding has nothing to disable.
loadingNot applicable: A finding is rendered at build time and is complete when the page loads.
emptyNot applicable: A finding is not rendered without content; the builder skips it.
errorNot applicable: A finding shows no data that can fail.
currentNot applicable: A finding has no current item.
visitedNot applicable: A finding is not a link.
expandedNot applicable: A finding does not open or close.

Tokens

PartToken
sev-high.color--madder-ink
sev-medium.color--saffron-ink
root.font--type-small
--finding-gap-space-5var(--space-5)
--finding-padding-bottom-space-5var(--space-5)
--finding-border-bottom-linevar(--line)
--finding-font-size-fs-smallvar(--fs-small)
--finding-color-ink-2var(--ink-2)
--finding-font-type-labelvar(--type-label)
--finding-padding-space-3var(--space-3)
--finding-padding-space-2var(--space-2)
--finding-border-radius-radiusvar(--radius)
--finding-background-madder-softvar(--madder-soft)
--finding-color-madder-inkvar(--madder-ink)
--finding-background-saffron-softvar(--saffron-soft)
--finding-color-saffron-inkvar(--saffron-ink)
--finding-padding-inline-space-4var(--space-4)
--finding-gap-grid-gapvar(--grid-gap)
--finding-margin-top-space-12var(--space-12)

Layout

AspectValue
breakpointsRequired review at 390, 768, 1024 and 1440 px; execution is not implied by this declaration; wraps.
wrappingMessages wrap; file paths break anywhere.
textExpansionEngine messages stay in English; Japanese pages say so.

Spacing and rhythm

AspectValue
internal--space-3 between severity and message.
external--space-4 between findings.
rhythmInside a showcase or report.

Motion

AspectValue
NoneStatic.

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
rolelistitem
nameSeverity word then message
keyboardNot interactive.
focusNot focusable.
screenReaderReads the severity word, so colour is not needed.
contrastmadder-ink 6.4:1, saffron-ink 5.2:1 on cotton.
targetNot a target.

Content

SlotLengthVoice
messageAs the check wrote itVerbatim engine output

Good: “ERROR Button has no "variant" prop.”

Bad: “Something looks off”

Japanese: Engine output is English; Japanese pages add 「チェック結果は英語で表示されます」.

Icons and illustrations

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

Decisions and exceptions

Usage

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