CSS PROGRESS BAR GENERATOR

Dial in progress, colors, and optional stripes, then copy the generated CSS.

.progress {
  width: 100%;
  height: 16px;
  background: #4a4238;
  border-radius: 999px;
  overflow: hidden;
}

.progress .fill {
  height: 100%;
  width: 65%;
  background: #ff6a35;
  border-radius: 999px;
  transition: width 0.3s ease;
}

How to build a CSS progress bar

  1. 1

    Drag the progress slider to preview any fill percentage.

  2. 2

    Adjust the height, border radius, and track/fill colors.

  3. 3

    Turn on striped fill and, optionally, an animated stripe scroll.

  4. 4

    Copy the generated .progress / .fill CSS and paste it into your stylesheet.

Questions

Should I set the width with CSS or update it with JavaScript?
The generated .fill width is a fixed percentage for previewing a design. In a real app, update the .fill element's width (or a CSS custom property it reads) from JavaScript as the underlying task progresses — the transition: width rule already makes that change animate smoothly.
What's the difference between striped and animated?
Striped adds a repeating diagonal-stripe background pattern to the fill for texture. Animated adds a @keyframes rule that scrolls that stripe pattern continuously, which reads as ongoing activity — useful for an indeterminate or long-running task, not just a static percentage.
Is a CSS progress bar accessible to screen reader users?
Add role="progressbar" plus aria-valuenow, aria-valuemin="0", and aria-valuemax="100" on the outer .progress element (updating aria-valuenow as the value changes) so assistive tech can announce the current progress — the CSS alone carries no such semantics.
Can I use the native <progress> element instead?
You can, and it's more accessible by default, but styling it consistently across browsers is limited and clunky (different pseudo-elements per browser). A styled div-based bar like this one gives full control over appearance at the cost of adding the ARIA attributes yourself.
Does this tool send my design anywhere?
No — everything runs locally in your browser. The CSS is generated in real time and nothing is uploaded to a server.