konvajs/konva
 Watch   
 Star   
 Fork   
5 days ago
konva

10.7.1

Bug Fixes

  • keep typed array line points in toObject() and toJSON() #2073 (Bao Nguyen)
  • Transformer follows size changes of an attached group's children (Anton Lavrevov)

Commits

  • 7cb8bb1: update CHANGELOG with new version (Anton Lavrevov)
  • 48a8c8d: build for 10.7.1 (Anton Lavrevov)
17 days ago
konva

10.7.0

Features

  • add Group.isolated() and shape-sized perfect-draw buffers (Anton Lavrevov)
  • add Shape.selfRectFunc() for custom shape bounds (Anton Lavrevov)

Bug Fixes

Styles

Builds

Commits

  • 3617366: update CHANGELOG with new version (Anton Lavrevov)
  • ca62a92: build for 10.7.0 (Anton Lavrevov)
21 days ago
konva

10.6.0

Bug Fixes

Documentation

  • record the review-task batch in the changelog and close the audit list (Anton Lavrevov)
  • open the 10.6.0 changelog section and give 10.5.0 its own heading (Anton Lavrevov)

Performance Improvements

  • simplify path processing, transform batching, and filter buffers (Anton Lavrevov)

Tests

  • replace Sprite timing assertions with redraw behavior checks (Anton Lavrevov)
  • cover toBlob keeping the callback of a reused config (Anton Lavrevov)
  • compare path point lists with a tolerance instead of exact floats (Anton Lavrevov)

Commits

  • 2babeee: Merge branch 'review-fixes/transformer' into review-fixes/all (Anton Lavrevov)
  • 6628d9d: Merge branch 'review-fixes/node-factory' into review-fixes/all (Anton Lavrevov)
  • 4f0db5d: Merge branch 'review-fixes/util-layer' into review-fixes/all (Anton Lavrevov)
  • 6bd62d3: Merge branch 'review-fixes/text' into review-fixes/all (Anton Lavrevov)
  • 157628d: Merge branch 'review-fixes/arrow' into review-fixes/all (Anton Lavrevov)
  • 2d5dc95: Merge branch 'review-fixes/tween' into review-fixes/all (Anton Lavrevov)
  • 8fc42c5: Merge branch 'review-fixes/pixelate' into review-fixes/all (Anton Lavrevov)
  • 2d796a4: Merge branch 'review-fixes/image' into review-fixes/all (Anton Lavrevov)
  • 57b65c8: Merge branch 'review-fixes/label' into review-fixes/all (Anton Lavrevov)
  • dae1bdf: Merge branch 'redo/textpath' into review-fixes/all (Anton Lavrevov)
  • reject null in the compound accessors that throw on it (Anton Lavrevov)
  • 1199be0: Merge branch 'redo/types' into review-fixes/all (Anton Lavrevov)
  • 444a46c: Merge branch 'repair/node' into review-fixes/all (Anton Lavrevov)
  • 05eec26: Merge branch 'repair/text' into review-fixes/all (Anton Lavrevov)
  • 446e01f: Merge branch 'repair/path' into review-fixes/all (Anton Lavrevov)
  • df1827b: Merge branch 'repair/misc' into review-fixes/all (Anton Lavrevov)
  • 894429d: Merge review-task fix batch: 35 backlog fixes and 12 review repairs (Anton Lavrevov)
  • e759195: update CHANGELOG with new version (Anton Lavrevov)
  • 5f2dcf7: build for 10.6.0 (Anton Lavrevov)
2026-09-08 23:40:02
konva

10.5.0

Features

  • Stage.eventBatchFunc() batches native input for framework integrations (Anton Lavrevov)

Bug Fixes

  • touchcancel releases only the canceled pointers and fires a cancel event (Anton Lavrevov)
  • toBlob() resolves with a Blob instead of unknown (Anton Lavrevov)

Documentation

  • keep the Node class JSDoc attached to the class (Anton Lavrevov)
  • document Path width() and height() for the API reference (Anton Lavrevov)

Performance Improvements

  • Transformer reuses unchanged shape bounds and skips equal anchor updates (Anton Lavrevov)

