Skip to content

Releases: fabricjs/fabric.js

Version 7.1.0

31 Dec 15:46
271963a

Choose a tag to compare

What's Changed

  • feat(): Cropping controls extension by @asturur in #10825
  • chore(): Render circle control tweak for code reusability and style by @asturur in #10829
  • Correctly check for cache key equality in calcOwnMatrix by @jiayihu in #10831
  • chore(deps-dev): bump js-yaml from 3.14.1 to 3.14.2 in the npm_and_yarn group across 1 directory by @dependabot[bot] in #10812
  • fix(Text):Double offset when exporting SVG after setting deltaY in Text by @jiao1187875445 in #10805

New Contributors

Full Changelog: v700...v710

Version 7.0.0

22 Dec 23:34

Choose a tag to compare

No code changes compared to 7.0.0 - rc1

Version 6.9.1

15 Dec 09:13

Choose a tag to compare

Full Changelog: v690...v691

  • fix(): Fix the situation where undefined + char exists when calculating couple #10816
  • fix(): Fix toDataUrl writing on contextTop #10820

Version 7.0.0 rc1

15 Dec 08:03

Choose a tag to compare

Version 7.0.0 rc1 Pre-release
Pre-release

What's Changed

  • chore(): Update typescript 5.9, eslint, babel and rollup to latest by @asturur in #10708
  • chore(): Fixes to TypeDoc for compilation by @asturur in #10709
  • chore(): Remove mouse wheel console warning by setting default explicitly. by @zhe-he in #10712
  • fix: The mouse enter and leave events of child elements will be executed twice. by @zhe-he in #10699
  • BREAKING: chore(): Update min node version to 20, add 24 by @asturur in #10716
  • BREAKING(): Deprecate fireRightClick, fireMiddleClick, stopContextMenu and change their default value. by @asturur in #10720
  • Clarify MIT License by @asturur in #10725
  • doc: Repair broken link in docs by targeting all demo and samples pages in old fabric docs. by @tneullas in #10723
  • chore(): Format dependabot.yml with Prettier to ensure consistent code style by @Copilot in #10733
  • chore(deps-dev): bump @eslint/js from 9.34.0 to 9.35.0 by @dependabot[bot] in #10729
  • Update license to include 2016–2025 Fabric.js contributors by @aswind7 in #10726
  • chore(deps-dev): bump serve from 14.2.4 to 14.2.5 by @dependabot[bot] in #10730
  • chore(deps-dev): bump es-toolkit from 1.39.7 to 1.39.10 by @dependabot[bot] in #10731
  • chore(): Pin all GitHub Actions to commit SHAs for security compliance by @Copilot in #10739
  • chore(): Remove paths for codeQL let it scan all the repo by @asturur in #10738
  • change CN comment to EN by @aswind7 in #10727
  • fix(textarea): A form field element has neither an id nor a name attribute. by @zhe-he in #10172
  • fix: After executing loadFromJSON, it unexpectedly adds an objects property to the canvas. by @zhe-he in #10741
  • ci(): Foked the action find-create-update-comment in order to pin sha(s) by @asturur in #10742
  • ci(): Fix CWE-829 in the coverage report action by @asturur in #10743
  • ci(): fix CWE-829 in action build-stats by @asturur in #10744
  • fix(): CWE-1333 CWE-400 CWE-730 in Text.ts regex by @asturur in #10745
  • fix(): CWE-1333 CWE-400 CWE-730 Simplify some regexes in order to avoid slowness with craft bad string by @asturur in #10746
  • fix(): Fix some weaknesses in the changelog-update action ( various CWE ) by @asturur in #10747
  • fix(): build-stats action, fix for CWE-275 and some code injection by @asturur in #10749
  • fix(): Add all actions a set of permissions that is restricted to the minimum necessary by @asturur in #10750
  • fix(): correct process.ENV with process.env by @asturur in #10751
  • chore(deps-dev): bump chalk from 5.6.0 to 5.6.2 by @dependabot[bot] in #10752
  • chore(deps-dev): bump commander from 14.0.0 to 14.0.1 by @dependabot[bot] in #10754
  • chore(): remove chalk by @Smrtnyk in #10758
  • chore(deps-dev): bump @babel/core from 7.28.3 to 7.28.4 by @dependabot[bot] in #10753
  • chore(deps): bump the npm_and_yarn group across 2 directories with 2 updates by @dependabot[bot] in #10734
  • chore(): Revisit and reduce conribution guidelines, try to streamline things by @asturur in #10759
  • test(): Add new e2e import test for svg preserve aspect ratio by @asturur in #10766
  • chore(deps-dev): bump @playwright/test from 1.55.0 to 1.55.1 by @dependabot[bot] in #10761
  • chore(): remove fs-extra dev dependency by @Smrtnyk in #10767
  • ci(): Move firefox to headless: false to see if improves passing rate. Renamed config because of deprecation warning by @asturur in #10769
  • chore(): remove moment dev dependency by @Smrtnyk in #10770
  • chore(): up deps by @Smrtnyk in #10771
  • chore(): up dev deps by @Smrtnyk in #10773
  • chore(deps-dev): bump @rollup/plugin-babel from 6.0.4 to 6.1.0 by @dependabot[bot] in #10776
  • chore(deps-dev): bump @types/node from 24.7.0 to 24.7.2 by @dependabot[bot] in #10778
  • BREAKING: change default originX and originY to center/center by @asturur in #10715
  • chore(deps-dev): bump es-toolkit from 1.39.10 to 1.40.0 by @dependabot[bot] in #10777
  • chore(): update playwright by @Smrtnyk in #10780
  • fix(): Prototype pollution risk on text char cache by @asturur in #10782
  • chore(): update major version of vitest by @Smrtnyk in #10786
  • fix(): fix rendering of text when line height is set to 0 by @Smrtnyk in #10785
  • chore(deps-dev): bump @types/micromatch from 4.0.9 to 4.0.10 by @dependabot[bot] in #10788
  • chore(deps-dev): bump @vitest/ui from 4.0.2 to 4.0.3 by @dependabot[bot] in #10787
  • Revert "chore(deps-dev): bump @vitest/ui from 4.0.2 to 4.0.3" by @asturur in #10792
  • chore(deps-dev): bump inquirer from 12.9.6 to 12.10.0 by @dependabot[bot] in #10789
  • update(AligningGuidelines): Fix some bugs and add custom features. by @zhe-he in #10120
  • fix(): BREAKING Fix text positioning by @asturur in #10803
  • feat(): Add configuration parameter for patternQuality in node by @asturur in #10804
  • fix(): Fix the situation where undefined + char exists when calculating couple by @ccOfHome in #10816
  • feat(): Multi touch gesture support with module westures by @asturur in #10813
  • fix(): Fix toDataUrl writing on contextTop by @asturur in #10820
  • Version 7.0 build by @asturur in #10821

