Drawings catalog
All 40 drawing tools shipped in @elitechart/drawings — kind, anchors, default style, keybinding.
Every drawing tool ChartForge ships, grouped by family. Each tool's
kind is the value passed to useChartStore.addDrawing({ kind })
or selected via useChartStore.setActiveTool(kind).
Quick example
import { useChartStore } from '@elitechart/elitechart';
useChartStore.getState().addDrawing({
id: 'support-1',
kind: 'horizontal',
price: 67_500,
color: '#22d3ee',
});
Lines (trend / support / resistance)
| Tool | kind | Anchors | Keybinding |
|---|
| Trend Line | 'trend-line' | 2 | Alt-T |
| Ray | 'ray' | 2 | Alt-Y |
| Horizontal Line | 'horizontal' | 1 | Alt-H |
| Vertical Line | 'vertical' | 1 | Alt-V |
| Horizontal Ray | 'horizontal-ray' | 1 | – |
| Parallel Channel | 'parallel-channel' | 3 | Alt-C |
| Disjoint Channel | 'disjoint-channel' | 4 | – |
| Regression Channel | 'regression-channel' | 2 | – |
Geometry
| Tool | kind | Anchors |
|---|
| Rectangle | 'rectangle' | 2 (corners) |
| Ellipse | 'ellipse' | 2 (bounds) |
| Triangle | 'triangle' | 3 |
| Polyline | 'polyline' | N |
| Arc | 'arc' | 3 |
| Brush (freehand) | 'brush' | N |
Fibonacci
| Tool | kind | Anchors |
|---|
| Retracement | 'fib-retracement' | 2 |
| Extension | 'fib-extension' | 3 |
| Time Zones | 'fib-time-zones' | 2 |
| Channel | 'fib-channel' | 3 |
| Speed Resistance Fan | 'fib-fan' | 2 |
| Circles | 'fib-circles' | 2 |
| Spiral | 'fib-spiral' | 2 |
| Wedge | 'fib-wedge' | 3 |
Annotation
| Tool | kind | Anchors |
|---|
| Text | 'text' | 1 |
| Callout | 'callout' | 2 |
| Price Label | 'price-label' | 1 |
| Anchored Note | 'anchored-note' | 1 |
| Arrow | 'arrow' | 2 |
| Flag | 'flag' | 1 |
| Emoji | 'emoji' | 1 |
Patterns
| Tool | kind | Anchors |
|---|
| Long Position | 'long-position' | 3 (entry / SL / TP) |
| Short Position | 'short-position' | 3 (entry / SL / TP) |
| Head and Shoulders | 'head-and-shoulders' | 5 |
| ABCD | 'abcd' | 4 |
| XABCD | 'xabcd' | 5 |
| Three Drives | 'three-drives' | 6 |
| Cypher | 'cypher' | 5 |
| Gartley | 'gartley' | 5 |
| Bat | 'bat' | 5 |
| Butterfly | 'butterfly' | 5 |
| Crab | 'crab' | 5 |
Specialty
| Tool | kind | Anchors |
|---|
| Gann Fan | 'gann-fan' | 1 |
| Gann Square | 'gann-square' | 2 |
| Pitchfork | 'pitchfork' | 3 |
| Schiff Pitchfork | 'schiff-pitchfork' | 3 |
| Andrews' Pitchfork | 'andrews-pitchfork' | 3 |
| Cross Line | 'cross-line' | 1 |
Variations
Add a Long Position drawing
useChartStore.getState().addDrawing({
id: 'long-1',
kind: 'long-position',
anchors: [
{ time: 1700_000_000_000, price: 67_500 }, // entry
{ time: 1700_000_000_000, price: 66_500 }, // stop
{ time: 1700_000_000_000, price: 70_000 }, // target
],
});
Lock every drawing
import { useChartStore } from '@elitechart/elitechart';
const s = useChartStore.getState();
for (const d of s.drawings) s.patchDrawing(d.id, { locked: true });
API
Each tool implements the DrawingTool interface — see writing a
drawing tool for the contract.