Open-Source Wikis

/

Bevy

/

Packages

/

bevy_feathers

bevyengine/bevy

bevy_feathers

Bevy's built-in widget set and theme. Provides editor-quality widgets — buttons, sliders, text inputs, scroll views, panels, color pickers, accordions — styled by a shared theme. Designed to power the upcoming Bevy editor and to give game UIs a usable starting point.

Purpose

bevy_feathers builds on the lower-level bevy_ui_widgets primitives and adds:

  • A consistent theme (colors, fonts, spacing).
  • A library of pre-styled widgets with sensible defaults.
  • A modular layout system for panels, splitters, and containers.
  • Reflection-aware widgets for inspecting data (used by the editor and inspector tooling).

The crate is opt-in. Users who don't want feathers can use bevy_ui_widgets directly or roll their own UI.

Directory layout

crates/bevy_feathers/src/
├── lib.rs               # FeathersPlugin, FeathersPlugins
├── theme.rs             # ThemeBackgroundColor, ThemeFontColor, ThemeBorderColor
├── tokens.rs            # Design tokens (color/space/size constants)
├── controls/            # Per-widget modules (button, slider, input, …)
├── layouts/             # Layout containers
├── widgets/             # Composed widgets
├── icons/               # Icon set
├── font_styles.rs
├── handle_or_path.rs    # Asset handle / path adapter
└── …

Key abstractions

Type File Description
FeathersPlugin crates/bevy_feathers/src/lib.rs Adds the theme, fonts, and widget systems.
Theme tokens crates/bevy_feathers/src/tokens.rs surface, accent, text_primary, etc — color constants.
Per-widget modules crates/bevy_feathers/src/controls/ One module per widget: button, slider, checkbox, text input.

How it works

Each widget is an entity hierarchy with the necessary Node, Text, Image, and behavior components. Feathers exposes spawn helpers that build these hierarchies and apply theme tokens. The theme is a resource; changing tokens at runtime swaps the colors across all visible widgets via change detection.

The crate is recent (added in 0.17, Sep 2025) and evolves quickly. It is one of the highest-churn crates in the workspace.

Integration points

  • Depends on: bevy_app, bevy_ecs, bevy_ui, bevy_ui_widgets, bevy_text, bevy_color, bevy_input, bevy_input_focus, bevy_picking.
  • Depended on by: Bevy editor prototypes and games that opt in.

Entry points for modification

  • Add a widget: new module under controls/ or widgets/. Use the existing button/slider as templates.
  • Change theme defaults: tokens.rs.
  • Layout primitives: layouts/.
  • The crate is moving fast — check open PRs before starting big refactors.

See also

Built by Factory AutoWiki from public repository content. It is a generated preview for codebase exploration, not source-maintained documentation.

bevy_feathers – Bevy wiki | Factory