Feathers UI beta.5 preview build on Haxelib
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.
New Layouts
TiledRowsLayout
,TiledRowsListLayout
, andPagedTiledRowsListLayout
all position items as tiles (where all items have equal dimensions) in one or more rows.TiledRowsLayout
is meant to be used with simple containers, likeLayoutGroup
andScrollContainer
.TiledRowsListLayout
andPagedTiledRowsListLayout
are meant to be used with data containers, likeListView
.PagedTiledRowsListLayout
will split tiles among multiple pages, if they don't all fit on one page.The
gap
property ofHorizontalLayout
andVerticalLayout
now accepts a value ofMath.POSITIVE_INFINITY
to 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 newminGap
property.(By the way, the new tiled layouts also support
Math.POSITIVE_INFINITY
for theirhorizontalGap
andverticalGap
properties.)
New Features
This build also fixes a ton of bugs, and it includes many new features too. Here's a few worth highlighting:
Scrolling containers, like
ListView
andScrollContainer
, now support snapping to pages. These snap positions, which may be arbitrary values (not just pages), may be specified by layouts. For instance, the newPagedTiledRowsListLayout
, 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
IKeyboardNavigationLayout
interface, if they need to customize how selection in components likeListView
changes 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.LayoutGroup
and scrolling containers likeListView
,ScrollContainer
, andPanel
have a newmaskSkin
property. This mask will automatically resize when the container resizes. Scrolling containers also add a similarviewPortMaskSkin
property 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
Feathers UI beta.5 may be installed using the haxelib install command in your terminal.
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.
Documentation
- 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.
Community
- 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!