Changelog

2.9.4

Jun 18, 2024

  • Validate translation with setTranslations(json, { validate: true })

  • Add removable property into check for locked getter

2.9.3

Jun 17, 2024

  • Fixed in video render

  • Style fixes

  • Limit font size when large content is pasted into a text element

  • Optimizations for loading of assets in side panel, done by some changes in useInfiniteAPI hook

2.9.0

Jun 12, 2024

  • Align for groups in position menu

  • New UI for animations and effects

2.8.3

Jun 4, 2024

  • Fix some crashes on dragging

  • Fix change-font-size overflow logic for Japanese text

2.8.1

Jun 4, 2024

  • Make the default mobile breakpoint bigger - 800px

  • Images snaps to bleed area, instead of page content, if bleed is visible

  • Locking also locks removeEnabled

  • Better list styles in rich text mode

  • Gradients for right text mode

  • Allow decimal inputs in Resize panel

2.8.0

May 28, 2024

  • "Videos" side panel for animation mode

2.7.4

May 28, 2024

  • Better magic resize

  • Fixes for list render in rich text mode

2.7.2

May 27, 2024

  • Add some warning when <Toolbar /> has incorrect props in components

2.7.1

May 27, 2024

  • Bullet and ordered list for rich text editor mode

  • Fix rich text editor export issues when text is empty

2.6.5

May 27, 2024

  • store.toSVG() export fixes

  • Faster render in batch scenarios (for GIF and video)

2.6.3

May 23, 2024

  • Fix empty canvas in Chrome browser when tab was inactive

2.6.2

May 22, 2024

  • Better .svg export with store.saveAsSVG()

2.6.1

May 20, 2024

New "Apply Mask" flow

Now, when you select an image, you can click on "Apply mask," which opens a special side panel. From there, you can choose a predefined shape to mask your image.


New masking flow for images dropped into svg shape

Previously, when you dropped an image into an svg element on the canvas, it filled the svg but came with limitations like no filters or crop adjustments. With the new update, here's what happens when you drop an image into an svg element:

  • The svg element is removed from the canvas.

  • An image element is placed in its spot.

  • The clipSrc of the new image is set to the src of the removed svg.

This means you'll now have a masked image on the canvas, with all the functionality of a regular image, including filters and crop adjustments.

Text jumps are fixed

Finally! I've tackled the most annoying bug in Polotno. Text jumps should be much less noticeable when you start editing text, making for a smoother experience. Please let me know how it works for you now.

Before:

After:

2.5.2

May 9, 2024

  • UI fixes in pages timeline component

  • Control google fonts variants in Rich Text

  • Increase render speed in GIF output

2.5.1

May 7, 2024

  • New PagesTimeline component to preview pages and animations

import { PagesTimeline } from 'polotno/pages-timeline';

// in render
<PolotnoContainer>
  <SidePanelWrap>
    <SidePanel store={store} sections={DEFAULT_SECTIONS} />
  </SidePanelWrap>
  <WorkspaceWrap>
    <Toolbar store={store} />
    <Workspace store={store}  />
    <ZoomButtons store={store} />
    {/* Add after zoom buttons */}
    <PagesTimeline store={store} />
  </WorkspaceWrap>
</PolotnoContainer>
  • Fixed for bold text rendering in Rich Text mode

2.4.32

May 2, 2024

  • Typescript fixes

2.4.31

Apr 25, 2024

  • store.play({ repeat: true }) for infinite play

  • Hide play/pause buttons from video element on preview

  • Optimize styles for rules, added CSS classes to them

  • Control font load timeout

2.4.27

Apr 22, 2024

  • When font is removed from "Text" side panel, it will automatically reset such fonts on the canvas to Roboto font

  • Descrease font loading timeout

2.4.26

Apr 16, 2024

  • Fix export of image with filters on some pixel ratio configurations

2.4.25

Apr 16, 2024

  • Saving custom data into store with store.set({ custom: { someData: 'someValue' }})

  • Fix crashes on loading of tiny images

  • Typescript fixes

2.4.24

Apr 9, 2024

  • Fix HTML text render

  • Better export of image when high pixelRatio is used

  • Fixes in SVG colors replacement

  • Add new translations

  • Better font loading timeout control

  • Fix some crashes

2.4.23

Mar 16, 2024

  • Fix animations for move" direction"

2.4.22

Mar 15, 2024

  • Network usage optimizations

  • Lazy loading of images in Side Panel

  • Fix page size on html export

2.4.21

Mar 14, 2024

  • Remove group from export when it has `showInExport: false` property

  • Remove html data from pasted text for rich text feature

2.4.20

Mar 6, 2024

  • Fix loading of some svg files

  • Fix loading of fonts with bad file names

2.4.19

