mcpField
S
syncfusion-angular-progress-bar

syncfusion-angular-progress-bar

github.com/syncfusionDesign & UI0265 installsUpdated 1w ago
Repository

About syncfusion-angular-progress-bar

A skill for Angular developers implementing the Syncfusion Progress Bar to display task or process progress. It covers multiple shapes and modes, animation, customization, and accessibility.

Key features

  1. 01Linear, circular, and semicircular shapes
  2. 02Determinate, indeterminate, and buffer modes
  3. 03Configure animation, colors, size, and segments
  4. 04Progress labels, tooltips, and events
  5. 05Keyboard navigation and ARIA support

Use cases

  1. 01Show file upload progress
  2. 02Display an animated loading state
  3. 03Present primary and secondary progress
  4. 04Indicate task completion

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/syncfusion/angular-ui-components-skills --skill syncfusion-angular-progress-bar

After installing, type/syncfusion-angular-progress-barin Claude Code to confirm it loaded.

Bundled files

References and scripts installed along with SKILL.md.

references/
accessibility.md
api-reference.md
customization.md
features-and-interactions.md
getting-started.md
progress-modes.md
types-and-shapes.md

Details

From the project README

Implementing Syncfusion Angular Progress Bar

The Angular Progress Bar is a lightweight component that visually represents the progress of a task or process. It supports multiple shapes (linear, circular, semi-circular), progress modes (determinate, indeterminate, buffer), animations, and comprehensive customization options.

When to Use This Skill

Use this skill when:

  • You need to display progress of a task in Angular
  • You want to show loading states with animations
  • You need different progress bar shapes (linear, circular)
  • You're building download/upload progress UI
  • You need accessibility-compliant progress indicators
  • You want to display multiple progress states (primary + secondary)

Don't use this skill for:

  • Spinners (use Skeleton Loader for loading states)
  • Step indicators (use Stepper component)
  • Timeline visualization (use Timeline component)

Component Overview

The Syncfusion Progress Bar provides:

  • Multiple Shapes: Linear, Circular, SemiCircular
  • Progress Modes: Determinate, Indeterminate, Buffer
  • Animations: Smooth progress transitions with customizable duration and delay
  • Customization: Colors (progress, track, secondary), thickness, segments, corner radius, ranges
  • Segment Support: Divide progress into segments with adjustable spacing
  • Accessibility: Full WCAG compliance, keyboard navigation, ARIA attributes
  • Events: Progress completion, value changes, text rendering
  • Reactive: Works seamlessly with Angular's change detection

Documentation and Navigation Guide

Getting Started

📄 Read: references/getting-started.md

  • Installation and package setup
  • Angular dependencies and imports
  • Basic progress bar implementation
  • CSS theme configuration
  • Minimal working example
  • Common setup patterns
Types and Shapes

📄 Read: references/types-and-shapes.md

  • Linear progress bar
  • Circular progress bar
  • Semi-circular progress bar
  • Shape-specific properties
  • When to use each type
  • Switching between types
Progress Modes

📄 Read: references/progress-modes.md

  • Determinate mode (known progress)
  • Indeterminate mode (unknown progress)
  • Buffer mode (primary + secondary progress)
  • Mode selection guidelines
  • Real-world scenarios for each mode
Customization

📄 Read: references/customization.md

  • Sizing and thickness
  • Color configuration (progress and track)
  • Min, Max, and Value properties
  • Radius and InnerRadius
  • Segments and segments spacing
  • Advanced styling patterns
Features and Interactions

📄 Read: references/features-and-interactions.md

  • Annotations and labels
  • Animation configuration
  • Tooltip support
  • Event handling (valueChanged, progressComplete)
  • Range indicators
  • Reactive data binding
Accessibility

📄 Read: references/accessibility.md

  • WCAG 2.1 compliance
  • WAI-ARIA attributes
  • Keyboard navigation support
  • Screen reader considerations
  • Testing accessibility
  • Best practices

Quick Start Example