Commits

  • 8225a78: update CHANGELOG with new version (Anton Lavrevov)
  • 9008123: build for 10.5.0 (Anton Lavrevov)
2026-09-08 06:46:47
konva

10.4.0

Features

  • destroy event; Transformer, Tween, pointer captures and stage timers release destroyed nodes (Anton Lavrevov)

Bug Fixes

  • size the buffer canvas of cache() and toCanvas() to the target, allocate it lazily and release it (Anton Lavrevov)
  • memoize isCSSFiltersSupported() and release its probe canvas (Anton Lavrevov)
  • stop the frame interval of a Sprite on destroy() (Anton Lavrevov)
  • keep descendant caches on clearCache() and release the previous canvases on re-cache (Anton Lavrevov)
  • setAbsolutePosition() under a zero-scale ancestor no longer writes NaN (Anton Lavrevov)
  • negative radius and cornerRadius no longer throw and blank the layer (Anton Lavrevov)
  • batchDraw() no longer freezes the layer after a throwing draw (Anton Lavrevov)
  • Blur keeps the colour of semi-transparent pixels and survives large radii (Anton Lavrevov)
  • Tween ownership bookkeeping (Anton Lavrevov)
  • clamp a negative cornerRadius in drawRoundedRectPath (Anton Lavrevov)
  • hasShadow() follows shadowOffsetX and shadowOffsetY changes (Anton Lavrevov)
  • cache() and transform batching clean up after a throw (Anton Lavrevov)
  • split text into graphemes with Intl.Segmenter (Anton Lavrevov)
  • toObject() copies attributes instead of mutating them, accepts frozen values and skips methods named like custom attributes (Anton Lavrevov)
  • drawHitFromCache() honours hitCanvasPixelRatio (Anton Lavrevov)
  • Path arc bounds, SVGO arc flags, empty data, and segment-relative getPointAtLength (Anton Lavrevov)
  • Transformer follows the grabbing pointer, guards zero-size boxes, and resolves its anchors directly (Anton Lavrevov)
  • Tween of component attributes, of array attributes the node lacks, and to() no longer mutates its params (Anton Lavrevov)
  • absolute getters and derived caches of nodes under a cached container, fire(type, null), non-finite child rects (Anton Lavrevov)
  • Canvas size equals the truncated bitmap at a fractional pixel ratio and keeps its logical size; setSizeIfChanged() with NaN (Anton Lavrevov)
  • drag with several pointers releases only the lifted pointer; startDrag() without an event ends on release (Anton Lavrevov)
  • Transformer suppresses the hit graph of its own layers only (gate moved to Layer.shouldDrawHit), forwards getClientRect(config), honours top in getAbsoluteTransform() (Anton Lavrevov)
  • RegularPolygon without sides, Sprite getSelfRect() and guards for a missing animation or frame (Anton Lavrevov)
  • report a non-finite number at the core aggregation points instead of silently drawing nothing (Anton Lavrevov)
  • Tag.getSelfRect() grows by exactly the pointer for a left or right pointer (Anton Lavrevov)
  • eleven one-line bugs (Anton Lavrevov)
  • layer.size() no longer resizes the layer canvas; getChildren() returns a copy (Anton Lavrevov)
  • review follow-ups for the polishing batch (Anton Lavrevov)
  • Transformer follows node changes made between pointer moves of a resize (Anton Lavrevov)

Documentation

  • JSDoc that contradicted the code, wrong names and types, examples that did not run (Anton Lavrevov)
  • rewrite the unreleased changelog in the usual short style (Anton Lavrevov)

