User Guide

Getting Started

What is JustDraw

A browser-based icon design tool with a built-in publishing pipeline. Draw icons with precision vector tools, press Cmd+S, and they publish to CDN as optimized SVGs and Android VectorDrawables. No export dialogs. No manual deploy.

Signing in

Click Sign in with GitHub on the landing page. JustDraw uses GitHub OAuth — your icons save to a GitHub repository you choose. No account to create beyond GitHub.

Creating an icon set

After signing in, you land on the Home view showing your GitHub repos. Click a repo to open it, or create a new one. Each repo is one icon set.

Editor overview

The editor has three views:

In Edit mode, the screen layout is:

Drawing

Pen tool

Press P to activate the pen tool.

Drawing straight lines: Click to place points. Each click adds a corner. Click the starting point to close the shape.

Drawing curves: Click and drag to create a bezier curve. The drag direction and distance control the curve shape. Release the mouse to set the curve, then click the next point.

Ending an open path: Press Escape or double-click to finish without closing.

Repositioning the last point: Hold Spacebar while placing a point to reposition it before committing.

Tip: Hold Shift to constrain angles to 45-degree increments.

Shape tools

Line tool

Press L. Click to place the start point, click again for the end point. Creates an open path with two nodes.

Selection

Select tool (V): click a shape to select it. Click empty canvas to deselect.

Transform

With shapes selected:

Groups

Select multiple shapes and press Cmd+G to group them. Groups move and transform as a unit.

Press Cmd+Shift+G to ungroup.

Press Enter on a selected group to enter group isolation — edit children directly. Press Escape to exit.

Snap and guides

Editing Paths

Entering isolation mode

Double-click a shape to edit its individual nodes. The rest of the canvas dims. Press Escape to exit isolation.

Alternatively, press A to switch to the Point Select tool and edit nodes across multiple selected shapes without full isolation.

Nodes and handles

Select a node and press Enter to toggle between smooth and corner.

Drag a handle to adjust the curve. Hold Alt while dragging to break handle symmetry on a smooth node.

Scissors

Press K to activate the scissors tool. Click on any path segment to split it at that point. A closed path becomes open. An open path splits into two separate paths.

Adding and removing nodes

Adding a node: in point select mode, hold Alt and click on a path segment to insert a point.

Deleting a node: select it and press Backspace/Delete. The curve re-fits automatically.

Deleting a segment: select two adjacent nodes and press Shift+X.

Boolean operations

Select two or more shapes. Right-click and choose from the context menu, or use the toolbar:

Curve assist

Select nodes and use these shortcuts for curve quality:

Shortcut Action Effect
Alt+H Harmonize Equalize curvature at smooth nodes (G2 continuity)
Alt+S Supersmooth Harmonize + shift node position (G3 continuity)
Alt+D Dekink Minimal handle adjustment toward geometric mean
Alt+T Tunnify Smooth segment handles
Alt+1–5 Tension presets Set handle tension to 20/35/50/65/80%

Curvature comb

Toggle in Settings. Shows a Speed Punk-style overlay — green for low curvature, red for high. Helps spot kinks and inconsistencies.

Measurement

Press M to toggle stem measurement. Hover over any path to see the perpendicular thickness readout — a dashed gold line shows the measurement with a label.

Visual Properties

Fill

Select a shape. The fill color shows in the sidebar. Click the color swatch to change it. Press F to toggle fill on/off.

On export, fills become currentColor for monochrome icons, or preserve per-path colors for multi-color icons.

Stroke

Select a shape. Toggle stroke with S. Adjust weight, cap (butt/round/square), and join (miter/round/bevel) in the sidebar.

Opacity

Set per-path opacity in the sidebar (or press 1–9 for 10–90%, 0 for 100%).

Groups with opacity less than 100% composite as a unit — children blend with each other first, then the group blends with the canvas.

Semantic tokens

Named aliases that map abstract roles to specific icons (e.g., action.deletetrash). Manage in the sidebar's Tokens section. Tokens export through the pipeline — they appear in npm metadata, design system docs, and are resolvable via MCP.

Organizing Icons

Grid view

Press Cmd+W from the editor to return to grid view (or click the back chevron in the toolbar).

Grid view shows all icons in the current set as thumbnails. Features:

Naming

Click an icon's name in the sidebar to edit it. A green check means the name matches a known concept in the taxonomy. An amber question mark means it's unknown — suggestions appear below.

Tags and categories

Tags and categories appear in the sidebar when an icon is selected.

Tags: click the + button to add. Ghost chips suggest tags from the taxonomy with cross-set frequency badges (e.g., "×6" means 6 of 7 reference sets use this tag).

Categories: auto-derived from the taxonomy. Shows frequency (e.g., "Communication (6/7)").

Icon status

Each icon has a status: draft, review, production, or deprecated. Click the status button in the sidebar or grid to change it. Status affects export — the pipeline can filter by status.

Diagnostics

A colored dot on each icon thumbnail indicates quality:

Click the dot or open the diagnostics section in the sidebar to see details. Click any issue to select the relevant node or path.

Coverage dashboard

