No description
New <RoadmapInMotion> component renders between the dispatch banner and the route's section header. Pulls the most-recent shipping item (same selection rule the .rr-current marker uses) and prints the first sentence of its description as a 18px serif italic line preceded by an 'IN MOTION RIGHT NOW' tracked eyebrow. A member who only spends 5 seconds on /roadmap now still walks away with a sentence about what just shipped — no scroll, no hover. firstSentenceOf() is the obvious regex against the first [.!?](?=\s|$). Bails to the 200-char slice if no sentence boundary fits (covers 'Dr.' / 'e.g.' confusables). Returns '' on null. The strip hides itself entirely when there's no shipping item, or when the shipping item has no description text. Page subtitle: 'Hover any milestone for the full story.' → 'Tap or hover any milestone for the full story.' — touch devices don't have hover, and the kind of detail that says we're paying attention. Admin description-field gains a helper note: 'For shipping items: the first sentence appears on /roadmap as the "In motion right now" line. Make it count.' Nudges good first-sentence writing without adding a new field to maintain. Banner margin under the dispatch banner reduces 56 → 40px because the in-motion strip carries its own 36px bottom margin to the route. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> |
||
|---|---|---|
| .claude | ||
| content | ||
| design | ||
| migrations | ||
| public | ||
| scripts | ||
| src | ||
| tests | ||
| .env.example | ||
| .gitignore | ||
| astro.config.mjs | ||
| CLAUDE.md | ||
| DECISIONS.md | ||
| HANDOVER.md | ||
| KNOWN_ISSUES.md | ||
| package.json | ||
| pnpm-lock.yaml | ||
| SPEC.md | ||
| todo.md | ||
| tsconfig.json | ||
| vitest.config.ts | ||