Badges
Lifecycle stage, resource nature and property regime each get a colour. The maps live in NdoBrowser.svelte and NdoIdentityLayer.svelte, and a third, coarser one lives in NdoCard.svelte.
Identity bar badges โ NdoIdentityLayer.svelte
The full ten-stage map. Cool for early stages, warm for late, red for terminal.
<span class="rounded px-2 py-0.5 text-xs font-semibold {stageClass}">{stage}</span>Filter chips โ NdoBrowser.svelte
Same colours plus a matching border, at 60% opacity until selected. The selected state is a ring in the chip's own colour: ring-2 ring-offset-1 ring-current.
class="rounded border px-2 py-0.5 text-xs font-medium transition-opacity {stageColors[s]}
{selected ? 'ring-2 ring-offset-1 ring-current' : 'opacity-60 hover:opacity-100'}"Card badges โ NdoCard.svelte
Here the ten stages collapse to two colours: green for Active, Stable, Distributed, Development and Prototype, grey for everything else. A card and the identity bar of the same NDO therefore show different colours for the same stage.
const activeStages = new Set(['Active', 'Stable', 'Distributed', 'Development', 'Prototype']);
const lifecycleClass = activeStages.has(stage) ? 'bg-green-100 text-green-700' : 'bg-gray-100 text-gray-600';Resource nature
Five natures, identical in NdoCard and NdoIdentityLayer. The one map in the app that does not disagree with itself.
class="rounded px-2 py-0.5 text-xs font-medium {natureClass}"Property regime
A dashed border marks the regime, in both the card and the identity bar โ the app's convention for something declarative rather than observed. The card ignores the colour map and renders every regime grey; the identity bar colours them.
<!-- NdoCard: no colour -->
<span class="rounded border border-dashed border-gray-400 px-2 py-0.5 text-xs text-gray-700">{regime}</span>
<!-- NdoIdentityLayer: coloured -->
<span class="rounded border border-dashed px-2 py-0.5 text-xs font-medium {regimeClass}">{regime}</span>Drift worth fixing
- Three stage colour maps in three files; the card's collapses ten stages into two colours.
- Regime is coloured in the identity bar and grey on the card.
- Weight differs:
font-semiboldin the identity bar,font-mediumon the card. - Specification is
blue-50/blue-600while every other stage uses a 100/700 pair.