The sidebar shows a coverage panel with per-category progress bars. This tells you how complete your set is relative to the taxonomy — how many of the expected icons in each category you've drawn.

Saving and Publishing

Save to GitHub

Press Cmd+S. Your icons save to the GitHub repository you selected on sign-in.

What happens on save:

  1. Each icon serializes to an SVG file + a .meta.json file (tags, status, category)
  2. Files commit to the repo's icons/ directory via GitHub's GraphQL API
  3. On first save, JustDraw auto-installs a GitHub Actions workflow into the repo

Tip: Cmd+Shift+S creates a named checkpoint you can reference later.

Save to file

If you're not signed in to GitHub, Cmd+S downloads a .justdraw file — a JSON bundle of the entire set.

The export pipeline

After you save to GitHub, the automated pipeline runs:

  1. Validate — checks naming, paths, metadata, complexity
  2. Export — optimizes SVGs, generates Android VectorDrawable XML
  3. Build pages — generates a searchable browse page and changelog
  4. Deploy — publishes to GitHub Pages CDN

Your icons are live at {username}.github.io/{repo}/svg/{icon-name}.svg.

The pipeline also generates npm packages, framework components, Iconify JSON, and documentation files. See Packages for details.

Conflicts

If someone else pushes to the same repo while you have unsaved changes, JustDraw detects the conflict on your next save. A conflict modal appears showing which icons diverged. You can resolve per icon — keep yours, keep theirs, or merge.

Multiple tabs

Open the same set in two browser tabs — edits sync via BroadcastChannel. JustDraw also polls the GitHub HEAD to detect remote changes from other devices.

Reverting

Right-click an icon with unsaved changes in grid view → Revert to Last Saved. Or use Discard All Changes in the set menu to reload everything from GitHub.

Import

SVG files

Drag SVG files onto the grid view, or use the Import button. JustDraw handles:

GlyphsApp files

Drag a .glyphs file onto the grid. Y-axis flips automatically (font tools use Y-up, JustDraw uses Y-down).

Font files

Drag .otf, .ttf, or .woff files. Glyphs convert from quadratic/cubic bezier format to JustDraw's node format.

Smart import features

Reference Ghost

Press Shift+G to toggle. Overlays an icon from a reference set (Lucide, Phosphor, Tabler, Bootstrap, Feather, or Material) as a blue-tinted ghost behind your drawing. Useful for comparing proportions and weight.

Change the reference set in the sidebar dropdown. The ghost auto-loads the matching icon name from the selected set.

Keyboard Shortcuts

Tools

Shortcut Tool
V Select (object-level)
A Point Select (node-level)
P Pen
L Line
R Rectangle
O Ellipse
Y Polygon
U Star
E Rotate
K Scissors
I Picker

File

Shortcut Action
Cmd+S Save
Cmd+Shift+S Save checkpoint / Save as
Cmd+W Close icon, return to grid
Cmd+N New blank icon
Cmd+O Open from file
Cmd+Z Undo
Cmd+Shift+Z Redo

Selection

Shortcut Action
Cmd+A Select all
Escape Deselect / cancel current operation
Tab Cycle to next oncurve node
Shift+Tab Cycle to previous oncurve node

Edit

Shortcut Action
Cmd+C Copy
Cmd+X Cut
Cmd+V Paste
Cmd+D Duplicate
Backspace Delete selected
Enter Toggle smooth/corner (nodes) or enter isolation (path)
Shift+X Delete segment between two selected nodes

Transform

Shortcut Action
Arrow keys Nudge (1 step)
Shift+Arrow Nudge (4x step)
Shift+H Flip horizontal
Shift+V Flip vertical
Shift+R Reverse path direction
] Bring forward
[ Send backward
Shift+] Bring to front
Shift+[ Send to back

Path

Shortcut Action
C Close path
J Join two open paths
Shift+E Add extrema points
Cmd+G Group
Cmd+Shift+G Ungroup

Curve Assist

Shortcut Action
Alt+H Harmonize
Alt+S Supersmooth
Alt+D Dekink
Alt+T Tunnify
Alt+1–5 Tension presets (20/35/50/65/80%)

Visual

Shortcut Action
F Toggle fill
S Toggle stroke
1–9 Set opacity (10–90%)
0 Set opacity 100%

View

Shortcut Action
Space Pan (hold)
Cmd+0 Zoom 100%
Cmd++ Zoom in
Cmd+- Zoom out
Shift+1 Zoom to fit
Shift+2 Zoom to selection
M Toggle measurement
Shift+G Toggle reference ghost
Shift+P Toggle pixel preview
G Toggle grid snap
Cmd+; Toggle guides

Navigation

Shortcut Action
Cmd+Left/Right Previous/next icon
Cmd+Up/Down Previous/next variant
? Keyboard shortcuts overlay

Settings

Press Cmd+, in grid view to open Settings.

Grid: artboard size, overshoot, grid unit, snap increment, nudge step.

Drawing: default stroke weight, paste offset, inactive path opacity.

Canvas: zoom min/max, node hit radius.

Behavior: undo depth.

Export: coordinate precision.

Each section has a Reset to defaults button.