New Contributors

Full Changelog: v700-beta1...v700-rc1

Version 6.9.0

08 Nov 16:16
87a0ff7

Choose a tag to compare

What's Changed

  • fix(): Backport cache prototype pollution fix to 6.x by @asturur in #10800

Techinically a breaking change of private code.
That is why the minor bump, otherwise would be a patch.

If you are not interacting with the fabric.charWidthsCache object directly, this release is not breaking

Full Changelog: v680...v690

Version 6.8.0

08 Nov 13:56
819cd58

Choose a tag to compare

What's Changed

fix(): CWE-1333 CWE-400 CWE-730 Simplify some regexes in order to avoid slowness with craft bad string #10746
fix(): CWE-1333 CWE-400 CWE-730 in Text.ts regex #10745
fix(StaticCanvas): After executing loadFromJSON, it unexpectedly adds an objects property to the canvas. #10741
fix(textarea): A form field element has neither an id nor a name attribute. #10172
fix(Canvas): The mouse enter and leave events of child elements will be executed twice. #10699
chore(): Remove mouse wheel console warning by setting default explicitly. #10712
fix(): fix rendering of text when line height is set to 0 #10785

Full Changelog: v671...v680

Thanks to @Smrtnyk and @zhe-he

Version 7.0.0 beta1

