Skip to content
Moodle Design Systemby Didactika
Moodle 5.3 LTS
v0.1
EN
Bootstrap components
Didactika theme v0.1

Progress

A bar that shows how far something has got: a course, an upload, a quiz.

A progress bar shows a known amount of completion. When the amount is not known (waiting for a server), use a spinner instead.

When to use it

Use it

  • Show the number next to the bar when the exact value matters.
  • Use the success colour only for completion.
  • Give it a text label that says what progresses.

Don't

  • Use a bar when you cannot tell how long it will take.
  • Animate a bar that is not changing.
  • Use it as a chart.

Anatomy

A track (progress) and one or more bars (progress-bar) whose width is the value. A bar can be striped, animated and carry a label.

Variants and states

Progress

Several parts in one bar

The parts of one total share a track and join without a gap, so they read as one bar. A legend with dots names each colour.

Stacked and connected
Grading status65 of 100 submissions
Graded 40In review 15Late 10Pending 35

With a label

A title and a value above, or the value at the side. The text carries the number so the colour does not have to.

Labelled
Unit 2 · Functions4 of 6 activities
42%
91% · 9.1 of 10 GB
60%

Steps

For a flow in steps or a list of lessons, one small bar per step.

Steps
Step 3 of 5Review

Heights

Heights

Combinations

Combination Use it for
Single bar × value One bar, the number at the side or above (“64%”, “4 of 6 activities”).
Stacked × total Parts of one total in one bar, joined, with a legend of dots.
Steps × flow One small bar per step, the finished ones filled; with “Step 3 of 5” above.
Colour × meaning Primary for progress, success for completion, warning and danger when a limit is close (storage).
Striped × waiting Striped and animated only while something is really working.

What Didactika changes and why

What we changed Why it helps
The bars of one total join with no gap Gaps look like separate quantities; a joined bar shows one total split in parts.
The ends of the track are round, the joints are straight The bar reads as one object and the parts are told by colour, not by shape.
The number is always written Progress must not depend on guessing a width: people with low vision or colour blindness read the number.
Steps are separate small bars A person counting steps counts blocks; one long bar hides how many remain.

Classes

Class What it does
progress The track; its height sets the bar height
progress-bar The filled part; width in style
progress-bar-striped, progress-bar-animated Stripes and movement
bg-success… Colour of a bar
dd-progress, dd-progress-head, dd-progress-value A progress bar with its title and value (Didactika)
dd-progress-inline The value at the side of the bar (Didactika)
dd-progress-steps One small bar per step (Didactika)

In this version

Bootstrap 5.3 keeps its colours in CSS variables (--bs-*), so a theme recolours the component with one variable. The role goes on the track.

Bootstrap 4.6 compiles its colours into the classes, so a theme recolours the component by rebuilding its stylesheet. The role goes on each bar.

Bootstrap 4.6 compiles its colours into the classes, so a theme recolours the component by rebuilding its stylesheet. The role goes on each bar.

Accessibility

  • role="progressbar" with aria-valuenow, aria-valuemin, aria-valuemax and an aria-label.
  • The value is also written as text when it matters.
  • Animated stripes respect the reduced motion preference.