The shape should BE the meaning. If you removed all text, would the structure alone communicate the concept?
Fan-Out (One-to-Many)
Central element with arrows radiating to multiple targets.When to Use
- Sources that spawn multiple outputs
- Product requirements that generate multiple features
- Root causes that trigger multiple effects
- Central hubs that distribute to many endpoints
- Single triggers that activate multiple handlers
ASCII Diagram
Implementation Notes
- Use a central shape (rectangle or ellipse) as the origin
- Create arrows at different angles (e.g., -30°, 0°, +30°)
- Target shapes can be the same size (equal outputs) or different sizes (varying importance)
- Ensure adequate spacing (100px+ between targets)
Example Use Cases
- A webhook event triggering multiple microservices
- A design system component library used by multiple applications
- A data source feeding multiple dashboards
- A user action triggering multiple side effects
Convergence (Many-to-One)
Multiple inputs merging through arrows to a single output.When to Use
- Aggregation of multiple sources
- Funnels that consolidate many inputs
- Synthesis of disparate data
- Multiple contributors to a single result
- Decision points that consider multiple factors
ASCII Diagram
Implementation Notes
- Multiple source shapes on the left or top
- Arrows converge to a single target
- Target should be visually distinct (different color, larger size, or different shape)
- Works well with a funnel visual metaphor (sources get closer as arrows approach target)
Example Use Cases
- Multiple data streams aggregating into a single report
- Several validation checks determining a pass/fail result
- Multiple team inputs consolidated into a final decision
- Various microservices feeding data to a central dashboard
Tree (Hierarchy)
Parent-child branching with connecting lines and free-floating text (no boxes needed).When to Use
- File systems and directory structures
- Organizational charts
- Taxonomies and categorizations
- Component hierarchies
- Menu structures
ASCII Diagram
Implementation Notes
- Vertical line for trunk
- Horizontal lines for branches
- Small dots (10-20px ellipses) at branch points (optional)
- Text positioned beside branches, not inside containers
- Use
fontSizeandfontFamilyto create hierarchy (parent labels larger)
Example Use Cases
- Folder structure visualization
- API endpoint hierarchy
- Navigation menu structure
- Component composition tree
Timeline (Sequence)
Vertical or horizontal line with markers at intervals, labels beside each marker.When to Use
- Sequences of events over time
- Step-by-step processes
- Lifecycle stages
- Protocol message exchanges
- Historical progressions
ASCII Diagram
Implementation Notes
- Main line:
type: "line",strokeWidth: 2 - Markers: small ellipses (10-20px diameter)
- Labels: free-floating text beside each marker
- Can add arrows between markers for directionality
- Horizontal for left-to-right flow, vertical for top-to-bottom
Example Use Cases
- User registration flow: Email → Verify → Profile → Complete
- API request lifecycle: Request → Auth → Process → Response
- Deployment pipeline stages
- Event sequence in a protocol handshake
Spiral/Cycle (Continuous Loop)
Elements in sequence with an arrow returning to the start.When to Use
- Feedback loops
- Iterative processes
- Continuous improvement cycles
- Evolutionary systems
- Recurring workflows
ASCII Diagram
Implementation Notes
- Arrange elements in a square or circular pattern
- Use arrows to show progression direction
- Final arrow returns to the first element
- Can add labels on arrows for transitions
- Consider adding a center label for the cycle name
Example Use Cases
- Agile sprint cycle: Plan → Build → Test → Review → Plan
- CI/CD loop: Code → Build → Test → Deploy → Monitor → Code
- User feedback loop: Use → Feedback → Improve → Release → Use
- Retry mechanism: Try → Fail → Wait → Retry
Cloud (Abstract State)
Overlapping ellipses with varied sizes.When to Use
- Abstract context or environment
- Memory or conversation state
- Fuzzy or undefined boundaries
- Mental models or concepts
- Ambient information
Implementation Notes
- Use 3-5 overlapping ellipses
- Vary sizes and positions for organic feel
- Lower opacity creates depth (though default is opacity: 100)
- Use soft colors from the color palette
- Can contain free-floating text inside
Example Use Cases
- “Context” surrounding a user session
- Conversation memory in an AI system
- “Mental model” concept in UX design
- Ambient data collected over time
Assembly Line (Transformation)
Input → Process Box → Output with clear before/after contrast.When to Use
- Transformations and conversions
- Data processing pipelines
- Format changes
- State transitions
- Refinement processes
ASCII Diagram
Implementation Notes
- Input: Show actual sample data (not just “Input” label)
- Process: Rectangle or diamond with clear action verb
- Output: Show transformed result (not just “Output” label)
- Use visual contrast: different shapes or colors for before vs after
- Add arrows between each stage
Example Use Cases
Side-by-Side (Comparison)
Two parallel structures with visual contrast.When to Use
- Before/after comparisons
- Option A vs Option B
- Trade-off analysis
- Migration paths (old vs new)
- Parallel workflows
Implementation Notes
- Use vertical divider line to separate sections
- Mirror structure on both sides for easy comparison
- Use color contrast: different background colors or stroke colors
- Label each side clearly (“Before/After”, “Option A/Option B”)
- Align corresponding elements horizontally
Example Use Cases
- Old API | New API (showing endpoint changes)
- Client-side | Server-side (showing where logic runs)
- Monolith | Microservices (showing architectural shift)
- Manual Process | Automated Process
Gap/Break (Separation)
Visual whitespace or barrier between sections.When to Use
- Phase changes in a process
- Context resets or boundaries
- Ownership transitions
- Time gaps
- Conceptual separations
Implementation Notes
- Use whitespace (200px+ gap)
- Or use a dashed line divider
- Or use a label in the gap (“24 hours later”, “Context Switch”)
- Can combine with color change (before gap uses blue theme, after gap uses green)
Example Use Cases
- Build phase → (gap) → Deploy phase
- User action → (network boundary) → Server processing
- Development → (handoff) → QA → (handoff) → Production
- Synchronous → (await) → Asynchronous
Lines as Structure
Use lines (type:line, not arrows) as primary structural elements instead of boxes.
When to Use Lines
Timelines
Vertical or horizontal line with small dots at intervals, free-floating labels beside each dot
Tree Structures
Vertical trunk line + horizontal branch lines, with free-floating text labels (no boxes needed)
Dividers
Thin dashed lines to separate sections
Flow Spines
A central line that elements relate to, rather than connecting boxes
Why Lines + Text Beat Boxes
Benefits:- Less visual clutter
- Clearer hierarchy through typography alone
- Faster to scan (eye follows lines naturally)
- More whitespace (improves readability)
- Easier to maintain and edit
ASCII Comparison
Pattern Selection Matrix
Quick reference for choosing the right pattern:| Concept Behavior | Pattern | Visual Signature |
|---|---|---|
| One → Many | Fan-out | Center → radial arrows |
| Many → One | Convergence | Multiple → single funnel |
| Parent → Children | Tree | Lines + free-floating labels |
| Sequential steps | Timeline | Line + dots + labels |
| Repeating cycle | Spiral/Cycle | Arrows forming loop |
| Fuzzy context | Cloud | Overlapping ellipses |
| Before → After | Assembly Line | Input → Process → Output |
| A vs B | Side-by-Side | Parallel structures |
| Phase boundary | Gap/Break | Whitespace or divider |
Combining Patterns
Complex diagrams often combine multiple patterns:Example: API Request Flow
- Timeline for the main request sequence
- Fan-out when the request triggers multiple services
- Convergence when responses aggregate
- Assembly line to show data transformation
- Gap to show network boundary between client and server
Example: System Architecture
- Tree for component hierarchy
- Side-by-side to compare old vs new architecture
- Cloud to show shared context/state
- Fan-out for event distribution