patternfly / patternfly-design

Use this repo to file all new feature or design change requests for the PatternFly project
114 stars 104 forks source link

Add Navigation flyout panel #1350

Open rebeccaalpert opened 2 days ago

rebeccaalpert commented 2 days ago

Background

UXD is contributing to Composer AI Studio. As part of this work, Mark Riggan created wireframes for what their UI could look like. These wireframes included a flyout panel that comes out when a nav item is clicked.

Example: Image

When "Chats" is clicked, you would see the panel with "Start your first conversation."

Specifications:

For mobile, suggestions have been made to make it full width on top of the navigation on mobile like this ugly mock-up: Image

Explain why this feature is needed and/or why these requirements cannot be met using existing components.

We need a way to offer more complex user interactions that relate to the page content.

We attempted initially to create this using the Navigation Flyout Nav. However, the React implementation uses Popper.

If this is for specific applications, list them here along with any dates that you need this for.

This is for Composer AI Studio. However, both Andrew and Nicole reported having seen similar concepts for other products.

Link any detailed design documents, rough sketches, wireframes or workflows.

State whether this is a new feature or an enhancement on an existing pattern by labeling it accordingly

I guess this is an enhancement?

If this is an enhancement to an existing feature, identify the feature that you want to modify.

This would be a flyout menu attached to the Navigation component, similar to the flyout nav. However, it would be the full height of the nav sidebar and be positioned at the top of the nav sidebar. We would need it to to be well behaved on mobile and also desktop.

rebeccaalpert commented 1 day ago

@thatblindgeye took a look at a crappy implementation I did so we could start working through potential issues.

It sounds like if we were to do this, we'd want the trigger to be a button rather than a link, with aria-haspopup="dialog" and an aria-expanded.

We have some open questions I'll bring up at working session: