Feathers is an open source library of user interface components for Starling Framework. Let's take a look at some of what Feathers has to offer.
Dozens of user interface components for apps and games.
Target iOS, Android, Windows, macOS, and Android TV.
Built on top of Starling Framework and Adobe AIR.
Backed by Adobe and the community.
Create user interfaces for desktop, mobile, and smart TV apps.
Easy to scale your app for different screen dimensions and densities with
Support for fluid layouts (using anchors and percentages) that fit to a wide variety of screen sizes.
Choose between scrolling with touch physics including elastic, springy edges or traditional desktop scroll bars and the mouse scroll wheel.
Support for keyboard focus navigation using the tab key, with the ability to disable focus on individual components or children of specific container. Includes full control over focus order.
All components may be skinned using regular Starling display objects, like
Resizable skins using
Strictly-typed properties for all skins and properties that affect visual styling. No vague
setStyle()look-ups with string keys.
ImageSkincan change color and texture when a component's state changes.
Supports themes that separate all skinning code from the application logic.
Invalidation. Queues property changes until Starling render phase to maximize performance.
Easy to understand for anyone familiar with Apache Flex or the AS3 components from Adobe Animate CC.
If no width or height is provided, components will resize themselves automatically based on their skins or their sub-components.
Factories and interfaces allow you to customize sub-components. For instance, select the type of sub-component best suited for phone, tablet, or desktop.
Choice of text rendering between bitmap fonts or vector fonts drawn to textures. Vector fonts may be rendered with either
flash.text.TextFieldor Flash Text Engine.
Several built-in layouts, and support for custom layouts.
LayoutGroupis a lightweight Feathers container with support for layouts.
ScrollContainersupports scrolling and layouts.
Panelsupports a header and an optional footer, in addition to scrolling and layouts.
Drawersprovides slide-out drawers to display menus and other actions.
Listcomponent supports displaying a data provider using item renderers inside a scrollable container.
Display a table of data using the
Support for custom layouts.
Layout virtualization for improved performance (creates and reuses renderers only for visible data).
Support for selecting an item, including optional multiple selection.
A robust default item renderer with up to three sub-views with full control over how they are positioned relative to each other.
Support for custom item renderers.
Variable item renderer dimensions.
Optionally split items into multiple pages, and snap to each page when scrolling.
Menus and Navigation
Push and pop screens using a history stack that easily supports a back button.
Animate the transition between screens. Push and pop actions may use separate transitions, and individual screens may optionally be given their own unique transitions.
Support for custom transitions.
Dispatch events to trigger navigation between screens.
Inject properties into screens to quickly configure them.
Buttons, sliders, radio buttons, check boxes, toggle switches, steppers, text inputs, tabs, and tons of other common UI controls.
A manager for drag and drop.
Add pop-ups above all other content in the app. Includes support for modal pop-ups that display an overlay between the pop-up and everything under it.