Skip to content

Feathers new select control and caption helper#24847

Open
gagnus wants to merge 5 commits into
bevyengine:mainfrom
gagnus:feathers-new-select-control-and-caption-helper
Open

Feathers new select control and caption helper#24847
gagnus wants to merge 5 commits into
bevyengine:mainfrom
gagnus:feathers-new-select-control-and-caption-helper

Conversation

@gagnus

@gagnus gagnus commented Jul 2, 2026

Copy link
Copy Markdown
Contributor

Objective

  • I wanted to use a select drop down but didn't want the boilerplate of making a menu which I think is the current best fit.
  • I also kept forgetting to put ThemedText next to Text in places like a button caption, so added a simple helper for that, similar to icon()

Solution

  • Added a new FeathersSelect control
  • Added a caption() function

Testing

  • Added a select to feathers gallery which scrolls

Showcase

image

gagnus added 3 commits July 2, 2026 17:52
… functionality, also added a simple caption helper that emits Text and a ThemedTest
… functionality, also added a simple caption helper that emits Text and a ThemedTest
@gagnus

gagnus commented Jul 2, 2026

Copy link
Copy Markdown
Contributor Author

I'm going to have a go at making the popup be at least same width as control

Comment thread crates/bevy_feathers/src/controls/mod.rs
Comment thread crates/bevy_feathers/src/controls/select.rs Outdated
Comment thread crates/bevy_feathers/src/display/label.rs
Comment thread crates/bevy_feathers/src/controls/select.rs
};
let current = props.options.get(selected).cloned().unwrap_or_default();

let rows: Box<dyn SceneList> = Box::new(

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also, it would be good if we can support the appropriate a11y attributes: https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Reference/Attributes/aria-selected

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think it does with the underlying list box but will check

gagnus added 2 commits July 2, 2026 23:33
… to review comments. Options is a scenelist rather than a list of strings, selection is by entity and that is picked up and sent on by a system.

Note this has not gone as far as other controls in that it still manages its own events with on_select, I think the next step if we need to would be to make that optional like other controls do.

This change also has a system for keeping the width of the popup in sync with the parent.
@alice-i-cecile alice-i-cecile added C-Feature A new feature, making something new possible A-UI Graphical user interfaces, styles, layouts, and widgets M-Release-Note Work that should be called out in the blog due to impact labels Jul 5, 2026
@github-project-automation github-project-automation Bot moved this to Needs SME Triage in UI Jul 5, 2026
@alice-i-cecile alice-i-cecile added the S-Waiting-on-Author The author needs to make changes or address concerns before this can be merged label Jul 5, 2026
@github-actions

github-actions Bot commented Jul 5, 2026

Copy link
Copy Markdown
Contributor

It looks like your PR has been selected for a highlight in the next release blog post, but you didn't provide a release note.

Please review the instructions for writing release notes, then expand or revise the content in the release notes directory to showcase your changes.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-UI Graphical user interfaces, styles, layouts, and widgets C-Feature A new feature, making something new possible M-Release-Note Work that should be called out in the blog due to impact S-Waiting-on-Author The author needs to make changes or address concerns before this can be merged

Projects

Status: Needs SME Triage

Development

Successfully merging this pull request may close these issues.

4 participants