Mar 4, 2024

  • Improve performance of resizing of many elements

  • Better detection if visible pages in the workspace

  • Update internal dependencies

2.4.18

Feb 27, 2024

  • `elementHook` for html export

2.4.17

Feb 26, 2024

  • Animation support for `rich-text` feature

2.4.16

Feb 19, 2024

  • Fix distance display on canvas when several elements are selected

2.4.15

Feb 14, 2024

  • Better font loading detection

  • Fix custom toolbar API for `figure` elements

2.4.13

Feb 13, 2024

  • Fix blur filter picker

2.4.12

Feb 9, 2024

  • Performance improvements

  • Fix exporting on some text variations

2.4.10

Jan 31, 2024

  • `altCloneEnabled` for workspace

  • Better detection of used colors in color picker

  • Second tap on selected side panel on mobile will close it

2.4.9

Jan 26, 2024

  • Fix fails on exports for large designs or large pixelRatio values

2.4.8

Jan 23, 2024

  • Mobile style fixes

  • Fix deep grouping

  • Pass `React.Context` into `<Tooltip />` component

2.4.7

Jan 18, 2024

  • Better resize of text when it has effects

  • Better filters picker when screen is small

2.4.6

Jan 17, 2024

  • Better smart resize for figure elements

  • Fix incorrect `text` export when it has some styles

2.4.5

Jan 15, 2024

  • Fix broken magic resize

2.4.4

Jan 9, 2024

  • Fix "Layers" menu scrolling on mobile devices

  • Translation fixes

  • Typescript fixes

2.4.3

Jan 4, 2024

  • Some infinite scroll hotfixes

2.4.2

Jan 4, 2024

  • Infinite scroll for icons in the Elements side panel

  • Fix copy/paste offset for groups

  • More options for frameworkless usage of Polotno.

2.4.1

Jan 2, 2024

  • Gradients for figures strokes are disabled

  • UX improvements for stroke toolbar button for figure elements

2.4.0

Dec 28, 2023

  • Gradient for figures

  • Video rendering fixes

2.3.5

Dec 22, 2023

  • Tooltip fixes

2.3.4

Dec 22, 2023

  • Touch device fixes

  • Memory usage optimizations

2.3.1

Dec 20, 2023

  • Fix bug with corner radius for `rect` shape of `figure` element

  • Change style of figures side panel

2.3.0

Dec 18, 2023

  • Fix JSON loading when some values are `null`

  • Rewrite of elements side panel with new figure" elements

  • Better image quality in the editor for some zooming cases

  • HTML export fixes

  • Use pinch for zoom in crop mode

2.2.5

Dec 7, 2023

  • Performance improvements

  • Fix image cropping when image has resizable: false

2.2.3

Dec 6, 2023

  • Fix image cropping

2.2.2

Dec 6, 2023

  • Performance fixes

  • Fix video preview in the trim panel

  • Fixes for `figure` rendering

2.2.1

Dec 5, 2023

  • Make consistent zoom for zoom buttons and touchpad zooming

  • Little UX fixes in the toolbar

  • Fix bug with group selection\

  • Admins will see all elements in the Layers menu

2.1.2

Nov 27, 2023

  • Extended ability to create your own custom element models. See Custom Element for more details.

  • Little style fix in custom fonts panel in Text side panel

2.1.1

Nov 27, 2023

  • Ability to trim videos

  • Image export fixes

2.1.0

Nov 17, 2023

  • Hold ALT + drag start to copy selected elements

  • Add number inputs into animation picker

2.0.12

Nov 10, 2023

  • Fix preset colors in gradient picker

  • Fix page background in HTML export

2.0.11

Nov 10, 2023

  • Little internal changes for better support of circular dependencies

2.0.10

Nov 9, 2023

  • Position menu UI updates

2.0.9

Nov 9, 2023

  • Tooltip position fixes

2.0.8

Nov 1, 2023

  • Undo/redo fixes

2.0.7

Nov 1, 2023

  • Html render fixes

2.0.6

Nov 1, 2023

  • Better video support

  • Resize behavior improvements

  • Update internal dependencies

2.0.4

Oct 20, 2023

  • Delay and duration inputs for animation picker

2.0.3

Oct 17, 2023

  • Redo fixes when several texts are resized

2.0.2

Oct 16, 2023

  • Some hotfixes for new version

2.0.0

Oct 13, 2023

