Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add modeless feedback dialog for each page #771

Closed
vpicone opened this issue Feb 18, 2020 · 11 comments · Fixed by #772
Closed

Add modeless feedback dialog for each page #771

vpicone opened this issue Feb 18, 2020 · 11 comments · Fixed by #772
Assignees

Comments

@vpicone
Copy link
Contributor

vpicone commented Feb 18, 2020

Summary

Add the ability for website users to give low-friction quick feedback on each page.

Examples:

  1. gatsby – bottom right
  2. watson health – bottom right

Justification

Our current team objective is to:

Significantly scale the engagement, collaboration, and enthusiastic adoption of Carbon by IBM product teams.

Allowing per-page feedback will allow us to get real-time feedback on our documentation and components.

Desired UX and success metrics

Users can click an unobtrusive button to open a modeless dialog which allows them to give feedback (e.g. positive, negative, and neutral) as well as a comment. These survey responses should be viewable in a dashboard.

@mattrosno
Copy link
Member

Who's the intended audience for the submissions?

GitHub issues are more than just bugs and feature requests. We have an issue template for question, "usage question or discussion about Carbon components". Would it make more sense to direct people to open an issue, or us have a GitHub bot that opens an issue on their behalf so there's greater visibility and the team can respond?

If powered by a SurveyGizmo form, how is the team to get notified so they can respond in a timely manner?

How can we power this by GitHub issues so the feedback form is useful to other sites using our Gatsby theme?

@vpicone
Copy link
Contributor Author

vpicone commented Feb 19, 2020

@mattrosno the intended audience is anyone on our website, using our documentation. The key to these forms is removing as much friction as possible.

If powered by a SurveyGizmo form, how is the team to get notified so they can respond in a timely manner?

Submit to survey-gizmo, send an alert to carbon-support

How can we power this by GitHub issues so the feedback form is useful to other sites using our Gatsby theme?

Github issues (human or bot generated) isn't the right way to go about this for several reasons:

  1. Signing into GitHub and filling out a massive template introduces a lot of friction. It also necessitates a response from the team. The advantage of these low-friction, low=commitment feedback dialogs is that there's no response expected. This is a distinct advantage compared to an ever-growing list of issues piling up on the monorepo.

  2. It's not just issues, it's quick feedback/comments/reactions as well. Should we open an issue every time someone marks a document helpful? It helps us capture things that aren't serious enough to warrant a github issue.

There's a reason Gatsby uses this method as oppose to directing everyone to open a new issue: https://www.gatsbyjs.org/docs/ (bottom right).

@mattrosno
Copy link
Member

If the intended audience of who receives the responses is just the core team and not all repo maintainers, and if SurveyGizmo's Slack integration lets us route responses to one of our channels, then this makes sense.

Ultimately I want to save this type of information in our backend as events so we can include it alongside other data we collect for reporting. But, until we spin up a backend, let's use what we have. (We can always backfill our backend with SurveyGizmo data if we eventually power the form ourselves.)

I'm wanting to use a new channel carbon-live for a live view of other events that we start to capture. For example, when a sub-system publishes a component, developer essentials badge is issued, etc. Maybe we start that channel with this data. Since it's not all actionable, maybe we don't want to put that all in -support to avoid noise there.

In terms of responding to the inbound, maybe we thread-reply to the Slack message to designate that you're replying directly, so we know when somebody's followed up if a follow-up is necessary. We can come up with some convention in Slack to not step on any toes as we reply to the feedback.

@vpicone
Copy link
Contributor Author

vpicone commented Feb 19, 2020

@mattrosno our 'backend' would source data from a variety of places (notion, github, surveygizmo, etc.) I don't see the point of storing it all on a database. Those services allow you to query for past events/specific ranges and they do a much better job of it than we would rolling our own.

Either way, that sort of effort requires smaller efforts like this one.

@jeanservaas
Copy link
Contributor

jeanservaas commented Mar 9, 2020

Feedback component visual specs

Specs

Color_and_type

Spacing

Animation

Obviously the new little guy is going to behave just like our back to top button; it will be sticky and basically just sit 8px above the other one.

In terms of animation, how are we doing panel animation?

I would try:

$duration-moderate-02 (240ms)

and standard expressive easing: cubic-bezier(0.4, 0.14, 0.3, 1)

also, in terms of choreography... we first grow the x value (width), then the y value (height) so it would grow like the first example on this page

https://www.carbondesignsystem.com/guidelines/motion/choreography

Responsive behavior

I spec'd this pretty fast so I don't have a view at each breakpoint, but I'm thinking it would respond like the Gatsby feedback component and hold it's size at each breakpoint and then respond like our dialogs at mobile.

Context

Closed

context_closed

Open

context_open

Sketch file

gatsby_feedback_component.zip

@vpicone vpicone transferred this issue from carbon-design-system/carbon-website Mar 9, 2020
@vpicone vpicone mentioned this issue Mar 9, 2020
8 tasks
@jeanservaas
Copy link
Contributor

@mjabbink what do you think? Three options, it has to go at least 80 in any color spectrum to really stand out over a 90 background

Question 1: Color

Teal 80 with Teal 70 hover (icon stays outlined)

image


Purple 80 with Purple 70 hover (icon stays outlined)

image


Gray 70 with Gray 60 hover (icon stays outlined) — I think this is elegant

image


Question 2: Solid or outlined icon on hover (Ding Ding Ding)

image

@vpicone
Copy link
Contributor Author

vpicone commented Mar 12, 2020

@jeanservaas should we make any changes to the colors of the back to top button? maybe inverted from the winky?

Maybe we should have the hover states disappear when opened, since your cursor is there it doesn't really look like anything happened with the button in particular.

@mjabbink
Copy link
Contributor

mjabbink commented Mar 12, 2020 via email

@mjabbink
Copy link
Contributor

Lean on grey 79 but also think teal 80 can work

@jeanservaas
Copy link
Contributor

jeanservaas commented Mar 13, 2020

@vpicone
Couple of tweaks after our crit yesterday (here's the new spec)

  • we are actually going to go Gray 60 with the feedback button because Gray 60 is actually our secondary button color in the dark themes. So we might as well make it consistent rather than randomly going Gray 70.

  • Also, the icon will need to stay white at all times, not pop up to white on hover, anything less than white on a Gray 60 background will not be contrast accessible.

  • The outlined icon will go filled when the dialog is open

  • there is no hover state when the dialog is open

  • the back to the top button will stay as is... we're not changing anything to match

  • the dialog will go full width in mobile per our dialog guidance

@aagonzales approved spec for modeless dialog in mobile

image

New spec

image

Confirmation

image

you know how we do inline loading confirmation? Can the check mark just animate on and then the dialog close?

https://www.carbondesignsystem.com/patterns/loading-pattern/#inline-loading

@vpicone
Copy link
Contributor Author

vpicone commented Mar 14, 2020

For the focus, blue-60 (inverse-focus-ui) and gray-60 (secondary) don’t meet the contrast requirements.

I think we need to keep the white line inset that I have now?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants