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

Progressive Form #750

Closed rachael-phillips closed 2 years ago

rachael-phillips commented 5 years ago

Request from the OpenShift team for a progressive form.

mcarrano commented 5 years ago

Today @rachael-phillips @lizsurette @serenamarie125 @ajacobs21e @kybaker and I met to discuss requirements and concepts for a progressive form component that can be offered as an alternative to a standard step by step wizard. Some requirements are captured here: https://docs.google.com/document/d/1If6pbpu3mzxwfR8D--frpH22q8sAM6cwTyCasFONrxo/edit?usp=sharing

This may be delivered as a new component or as an extension to the Wizard. Requires prioritization and placement on the PF4 roadmap.

ajacobs21e commented 5 years ago

@serenamarie125 and I talked through a few more details since the visual design meeting. I've added in buttons to clear all (start entire wizard over) and skip to beginning and end. These would be optional based on the app's use case. Skip to end would only show if there are no more required fields / steps. Here's a generic version

Here's the version with the Customer Portal use case

@kybaker what do you think of the visual design of the stepper and the color of the bottom bar? Does grey make sense?

ajacobs21e commented 5 years ago

Some outstanding questions:

ajacobs21e commented 5 years ago

https://redhat.invisionapp.com/share/RHR7P36BUKT Updated based on feedback so far. Next step is to schedule a review meeting.

ajacobs21e commented 5 years ago

@kybaker I swapped the buttons and stepper and now I think it's a little weird how the stepper length can change in a progressive situation. I played around with two other ideas. Can you take a look please and let me know what you think?

https://redhat.invisionapp.com/share/RHR7P36BUKT

Thank you!

alimobrem commented 5 years ago

Can we get this to be more like https://www.typeform.com/? fyi...@beanh66 @serenamarie125

kybaker commented 5 years ago

@ajacobs21e I like the options you have there. I understand your concern about the steps shifting, but I still prefer the bottom positioning because it seems clearer that these are steps not somehow tied to the content like when on the left.

beanh66 commented 5 years ago

@ajacobs21e I think you have some really nice design options! In general it feels like a wizard to me though, so wondering if these should be options built into the wizard documentation for optional cases such as (1) when you don't want or need the full side panel of steps and want progress shown more subtly or (2) when you don't know the number of steps and just want to show the current and previous. Is that the plan or will this still be a separate pattern?

I might be off on this but I thought the push from @mcarrano for making it separate from wizard was because of the difference in allowing a user scroll up or down in a form as desired. I realize it's also hard to show this case with Invision so you may have already accounted for it, in which case ignore me :)

ajacobs21e commented 5 years ago

Thanks @beanh66 ! Yep these screens are showing the interactivity well. Here's an example of an Axure mockup that uses an outdated design but maybe can help show the intended scrolling behavior: https://nn4o0c.axshare.com/issue_2.html#ScrollPosition=0&CSUM=1

ajacobs21e commented 5 years ago

@kybaker I'm not sure what you mean by "it seems clearer that these are steps not somehow tied to the content like when on the left." Is it because there wasn't a divider?

What if the vertical stepper looked just like the regular wizard just without step names? VerticalStepper That'll be more consistent, more flexible if the number of steps is variable, matches the flow of moving downward, and we don't have to worry about the weirdness of a right aligned stepper for variable steps.

kybaker commented 5 years ago

@ajacobs21e Yes, I really like this solution. Much more expandable and makes sense as a variant.

mcarrano commented 5 years ago

I guess that my only issue here is how is this different from the wizard? Haven't you just created a variant of a wizard with the step titles hidden? Do we need a unique component for this @ajacobs21e ?

ajacobs21e commented 5 years ago

@mcarrano I kind of view this as a variant of a wizard that progresses vertically and you can navigate by scrolling. I think the interactivity, which invision isn't showing well, is the biggest difference.

Maybe it's worth comparing the requirements for this design to the requirements for wizard?

mcarrano commented 5 years ago

Yeah, I can see where this would be hard to model with InVision @ajacobs21e. I'm going to set up a meeting where we can talk this through a bit. I'm starting to see this as more like an alternative to the standard wizard. Agree that comparing the requirements would make sense.

serenamarie125 commented 5 years ago

@ajacobs21e , agreed that the largest difference is the interactivity. Whether we decide this is 2 variants of a wizard or 2 unique patterns, we may want to do further research as to why we would suggest a traditional wizard versus this new interactivity so that we can provide appropriate guidelines which match user expectations.

ajacobs21e commented 5 years ago

@alimobrem Typeform is the inspiration Serena & I are working off of and creating an experience that's consistent with the rest of PatternFly. We're trying to nail down some of the visuals and then I'll create an interactive prototype that will capture the flow.

ajacobs21e commented 5 years ago

@kybaker Serena and I chatted yesterday and we propose using step indicators connected with a line down the left side. The connector makes them look less like floating circles and reinforces the vertical scrolling interactivity. Not having numbers gives flexibility to add or remove steps based on user selections. F 2

I tried to match the visual design from the wizard but have two questions: 1) Wizard doesn't seem to have active future steps (step 2 in above example). For this use case I tried a blue outline. What do you think? 2) Wizard uses a white background for disabled future steps. In this case I tried a grey outline #d2d2d2 - is it too light? I think a grey fill is too much.