24 Aug 06:31
e1ebf4b

Choose a tag to compare

Version 7.0.0 beta1 Pre-release
Pre-release

What's Changed

  • chore(): Update canvas and jsdom by @asturur in #10417
  • ci(): Migrate jest to vitest by @Smrtnyk in #10420
  • chore(): BREAKING: Update browser versions and some dependencies by @asturur in #10488
  • refactor(tests): migrate remaining active selection tests from qunit to vitest by @Smrtnyk in #10490
  • refactor(tests): move circle tests from qunit to vitest by @Smrtnyk in #10491
  • ci(): update playwright by @Smrtnyk in #10496
  • ci(): Node 22 hiccups. See if with canvas 3 native dependencies are still necessary for running ci by @asturur in #10498
  • refactor(tests): move point tests from qunit to vitest by @Smrtnyk in #10492
  • ci(): Try to write an alternative action for CHANGELOG.MD by @asturur in #10504
  • ci(): Refine changelog warn action by @asturur in #10505
  • chore(): remove axios by @Smrtnyk in #10500
  • refactor(tests): move observable tests from qunit to vitest by @Smrtnyk in #10501
  • ci(): Avoid failure status when the intent is to comment by @asturur in #10508
  • chore(): update typescript to 5.8 by @Smrtnyk in #10514
  • ci(): Write a workflow that can comment coverage on the PR by @asturur in #10516
  • ci(): New safe worflow for build stats by @asturur in #10518
  • chore(): dependencies maintenance by @Smrtnyk in #10497
  • refactor(tests): move group tests from qunit to vitest by @Smrtnyk in #10495
  • refactor(tests): move canvas tests from qunit to vitest by @Smrtnyk in #10499
  • feat(Gradient): BREAKING: Remove opacity from colorstops in live Gradient class by @asturur in #9622
  • chore(tests): Convert shadow tests from qunit to vitest by @asturur in #10522
  • ci() fix the action for build stats by @asturur in #10525
  • refactor(tests): move util tests from qunit to vitest by @Smrtnyk in #10519
  • refactor(tests): move StaticCanvas tests from qunit to vitest by @Smrtnyk in #10521
  • refactor(tests): move brushes tests from qunit to vitest by @Smrtnyk in #10528
  • refactor(tests): move cache tests from qunit to vitest by @Smrtnyk in #10529
  • refactor(tests): move ellipse tests from qunit to vitest by @Smrtnyk in #10530
  • refactor(tests): move line tests from qunit to vitest by @Smrtnyk in #10531
  • refactor(tests): move pattern tests from qunit to vitest by @Smrtnyk in #10532
  • refactor(tests): move polyline tests from qunit to vitest by @Smrtnyk in #10533
  • chore(): BREAKING: Remove minore deprecations by @asturur in #10524
  • chore(): Update bug report by @github-actions[bot] in #10535
  • refactor(tests): move canvas dispose tests from qunit to vitest by @Smrtnyk in #10536
  • refactor(tests): move object origin tests from qunit to vitest by @Smrtnyk in #10538
  • refactor(tests): move object geometry tests from qunit to vitest by @Smrtnyk in #10539
  • refactor(tests): move Text.toSVG tests from qunit to vitest by @Smrtnyk in #10540
  • refactor(tests): move intersection tests from qunit to vitest by @Smrtnyk in #10541
  • refactor(tests): move parser tests from qunit to vitest by @Smrtnyk in #10542
  • refactor(tests): remove jest-snapshot package by @Smrtnyk in #10543
  • ci(): Create an action that creates and uploads a JSON changelog for later updates by @asturur in #10549
  • refactor(tests): move collection mixin tests from qunit to vitest by @Smrtnyk in #10544
  • refactor(tests): move control handlers tests from qunit to vitest by @Smrtnyk in #10545
  • refactor(tests): move image tests from qunit to vitest by @Smrtnyk in #10546
  • refactor(tests): move image filters tests from qunit to vitest by @Smrtnyk in #10547
  • refactor(tests): migrate polygon tests from qunit to vitest by @Smrtnyk in #10551
  • refactor(tests): move text tests from qunit to vitest by @Smrtnyk in #10553
  • refactor(tests): move object interactivity tests from qunit to vitest by @Smrtnyk in #10554
  • refactor(tests): migrate itext tests from qunit to vitest by @Smrtnyk in #10555
  • refactor(tests): move textbox tests from qunit to vitest by @Smrtnyk in #10556
  • refactor(tests): Migrate Env, ClassRegistry, Rect to vitest by @asturur in #10557
  • refactor(tests): move path tests from qunit to vitest by @Smrtnyk in #10552
  • refactor(tests): migrate object tests to vitest by @Smrtnyk in #10562
  • refactor(tests): migrate itext click behavior tests from qunit to vitest by @Smrtnyk in #10559
  • refactor(tests): migrate webgl tests to vitest by @Smrtnyk in #10560
  • refactor(tests): migrate object clip path tests to vitest by @Smrtnyk in #10561
  • refactor(tests): move canvas events tests from qunit to vitest by @Smrtnyk in #10563
  • chore(tests): Remove old unit test harness by @asturur in #10567
  • chore(): update vitest by @Smrtnyk in #10565
  • chore(): update playwright by @Smrtnyk in #10564
  • Chore() more qunit post cleanup by @Smrtnyk in #10569
  • feat(tests): add chromium browser mode for unit tests by @Smrtnyk in #10568
  • ci(): Modify test run action by @asturur in #10570
  • refactor(tests): move svg export visual tests to playwright by @Smrtnyk in #10575
  • refactor(): remove @ts-nocheck in straighten.ts by @Smrtnyk in #10572
  • refactor(tests): move to data url tests from qunit to playwright by @Smrtnyk in #10581
  • feat(tests): add firefox to vitest browser tests by @Smrtnyk in #10571
  • ci(): Add firefox vitest to ci by @asturur in #10586
  • feat(Text): Add support for Intl.segmenter by @Kudze in #10584
  • chore(): Deprecate line by @asturur in #10598
  • refactor(tests): move text path tests from qunit to playwright by @Smrtnyk in #10590
  • chore(): fix dependencies vulnerabilities reported by npm audit by @Smrtnyk in #10599
  • refactor(tests): move clip path tests from qunit to playwright by @Smrtnyk in #10602
  • chore(tests): replace unmaintained http-server with vercels serve by @Smrtnyk in #10603
  • refactor(tests): move controls rendering test cases from qunit to playwright by @Smrtnyk in #10605
  • refactor(tests): move generic rendering tests from qunit to playwright by @Smrtnyk in #10608
  • refactor(tests): move group layout tests from qunit to playwright by @Smrtnyk in #10609
  • refactor(tests): move global composite operation tests from qunit to playwright by @Smrtnyk in #10610
  • refactor(tests): move resize filter test cases from qunit to playwright by @Smrtnyk in #10615
  • refactor(tests): move free draw rendering tests from qunit to playwright by @Smrtnyk in #10616
  • refactor(tests): move text rendering cases from qunit to playwright by @Smrtnyk in #10613
  • ci(): fix Coverage is not being reported anymore by @asturur in #10617
  • refactor(tests): move svg import tests from qunit to playwright by @Smrtnyk in https://github.com/fab...
Read more

Version 6.7.1

21 Jul 18:35

Choose a tag to compare

What's Changed

  • fix(SVGImport): Allow for correct style element parsing by @asturur in #10688

Full Changelog: v670...v671

Version 6.7.0

06 Jun 05:14
a587ed6

Choose a tag to compare

What's Changed

  • feat(Text): Support for text decoration thickness by @asturur in #10647

Full Changelog: v667...v670

Version 6.6.7

31 May 17:06
977f797

Choose a tag to compare

What's Changed

Full Changelog: v666...v667