Performance Improvements

  • keep a running grapheme index for charRenderFunc instead of recounting previous lines per character (Anton Lavrevov)
  • upload filter chain result once and stop reallocating the filter canvas (Anton Lavrevov)
  • release the per-layer canvases of a stage export and skip the client rect when the box is given (Anton Lavrevov)
  • resize a canvas in one pass (Anton Lavrevov)
  • drop the two Maps every node allocated (Anton Lavrevov)
  • wrap fixed-width text in linear time (Anton Lavrevov)
  • resolve edge pixels of the hit graph directly and bound the search (Anton Lavrevov)
  • relayout listeners of Text and TextPath on the prototype, listener cache keyed by class (Anton Lavrevov)
  • getClientRect() no longer scans the subtree at every nesting level (Anton Lavrevov)
  • drag reads pointer positions once per stage, skips the redraw on a plain click, and resets the drag position per drag (Anton Lavrevov)
  • hoisted component getter names, single-array Transform, direct drawImage, hoisted TypedArray (Anton Lavrevov)
  • Animation keeps its running animations in a Set; an animation stopping itself no longer skips the next one; setLayers() copies its argument (Anton Lavrevov)

Tests

Builds

  • keep JSDoc in the published .d.ts files (Anton Lavrevov)
  • size budget of 48 KB, CI runs size, import and type checks on Node 22 (Anton Lavrevov)
  • release script runs the tests, drops the empty cdn-link commit and the hard-coded directory (Anton Lavrevov)
  • named exports and prepublishOnly (Anton Lavrevov)
  • drop the named exports and the separate UMD entry (Anton Lavrevov)

Chores

  • remove dead Node internals and hoist the non-bubbling event list (Anton Lavrevov)
  • build the browser tests from a clean Parcel cache (Anton Lavrevov)
  • drop the unregistered fillLinearRadial* declarations, build ellipses with context.ellipse() (Anton Lavrevov)
  • remove dead code (hit fill/stroke duplicates, lineDash fallbacks, trace branch, unused globals, addDeprecatedGetterSetter) (Anton Lavrevov)
  • red/green/blue registered once with the shared component validator, alpha uses afterSetFilter (Anton Lavrevov)
  • remove dead code; cloneObject() copies nested arrays and typed arrays; shadow probe releases its canvas (Anton Lavrevov)
  • resolve every TODO comment in src and tests (Anton Lavrevov)
  • remove dead code, dead files and unused devDependencies (Anton Lavrevov)

Commits

  • ad94d9d: update CHANGELOG (Anton Lavrevov)
  • f142b6e: update CHANGELOG (Anton Lavrevov)
  • 7ee3232: update CHANGELOG (Anton Lavrevov)
  • c9f3830: update CHANGELOG (Anton Lavrevov)
  • 0f88c28: update CHANGELOG (Anton Lavrevov)
  • declarations that contradicted the runtime or the docs (Anton Lavrevov)
  • ac581a4: update CHANGELOG with new version (Anton Lavrevov)
  • e51c16d: build for 10.4.0 (Anton Lavrevov)
2026-09-05 00:58:20
konva

10.3.3

Documentation

  • describe Konva's use cases in package metadata and README, point to Polotno (Anton Lavrevov)

Chores

Commits

  • 801f9b8: Merge branch 'master' of github.com:konvajs/konva (Anton Lavrevov)
  • 401afa0: update CHANGELOG with new version (Anton Lavrevov)
  • 77f052a: build for 10.3.3 (Anton Lavrevov)
  • 77a422b: update cdn link (Anton Lavrevov)
2026-08-27 06:58:05
konva

10.3.2

Bug Fixes

  • use JSDoc comment for Kaleidoscope filter so it appears in API docs (Anton Lavrevov)
  • listen for drag events in the stage owner window #2066 (Dmitry)
  • use the window the stage is rendered in (Anton Lavrevov)
  • do not fire pointerclick after drag and drop (Anton Lavrevov)
  • transformer anchor oscillation with keepRatio and padding (Anton Lavrevov)
  • keep the active transformer anchor when boundBoxFunc rejects a flip (Anton Lavrevov)
  • capture the pointer on the stage container in setPointerCapture (Anton Lavrevov)
  • honor fill and stroke styles set by charRenderFunc (Anton Lavrevov)

Documentation

Performance Improvements

Commits

  • 5d15a49: Fix three @param names that do not match the signatures (darkdi) #2065
  • 0d0bf5d: Attach the on() docs to the implementation so they reach the bundle (Anton Lavrevov)
  • 829050e: update CHANGELOG with new version (Anton Lavrevov)
  • 005356e: build for 10.3.2 (Anton Lavrevov)