Thanks!

FYI @beanh66 @serenamarie125

beanh66 commented 5 years ago

I like it @ajacobs21e! Will be interesting to get the summit test results!

ajacobs21e commented 5 years ago

@jgiardino An accessibility question that came up from Krystal on the dev side is how to handle the tab order with the scrolling functionality. If the next button is sticky to the bottom of the screen, when tabbing from the bottom of a step, the next DOM in order would be the subsequent form, not the 'next' button. Do you have a suggestion for how to handle that? Here's an example of an interactive prototype (works best on a laptop screen or if you make the browser window a little shorter on a big screen): https://6ci2bv.axshare.com/

Thanks!

jgiardino commented 5 years ago

If the next button is sticky to the bottom of the screen, when tabbing from the bottom of a step, the next DOM in order would be the subsequent form, not the 'next' button.

Yes, that would be the default behavior that you would get with the browser. I would suggest you implement this without overriding the default browser behavior, and test that flow before considering any changes to that. My expectation is that the default behavior will feel normal and expected, whereas trying to implement something that behaves different from that could actually result in an experience that seems weird and unfamiliar.

ajacobs21e commented 5 years ago

Thanks @jgiardino !

beanh66 commented 5 years ago

FYI @matthewcarleton this is the progressive form pattern we could look at for OpenShift to see if it fits your needs for the vm creation. I think @serenamarie125 will be using it on the dev console side for the more lengthy catalog forms.

ajacobs21e commented 5 years ago

@kybaker I updated the stepper visuals with the new blue and also slightly darkened the line and future state grey colors: ProgForm Stepper Visuals

Krystal suggested using #06c for the line when the next step is available.

I'll set up a meeting for us to discuss. Thanks!

ajacobs21e commented 5 years ago

I met with @kybaker and these are the finalized state colors: ProgForm Stepper Visual Design

Thanks Kyle!

ajacobs21e commented 5 years ago

Updated prototype link: https://marvelapp.com/4010if2

ajacobs21e commented 5 years ago

Proposed new visual design for the Progressive Form & Wizard stepper states from @kybaker & Krystal Moore: image (1) Completed - blue with check mark Active - blue filled Future - grey filled

This proposal would remove the "available" state. @serenamarie125 would that be ok for your use case?

Issue for the stepper update, which would be applied to the wizard as well: https://github.com/patternfly/patternfly-next/issues/1970

ajacobs21e commented 5 years ago

I started a doc to gather questions we want to test: https://docs.google.com/document/d/12WiHP-cvhgJ6bxDabM8l5H4-cEpzOLeFZrBma8Njwm8/edit?usp=sharing

@mcarrano @LHinson @rachael-phillips @serenamarie125 @beanh66 Please add any thoughts you have!

julienlim commented 5 years ago

I like seeing where the progressive disclosure form design is headed 👍

mcarrano commented 4 years ago

Met today with @ajacobs21e @matthewcarleton @sjcauffm and Kristal Moore to review the proposed stepper design shown above. Some questions that were raised:

RH Customer portal implementation can be found here: https://access.redhat.com/solution-engine

mcarrano commented 4 years ago

Met today with @serenamarie125 to better understand OpenShift requirements. The following is a demo of how the progressive form is used to create a new Image in OpenShift: https://youtu.be/EdEZ6xsnxvg

We should consider whether this is best built as a demo in PatternFly that elaborates a form component by adding anchor links, and the ability to scroll the form using keypress events. May want to consider whether a sticky footer or floating actions will improve usability (eliminate the need to scroll to find submit button).

mcarrano commented 4 years ago

A usability study was completed to compare performance and user preference for a progressive form vs a wizard in a simple object creation use case. A report on this study can be found here: https://docs.google.com/presentation/d/1pU5XdhtzHCA8hgIPY74egypj8dUJ8_M10_25zOqMKww/edit?usp=sharing and prototype for testing here: https://preview.uxpin.com/cc889a55d206dbb2a21f4c01351624e9c513f212 The prototype presented a step-wise task as a single scrollable form without including Next and Back buttons. The user could use the keyboard as well as the mouse to scroll through the form. Completion was via a submit button at the bottom of the form. A stepper located in the left-hand margin allowed the user to jump around within the form by scrolling to a pre-defined anchor upon click.

Some high-level take aways:

Recommended next steps:

Need to assess roadmap priorities for this.

cc @rachael-phillips @LHinson

andrew-ronaldson commented 2 years ago

@mcarrano Here is a link to the latest mockups using jump links instead of the Wizard styling. I'll record a separate demo and share soon.

andrew-ronaldson commented 2 years ago

Here's the demo recording. https://user-images.githubusercontent.com/28658548/164783252-a75d2163-aa21-4546-a5d0-98b094a2bc54.mov

mcarrano commented 2 years ago

Thanks @andrew-ronaldson . I have opened https://github.com/patternfly/patternfly/issues/4805 to move this along and create a demo that shows how to make this. @mmenestr we will probably need a design doc issue also for follow up.

mmenestr commented 2 years ago

Design doc issue: https://github.com/patternfly/patternfly-org/issues/2962