Living reference for the Tugboat Conflict Intelligence Platform. Every token, component, and pattern used in production, rendered with the actual stylesheet.
body { font-family: 'JetBrains Mono', monospace; }
Used for event severity classification across the platform.
Economic and threat signal levels for market indicators.
All type classes are WCAG AA compliant against the slate-950 (#020617) background. Minimum contrast: 4.5:1 for normal text, 3:1 for large text (18px+ or 14px bold).
.t-heading { color: #e2e8f0; } /* 17:1 */ .t-subheading { color: #cbd5e1; } /* 14:1 */ .t-body { color: #cbd5e1; } /* 14:1 */ .t-label { color: #94a3b8; } /* 7.5:1 */ .t-muted { color: #94a3b8; } /* 7.5:1 */ .t-caption { color: #94a3b8; } /* 7.5:1 */ .t-dim { color: #64748b; } /* 4.6:1 decorative */
Event severity classification. Semi-transparent background with matching border and text. Applied with Tailwind sizing: px-2 py-0.5 rounded text-xs font-medium.
| Class | Text | Background | Border |
|---|---|---|---|
.badge-critical | #f87171 | rgba(239,68,68,0.2) | rgba(239,68,68,0.3) |
.badge-high | #fbbf24 | rgba(245,158,11,0.2) | rgba(245,158,11,0.3) |
.badge-standard | #38bdf8 | rgba(14,165,233,0.2) | rgba(14,165,233,0.3) |
.badge-low | #9ca3af | rgba(107,114,128,0.2) | rgba(107,114,128,0.3) |
<span class="badge-critical px-2 py-0.5 rounded text-xs font-medium">CRITICAL</span>
Conflict-wide threat assessment. Five-tier scale from LOW to CRITICAL, displayed in the status bar.
| Class | Text | Background |
|---|---|---|
.threat-critical | #f87171 | rgba(239,68,68,0.15) |
.threat-high | #fbbf24 | rgba(245,158,11,0.15) |
.threat-elevated | #facc15 | rgba(234,179,8,0.15) |
.threat-guarded | #38bdf8 | rgba(14,165,233,0.15) |
.threat-low | #4ade80 | rgba(34,197,94,0.15) |
Classify an actor's posture toward a conflict. Each actor gets assigned a stance with its associated color.
| Class | Text Color | Semantic Meaning |
|---|---|---|
.stance-aggressor | #f87171 red | Active hostile actor |
.stance-defender | #60a5fa blue | Defensive posture |
.stance-mediator | #c084fc purple | Diplomatic intermediary |
.stance-neutral | #9ca3af gray | Non-aligned |
.stance-opportunist | #fbbf24 amber | Exploiting situation |
.stance-ally | #4ade80 emerald | Coalition partner |
Every RSS feed is tagged with a geopolitical perspective. These colors appear on feed badges and source attribution.
| Class | Color | Hex |
|---|---|---|
.perspective-western | Western / Allied | #60a5fa |
.perspective-us_gov | US Government | #3b82f6 |
.perspective-israeli | Israeli | #818cf8 |
.perspective-iranian | Iranian | #34d399 |
.perspective-arab | Arab | #fbbf24 |
.perspective-russian | Russian | #f87171 |
.perspective-chinese | Chinese | #fb7185 |
.perspective-independent | Independent / OSINT | #a78bfa |
Four-tier reliability scale for intelligence sources. Tier 1 is the most reliable. State-funded sources receive a 15-point penalty.
.tier-1 { color: #34d399; } /* emerald */ .tier-2 { color: #60a5fa; } /* blue */ .tier-3 { color: #fbbf24; } /* amber */ .tier-4 { color: #f87171; } /* red */
Economic market signal assessment. Each level has a text color class and a background+border class for card-level styling.
/* Text classes */ .signal-calm { color: #34d399; } .signal-watch { color: #facc15; } .signal-alert { color: #f59e0b; } .signal-danger { color: #ef4444; } /* Background + border classes */ .signal-bg-calm { background: rgba(16,185,129,0.1); border-color: rgba(16,185,129,0.25); } .signal-bg-watch { background: rgba(250,204,21,0.1); border-color: rgba(250,204,21,0.25); } .signal-bg-alert { background: rgba(245,158,11,0.1); border-color: rgba(245,158,11,0.25); } .signal-bg-danger { background: rgba(239,68,68,0.1); border-color: rgba(239,68,68,0.25); }
Multi-color gradient bar with a positioned needle. Used for escalation scores, procurement pulse, and stress indicators. Scale: 0 (green) to 100 (dark red).
<div class="stress-gauge"> <div class="stress-gauge-needle" style="left: 50%;"></div> </div>
GovCon procurement demand level indicators and category assessment badges.
GovCon opportunity pipeline tracking. Represents the lifecycle from discovery through outcome.
| Class | Text Color | Stage |
|---|---|---|
.pipeline-new | #94a3b8 | Discovered, not yet reviewed |
.pipeline-reviewing | #38bdf8 | Under evaluation |
.pipeline-pursuing | #fbbf24 | Actively pursuing |
.pipeline-submitted | #a78bfa | Proposal submitted |
.pipeline-nobid | #64748b | Decided not to bid |
.pipeline-won | #34d399 | Contract awarded |
.pipeline-lost | #f87171 | Not selected |
Federal contract set-aside designations for small business programs.
Standard card pattern used throughout the dashboard, briefs, and detail views.
<div class="bg-slate-900/50 rounded border border-slate-800 p-4"> <div class="t-label text-xs font-semibold tracking-wider mb-2">LABEL</div> <div class="t-heading text-2xl font-bold">Value</div> </div>
Custom dark popup theme for Leaflet map markers. Overrides the default white Leaflet popup.
.leaflet-popup-content-wrapper { background: #1e293b; color: #e2e8f0; border: 1px solid #334155; border-radius: 8px; } .leaflet-popup-tip { background: #1e293b; } .leaflet-popup-content a { color: #34d399; }
Bezier curve arcs drawn between geo-located events on the map. Color-coded by relationship type.
| Type | Color | Hex | Meaning |
|---|---|---|---|
| CAUSED_BY | ▬▬▬ | #f87171 | Direct cause |
| RETALIATION_FOR | ▬▬▬ | #fb923c | Retaliatory response |
| ESCALATION_OF | ▬▬▬ | #fbbf24 | Escalation chain |
| LED_TO | ▬▬▬ | #38bdf8 | Consequence |
| PARALLEL_TO | ▬▬▬ | #94a3b8 | Concurrent event |
Leaflet.heat layer gradient weighted by event severity. Green (low density) through amber to red (high density).
@keyframes pulse-live { 0%, 100% { opacity: 1; } 50% { opacity: 0.3; } } .live-dot { animation: pulse-live 2s ease-in-out infinite; }
Standard form elements used in event creation, feed management, and settings.
<input type="text" class="bg-slate-800 border border-slate-700 rounded px-3 py-2 text-sm text-slate-200 focus:border-emerald-500 focus:outline-none" placeholder="Enter event title..."/>
Data tables used in feeds, events, and GovCon views. Dark surface background, slate-800 border rows.
| TIER ▲ | SOURCE ▲▼ | STATUS |
|---|---|---|
| T1 | Reuters | ● Active |
| T2 | Al Jazeera | ● Active |
| T3 | TASS STATE | ● Paused |
Sortable column headers show ▲ for active sort, ▲▼ (50% opacity) for sortable but inactive.
Arrow rotates 90° on expand. Detail panel uses page background (#020617) to visually separate from the header row.
Custom dark audio player for daily intelligence briefs. Uses the emerald accent for the play head with a CSS filter overlay.
<div class="flex items-center gap-3 bg-slate-900 border border-slate-800 rounded-lg p-3"> <div class="w-8 h-8 rounded bg-emerald-500/15 border border-emerald-500/30 flex items-center justify-center shrink-0">▶</div> <audio controls class="w-full h-8" style="filter: brightness(0.8) hue-rotate(120deg)"> <source src="..." type="audio/mpeg"/> </audio> </div>
Appears at the top and bottom of intelligence briefs. Amber/yellow on dark background with wide letter-spacing.
<div class="text-center py-1.5 px-4 text-amber-400 border-t border-b border-amber-500/20 text-[9px] font-semibold tracking-[0.3em]"> UNCLASSIFIED // FOR OFFICIAL USE ONLY </div>
Compact stat displays used in brief headers, dashboard cards, and GovCon summaries.
Escalation score color: ≥75 = red-400, ≥50 = amber-400, else sky-400. Uses .status-sep dividers.
Escalation scenario with probability bar and description. Moved from Future Components — now shipping in production briefs.
Compact inline market metrics used in brief headers and the economic dashboard.
Color inherits from .signal-* classes. ▲ for increase, ▼ for decrease. Pipe separator in .t-dim.
Time range tabs used in economic charts and GovCon procurement views.
<!-- Active state --> <button class="bg-emerald-500/15 text-emerald-400 border border-emerald-500/25 px-3 py-1 rounded text-xs font-semibold">24H</button> <!-- Inactive state --> <button class="text-slate-400 hover:text-white bg-slate-800/50 border border-slate-700/50 px-3 py-1 rounded text-xs font-medium">7D</button>
Large bold escalation number with dynamic color thresholds and progress bar. Appears on dashboard and brief headers.
Compact event display used in the dashboard timeline panel. Click focuses map, double-click navigates to detail.
Anticipated components based on the platform's architecture and roadmap. These will follow existing token patterns when implemented.
| Component | Likely Tokens | Context |
|---|---|---|
| Confidence Score Bar | stress-gauge pattern |
Intelligence assessment confidence visualization (0-100%) |
| Verification Status Badge | badge-* pattern |
VERIFIED / UNVERIFIED / DISPUTED event states |
| Actor Relationship Matrix | stance-* colors |
NxN grid showing inter-actor relationships |
| Timeline Density Sparkline | severity colors | Compact event frequency visualization for sidebar |
| Feed Health Monitor | tier-* + signal-* |
Source uptime, last-polled, error rate dashboard |
| Bulk Action Toolbar | emerald CTA pattern | Multi-select events for batch severity/type changes |
| Conflict Comparison View | card + gauge patterns | Side-by-side metrics when tracking multiple conflicts |