import { Component } from '@angular/core';
import { ProgressBarModule } from '@syncfusion/ej2-angular-progressbar';

@Component({
  selector: 'app-root',
  standalone: true,
  imports: [ProgressBarModule],
  template: `
    <div style="margin: 20px;">
      <!-- Linear Progress -->
      <h4>File Download</h4>
      <ejs-progressbar
        [value]="65"
        height="20"
        type="Linear"
        style="width: 300px;">
      </ejs-progressbar>

      <!-- Circular Progress -->
      <h4 style="margin-top: 20px;">Task Completion</h4>
      <ejs-progressbar
        [value]="65"
        type="Circular"
        height="200"
        width="200">
      </ejs-progressbar>

      <!-- Semi-Circular Progress -->
      <h4 style="margin-top: 20px;">System Status</h4>
      <ejs-progressbar
        [value]="65"
        type="SemiCircular"
        height="200"
        width="200">
      </ejs-progressbar>
    </div>
  `
})
export class AppComponent {
}

Common Patterns

Pattern 1: File Upload Progress
export class FileUploadComponent {
  uploadProgress = 0;

  onFileUpload(file: File) {
    // Simulate upload
    const interval = setInterval(() => {
      this.uploadProgress += Math.random() * 30;
      if (this.uploadProgress >= 100) {
        this.uploadProgress = 100;
        clearInterval(interval);
      }
    }, 500);
  }
}
Pattern 2: Loading State with Animation
export class LoadingComponent {
  @Input() isLoading = false;
}

Template:

<ejs-progressbar
  *ngIf="isLoading"
  [isIndeterminate]="true"
  [height]="4"
  [animation]="{ enable: true, duration: 2000, delay: 0 }">
</ejs-progressbar>
Pattern 3: Multiple Progress States
export class DownloadComponent {
  primaryProgress = 35;
  secondaryProgress = 65;
}

Template:

<ejs-progressbar
  [value]="primaryProgress"
  [secondaryProgress]="secondaryProgress"
  type="Linear">
</ejs-progressbar>

Key Props Reference

PropertyTypePurpose
valuenumberCurrent progress value (0-100 or custom min/max)
typestringShape: 'Linear', 'Circular', 'SemiCircular'
isIndeterminatebooleanShow indeterminate state when true
secondaryProgressnumberBuffer/secondary progress value
minimumnumberMinimum value of progress range (default: 0)
maximumnumberMaximum value of progress range (default: 100)
heightnumber|stringProgress bar height in pixels or percentage
widthnumber|stringProgress bar width in pixels or percentage
trackThicknessnumberTrack line thickness
progressThicknessnumberProgress bar thickness
secondaryProgressThicknessnumberSecondary progress thickness
progressColorstringProgress bar color (hex, rgb, etc)
secondaryProgressColorstringSecondary progress color
trackColorstringTrack background color
cornerRadiusstring'Round' | 'Square' - Corner style
radiusnumber|stringOuter radius for circular/semi-circular bars
innerRadiusnumber|stringInner radius for donut-style appearance
segmentCountnumberDivide progress into N segments
segmentSpacingnumberSpace between segments in pixels
showProgressValuebooleanDisplay progress percentage text
animationAnimationModelAnimation config: {enable, duration, delay}

Events Reference

The Progress Bar component emits several important events:

EventDescriptionArgs
valueChangedFired when progress value changesIProgressValueEventArgs
progressCompletedFired when progress reaches 100%IProgressValueEventArgs
textRenderFired before rendering progress textITextRenderEventArgs

Note: Use (textRender) event to customize the progress label display format.

API Reference

A complete API reference for the Syncfusion Angular ProgressBar is available in the references folder. It includes property types, method anchors, and event arg links that map to the official docs.

Read the API reference: references/api-reference.md

Related Components

  • Skeleton Loader - For general loading indicators
  • Spinner - For indeterminate loading states
  • Stepper - For step-by-step progress
  • Toast - For progress notifications

Comments

Markdown supported