Buma UI - DocumentationBuma UI - Documentation
Get Started
Foundations
Components
Resources
Patterns
Data Visualization
Back to BSpace
Get Started
Foundations
Components
Resources
Patterns
Data Visualization
  • stacksFoundations
    • 💡 Overview
    • Color
    • Principle
    • Typography
  • brickComponents
    • 💡 Overview
    • Accordion
    • Alert
    • Avatar
    • Badge
    • Bottom Sheet
    • Bread Crumb
    • Button
    • Button Link
    • Button Navigation
    • Calendar
    • Card
    • Chat
    • Checkbox
    • Chips
    • Choice Tile
    • Comment
    • Date Picker
    • Divider
    • Download
    • Drawer
    • Dropdown
    • Empty State
    • Floating Button
    • Form Input
    • Header
    • Hint
    • Icon
    • List Choice
    • Loading
    • Modal
    • Navigation Bar
    • Notification
    • Pagination
    • Progress Bar
    • Radio Button
    • Search
    • Scrolling Bar
    • Segmented Switch
    • Side Menu
    • Side Tab
    • Slider
    • Switch
    • Tab
    • Table
    • Text Area
    • Text Input
    • Time Picker
    • Title
    • Toast
    • Tooltip
    • Wizzard
  • splitscreenPattern
    • 💡 Overview
    • Filter
      upcoming
    • Form
      upcoming
    • Notification
    • PWA
      upcoming
    • table
      upcoming
    • Upload Download
      upcoming
  • insert_chartData Visualization
    • 💡 Overview
    • Tiering
    • Pattern
    • Chart and Graph
      • Chart Selection Guide
      • Map Selector
      • Donut Chart
      • Donut Progress Bar Chart
      • Spider Chart
      • Line Chart
      • Chart Area
      • Speedometer
      • Heat Map
      • Scatter Plot
      • Pie Chart
      • Bar Chart
      • Waterfall Chart
      • Sunburst Chart
      • Tree Decomposition Chart
      • Scorecards
      • Table
      • Micro Visualization
    • Typography
    • Color Palette
  • data_objectTokens
    upcoming
  • inventory_2Resources
    • 💡 Overview
    • Mobile
      new
      • 💡 Introduction
      • Installation
      • General
        • Important Rules
        • Naming Convention
        • Clean Architecture
    • Web
      upcoming
ComponentsProgress BarA progress bar is a graphical user interface (GUI) element or visual indicator that displays the status of an ongoing task or process, typically in the form of a horizontal bar or a similar visual representation.
Guidelines
Design
v2.5.0
Updated
Vue
v2.0.0
Updated
Flutter
v2.0.0
Updated

Anatomy

 Text that provides additional context, such as the percentage completed.
 The filled portion within the track that visually represents the progress. The length of the indicator corresponds to the percentage of the task completed.
 The container that holds the progress indicator. It provides the visual boundary for the progress bar.
Additional text that may provide feedback or validation messages related to the progress.
  Text that provides additional context, such as the percentage completed or a description of the task.
 The filled portion within the track that visually represents the progress. The length of the indicator corresponds to the percentage of the task completed.
 The container that holds the progress indicator. It provides the visual boundary for the progress bar.
Additional text that may provide feedback or validation messages related to the progress.
 Element that visually indicates the progress of a task, such as downloading or loading, by gradually filling up as the process advances.
Progress Bar State
Success
Error
Info
Secondary
VARIANTUSAGE RECOMMENDATION
SuccessRefers to the main status or progress that you want to highlight or emphasize to the user
ErrorNotifying users about the problem and providing instructions or steps to fix it.
InfoProvide information to users
SecondaryIndicates a status or situation that does not dominate, but is still important for users to know
Progress Bar State
Without Information Text (Top Text)

Leverage non-long label variations to display concise progress information

With Information Text (Top Text)

Take advantage of long label variations to display detailed progress information. Example use case:

  • Remaining Time is useful for users to understand how much longer the process will take
  • Size is useful for indicating how large a file the user must download
  • Percentages give users an understanding of how far the process has progressed
Thick & Thin Bar

A thicker progress bar provides a more prominent visual cue, making it easier to notice and follow the progress. It’s often used in applications where visibility is key or on larger screens.

A thinner progress bar is more subtle and less obtrusive, often used in minimalist designs or when space is limited, like in mobile apps or small components.


Usage

Usage Recommendation:

  • Track how far the process has progressed and the estimated time remaining to complete it
  • Providing a more interactive and informative experience to users
  • By using a progress bar, users can easily see whether a process is in progress, how fast it is moving, and how long the process is likely to take to complete.
  • Unlike the Loading component, the Progress Bar provides information about the progress of a specific process, whereas loading does not.


Accessibility

Error Handling

If an error occurs, the progress bar should stop and display an error message. The color of the indicator can change to reflect the error state.


Content

Example Use Case
Upload
Bulk Upload
Web
Resources You can use these components by accessing the provided resource files.

Usage

The package is already installed in the repository's shell. To use the component, you only need to add the following code:

<BProgressBar />

Attributes

If there is a question mark ? in the Data Type, it means that the properties are optional.

PropertiesData TypeDescriptionDefault Value
modelValuenumberValue in bytesnone
size?numberMax value in bytesnone
small?booleanProgress bar typefalse
title?stringCustom title textnone
validationstringMax value in bytesnone
progress?numberOverride progress percentage without input max valuenone
variant?string Progress bar variantsprimary
infoClass?stringInject class to progress infonone
mainClass?stringInject class to progress mainnone
shadowClass?stringInject class to progress shadownone
fillClass?stringInject class to progress fillnone
percentageClass?stringInject class to progress percentagenone

Variants

The <BProgressBar /> component supports the following variants:

VariantDescription
primaryRefers to the main status or progress that you want to highlight or emphasize to the user
secondaryIndicates a status or situation that does not dominate, but is still important for users to know
dangerNotifying users about the problem and providing instructions or steps to fix it.
infoProvide information to users
Mobile
Resources
  • You can use these components by accessing the provided resource files.
  • Preview animations are examples and may not suit Mobile Widgets. Press 'View Code' to access the Widgetbook Playground and see the Flutter widget displaying all created components and interactive.

Usage

Import this line to your file:

import 'package:buma_design_system/buma_design_system.dart';

Attributes of all variants

If there is a question mark ? in the Data Type, it means that the properties are optional, this is namedConstructor from UIProgressBar.

UIProgressbar & UIProgressbar.looping

Displays a progressbar with percentage

PropertiesData TypeDescriptionDefault Value
valuedoubleDisplays mutable value of progressbar and percentage label0
sizeUIProgressbarSizeA constant size to make different height of progressbarUIProgressbarSize.small
UIProgressbar.detail

Displays a progressbar with looping value.

PropertiesData TypeDescriptionDefault Value
valuedoubleDisplays mutable value of progressbar and percentage label0
sizeUIProgressbarSizeA constant size to make different height of progressbarUIProgressbarSize.small
detailLabelUIProgressbarDetailLabel?Displays specific progress label above of progressbarnull
UIProgressbar
 UIProgressbar(
   value: _progress,
   size: UIProgressbarSize.large
 )
UIProgressbar.detail
 UIProgressbar.detail(
   value: _progress,
   size: UIProgressbarSize.large
   detail: UIProgressbarDetailLabel(
     sizeFile: 24,
     remainingTime: Duration(seconds: 80)
   )
 )
arrow_back
Previous Pagination
Next Radio Button
arrow_forward