Today, Feathers UI beta.5 is now officially available on Haxelib. This is the latest of multiple preview builds that are planned before the first stable release in early 2022. Since we're in the beta stage, the core framework architecture has settled down, and breaking changes are much less likely to happen going forward. Developers who don't mind a few rough edges here and there should consider Feathers UI ready for starting development on new projects!
Feathers UI is an open source framework of graphical user interface (GUI) components for creative, cross-platform projects. Using the Haxe programming language, Feathers UI is built on OpenFL — a user-friendly library for rendering, input, networking, and more. Deploy native apps to iOS, Android, Windows, macOS, Linux (and even publish your project to the web!) using the same Haxe codebase.
🚨 Please note that this is a beta version of Feathers UI. Some components and features may still be missing, and occasional bugs should be expected.
Feathers UI continues to achieve each new milestone thanks the very generous support from the contributors on Github Sponsors, and everyone who backed the successful 2019 Feathers UI Kickstarter campaign. A big, enthusastic thank you to you all!
What's new in beta.5?
Let's take a look at some of the new UI components and features that are included with Feathers UI beta.5.
PagedTiledRowsListLayoutall position items as tiles (where all items have equal dimensions) in one or more rows.
TiledRowsLayoutis meant to be used with simple containers, like
PagedTiledRowsListLayoutare meant to be used with data containers, like
PagedTiledRowsListLayoutwill split tiles among multiple pages, if they don't all fit on one page.
VerticalLayoutnow accepts a value of
Math.POSITIVE_INFINITYto indicate that it should try to add as much space as possible between items. If the container is resized, the gap will be adjusted to match. If the content is larger than the container, these layouts will fall back to the new
(By the way, the new tiled layouts also support
This build also fixes a ton of bugs, and it includes many new features too. Here's a few worth highlighting:
Scrolling containers, like
ScrollContainer, now support snapping to pages. These snap positions, which may be arbitrary values (not just pages), may be specified by layouts. For instance, the new
PagedTiledRowsListLayout, mentioned above, returns either an array of x or y values, depending on whether the pages are oriented horizontally or vertically.
Layouts may now implement the new
IKeyboardNavigationLayoutinterface, if they need to customize how selection in components like
ListViewchanges when the keyboard arrow keys, page up/down keys, or home/end keys are pressed. This is used primarily by the new tiled layouts, but custom layouts will be able to use the same interface to customize their own behavior too, if they have interesting positioning algorithms.
LayoutGroupand scrolling containers like
Panelhave a new
maskSkinproperty. This mask will automatically resize when the container resizes. Scrolling containers also add a similar
viewPortMaskSkinproperty to mask only the view port (which is the region containing scrollable content).
This list would be far too long if it included all of the bug fixes related item renderers, word wrap, data container selection, focus management, and more. For complete details, check out the beta.5 CHANGELOG.
Install Feathers UI beta.5
haxelib install feathersui 1.0.0-beta.5
Be sure to take a look at the complete installation instructions for details about installing required dependencies, along with links to step-by-step tutorials for setting up supported editors and IDEs.
- The Feathers UI Getting Started guide provides the most essential links for creating your first Feathers UI project and learning about all of the features and UI components that are available in the framework.
- The v1.0.0-beta.5 API Reference includes descriptions of all APIs available on Feathers UI components, layouts, utility functions, and more.
- Start a thread in the Feathers UI Community forum to ask for help.
- Join the Feathers UI Discord to chat with Josh and others in the community.
How to help the project
Want to help keep the lights on and servers running? Make a monthly (or one-time) contribution on Github Sponsors.
Questions or comments?
Everyone, I just want to say thank you again for your support. I'm looking forward to hearing what you think of the new Feathers UI so far. If you create anything with this build — even a simple prototype — I'd love it if you could share your experiences (and maybe even a screenshot 🖼!).
I've created an official beta.5 discussion thread in the community forums. Head over there to leave a comment!