2026-08-15 09:06:32
konva

10.3.1

Bug Fixes

  • Path: return last point for getPointAtLength past a closed path #2053 (Yarchik)
  • Arc.getSelfRect() reports a full circle for a zero-degree clockwise arc #2054 (Alexander Kireev)
  • Shape: respect imageSmoothingEnabled for fillPatternImage #2055 (MarkXian)
  • Util: preserve alpha of the named color "transparent" #2056 (Yarchik)
  • Util: parse rgb() components written as percentages #2057 (jaybhade)
  • Util: colorToRGBA() fails to parse non-integer HSL hue #2059 (Xuepoo)
  • Line: getSelfRect wrong for multi-segment bezier and degenerate-derivative segments #2061 (Xuepoo)
  • Line: avoid NaN control points on closed tensioned lines with coincident points #2062 (rajanpanth)
  • Line: guard the zero-distance case inside getControlPoints (Anton Lavrevov)
  • Line: cover joints and near-degenerate derivatives in bezier bounds (Anton Lavrevov)
  • Path: exact getSelfRect bounds for quadratic segments (Anton Lavrevov)
  • Line: exact getSelfRect bounds for lines with a tension (Anton Lavrevov)

Code Refactoring

Performance Improvements

Continuous Integration

Commits

  • b5c7a83: Fix ValidatorFunc Type Mistake (foolishflyfox) #1998
  • ecdf162: Improve Transformer performance with many attached nodes (Anton Lavrevov)
  • 976a63a: Add Transformer perf invariant tests; widen autoDraw suspension (Anton Lavrevov)
  • 7b3cf3b: Simplify a bit (Anton Lavrevov)
  • a203de9: sandbox (Anton Lavrevov)
  • 6e4025c: clear (Anton Lavrevov)
  • b92018b: Merge branch 'master' of github.com:konvajs/konva (Anton Lavrevov)
  • bc123b3: Declare canvas and skia-canvas as optional peer dependencies (Anton Lavrevov)
  • ed1e0cc: Skip pattern smoothing sanity check on skia-canvas (Anton Lavrevov)
  • f9bd818: Report full circle for any full-turn angle in Arc.getSelfRect (Anton Lavrevov)
  • dd90ff4: Merge pull request #2054: fix Arc.getSelfRect for full-turn angles (Anton Lavrevov)
  • 4f8e1a8: color parsing fixes, fix some color values. close #2063, close #2064 (Anton Lavrevov)
  • 4ebadaf: Merge branch 'master' into fix/line-tension-nan (Anton Lavrevov) #2062
  • Line NaN bounding rect fix (Anton Lavrevov)
  • cover all unreleased changes since 10.3.0 (Anton Lavrevov)
  • c7145cc: Merge branch 'master' into fix/line-bezier-selfrect (Anton Lavrevov) #2061
  • d2b96f5: fix(Line,Path): share one exact solver for cubic bezier bounds (Anton Lavrevov)
  • 9e8a106: update CHANGELOG with new version (Anton Lavrevov)
  • fb706a2: build for 10.3.1 (Anton Lavrevov)
  • fad321d: update cdn link (Anton Lavrevov)
2026-05-01 04:22:16
konva

v10.3.0

Commits

  • 5b5ed7d: fix readme (Anton Lavrevov)
  • 398f9d3: fix ci (Anton Lavrevov)
  • 3816a51: Added direction property to TextPath shape for better RTL support (Anton Lavrevov)
  • e201727: restore all tests (Anton Lavrevov)
  • ae5bbf7: 10.3.0 (Anton Lavrevov)
2026-04-11 01:13:01
konva

10.2.5

Commits

  • 9e34328: fix safari text + shadow + opacity render (Anton Lavrevov)
  • 2315976: update CHANGELOG with new version (Anton Lavrevov)
  • ff7faac: build for 10.2.5 (Anton Lavrevov)
  • 0fe9f92: update cdn link (Anton Lavrevov)