# Framer Library

## [1.2.24] 2021-02-17

### Added

-   `ControlType.Array` now supports items of `ControlType.Object`
-   `Rect.transform(rect, matrix)`

### Removed

-   The `contentState` property of the `Text` component has been removed.
-   DraftJS dependency was removed.

## [1.2.23] 2021-02-15

### Fixed

-   API doc formatting

## [1.2.22] 2021-02-12

### Fixed

-   API doc generation

## [1.2.21] - 2021-02-11

### Added

-   `ControlType.Object`

### Improved

-   Update documentation for `ControlType.FusedNumber` Property Controls.
-   Renamed array item type from `propertyControl` to `control`

## [1.2.20] - 2021-02-02

### Fixed

-   Side padding props work when used on Stack in code without also using the
    `paddingPerSide` property.

## [1.2.19] - 2021-02-02

### Improved

-   Updates framer-motion to 3.3.0-beta.22

## [1.2.18] - 2021-02-01

### Improved

-   Updates framer-motion to 3.3.0-beta.19

## [1.2.17] - 2021-02-01

### Improved

-   Internal changes
-   Updates framer-motion to 3.3.0-beta.18

## [1.2.16] - 2021-01-26

### Improved

-   Updates framer-motion to 3.2.2-rc.1
-   Updates to Framer's Page component to improve compatibility when used with
    framer-motion's layout animations.
-   Internal changes

## [1.2.15] - 2021-01-21

### Improved

-   Internal changes

## [1.2.14] - 2021-01-20

### Improved

-   Internal changes

## [1.2.13] - 2021-01-18

### Improved

-   Internal changes

## [1.2.12] - 2020-12-23

### Improved

-   Updates the bundled Framer Motion library to 3.0.1

### Added

-   `Frame` now supports `minWidth` and `minHeight` as props.
-   Internal Enum control now accept two optional rendering options `segmentedControlDirection` and `showIconWithTitle`.

### Changed

-   Internal changes related to how Stacks are rendered on the canvas.

## [1.2.11] - 2020-12-02

### Added

-   `while-` props accept lists of variants
-   `whileDrag`
-   Internal Vector component now accepts a `d` prop, which is a string that will be used for an SVG path's `d` attribute. `d` will be preferred over a `calculatedPath` List.
-   Internal components Vector and SVG now accept `style` and `className`, as well as `variants`, and `transition` prop, which will be applied to the main element of a Vector, which is now either a `motion.path` or a `motion.g`.

## [1.2.10] - 2020-11-19

### Improved

-   Minor changes.

## [1.2.9] - 2020-10-26

### Added

-   Internal `ControlIcon` type, can be used to enrich enum controls
-   Use new control icons for Page component alignment
-   Updated `animate` to support the new Framer Motion syntax.

### Changed

-   Internal changes related to communicating code component sizes to the editor.

## [1.2.8] - 2020-10-01

### Improved

-   Updates the bundled Framer Motion library from 2.6.14-rc.3 to 2.7.4

### Fixed

-   Animating between frames where one has no borderRadius and the other does

### Improved

-   Updated code components to, by default, disable children from automatically having a layoutId generated and applied.

### Added

-   Added support for manually toggling whether descendants of code components generate layoutIds by wrapping descendants with `<AutomaticLayoutIds enabled={boolean}>`

### Added

-   `loadFont` function for loading web fonts

## [1.2.7] - 2020-09-18

### Improved

-   Updates the bundled Framer Motion library from 2.6.7-rc.1 to 2.6.14-rc.3
-   Make sure Scroll and Page component control titles still fit in new property panel

### Fixed

-   Animating to 0 values with overrides should no longer appear instant
-   Navigating to the previous navigation target after a push transition should no longer animate unexpectedly

## [1.2.6] - 2020-09-08

### Added

-   Add support for text transform.
-   Add support for text decoration.
-   Add support for different text line height units.

### Improved

-   Updates the bundled Framer Motion library from 2.0.0-beta.76 to 2.6.7-rc.1, which includes the most recent release of framer-motion
-   Improved latency between user interaction and the navigation being performed when using Navigation in large Framer files

### Fixed

-   Using Design Components in Code with AnimateSharedLayout should work as expected.

## [1.2.4] - 2020-06-25

### Improved

-   Updates the bundled Framer Motion library from 2.0.0-beta.72 to 2.0.0-beta.76 which includes performance improvements
-   Improves performance of Magic Motion transitions in very large projects
-   No longer allow Text content to be selected

### Fixed

