Skip to main content

Storybook

Sentiment

Captures a qualitative user response using icons or scale indicators such as star ratings or emoji reactions. Use in feedback or survey flows where a structured emotional or satisfaction response is needed.

Figma Storybook Docs

Description

What it does

Presents a set of selectable icons or scale indicators — such as star ratings, numeric scales, or emoji-style reactions — that let a user express a qualitative opinion or satisfaction level in a single tap or click.

Where it appears

End-of-survey summary screens, inline feedback prompts within consultation responses, post-submission confirmation pages, and stakeholder check-in flows.

Why it exists

Government engagement surveys need quick, low-friction ways to capture how participants feel about a consultation or service interaction. A structured sentiment control reduces open-text fatigue while still producing comparable, reportable data.

Dependencies

Form Field, Tooltip

Anatomy

PartRequired?Notes
Container Required Wraps the entire control. Receives the fieldset role and associates the visible label via legend.
Legend / Label Required Describes the question being answered. Rendered as a inside a
so all inputs share a single accessible label.
Scale item Required Each selectable unit — a star, emoji, or numeric indicator. Rendered as a visually styled radio input. Minimum one item; typical ranges are 3, 5, or 10 items.
Icon or glyph Required The visual representation of the scale item (star, face, number). Decorative when the radio label already conveys meaning; otherwise carries an aria-label.
Selected indicator Required Visual treatment applied to the chosen item and all lower-ranked items in cumulative scales (e.g. stars 1-3 fill when 3 is selected). Uses --op-color-interactive-default for fill.
Helper text Optional Supplementary guidance below the control, e.g. '1 = Very dissatisfied, 5 = Very satisfied'. Uses --op-text-sm and --op-color-text-secondary.
Error message Recommended Inline validation message displayed when the field is required but unanswered. Rendered with --op-color-status-error and the status-error icon.

Variants

Star rating

Cumulative satisfaction scale. Selected stars plus all preceding stars are filled. Commonly 5-point.

Satisfaction surveys, quality ratings, and any scenario where a ranked numeric scale is familiar to the audience.

Emoji reaction

Discrete emotional response. Each emoji represents a distinct sentiment band (e.g. very dissatisfied, dissatisfied, neutral, satisfied, very satisfied). Items are mutually exclusive — no cumulative fill.

Quick pulse checks in public-facing consultation flows where icon literacy outperforms numeric labels for diverse or lower-literacy audiences.

Numeric scale

Labelled integer range, typically 1-10 (NPS-style) or 1-5. Each number is a discrete radio button laid out horizontally.

Net Promoter Score surveys, standardised government satisfaction benchmarks, or when downstream analytics require a continuous numeric variable.

Thumbs (binary)

Two-option positive/negative response. No gradient — outcome is strictly helpful or not helpful.

Content usefulness prompts ("Was this page helpful?"), quick-win feedback on knowledge base articles or FAQ responses.

States

State Behaviour
Default (unselected) All scale items render in their unfilled/outline state. No item carries aria-checked=true. The first item is programmatically focusable via tabindex=0; subsequent items are reachable with arrow keys.
Hovered The hovered item and, for cumulative variants (star), all preceding items preview the selected fill using --op-color-interactive-hover at reduced opacity. Cursor changes to pointer.
Focused The focused item receives a 3px focus ring using --op-color-interactive-focus. Visible regardless of input method. Hover preview does not activate on keyboard focus alone.
Selected The chosen item is filled with --op-color-interactive-default. For cumulative variants, all items at or below the selected value are also filled. aria-checked=true is set on the active radio.
Disabled All items render at 40% opacity. Pointer events are suppressed. aria-disabled=true is set on each input and the container fieldset. Previously selected value is preserved visually.
Read-only Renders the current value in its selected state without interactive affordances. Used in review/confirmation screens. No focus ring or hover states. aria-readonly=true on the group.
Error The container receives --op-color-status-error border. The error message is shown below the helper text. aria-describedby on the fieldset points to the error message id.

Usage guidelines

When to use

  • Collecting satisfaction or sentiment data at the end of a consultation or survey flow.
  • Gathering a quick reaction to a specific piece of content, such as a policy document or FAQ answer.
  • Benchmarking stakeholder or community sentiment across multiple consultation rounds for comparison.
  • Supplementing open-text feedback fields with a structured numeric or emotional signal.

When not to use

  • When the question requires a nuanced or multi-dimensional response — use a Likert matrix or open textarea instead.
  • When sentiment data is informational only and the user cannot change it — use a read-only progress or badge indicator.
  • As a primary navigation or filtering control — use a select or toggle group instead.
  • When fewer than two response options exist — a single checkbox or yes/no radio pair is clearer.

Do / Don't

Do

Always pair the sentiment control with a visible legend that clearly states what is being rated.

Don't

Do not rely on surrounding page context alone to explain the scale; screen readers read the fieldset legend in isolation.

Do

Label the ends of numeric and star scales (e.g. 'Not at all likely' / 'Extremely likely') so meaning is unambiguous.

Don't

Do not leave a 1-10 scale unlabelled — numbers carry different cultural assumptions in diverse government audiences.

Do

Mark the field as required in the form validation schema and display an error message when it is skipped.

Don't

Do not silently treat an unanswered sentiment field as a neutral midpoint in your data pipeline.

Do

Use the emoji variant for public-facing Social Point surveys targeting mixed-literacy audiences.

Don't

Do not use emoji in formal stakeholder reporting interfaces (Open Point SRM) where numeric precision is expected.

Was this page helpful?

Updated 9 September 2026