# Excalidraw Guide

**Optional sketching tool integration for visual design thinking**

---

## Overview

Excalidraw is a free, open-source whiteboard tool that creates hand-drawn style diagrams. This integration provides:

- ✅ Setup and configuration guides
- ✅ WDS-specific workflows
- ✅ AI collaboration patterns
- ✅ Export automation (optional)
- ✅ Component library (optional)

**Status:** Optional - Enable in project configuration

---

## When to Use Excalidraw

### **Perfect For:**

- Digital sketching (alternative to paper)
- Collaborative design sessions
- AI-generated layout variations
- Version-controlled wireframes
- Iterative design exploration

### **Not Required If:**

- You prefer paper and pen
- You use other tools (Figma, iPad, etc.)
- You're comfortable with your current workflow

---

## Quick Start

### **1. Enable in Project**

**Edit:** `project-config.yaml` (or during project initialization)

```yaml
sketching:
  tool: excalidraw # or "paper" or "figma" or "other"
  excalidraw:
    enabled: true
    auto_export: false # Auto-generate PNG/SVG on save
    use_library: true # Load WDS component library
    grid_size: 20 # Snap to grid (px)
```

### **2. Install Tools**

**VS Code Extension (Recommended):**

```
1. Open Extensions (Ctrl+Shift+X)
2. Search "Excalidraw"
3. Install "Excalidraw Editor"
```

**Or use web version:**

- https://excalidraw.com (no installation needed)

### **3. Load WDS Library (Optional)**

**If `use_library: true` in config:**

```
1. Open Excalidraw
2. Click library icon
3. Load: workflows/4-ux-design/excalidraw-integration/wds-library.excalidrawlib
4. Components now available for drag-and-drop
```

---

## Documentation

### **Setup & Configuration**

→ [excalidraw-setup.md](excalidraw-setup.md)

- Installation options
- VS Code configuration
- Project settings
- Grid and theme setup

### **Sketching Workflow**

→ [sketching-guide.md](sketching-guide.md)

- When to sketch
- What to sketch
- How to sketch
- File organization

### **Export Workflow**

→ [export-workflow.md](export-workflow.md)

- Manual export (PNG/SVG)
- Automated export (GitHub Actions)
- File naming conventions
- GitHub display

### **AI Collaboration**

→ [ai-collaboration.md](ai-collaboration.md)

- AI-generated layouts
- AI analysis of sketches
- Iteration workflow
- Best practices

---

## File Organization

**When Excalidraw is enabled:**

```
C-Scenarios/[scenario-name]/
├── sketches/
│   ├── page-name.excalidraw     ← Source (editable)
│   ├── page-name.png            ← Export (GitHub display)
│   └── page-name.svg            ← Export (scalable, optional)
└── specifications.md
```

**In specifications.md:**

```markdown
## Design

![Page Wireframe](./sketches/page-name.png)

[Edit in Excalidraw](./sketches/page-name.excalidraw)
```

---

## Integration with WDS Workflow

### **Phase 4: UX Design**

**Step 4B-02: Sketch Interface**

**If Excalidraw enabled:**

```
Agent: "I see you've enabled Excalidraw. Would you like to:
        1. Sketch manually in Excalidraw
        2. Have me generate layout variations
        3. Use paper/pen instead"
```

**AI can:**

- Generate `.excalidraw` files with layout options
- Analyze your sketches (upload PNG)
- Suggest improvements
- Create variations

---

## Optional Features

### **Component Library**

**File:** `wds-library.excalidrawlib`

Pre-built components:

- Mobile/tablet/desktop frames
- Buttons, inputs, cards
- Navigation patterns
- Common layouts

**Enable:** Set `use_library: true` in config

### **Auto-Export**

**GitHub Actions or pre-commit hooks**

Automatically generates PNG/SVG when you save `.excalidraw` files.

**Enable:** Set `auto_export: true` in config

See: [automation/README.md](automation/README.md)

---

## Comparison with Other Tools

### **Excalidraw vs Paper**

**Excalidraw:**

- ✅ Digital, shareable
- ✅ AI can generate
- ✅ Version controlled
- ✅ Easy to iterate
- ❌ Requires tool setup

**Paper:**

- ✅ Zero setup
- ✅ Fast and natural
- ✅ No distractions
- ❌ Must photograph/scan
- ❌ Harder to iterate

### **Excalidraw vs Figma**

**Excalidraw:**

- ✅ Free and open-source
- ✅ Hand-drawn aesthetic
- ✅ AI can generate
- ✅ Simpler, faster
- ❌ Less precise

**Figma:**

- ✅ Professional tool
- ✅ Pixel-perfect
- ✅ Component systems
- ✅ Team libraries
- ❌ Steeper learning curve
- ❌ Requires account

---

## Disabling Excalidraw

**To disable after enabling:**

**Edit:** `project-config.yaml`

```yaml
sketching:
  tool: paper # or "figma" or "other"
  excalidraw:
    enabled: false
```

**Agent will:**

- Skip Excalidraw-specific prompts
- Use generic sketching workflow
- Not generate `.excalidraw` files

**Your existing files:**

- Remain in project
- Can still be opened
- Not automatically deleted

---

## Support

### **Issues with Excalidraw?**

**VS Code extension not working:**

- Restart VS Code
- Check extension is enabled
- Try web version as fallback

**Files won't open:**

- Verify JSON is valid
- Check file extension is `.excalidraw`
- Try opening in web version

**AI can't generate files:**

- Check core helpers are loaded
- Verify project config
- Report issue to WDS

### **Community**

**Excalidraw:**

- Website: https://excalidraw.com
- GitHub: https://github.com/excalidraw/excalidraw
- Discord: https://discord.gg/UexuTaE

**WDS:**

- Discord: [WDS community]
- GitHub: [WDS issues]

---

## Next Steps

**If Excalidraw is enabled:**

1. Install VS Code extension (or use web)
2. Load WDS library (optional)
3. Configure grid and theme
4. Start sketching!

**Learn more:**

- [Setup Guide](excalidraw-setup.md)
- [Sketching Guide](sketching-guide.md)
- [AI Collaboration](ai-collaboration.md)

---

**Excalidraw integration is optional but powerful - enable it if digital sketching fits your workflow!** 🎨✨
