Skip to content

Components: Expand ProgressBar functionality and visual customization #65528

Closed

Description

@keoshi

Problem Statement

The current ProgressBar component is quite limited, with no clear sizing or styling options.

As it stands, the bar itself is nearly invisible in certain contexts, making it unsuitable for cases where it needs to stand out. There is also a lack of flexibility for potential use cases other than being used for real-time updates, such as displaying scores or object meters.

image

Goals

  • Explore adding more customization options for size, type, and styling of the ProgressBar, either through props or other means.
  • Consider whether the ProgressBar should remain a single component or be expanded to include labels and indicators for more complex use cases.
  • Discuss the potential use of the component in scenarios beyond simple progress indication, such as denoting a score or other type of permanent status.

Designs

Linear

→ Link to Figma

image

Circular

→ Link to Figma

image

Feedback

  1. Should size, type, and styling be customizable through props, or is CSS sufficient for these changes?
  2. Would wrapping progress bar, labels, and indicators into a new component be a better approach for more complex needs?
  3. How do we ensure this component remains simple while still offering flexibility for advanced use cases?

Would love to hear your thoughts @mirka @ciampo @tyxla.

Activity

  1. added
    [Type] DiscussionFor issues that are high-level and not yet ready to implement.
    on Sep 20, 2024
  2. changed the title [-]Components: `ProgressBar`[/-] [+]Components: Expand `ProgressBar` functionality and visual customization[/+] on Sep 20, 2024
  3. mirka commented on Sep 24, 2024

    @mirka
    Member
    1. Should size, type, and styling be customizable through props, or is CSS sufficient for these changes?

    We don't have an official system yet, but from past explorations like the Theme component or the theme package, it's likely that we'll eventually adopt a system based on CSS variables.

    1. Would wrapping progress bar, labels, and indicators into a new component be a better approach for more complex needs?

    The suggested patterns look reasonable, but since we don't have actual use cases in the Gutenberg app yet, I don't think we can officially codify them as part of the component yet.

  4. simison commented on Oct 8, 2024

    @simison
    Member

    A practical example of circular progress indicator that I'd find helpful right away:

    Image

  5. simison commented on Sep 30, 2026

    @simison
    Member

    Some of these features are coming up in:

    Likely enough on those to close this or split into further follow-up issues. cc @ciampo

  6. ciampo commented on Sep 30, 2026

    @ciampo
    Contributor

    Hey @keoshi , as mentioned by @simison we're already working on ProgressBar in a few separate PRs.

    Regarding the rest of the suggestions, this should be discussed together with @WordPress/gutenberg-design to understand what we want to support.

    From recent conversations:

    • there's hope that we can keep the current height as-is, as that was the result of careful design considerations. Also, we're going to use a different height for the Meter component's track/thumb (see UI: Add Meter #83855) as the main way to visually distinguish a progress bar from a meter.
    • the new ProgressBar and Meter components (UI: Add Progress with custom color support #83781 and Playlist Track: Constrain the Track image inspector preview #83885) have a compound API, exposing subcomonents like label and value that should allow consumers to compose in different layouts as needed;
    • Those new components also expose a tone prop, which initially will support neutral and brand options, which will allow consumers to change the color of the thumb.
    • As for success/error states, those will be explored separately, since they can have semantic implications that can different depending on whether the underying component is a progress bar or a meter
    • Re. circular shape, that's a competely new variant that AFAIK was never discussed and specc'd in details.
  7. youknowriad commented on Oct 18, 2026

    @youknowriad
    Contributor

    Thanks for kicking this off, @keoshi! Most of this has now landed in @wordpress/ui: the new Progress (#83781) and Meter (#83855) components have a compound API with label/value/track/indicator subcomponents for composing different layouts. Progress accepts a custom indicator color and Meter a tone. ProgressBar itself now uses WPDS color tokens (#83779). As @ciampo noted, success/error states will be explored separately, and a circular variant would be a new, not-yet-specced component. I'm closing this in favour of focused follow-ups, so please open a new issue for either of those if design wants to pursue them.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions