No description
  • TypeScript 94.9%
  • JavaScript 2.6%
  • TeX 1%
  • Rust 0.7%
  • CSS 0.6%
  • Other 0.1%
Find a file
bogac 50c830cab0
Some checks failed
CI / test (push) Has been cancelled
CI / desktop-linux (push) Has been cancelled
CI / desktop-windows (push) Has been cancelled
Add Arc tool: drag the radius, then sweep and click
A two-step creation tool for circular arcs. The first drag goes from the
center to the start point, fixing radius and start angle; the pointer then
sweeps the arc and a click inserts

  \draw (start) arc[start angle=a, end angle=b, radius=r];

The sweep is accumulated from successive pointer angles, so moving
clockwise draws a clockwise arc and sweeps past 180 degrees work; it is
clamped to one turn. Shift snaps to 15 degree steps, Esc cancels a
started arc, and the shortcut is O.

- core: `arc` element template (center at `at`, `start` point, signed
  `sweep`), written through the statement's point writer: the start point
  and radius like a circle's, and the angles by a new `writeArcAngles` in
  the writer, which takes off the frame's rotation, reverses the sense
  under a reflection, and refuses a stretched or skewed frame
- app: arc-tool.ts holds the pending-arc geometry; CanvasPanel threads a
  `pendingArc` state alongside `pendingBezier`; the path tool preview
  gains an `open` flag so the arc preview is stroked, not filled
- landing: tool catalog entry and generated preview
- tests: template output, a render check of the arc's endpoints, angles
  in a rotated frame and refusal in a skewed one, and sweep accumulation,
  unwrapping, clamping, and snapping

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-24 21:58:22 +11:00
.devcontainer fix desktop e2e and add devcontainer 2026-03-11 17:40:56 +00:00
.github Fix release workflows and partial release downloads 2026-10-23 14:48:06 +02:00
.signpath Add portable Windows builds with isolated data and manual updates 2026-10-20 12:42:14 +02:00
apps Add Arc tool: drag the radius, then sweep and click 2026-10-24 21:58:22 +11:00
design Measure coordinate writer costs and document assurance coverage 2026-10-22 15:11:53 +02:00
packages Add Arc tool: drag the radius, then sweep and click 2026-10-24 21:58:22 +11:00
scripts Fix release workflows and partial release downloads 2026-10-23 14:48:06 +02:00
test Add Arc tool: drag the radius, then sweep and click 2026-10-24 21:58:22 +11:00
tools/tex-paragraph-lab Align TeX lab line breaking with oracle 2026-06-16 10:54:38 +02:00
.gitattributes Initial commit 2026-02-10 14:56:23 +01:00
.gitignore chore: remove stale files and unused exports 2026-10-03 14:19:16 +02:00
AGENTS.md Update AGENTS.md 2026-06-25 13:15:54 +02:00
DEVELOPMENT.md chore: remove stale files and unused exports 2026-10-03 14:19:16 +02:00
eslint.config.mjs Generalize strict lint rules across production 2026-10-15 23:25:55 +02:00
knip.jsonc chore: remove stale files and unused exports 2026-10-03 14:19:16 +02:00
LICENSE Initial commit 2026-02-10 14:56:23 +01:00
package-lock.json v1.0.0 2026-10-23 11:01:41 +02:00
package.json v1.0.0 2026-10-23 11:01:41 +02:00
README.md add screenshot to README 2026-05-27 11:55:41 +02:00
tsconfig.base.json Strengthen typing safeguards and validate workspace boundaries 2026-10-15 16:44:27 +02:00
tsconfig.eslint.json Fix CI test lint and unused export failures 2026-10-20 15:56:07 +02:00
tsconfig.json Type edited source as fragments and guard coordinate writes 2026-10-21 20:16:50 +02:00
tsconfig.prod.json Complete strict production typing migration 2026-10-15 21:51:12 +02:00
vitest.config.ts glyph outlines load per font on first use instead of shipping with the bundle (fonts went from 3.4 MB to 0.18 MB gzipped at startup); renders that found outlines missing run again once they arrive, and text caches drop entries from older outline sets; node scripts and tests preload them all 2026-10-11 22:14:41 +02:00

TikZ Editor

WYSIWYG editor for TikZ diagrams in LaTeX

You can start from scratch or edit an existing TikZ figure, or even directly open your paper tex file to edit its images. The TikZ code gets instantly updated as you move around elements, without disturbing existing formatting such as line breaks and spaces.

The app makes fine-tuning the positions of elements easy and instant, without needing to recompile. It supports all common TikZ features including \foreach loops.

The app is free and open source (MIT licensed, code on GitHub). It works on the web or as a lightweight desktop app with some extra features.

Try it: tikz.dev/editor

Features

  • Visual canvas with drawing tools: shapes, paths, curves, freehand, Bézier, rectangles, circles, and more
  • Live source editor with TikZ syntax highlighting, autocompletion, and number scrubbing
  • Two-way sync: edit visually or in code — changes reflect instantly in both views
  • Export to SVG, PDF, or PNG
  • Import from SVG, IPE, or PPTX
  • Multi-figure support for documents with multiple TikZ pictures

Desktop App

Available for macOS, Windows, and Linux with additional features:

  • Native file dialogs and system clipboard integration
  • AI assistant for help with TikZ
  • Automatic updates

Download from tikz.dev/editor.

Supported TikZ Features

The editor supports a wide range of TikZ constructs:

  • Shapes: 25+ built-in shapes including rectangle, circle, ellipse, diamond, polygon, star, arrows, callouts, and more
  • Paths: lines, curves, rectangles, circles, arcs, grids
  • Curves: Bézier curves with control points
  • Trees: child operations, tree layout, level/sibling styling
  • Matrices: matrix nodes with cell alignment
  • Loops: \foreach in all forms (statement, path, node)
  • Styling: colors, line styles, fill patterns, shading, transforms

Some features have partial support (decorations, graphs, plots). Advanced constructs like let operations are not yet implemented.

Getting Started

  1. Open the editor at tikz.dev/editor
  2. Start with the example or write your own TikZ code
  3. Use the drawing tools in the toolbar to add and edit elements
  4. Export your diagram when ready

Development

See DEVELOPMENT.md for build instructions, architecture overview, and contribution guidelines.

License

MIT