-   Fixed an issue where a Magic Motion transition could prevent the visible scroll container from being scrollable.
-   Fixed an issue where Magic Motion transitions might throw an exception when performed after an instant transition.
-   SVG layer dependency on canvas zoom

## [1.2.3] - 2020-06-08

### Added

-   useIsInCurrentNavigationTarget hook to allow you to update code components when the target they are in is navigated to.

## [1.2.2] - 2020-05-19

### Fixed

-   Fixed an issue where initial magic motion transitions could cause a subtle flash

## [1.2.1] - 2020-05-18

### Fixed

-   Fixed an issue where Stacks were not surfaced as part of the library

## [1.2.0] - 2020-05-18

In addition to the changes listed below, this version also updates the bundled Framer Motion library from 1.6.7 to 2.0.0-beta.72, which includes a bunch of fixes, and a few new features. See [Framer Motion's changelog](https://github.com/framer/motion/blob/master/CHANGELOG.md) for more.

-   Upgraded React to 16.12.
-   Improvements to design components for Framer Web
-   Minor internal changes to code component rendering that enable layout metrics to be communicated to the editor

### Improved

-   Components with Overrides applied can now be more easily identified in the React Developer tools Chrome extension.
-   Added `displayTextArea` to `ControlType.String`, to request a multi-line input control
-   Scroll now uses native scroll offset instead of a transform
-   Scroll now uses native scroll constraints for layout
-   Adds support for the new Magic Motion transition type to Navigation
-   Improves Navigation to preserve component and scroll state when navigating to a target that has already been navigated to

### Fixed

-   Fixed Page component not snapping to the initial page
-   Fixed Page component current page event not triggering for the first page
-   Fixed Page component current page when nonzero initially
-   Fixed Page component responsive behavior
-   Fixed an issue where auto sizing Text would shrink inside a Stack
-   Remove vertical translation during modal transition to mimic the latest iOS behaviour
-   Fixed a bug where the DataObserver would not reset on unmount.
-   Fixed an issue where Text would not wrap correctly
-   Fixed an issue where horizontally centered Text wouldn't be positioned correctly
-   Fixed uploaded SVG id collisions
-   Fixed an issue with color alpha comparison
-   Auto sized text height
-   Improved empty states for built-in components

### Removed

-   Stack from the package.json component map
-   Deprecated Stack, this component was only rendered on the Framer Canvas and is now part of the Framer app
-   Removed Scroll and Page event handler controls, they are not yet useful from UI

## [1.1.7] - 2020-01-21

### Fixed

-   Fixed a bug that made elements blurry upon zoom

## [1.1.6] - 2019-12-13

### Improved

-   Backward compatibility
-   Added a `cancel` method to debounced functions, which allows you to cancel pending debounced calls
-   Improved empty states for built-in components

### Fixed

-   createData would not re-render its subscribers when one of them updates the value immediately in its

## [1.1.5] - 2019-10-21

### Improved

-   Navigation Action API

## [1.1.4] - 2019-10-08

### Fixed

-   Add fallback for SF Pro font to support iOS 13

## [1.1.3] - 2019-09-18

### Added

-   Allow for `ControlType.ComponentInstance` in actions
-   Expose internal DataObserverContext
-   Add internal `disableDevice` flag to `getConfigFromPreviewURL()`

### Improved

-   `ControlType.Enum` now supports string, number, boolean, null, and undefined values
-   `ControlType.SegmentedEnum` has been deprecated, use `ControlType.Enum` instead and enable `displaySegmentedControl`
-   Page documentation
-   Stack CSS export

### Fixed

-   Page direction lock
-   Make `size` with fraction values work for `Frame`s inside a `Stack`
-   Collect shadows CSS for text nodes as `text-shadow`
-   Removed default actions from library

## [1.1.2] - 2019-09-04

Minor performance related changes

## [1.1.1] - 2019-08-30

-   Minor performance related changes

## [1.1.0] - 2019-08-28

## Improved

-   Speed of Stack component
-   Page component rendering
-   Support for scrolling with mouse wheel

## [1.0.18] - 2019-08-13

-   Upgraded Framer Motion from 1.4.2 to 1.6.0.

### Added

-   Add `ControlType.EventHandler`
-   Google web fonts support

### Fixed

-   Fix DataObserver not updating when being notified
-   Page rendering by no longer relying on a (re-)size observer for the initial rendering pass
-   Blurry Page content

## [1.0.17] - 2019-08-06

### Added

-   Added `useLog`, `useOpenURL`, and `useNavigateTo` actions.
-   `useNavigation` hook for performing navigation actions from code.
-   `NavigationConsumer` to perform navigation actions from class components.

## [1.0.16] - 2019-07-30

### Added

-   Added `obscured` attribute to the `ControlType.String`. It makes the input value visually concealed
-   DataContext
-   Action

## [1.0.15] - 2019-07-23

-   Upgraded Framer Motion to 1.2.6

### Fixed

-   Click handler in instant navigation transitions

## [1.0.14] - 2019-07-10

### Removed

-   Removed internal `updateComponentLoader` function

## [1.0.13] - 2019-07-02

### Fixed

-   Scroll bug fixes

## [1.0.12] - 2019-06-25

### Added

-   Added `hslToString` method in `ConvertColor`

## [1.0.11] - 2019-06-17

### Fixed

-   `url()` from `framer/resource` returning not returning correct values when multiple projects are open

## [1.0.10] - 2019-06-14

-   Upgraded Framer Motion to 0.19.1

### Fixed

-   Sizing issues with Scroll content

## [1.0.10] - Unreleased

### Added

-   Added deprecatation warnings for `Animatable` and `animate`.
-   Updating `animate` to support `MotionValue`s for backwards-compatibility.

## [1.0.9] - 2019-06-06

### Added

-   Add `framer/resource` to code editor

### Improved

-   Scroll, ControlTypes documentation
-   Error messages when components are not exported.
-   Performance with large images

### Fixed

-   Jittery link transition animations. Animate `deprecatedFrame` `x`/`y` instead of `top`/`left`
-   Scroll size

## [1.0.8] - 2019-05-29

### Added

-   Added `RenderTarget` to the public types

### Fixed

-   Missing `contentOffsetX` and `contentOffsetY` properties of `Page`
-   Using `delay` for transitions
-   Animating with color tokens
-   Double border when using border overrides in Framer X
-   Removed accidental dependencies
-   Scroll component not resizing correctly

### Improved

-   Performance in Framer X

## [1.0.7] - 2019-05-21

### Improvements

-   Radial gradient improvements.
-   Upgraded Framer Motion dependency to 0.18.0.

### Removed

-   Revert fix for border bleeding bug.

## [1.0.6] - 2019-05-17

## [1.0.5] - 2019-05-16

## [1.0.4] - 2019-05-09

-   Upgraded Framer Motion to 0.16.11

### Fixed

-   Positioning of Stack

## [1.0.2] - 2019-05-07

### Fixed

-   Issue with positioning of Design Component instances

## [1.0.1] - 2019-05-07

This release brings an all new API, read the documentation here: https://www.framer.com/api

## [0.10.10] - 2019-03-26

## [0.10.9] - 2019-02-27

## [0.10.8] - 2019-02-19

## [0.10.7] - 2019-02-18

## [0.10.6] - 2019-02-13

### Fixed

-   Availability of Property Control Types

## [0.10.5] - 2019-01-31

### Fixed

-   Images in a code component could be hidden on the canvas.

## [0.10.4] - 2019-01-29

### Improved

-   Moved error and placeholder states into Vekter for X15

## [0.10.3] - 2019-01-24

### Fixed

-   Device images not showing in when viewing a hosted project

## [0.10.2] - 2019-01-21

### Fixed

-   Navigation component showing the wrong screen
-   `onTapStart` for touch environments
-   Stacks in design components having the wrong background
-   Properties getter has been replaced by `this.props` with better typing
-   Text wrapping could break when switching between Fixed and Auto
-   Miscellaneous cleanup

## [0.10.1] - 2018-12-19

### Added

-   `onMouseEnter` and `onMouseLeave` events to Frame

### Fixed

-   Event handlers being called twice in Code overrides
-   Device masks are no longer shown on actual devices

## [0.10.0] - 2018-12-11

### Breaking changes

-   `PageContentDimension` is no longer an enum but a union type of "auto" and "stretch" which means that if you were using `PageContentDimension.Stretch` you should now replace it with `"stretch"`
-   `PageEffectDefault` has been renamed to `PageEffect`

### Improved

-   Navigation overlays
-   Added inline documentation in VSCode

### Fixed

-   Types for Stack and Page components
-   Restored Animatable.set in type public file

## [0.9.7] - 2018-11-22

### Fixed

-   Perspective in Page component

## [0.9.6] - 2018-11-21

### Added

-   New Devices: iPhone XS, iPhone XR, iPhone XS Max, Pixel 3, Pixel 3XL, Galaxy S9

## [0.9.5] - 2018-11-16

### Fixed

-   Navigation container background

## [0.9.4] - 2018-11-16

### Fixed

-   Navigation goBack transitions

## [0.9.3] - 2018-11-14

### Fixed

-   Handling of errors in Code Components

## [0.9.2] - 2018-10-31

### Fixed

-   Correctly calculate `currentPage` of PageComponent on initialization.

### Improved

-   Performance of `isEqual`

## [0.9.1] - 2018-10-30

### Improved

-   Component Loader error handling

## [0.9.0] - 2018-10-24

### Added

-   Page component
-   Property Control types for Arrays and Objects
-   backfaceVisible, perspective and preserve3d props to Frame

### Fixed

-   Listening Animatable's when updating Frames

## [0.8.1] - 2018-10-16

### Improved

-   Performance of `Data` objects
-   Overlay transitions can have a custom backdrop color
-   Scroll components support mouse-wheel scrolling by default

## [0.8.0] - 2018-09-18

### Improved

-   SVG component is now compatible with Stack layout

## [0.7.13] - 2018-09-17

### Fixed

-   Removed `debugger` statement

## [0.7.12] - 2018-09-14

### Added

-   `resource.url()` for referencing resources inside your project
-   Property control types for files (`ControlType.File`) and images (`ControlType.Image`)

### Improved

-   Display of errors in Components

### Fixed

-   Setting width in percentages for Design Components in Code
-   Scrolling animation with velocity

## [0.7.11] - 2018-09-07

### Improved

-   Internal changes for device rendering

## [0.7.10] - 2018-09-04

### Improved

-   Interpolation of objects and colors

### Fixed

-   Scrolling on touch devices
-   Copy CSS for Stacks
-   Transition of Navigation components

## [0.7.9] - 2018-08-31

### Improved

-   Scaling font size for components with erros

### Fixed

-   Rendering of shadows in Shapes

## [0.7.8] - 2018-08-29

### Added

-   Fade transition for Navigation component

## [0.7.7] - 2018-08-28

### Fixed

-   Bug in animation / interpolation API

## [0.7.6] - 2018-08-28

### Added

-   Animation of colors

### Improved

-   Importing Design Components in Code
-   Animation API has more consistent option handling

### Fixed

-   Empty state of Stack component
-   Off-pixel rendering of Frame in some cases

## [0.7.5] - 2018-08-21

### Improved

-   Generic types of `Override`

### Fixed

-   Sorting UI of Stacks

## [0.7.4] - 2018-08-21

### Added

-   Bezier curve animations

## [0.7.3] - 2018-08-20

### Added

-   Support for OverrideFunctions for Design Components used in code

### Improved

-   Skip invisible stack items during layout
-   Renamed FusedNumber option splitKey to toggleKey

### Fixed

-   Handling of Animatable properties in Stack
-   Rerun OverrideFunction on rerender

## [0.7.2] - 2018-08-20

### Improved

-   Fix FrameProperties type of Default Override type

## [0.7.1] - 2018-08-20

### Improved

-   Made Animatable.set() also accepts Animitable values
-   Default Override type to FrameProperties

## [0.7.0] - 2018-08-20

### Improved

-   Rename FramerFunction to Override

## [0.6.1] - 2018-08-16

### Added

-   onClick, onMouseDown and onMouseUp as event handlers

### Fixed

-   Setting default stack properties in package.json

## [0.6.0] - 2018-08-16

Bump version to 0.6 to avoid nmp registry conflicts in the future

### Fixed

-   Make Stack background transparent by default

## [0.2.0] - 2018-08-15

### Improved

-   Better typing of Data function

## [0.1.34] - 2018-08-15

### Added

-   Added private API for CSS exporting from a component

### Improved

-   Cleaned up CSS generation

## [0.1.33] - 2018-08-15

### Improved

-   Made a deprecated PropertyStore available again

## [0.1.32] - 2018-08-15

### Fixed

-   Bug where Animatable transactions would not work well together with ObservableObjects

## [0.1.31] - 2018-08-14

### Added

-   Support for importing Design Components in code

## [0.1.30] - 2018-08-13

### Improved

-   Change boolean control titles `enabled` and `disabled` to `enabledTitle` and `disabledTitle`

## [0.1.29] - 2018-08-13

### Property Controls

-   `unit` type for number inputs (e.g. %)
-   `step` allows numbers to be floats
-   `placeholder` for string inputs
-   `hidden` function allows controls to be hidden

## [0.1.28] - 2018-08-09

### Added

-   `Data` function to create observable object that rerenders

### Fixed

-   `animate()` function updates objects with multiple Animatable values only once per animation tick

## [0.1.27] - 2018-08-1

Initial Beta 1 release
