Band word

Shows a health band (Tightly woven, Holding together, Taking shape, Loose threads) as a small dyed mark with its word, the only place a dye states health.

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

Do and don't

Do: Holding together with its meaning

Rendered by band-word.ts

Open example: Band word · Do: Holding together with its meaning Use the full-page example to follow page links.

Mark, word and meaning together.

Do: Loose threads

Rendered by band-word.ts

Open example: Band word · Do: Loose threads Use the full-page example to follow page links.

Madder means act first, and the word says so.

Don't: A word that is not a band

Rendered by band-word.ts

Open example: Band word · Don't: A word that is not a band Use the full-page example to follow page links.

Only the four rubric bands may be shown; anything else breaks comparison.

Don't: A band colour on the wrong score

Rendered by band-word.ts

Open example: Band word · Don't: A band colour on the wrong score Use the full-page example to follow page links.

The dye must match the band, or one view contradicts another.

Rules

RuleWhyCheck
A band mark always carries its word.Colour alone excludes people who cannot tell dyes apart, and dyes on the site also mark sections.Automated: tests/unit/site-system.test.ts (rendered text)
The band comes from the score by the rubric's thresholds.One score, one band, everywhere.Automated: health check scoring tests (tests/unit/health-check-scoring.test.ts)

API

PropTypeRequiredDefaultWhat it does
bandwoven | holding | shape | looseYesThe band from the rubric's thresholds (90, 75, 60).
wordstringYesThe band's name (content token band.*).
summarystringNoOne line on what the band means.

Contract details

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

Identity

AspectValue
Idband-word
LayerAtoms
Categorystatus
OwnerSite system lead
Statusstable
Version1.0.0
Sourceapps/showcase/site/system/atoms/band-word.ts (private repository; the contract and the render function are this one module)
VersionDateChange
1.0.02026-10-26The health band as a small dyed mark that always carries its word.

Use when

  • Next to a score. Why: The band turns a number into a judgement the reader understands.
  • In a report or score card. Why: The same four words and colours everywhere make scores comparable.

Do not use when

  • Without its word. Why: Colour alone fails people who cannot tell the dyes apart, and the rule is marks always carry their word (D-SITE-004).
  • As decoration or a section colour. Why: A dye mark means health; anything else would make it ambiguous.

Anatomy

PartWhat it is
rootp.band holding span.band-chip.band-<id> and the summary.
chipThe dyed mark with the band's name.
summaryOptional plain-words meaning.

Made of: tokens:colour, tokens:type.

Used in: finding, cloth-diagram, identity-playground, proof-shift, read-your-stylesheet, score-us, takenote-card.

Variants

VariantWhenWhy
woven90 to 100.Indigo: the deepest dye for the tightest weave.
holding75 to 89.Teal: sound but with room to improve.
shape60 to 74.Saffron with dark text: taking shape.
loose0 to 59.Madder: trouble, act first.

States

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

Tokens

PartToken
chip.background@woven--band-woven
chip.background@holding--band-holding
chip.background@shape--saffron
chip.background@loose--band-loose
chip.color--on-dye (on-saffron for shape)
chip.font--type-small-strong
--band-word-margin-top-space-5var(--space-5)
--band-word-color-ink-2var(--ink-2)
--band-word-margin-right-space-3var(--space-3)
--band-word-padding-space-1var(--space-1)
--band-word-padding-space-4var(--space-4)
--band-word-font-type-small-strongvar(--type-small-strong)
--band-word-color-on-dyevar(--on-dye)
--band-word-background-band-wovenvar(--band-woven)
--band-word-border-radius-radiusvar(--radius)
--band-word-background-band-holdingvar(--band-holding)
--band-word-background-saffronvar(--saffron)
--band-word-color-on-saffronvar(--on-saffron)
--band-word-background-band-loosevar(--band-loose)
--band-word-gap-space-3var(--space-3)
--band-word-font-size-fs-smallvar(--fs-small)
--band-word-margin-bottom-space-4var(--space-4)
--band-word-font-type-labelvar(--type-label)

Layout

AspectValue
breakpointsRequired review at 390, 768, 1024 and 1440 px; execution is not implied by this declaration; unchanged.
wrappingThe chip never wraps; the summary wraps after it.
textExpansionJapanese band names are short (4 to 6 characters).

Spacing and rhythm

AspectValue
internal--space-1 by --space-4.
external--space-3 to the summary.
rhythmInline with its score.

Motion

AspectValue
NoneA judgement does not animate.

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
roletext
nameThe band word
keyboardNot interactive.
focusNot focusable.
screenReaderReads the word, so colour is never the only signal.
contrastCotton on indigo 11.6:1, on teal 6.6:1, on madder 6.9:1; dark on saffron 9.1:1.
targetNot a target.

Content

SlotLengthVoice
word3 wordsOne of the four band names, exactly

Good: “Holding together” · “Loose threads”

Bad: “Good” · “Needs work”

Japanese: Band names come from content tokens band.* with reviewed Japanese (緊密に織られている 等).

Icons and illustrations

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

Decisions and exceptions

Usage

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