design-protocol 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (72) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +225 -0
  3. package/agents/dp-researcher.md +239 -0
  4. package/agents/dp-verifier.md +207 -0
  5. package/bin/install.js +464 -0
  6. package/commands/dp-back.md +221 -0
  7. package/commands/dp-discuss.md +257 -0
  8. package/commands/dp-execute.md +513 -0
  9. package/commands/dp-journey.md +85 -0
  10. package/commands/dp-progress.md +178 -0
  11. package/commands/dp-roadmap.md +83 -0
  12. package/commands/dp-skip.md +186 -0
  13. package/commands/dp-start.md +510 -0
  14. package/commands/dp-storytell.md +94 -0
  15. package/commands/dp-verify.md +207 -0
  16. package/package.json +59 -0
  17. package/skills/dp-color/SKILL.md +214 -0
  18. package/skills/dp-color/export_tokens.py +297 -0
  19. package/skills/dp-color/references/apca-contrast.md +87 -0
  20. package/skills/dp-color/references/hue-emotions.md +109 -0
  21. package/skills/dp-color/references/oklch-gamut.md +79 -0
  22. package/skills/dp-color/references/pitfalls.md +171 -0
  23. package/skills/dp-color/references/scale-patterns.md +206 -0
  24. package/skills/dp-color/references/tool-workflows.md +200 -0
  25. package/skills/dp-discovery/SKILL.md +480 -0
  26. package/skills/dp-eng_review/SKILL.md +471 -0
  27. package/skills/dp-eng_review/references/code-review-checklist.md +385 -0
  28. package/skills/dp-eng_review/references/react-patterns.md +512 -0
  29. package/skills/dp-eng_review/references/shadcn-patterns.md +510 -0
  30. package/skills/dp-eng_review/references/tailwind-conventions.md +351 -0
  31. package/skills/dp-journey/SKILL.md +682 -0
  32. package/skills/dp-journey/references/journey-types.md +97 -0
  33. package/skills/dp-journey/references/map-structures.md +177 -0
  34. package/skills/dp-journey/references/omnichannel-patterns.md +208 -0
  35. package/skills/dp-journey/references/research-methods.md +125 -0
  36. package/skills/dp-prd/SKILL.md +201 -0
  37. package/skills/dp-prd/references/claude-code-spec.md +107 -0
  38. package/skills/dp-prd/references/interview-questions.md +158 -0
  39. package/skills/dp-prd/references/section-templates.md +231 -0
  40. package/skills/dp-research/SKILL.md +540 -0
  41. package/skills/dp-research/references/facilitation-guide.md +291 -0
  42. package/skills/dp-research/references/interview-guide-template.md +190 -0
  43. package/skills/dp-research/references/method-selection.md +195 -0
  44. package/skills/dp-research/references/question-writing.md +244 -0
  45. package/skills/dp-research/references/research-report-template.md +363 -0
  46. package/skills/dp-research/references/synthesis-methods.md +289 -0
  47. package/skills/dp-research/references/usability-test-template.md +260 -0
  48. package/skills/dp-roadmap/SKILL.md +648 -0
  49. package/skills/dp-roadmap/references/prioritization-frameworks.md +312 -0
  50. package/skills/dp-roadmap/references/roadmap-structures.md +179 -0
  51. package/skills/dp-roadmap/references/roadmap-workshops.md +264 -0
  52. package/skills/dp-roadmap/references/theme-development.md +168 -0
  53. package/skills/dp-storytell/SKILL.md +645 -0
  54. package/skills/dp-storytell/references/audience-playbooks.md +260 -0
  55. package/skills/dp-storytell/references/content-type-templates.md +310 -0
  56. package/skills/dp-storytell/references/delivery-tactics.md +228 -0
  57. package/skills/dp-storytell/references/narrative-frameworks.md +259 -0
  58. package/skills/dp-ui/SKILL.md +503 -0
  59. package/skills/dp-ui/references/b2b-enterprise-patterns.md +319 -0
  60. package/skills/dp-ui/references/data-visualization.md +304 -0
  61. package/skills/dp-ui/references/visual-design-principles.md +237 -0
  62. package/skills/dp-ux/SKILL.md +414 -0
  63. package/skills/dp-ux/references/accessibility-checklist.md +128 -0
  64. package/skills/dp-ux/references/product-excellence.md +149 -0
  65. package/skills/dp-ux/references/usability-principles.md +140 -0
  66. package/skills/dp-ux/references/ux-patterns.md +221 -0
  67. package/templates/config.json +55 -0
  68. package/templates/context.md +96 -0
  69. package/templates/project.md +83 -0
  70. package/templates/requirements.md +137 -0
  71. package/templates/roadmap.md +168 -0
  72. package/templates/state.md +107 -0