The new major version of Polotno is here! It is a huge update with some breaking changes. Please read this document carefully to migrate your application to the new version.

  • Breaking: Update @blueprintjs/core to version 5.

  • Breaking: deprecated properties that starts from "hide" are removed from <Toolbar /> component. If you don't have any deprecation warnings in the console with the last version of Polotno, you can skip this step.

  • Ability to customize what variations of Google Fonts to load. For more info see Fonts Docs.

  • Possible breaking: Better support for bold and italic for Google fonts. It may effect text layout in your designs. If you want to keep old behavior, you can use setGoogleFontsVariants('400,400italic') API.

  • New: Distribute functionality in position menu. It will distribute selected elements with equal distance between them.

  • New: Tooltip for canvas elements is enabled by default.

  • Ability to customize Transformer and Highlighter styles. See Workspace Style for more details.

  • Fix selection of element when it is select on non-active page

  • Some components rename in polotno/toolbar/*, watch for typescript definitions to find new names.

Migration guide

Install last version of polotno package:

npm install polotno@latest

If you explicitly using @blueprintjs/core package (it is listed in your package.json) make sure you update it too:

npm install @blueprintjs/core@5

For blueprint related migration you can read Blueprint migration guide.

Update styles import

If you import from js

// old
import '@blueprintjs/icons/lib/css/blueprint-icons.css';
import '@blueprintjs/core/lib/css/blueprint.css';
import '@blueprintjs/popover2/lib/css/blueprint-popover2.css';

// new
import '@blueprintjs/core/lib/css/blueprint.css';

If you import style via CDN

<!-- old -->
<link
  href="https://unpkg.com/@blueprintjs/icons@4/lib/css/blueprint-icons.css"
  rel="stylesheet"
/>
<link
  href="https://unpkg.com/@blueprintjs/core@4/lib/css/blueprint.css"
  rel="stylesheet"
/>
<link
  href="https://unpkg.com/@blueprintjs/popover2@1/lib/css/blueprint-popover2.css"
  rel="stylesheet"
/>

<!-- NEW -->
<link
  href="https://unpkg.com/@blueprintjs/core@5/lib/css/blueprint.css"
  rel="stylesheet"
/>

Then replace all instances of bp4- with bp5- in your styles.

1.14.6

Sep 13, 2023

  • Ability to set crop size when you export into PDF. `store.saveAsPDF({ cropMarkSize: 20 })`

  • Ability to hide `Admin` button from toolbar via `components` API.

1.14.5

Sep 13, 2023

  • Internal bugs fixes

1.14.1

Sep 7, 2023

  • Tooltip position fixes

  • Better localization for animation UI

  • Fix crash on some cases of group usage

1.14.0

Sep 7, 2023

  • New `Tooltip` component.

1.13.0

Aug 23, 2023

  • Changes logic in smart resize. It should work better now and keep layout of elements.

  • Update Resize side panel. More options and better UX.

1.12.6

Aug 6, 2023

  • Fix infinite loop for text background rendering

  • Fix `fileName` argument for `store.saveAsHTML()`

1.12.5

Aug 1, 2023

  • Fix `fileName` property for `store.saveAsGIF()` method

1.12.4

Jul 26, 2023

  • Ability to disable rotation snap when ctrl or meta key is pressed

  • Little style changes of side panel.

  • Add special class name `polotno-font-item` for uploaded font item in Text side panel

1.12.3

Jul 19, 2023

  • Fix for bundled version

1.12.2

Jul 18, 2023

  • Fix crashes on `line` elements usage

1.12.1

Jul 13, 2023

  • Better export with `store.toHTML()`. Now it should NOT embed images into file. It will make output much smaller.

  • Fix crashes in some cases

1.12.0

Jul 13, 2023

  • New `store.clear()` method to purge all elements and pages from the store

  • Remove some logs from the console

1.11.0

Jul 11, 2023

  • Alpha release of animations support

  • Fetch function customization for `useInfiniteAPI`.

  • Ability to change type labels in layers menu via translations

1.10.0

Jun 22, 2023

  • Force mobile view when `polotno-mobile` class is added to the any parent container

  • Update internal dependencies

1.9.9

Jun 20, 2023

  • Fixes for Position" button on the toolbar

1.9.8

Jun 14, 2023

  • Fix vertical text resize

  • Fix image drop from side panels

1.9.7

Jun 5, 2023

  • Make rotate handle of transformer more beautiful

  • Argument fixes for `onSelect` of `ImagesGrid` component

1.9.6

May 22, 2023

  • Fix API to get image size to use `anonymous` mode for CORS images

1.9.5

May 22, 2023

  • Show used fonts first in the font family dropdown

  • Fix deselect of the element when you click on it with ctr or shift key pressed

1.9.4

May 14, 2023

  • Fix render of text borders

1.9.2

May 8, 2023

  • Some homework for video support

1.9.1

Apr 21, 2023

  • Picker color from canvas on any color picker

1.8.7

Apr 17, 2023

  • Update deps. May work a bit faster.

1.8.6

Apr 13, 2023

  • Update dependencies

  • Fix color format issues for `svg` element toolbar color change

1.8.5

Apr 10, 2023

  • Fix text edit inside group

  • Fix sidepanel size on mobile devices

  • Change default background query

  • Fixes for HTML text renderer

1.8.1

Mar 22, 2023

  • Fix html display on text element edits

1.8.0

Mar 22, 2023

  • Some homework for video support, but it is not ready yet

1.7.6

Mar 13, 2023

  • Fixes for html text renderer

  • Support for `line` and `group` elements in `store.toHTML()` method

  • Better scrolling on `store.selectPage(id)` method

1.7.4

Mar 1, 2023

  • Fix incorrect dragging when you try to move unselect child of a group

  • Better line height control in the toolbar (it will not move line )

1.7.3

Feb 26, 2023

  • Fixes for html text renderer

1.7.2

Feb 27, 2023

  • Fix several downgrading bugs from previous version on resize of `image` element

  • `page.setSize({ width, height })` API

  • Fix text resizing with vertical resize is enabled

1.7.1

Feb 24, 2023

  • Huge memory usage optimizations for `svg` elements.

  • `line` elements fixes

  • Fix `store.waitLoading()` indicator when you have `image` elements with `clipSrc` property

1.7.0

Feb 21, 2023

  • **New element type `line`. You can use it for both lines and arrows!**

  • Fix some typescript definitions

  • Internal dependencies updates

1.6.4

Feb 15, 2023

  • Slightly change label when you resize elements for better readability

1.6.3

Feb 15, 2023

  • Some fixes for experimental HTML text renderer

  • Better color picker for svg elements in the toolbar

  • Fix bad background position on some mask elements

1.6.2

Feb 7, 2023

  • More ruler fixes

  • Huge improvements for `store.toHTML()` method

  • Little ts fixes

1.6.1

Feb 1, 2023

  • Rulers fixes

  • Internal dependencies updates

1.6.0

Jan 25, 2023

  • Show object size and rotation on transform

  • Many fixes for rulers render

  • Fix background effect for text with vertical align

1.5.0

Jan 20, 2023

  • New Background" effect for text elements. Cool and shy! Now all `text` elements have additional properties `backgroundEnabled`

1.4.4

Jan 12, 2023

  • New strike style button for `text` elements

  • Fix align top when several elements are selected

  • `onKeyDown` property for `` component to overwrite default keydown handler

  • API to control preset colors in the color picker.

  • Fix locking button for groups in "Layers" menu

  • new property `keepRatio` for `image` elements.

1.4.2

Jan 4, 2023

  • Hotfix to resolve incorrect locking behavior

1.4.1

Jan 2, 2023

  • **New feature!** Groups! You can now group elements together and move them as one. To group elements, select them and click on the Group" button in the toolbar.

1.3.1

Nov 24, 2022

  • Gradients now may have several colors and you can change their position.

1.2.5

Nov 21, 2022

  • Little UI fixes

  • Fix incorrect resize for HTML text renderer

1.2.4

Nov 9, 2022

  • Optimize Polotno for iOS Safari usage

  • Fix touchpad zooming

  • Add numeric input for Corner Radius attribute in Filters menu

  • Reactive flow for `setGoogleFonts` function

1.2.3

Nov 2, 2022

  • Fix incorrect svg display for some files

  • Fix many crashes across the app

1.2.2

Oct 28, 2022

  • Smoother scrolling when design has many pages

  • Fixed incorrect scroll position, when you select page via API

  • Set default `crossOrigin` to `anonymous` for `` component

  • Fix icon centering in side panel

1.2.1

Oct 24, 2022

  • Performance improvements. Projects with many pages and many large images should work much faster.

  • New translations for the toolbar.

1.2.0

Oct 17, 2022

  • Linear gradient support for fill of text elements

  • Fix bug on incorrect export while user is editing text

  • Ignore placeholder" text elements in export

  • Fix incorrect console warnings on PASTE action

  • Fix color picker icon in "background" side panel

  • Clipboard now preserves order of selected elements

  • Clipboard now works across multiple browser's tabs

  • Tooltip fixes in the toolbar (showing on bottom)

  • Fix cloning of SVG elements when they have `cornerRadius` property"

1.1.1

Oct 7, 2022

  • Enabled corner radius control in filters for `svg` elements

1.1.0

Sep 29, 2022

  • Show elements outside of page bounding box. Make them selectable.

  • `page.background` now supports base64 data urls.

1.0.0

Sep 26, 2022

  • New API to replace specific inputs in the toolbar.

  • Better crop defaults when images is replaced with drag&drop from side panel

  • Deleting elements with API shouldn't deselect all elements

  • UI fix for unknown Google fonts

News, updates and promos – be the first to get 'em

News, updates and promos – be the first to get 'em

News, updates and promos – be the first to get 'em