Feedback

Gather text feedback with an associated emotion.

Default

Should only be used on desktop.

This example is hidden because it is intended for only desktop.

Inline

Feedback with Select

Feedback with pre-defined list of topics.

This example is hidden because it is intended for only desktop.

Feedback with metadata

Feedback with arbitrary key-value metadata.

This example is hidden because it is intended for only desktop.

Best Practices

When to use

  • Place Feedback at the end of a page, doc, or completed flow where the user has formed an opinion. Don’t front-load it on a surface the user has only opened.
  • Use the topic Select variant when feedback maps to actionable categories the team triages (Bug, Pricing, Documentation); skip it when the open textarea is enough.
  • Don’t use Feedback as a substitute for a support form, a bug report intake, or NPS sampling. Those have dedicated surfaces.

Behavior

  • Keep the panel collapsed until the user clicks the trigger; auto-opening derails the work that prompted the feedback.
  • Pair the metadata variant with non-PII context (route, build ID, plan, viewport) so the team can reproduce the report without a second round-trip.
  • Submit closes the panel and returns focus to the trigger. Don’t replace the panel with a generic acknowledgment toast; the close itself is the acknowledgment.

Content

  • label is Title Case and short. Default Feedback is fine; override only when scoping to a flow: Feedback on Imports, Report a Bug. Don’t end the label with ?.
  • copy overrides the prompt header next to the emoji row in sentence case (How did the import go?). Cut please and we’re sorry.
  • The textarea placeholder (Your feedback...) is fixed by Geist; don’t try to override it with rich children.