Despite Flet release debuting animations support was released some time ago, we've just finished documenting its new features! We all know if the feature is not documented it just doesn't exist! 😉
Flutter offers multiple approaches for creating animations such "implicit", "explicit", "tween", "stagered", "pre-canned" animations as well as displaying animation scenes prepared in Rive and Lottie editors.
We are starting with "implicit" animations which allows you to animate a control property by setting a target value; whenever that target value changes, the control animates the property from the old value to the new one.
Demo time
Explore demo sources. The demo is hosted on Heroku, by the way, so you can use it as a starting point for your own deployments.
Implicit animations
Implicit animations can be enabled for the following control properties:
- Opacity
- Rotation (new in this release)
- Scale (new in this release)
- Offset (new in this release)
- Position
Additionally, all Container
control properties can be now animated and there is a new AnimatedSwitcher
control for animated transition between old a new content.
Other new features
Markdown
control
Allows to render text in Markdown format. Supports various extensions: CommonMark
, GitHub Web
and GitHub Flavored
.
See Markdown
control docs for more information and examples.
URL launcher
page.launch_url(url)
method allows programmatically opening a URL in a new browser window, for example:
page.launch_url("https://google.com")
It also works nice with Markdown
control for opening links within markdown document.
Keyboard shortcuts
Page
now contains on_keyboard_event
event handlet to globally intercept all keystrokes.
Check this simple usage example.
Accessibility improvements
We added Accessibility section to the docs covering semantics support for screen readers.
ShaderMark
control
A control that applies a mask generated by a shader to its content. Allows making nice effects like gradually fading out images.
That's it!
Give Flet a try and let us know what you think!