@@ -0,0 +1,319 @@
1
+ # B2B & Enterprise UI Patterns
2
+
3
+ Patterns for data-dense, power-user focused applications.
4
+
5
+ ## Dashboard Design
6
+
7
+ ### Dashboard Anatomy
8
+ ```
9
+ ┌─────────────────────────────────────────────────────────┐
10
+ │ [Logo] Navigation [Search] [Profile] │ ← Global nav
11
+ ├─────────────────────────────────────────────────────────┤
12
+ │ Page Title [Date Range ▼] [Filter] [Export]│ ← Page header
13
+ ├───────────────┬───────────────┬───────────────┬─────────┤
14
+ │ KPI Card │ KPI Card │ KPI Card │ KPI Card│ ← Metrics row
15
+ │ $1.2M ↑12% │ 847 ↓3% │ 94.2% │ 23 New │
16
+ ├───────────────┴───────────────┴───────────────┴─────────┤
17
+ │ │
18
+ │ Primary Chart / Visualization │ ← Main insight
19
+ │ │
20
+ ├─────────────────────────────────┬───────────────────────┤
21
+ │ Secondary Chart │ Supporting Table │ ← Detail row
22
+ │ │ │
23
+ └─────────────────────────────────┴───────────────────────┘
24
+ ```
25
+
26
+ ### KPI Cards
27
+ **Essential elements**:
28
+ - Metric label (what it measures)
29
+ - Primary value (large, prominent)
30
+ - Comparison/trend (vs. previous period)
31
+ - Sparkline (optional, shows trajectory)
32
+
33
+ **Layout**:
34
+ ```
35
+ ┌──────────────────────┐
36
+ │ Total Revenue │ ← Label
37
+ │ $1,247,392 │ ← Primary value (largest)
38
+ │ ↑ 12.4% vs last mo │ ← Comparison (green/red)
39
+ │ ▁▂▃▂▄▅▆▅▇ │ ← Sparkline (optional)
40
+ └──────────────────────┘
41
+ ```
42
+
43
+ ### Dashboard Best Practices
44
+ - **Above the fold**: Most important metrics visible without scrolling
45
+ - **Progressive disclosure**: Summary → Detail on drill-down
46
+ - **Consistent time periods**: All metrics should reference same period
47
+ - **Comparison context**: Raw numbers need benchmarks to be meaningful
48
+ - **Actionable insights**: Dashboards should answer "what should I do?"
49
+
50
+ ## Data Tables
51
+
52
+ ### Table Anatomy
53
+ ```
54
+ ┌─────┬──────────────┬────────────┬──────────┬─────────┬────────┐
55
+ │ ☐ │ Name ↕ │ Status │ Created │ Value │ Actions│
56
+ ├─────┼──────────────┼────────────┼──────────┼─────────┼────────┤
57
+ │ ☐ │ Vessel Alpha │ ● Active │ Jan 15 │ $45,200 │ ••• ▼ │
58
+ │ ☐ │ Vessel Beta │ ○ Pending │ Jan 12 │ $38,100 │ ••• ▼ │
59
+ │ ☑ │ Vessel Gamma │ ● Active │ Jan 10 │ $52,800 │ ••• ▼ │
60
+ └─────┴──────────────┴────────────┴──────────┴─────────┴────────┘
61
+ │ │ │ │ │
62
+ Multi-select Sortable Status Formatted Actions
63
+ indicator badges numbers menu
64
+ ```
65
+
66
+ ### Table Features Checklist
67
+ - [ ] **Sorting**: Click header to sort, show direction indicator
68
+ - [ ] **Selection**: Checkbox column, "select all" in header
69
+ - [ ] **Bulk actions**: Appear when items selected
70
+ - [ ] **Pagination**: Or infinite scroll with virtualization
71
+ - [ ] **Column resizing**: Drag handles between columns
72
+ - [ ] **Column visibility**: Toggle columns on/off
73
+ - [ ] **Row actions**: Hover to reveal, or persistent "..." menu
74
+ - [ ] **Empty state**: Helpful message when no data
75
+ - [ ] **Loading state**: Skeleton rows, not spinner
76
+
77
+ ### Table Density Options
78
+ ```
79
+ Compact: 32px row height — Maximum data, power users
80
+ Default: 40px row height — Balanced
81
+ Comfortable: 48px row height — Easier scanning, touch-friendly
82
+ ```
83
+
84
+ ### Number Formatting in Tables
85
+ - Right-align numeric columns
86
+ - Use consistent decimal places
87
+ - Add thousand separators (1,234,567)
88
+ - Abbreviate large numbers (1.2M, 45K)
89
+ - Currency symbols once (in header) or per cell (if mixed)
90
+
91
+ ## Filters & Search
92
+
93
+ ### Filter Bar Pattern
94
+ ```
95
+ ┌───────────────────────────────────────────────────────────────┐
96
+ │ [🔍 Search... ] [Status ▼] [Date Range ▼] [+ Filter] │
97
+ ├───────────────────────────────────────────────────────────────┤
98
+ │ Active filters: [Status: Active ×] [Date: Last 7 days ×] │
99
+ └───────────────────────────────────────────────────────────────┘
100
+ ```
101
+
102
+ ### Filter Types
103
+ - **Search**: Free text, searches across multiple fields
104
+ - **Dropdown select**: Single value from predefined list
105
+ - **Multi-select**: Multiple values (checkboxes in dropdown)
106
+ - **Date range**: Preset ranges + custom picker
107
+ - **Numeric range**: Min/max inputs or slider
108
+ - **Boolean toggle**: On/off states
109
+
110
+ ### Filter UX Best Practices
111
+ - Show active filters as removable chips
112
+ - "Clear all" option when filters applied
113
+ - Persist filters in URL (shareable, bookmarkable)
114
+ - Show result count updating as filters change
115
+ - Remember recent/saved filter combinations
116
+
117
+ ### Advanced Filter Builder
118
+ For complex queries:
119
+ ```
120
+ ┌─────────────────────────────────────────────────────────────┐
121
+ │ Where ALL of the following match: │
122
+ │ ┌─────────────┬────────────┬─────────────────┬───┐ │
123
+ │ │ Status │ is │ Active │ × │ │
124
+ │ ├─────────────┼────────────┼─────────────────┼───┤ │
125
+ │ │ Created │ is after │ Jan 1, 2025 │ × │ │
126
+ │ ├─────────────┼────────────┼─────────────────┼───┤ │
127
+ │ │ Value │ is greater │ $10,000 │ × │ │
128
+ │ └─────────────┴────────────┴─────────────────┴───┘ │
129
+ │ [+ Add condition] │
130
+ └─────────────────────────────────────────────────────────────┘
131
+ ```
132
+
133
+ ## Complex Forms
134
+
135
+ ### Multi-Step Forms
136
+ ```
137
+ Step indicator:
138
+ ──●────────●────────○────────○──
139
+ 1 2 3 4
140
+ Details Settings Review Complete
141
+ ```
142
+
143
+ - Show progress (steps completed / total)
144
+ - Allow back navigation without data loss
145
+ - Validate each step before proceeding
146
+ - Summary/review step before final submission
147
+
148
+ ### Form Section Organization
149
+ ```
150
+ ┌─────────────────────────────────────┐
151
+ │ Section Header │
152
+ │ Brief description of this section │
153
+ ├─────────────────────────────────────┤
154
+ │ │
155
+ │ Label Label │
156
+ │ [Input field] [Input field] │
157
+ │ │
158
+ │ Label │
159
+ │ [Wider input field ] │
160
+ │ │
161
+ └─────────────────────────────────────┘
162
+ ```
163
+
164
+ ### Inline Editing
165
+ For settings and configuration:
166
+ ```
167
+ Read mode: Edit mode:
168
+ ┌────────────────────────┐ ┌────────────────────────┐
169
+ │ Company Name │ │ Company Name │
170
+ │ Acme Corp [Edit]│ │ [Acme Corp ] ✓ ✗│
171
+ └────────────────────────┘ └────────────────────────┘
172
+ ```
173
+
174
+ ## Navigation Patterns
175
+
176
+ ### Sidebar Navigation
177
+ ```
178
+ ┌──────────────┬────────────────────────────────────────┐
179
+ │ [Logo] │ │
180
+ │ │ │
181
+ │ ● Dashboard │ Main Content Area │
182
+ │ ○ Vessels │ │
183
+ │ ○ Analytics │ │
184
+ │ ○ Reports │ │
185
+ │ │ │
186
+ │ ───────── │ │
187
+ │ ○ Settings │ │
188
+ │ ○ Help │ │
189
+ │ │ │
190
+ │ [User ▼] │ │
191
+ └──────────────┴────────────────────────────────────────┘
192
+ ```
193
+
194
+ ### Collapsible Sidebar
195
+ - Expand: Full labels + icons
196
+ - Collapse: Icons only (with tooltips)
197
+ - Persist user preference
198
+ - Keyboard shortcut to toggle
199
+
200
+ ### Tab Navigation (for sub-sections)
201
+ ```
202
+ ┌─────────────────────────────────────────────────────┐
203
+ │ Vessel Detail │
204
+ ├──────────┬───────────┬────────────┬─────────────────┤
205
+ │ Overview │ Voyages │ Documents │ Activity │
206
+ ├──────────┴───────────┴────────────┴─────────────────┤
207
+ │ │
208
+ │ Tab content here │
209
+ │ │
210
+ └─────────────────────────────────────────────────────┘
211
+ ```
212
+
213
+ ## Detail Views
214
+
215
+ ### Master-Detail Pattern
216
+ ```
217
+ ┌──────────────────────┬──────────────────────────────────┐
218
+ │ List / Table │ Detail Panel │
219
+ │ │ │
220
+ │ ○ Item 1 │ Item 2 Details │
221
+ │ ● Item 2 ←selected │ ───────────── │
222
+ │ ○ Item 3 │ [All properties and actions] │
223
+ │ ○ Item 4 │ │
224
+ │ │ │
225
+ └──────────────────────┴──────────────────────────────────┘
226
+ ```
227
+
228
+ ### Side Panel / Drawer
229
+ - Slides in from right (typically)
230
+ - Width: 400-600px for forms, up to 50% for complex detail
231
+ - Overlay with backdrop, or push content
232
+ - Close on Escape, click outside, or explicit close button
233
+
234
+ ### Full-Page Detail
235
+ Use when:
236
+ - Detail view is primary workspace
237
+ - Many tabs/sections of information
238
+ - Users spend significant time on single record
239
+
240
+ ## Bulk Operations
241
+
242
+ ### Selection + Action Bar
243
+ ```
244
+ When items selected, show action bar:
245
+ ┌─────────────────────────────────────────────────────────────┐
246
+ │ ☑ 3 items selected [Archive] [Delete] [More ▼] [× Clear]│
247
+ └─────────────────────────────────────────────────────────────┘
248
+ ```
249
+
250
+ ### Bulk Action Best Practices
251
+ - Show count of selected items
252
+ - Disable invalid actions for selection
253
+ - Confirmation for destructive bulk actions
254
+ - Progress indicator for long operations
255
+ - Allow cancel mid-operation when possible
256
+ - Report results (success/failures) after completion
257
+
258
+ ## Real-Time Updates
259
+
260
+ ### Live Data Indicators
261
+ ```
262
+ ● Live — Green dot, real-time updates active
263
+ ◐ Syncing — Animated, sync in progress
264
+ ○ Paused — Gray, updates paused
265
+ ⚠ Stale — Warning, data may be outdated
266
+ ```
267
+
268
+ ### Update Patterns
269
+ - **Silent updates**: Data refreshes without visual indication
270
+ - **Highlight updates**: Flash/highlight changed values briefly
271
+ - **Toast notification**: "3 new items available" [Refresh]
272
+ - **Inline indicator**: Show "Updated 2s ago" timestamp
273
+
274
+ ### Handling Conflicts
275
+ When data changes while user is editing:
276
+ - Show notification: "This item was updated by another user"
277
+ - Options: [Keep my changes] [Load their changes] [Compare]
278
+
279
+ ## Productivity Patterns
280
+
281
+ ### Command Palette (Cmd+K)
282
+ Centrally accessed modal for navigation and actions.
283
+ - **Trigger**: `Cmd+K` / `Ctrl+K`.
284
+ - **Search Mode**: Find pages, vessels, data.
285
+ - **Action Mode**: "Create new...", "Change status to...", "Switch tenant".
286
+ - **Anatomy**:
287
+ - Input field (autofocused)
288
+ - Recent items list
289
+ - Results grouped by type (Navigation, Actions, Data)
290
+ - Keyboard navigation hints (↑ ↓ ↵)
291
+
292
+ ### Keyboard First Design
293
+ Power users rely on keyboard efficiency.
294
+ - **Global Shortcuts**:
295
+ - `/`: Focus search
296
+ - `?`: Show keyboard shortcuts dialog
297
+ - `Esc`: Close modal/clear selection
298
+ - `j` / `k`: Next/previous item (Gmail style)
299
+ - **Focus Management**:
300
+ - Focus trapping in modals.
301
+ - Logical tab order (top-left to bottom-right).
302
+ - Visual focus indicators at all times.
303
+
304
+ ## Empty States
305
+
306
+ ### First Use (Onboarding)
307
+ - **Goal**: Teach value and drive first action.
308
+ - **Content**:
309
+ - Illustration (welcoming)
310
+ - "No [items] yet"
311
+ - Description of benefit
312
+ - [Primary Action Button]
313
+
314
+ ### No Results (Search/Filter)
315
+ - **Goal**: Help user recover.
316
+ - **Content**:
317
+ - "No results found for 'xyz'"
318
+ - "Try adjusting filters or search term"
319
+ - [Clear Filters] button
@@ -0,0 +1,304 @@
1
+ # Data Visualization
2
+
3
+ Charts, graphs, and maritime-specific display patterns.
4
+
5
+ ## Chart Selection Guide
6
+
7
+ ### Choose Based on Data Relationship
8
+
9
+ | Relationship | Best Chart Types |
10
+ |--------------|------------------|
11
+ | **Comparison** (between categories) | Bar chart, grouped bar, radar |
12
+ | **Trend** (over time) | Line chart, area chart |
13
+ | **Part-to-whole** | Pie chart (≤5 segments), stacked bar, treemap |
14
+ | **Distribution** | Histogram, box plot, violin plot |
15
+ | **Correlation** | Scatter plot, bubble chart |
16
+ | **Geographic** | Map, choropleth, connection map |
17
+ | **Flow/Process** | Sankey, funnel |
18
+ | **Hierarchy** | Treemap, sunburst |
19
+
20
+ ### Common Chart Patterns
21
+
22
+ **Line Chart** — Time series, trends
23
+ ```
24
+ │ ╭─────╮
25
+ │ ╱ ╲ ╱
26
+ │ ╱ ╲──╱
27
+ │──╱
28
+ └────────────────────
29
+ Jan Feb Mar Apr
30
+ ```
31
+ - Use for continuous data over time
32
+ - Limit to 5-7 lines before it gets cluttered
33
+ - Zero baseline not required (but be transparent)
34
+
35
+ **Bar Chart** — Comparison across categories
36
+ ```
37
+ │ ████████████████ 87
38
+ │ ██████████████ 76
39
+ │ ████████████ 65
40
+ │ ████████ 43
41
+ └─────────────────────
42
+ ```
43
+ - Horizontal bars for long labels
44
+ - Start at zero (truncated bars mislead)
45
+ - Order by value (unless natural order exists)
46
+
47
+ **Area Chart** — Volume over time, stacked composition
48
+ - Use stacked area for part-to-whole over time
49
+ - Ensure colors have enough contrast
50
+ - Consider 100% stacked for proportions
51
+
52
+ **Scatter Plot** — Correlation, distribution of two variables
53
+ - Use color/size for third dimension
54
+ - Add trend line to show correlation
55
+ - Handle overplotting (transparency, jitter)
56
+
57
+ ## Chart Design Best Practices
58
+
59
+ ### Visual Hierarchy
60
+ 1. **Data** — Most prominent (highest contrast)
61
+ 2. **Labels** — Supporting (medium contrast)
62
+ 3. **Grid/axes** — Background (low contrast, subtle)
63
+
64
+ ### Color Usage
65
+ ```
66
+ Sequential: Light → Dark (for magnitude)
67
+ ░▒▓█
68
+
69
+ Diverging: Color ← Neutral → Color (for +/-)
70
+ █▓▒░ ░▒▓█
71
+
72
+ Categorical: Distinct, accessible palette
73
+ █ █ █ █ █ (max 5-7 colors)
74
+ ```
75
+
76
+ ### Accessible Palettes
77
+ - **Colorblind Safe**: Avoid Red/Green acting as the only differentiator.
78
+ - **Patterns**: Use dashed lines or textures for series differentiation.
79
+ - **Safe Pairs**: Blue/Orange, Purple/Green.
80
+ - **High Contrast**: Support system preference (thicker borders, distinct fills).
81
+
82
+ ### Labeling
83
+ - **Title**: What is this showing? (not just "Chart")
84
+ - **Axis labels**: Include units
85
+ - **Data labels**: Directly on chart when possible (reduces eye movement)
86
+ - **Legend**: Near relevant data, avoid separate legend when possible
87
+
88
+ ### Reduce Chart Junk
89
+ Remove:
90
+ - 3D effects (distort perception)
91
+ - Decorative gridlines
92
+ - Unnecessary borders
93
+ - Redundant legends
94
+ - Background colors (unless functional)
95
+
96
+ ### Responsiveness
97
+ - Simplify for small screens (fewer data points, larger touch targets)
98
+ - Provide summary stats when chart can't fit
99
+ - Allow expand to full screen
100
+ - Horizontal scroll for time series on mobile
101
+
102
+ ## Real-Time Data Visualization
103
+
104
+ ### Streaming Data Patterns
105
+
106
+ **Live Line Chart**
107
+ ```
108
+ Window approach:
109
+ │ ╱╲ ╱╲ ╱╲ ╱╲
110
+ │╱╲╱ ╲╱ ╲╱ ╲╱ ╲
111
+ └──────────────────────→ time
112
+ [← 5 minutes →] slides right
113
+ ```
114
+ - Show rolling time window (last 5 min, last hour)
115
+ - Smooth transitions for new data points
116
+ - Option to pause/resume updates
117
+ - Show "live" indicator
118
+
119
+ **Real-Time Gauges**
120
+ ```
121
+ ╭──────╮
122
+ ╱ ▲ ╲
123
+ │ │ │ Current: 72%
124
+ │ ╲ │ ╱ │ Target: 80%
125
+ ╲ ─┴─ ╱
126
+ ╰──────╯
127
+ 0 100
128
+ ```
129
+ - Use for single KPIs with known range
130
+ - Show target/threshold lines
131
+ - Color changes at thresholds
132
+
133
+ ### Update Animation
134
+ - Smooth transitions (300-500ms)
135
+ - Highlight new data briefly
136
+ - Don't animate if updates are too frequent (>1/second)
137
+
138
+ ## Maritime-Specific Visualizations
139
+
140
+ ### Vessel Position Map
141
+ ```
142
+ ┌─────────────────────────────────────┐
143
+ │ ▲ Vessel A │
144
+ │ ○ Port ╱ (12 kts, N) │
145
+ │ ╱ │
146
+ │ ╱ │
147
+ │ - - - - ▲ Vessel B (anchored) │
148
+ │ (predicted path) │
149
+ │ │
150
+ │ ○ Port │
151
+ └─────────────────────────────────────┘
152
+
153
+ Legend:
154
+ ▲ Vessel (arrow = heading)
155
+ ● AIS position
156
+ ○ Port
157
+ ─ Historical track
158
+ - - Predicted path
159
+ ```
160
+
161
+ **Map Features**:
162
+ - Vessel icons showing heading direction
163
+ - Historical track (past 24h, configurable)
164
+ - Predicted path based on speed/heading
165
+ - Port markers with names
166
+ - Vessel clusters at zoom levels
167
+ - Click for vessel details popup
168
+
169
+ ### Voyage Timeline
170
+ ```
171
+ Load Port Discharge Port
172
+ ○─────────────────●
173
+ │ │
174
+ ▼ ▼
175
+ [Rotterdam] [Singapore]
176
+ Jan 5 Jan 28
177
+
178
+ ──●────○────○────○────●──────────→
179
+ Load Canal Waiting Discharge Next
180
+ 3d 1d 2d 4d voyage
181
+
182
+ Status: ● Complete ○ In Progress ◌ Planned
183
+ ```
184
+
185
+ ### Fleet Overview Grid
186
+ ```
187
+ ┌────────────┬────────────┬────────────┐
188
+ │ ▲ ALPHA │ ▲ BETA │ ⚓ GAMMA │
189
+ │ En route │ En route │ At port │
190
+ │ → Singapore│ → Dubai │ Rotterdam │
191
+ │ ETA: 3d │ ETA: 7d │ Dep: 2d │
192
+ ├────────────┼────────────┼────────────┤
193
+ │ ⚓ DELTA │ ▲ EPSILON │ ⚠ ZETA │
194
+ │ At port │ En route │ Delayed │
195
+ │ Houston │ → Santos │ Weather │
196
+ │ Dep: 1d │ ETA: 12d │ +2d │
197
+ └────────────┴────────────┴────────────┘
198
+ ```
199
+
200
+ ### Freight Rate Charts
201
+ ```
202
+ Baltic Index (Time Series)
203
+ │2500
204
+ │ ╭──╮
205
+ │ ╱ ╲ ╭──
206
+ │ ╱ ╲╱
207
+ │1500
208
+ └────────────────────────
209
+ Jan Feb Mar Apr May
210
+
211
+ Annotations:
212
+ ↑ Market event markers
213
+ ─ Moving average (30-day)
214
+ ░ Confidence interval / range
215
+ ```
216
+
217
+ ### Port Congestion Visualization
218
+ ```
219
+ Port Rotterdam
220
+ ┌─────────────────────────────────────┐
221
+ │ Vessels waiting: 23 (+5 vs avg) │
222
+ │ Avg wait time: 2.3 days │
223
+ ├─────────────────────────────────────┤
224
+ │ Wait time distribution: │
225
+ │ <1d ████████░░░░░░░ 12 │
226
+ │ 1-3d ██████████░░░░░ 8 │
227
+ │ >3d ███░░░░░░░░░░░░ 3 │
228
+ └─────────────────────────────────────┘
229
+ ```
230
+
231
+ ### Distance/Duration Matrix
232
+ ```
233
+ Rotterdam Singapore Houston
234
+ Rotterdam - 28d 14d
235
+ Singapore 28d - 35d
236
+ Houston 14d 35d -
237
+
238
+ Visual encoding:
239
+ ░ Short ▒ Medium ▓ Long
240
+ ```
241
+
242
+ ### Vessel Performance Dashboard
243
+ ```
244
+ ┌──────────────────────────────────────────────────┐
245
+ │ MV Pacific Voyager │
246
+ ├─────────────┬─────────────┬──────────────────────┤
247
+ │ Speed │ Fuel │ Efficiency │
248
+ │ 12.4 kts │ 45 MT/day │ 92% │
249
+ │ ↓ 0.2 │ ↑ 2% │ ↓ 3% │
250
+ ├─────────────┴─────────────┴──────────────────────┤
251
+ │ Speed vs Consumption (Scatter) │
252
+ │ • │
253
+ │ • • • Optimal zone │
254
+ │ • ● • ┌───────────┐ │
255
+ │ • • │ │ Current: ● │
256
+ │ └───────────┘ │
257
+ └──────────────────────────────────────────────────┘
258
+ ```
259
+
260
+ ## Interactive Features
261
+
262
+ ### Tooltips
263
+ ```
264
+ Hover on data point:
265
+ ┌──────────────────────┐
266
+ │ January 2025 │
267
+ │ Revenue: $1,234,567 │
268
+ │ vs LY: +12.4% │
269
+ │ [View details →] │
270
+ └──────────────────────┘
271
+ ```
272
+ - Show on hover (desktop), tap (mobile)
273
+ - Formatted values with context
274
+ - Link to drill-down when available
275
+
276
+ ### Zoom & Pan
277
+ - Click-drag to zoom to selection
278
+ - Mousewheel for zoom in/out
279
+ - Reset zoom button always visible
280
+ - Mini-map for context in large datasets
281
+
282
+ ### Cross-Filtering
283
+ When clicking a chart element, filter other charts:
284
+ ```
285
+ Click "January" in bar chart →
286
+ Line chart highlights January
287
+ Table filters to January rows
288
+ Map shows January positions
289
+ ```
290
+
291
+ ### Advanced Interactions
292
+ - **Sticky Tooltips**: Tooltip follows mouse vs. snaps to nearest point.
293
+ - **Drill-Down**:
294
+ - Click bar → Filter dashboard → Show detailed table.
295
+ - Maintains context (don't lose where you came from).
296
+ - **Brushing**: Drag to select range on one chart → highlights on others.
297
+
298
+ ## Accessibility in Charts
299
+
300
+ - Don't rely on color alone (use patterns, labels)
301
+ - Provide data table alternative
302
+ - Keyboard navigation for interactive elements
303
+ - Screen reader descriptions for charts
304
+ - Sufficient contrast in all visual elements