Skip to main content

Cross-Module Integration

Related Signals component

Related Signals component — documentation pending.

Complete

`<app-related-ecosystem-signals [block]="signalsBlock()" />` is the single shared component used across all 7 detail surfaces. It is a router — it switches on `signal.module` and renders the canonical card from each source module. Zero per-surface duplication.

The 7 module → card mapping

opportunity
<app-opportunity-card> — status-tinted, deadline pill, Apply CTA.
founder
<app-founder-card> — identity avatar + role + profile-status badge.
file
<app-founder-file-card> — 3:4 cover with SVG fallback + Best For + Download CTA.
event
<app-event-card variant="compact"> — date block + sector chips + country.
startup
<app-startup-card> — 16:9 logo canvas + sector/stage/country + Verified.
editorial
<app-editorial-card> — type eyebrow + title + dek + author + reading time.
coverage
<app-coverage-card> — 16:9 cover + coverage-kind chip + author/date.

The "Why" eyebrow above each card

Every signal carries a `reason` string that renders as a small eyebrow ABOVE the canonical card. Format: purple module-label chip + orange arrow + italic body text. Manual editorial reasons take priority; auto-generated reasons fall back to a localized template.

Three layouts

  • strip (default) 3-4 mixed-module signals. Swipe-scroll on mobile, 3-up grid desktop.
  • grouped 5-6 signals where ≥3 share a module. Per-module subheads.
  • mixed (Phase 2) Editorial narrative — first card featured, rest in grid. Currently falls back to strip.