Skip to content

feat(ui): Build reusable ProgressBar and CircularProgress components - #375

Merged
Damidesign merged 1 commit into
Navin-xmr:mainfrom
rindicomfort:feat/267-progress-components
Jun 26, 2026
Merged

feat(ui): Build reusable ProgressBar and CircularProgress components#375
Damidesign merged 1 commit into
Navin-xmr:mainfrom
rindicomfort:feat/267-progress-components

Conversation

@rindicomfort

Copy link
Copy Markdown
Contributor

Summary

Closes #267

Implements two shared progress indicator components requested in issue #267, following all project conventions (TypeScript strict, Tailwind-only, barrel exports, ARIA attributes).


Changes

ProgressBarfrontend/src/components/ui/ProgressBar/

  • Linear progress bar with smooth transition-all duration-500 width animation
  • Props: value (0–100), label?, color? (blue | green | yellow | red), size? (sm | md | lg)
  • Full ARIA support: role="progressbar", aria-valuenow, aria-valuemin, aria-valuemax
  • Color variants map to existing Tailwind design tokens (accent-blue, accent-green, etc.)

CircularProgressfrontend/src/components/ui/CircularProgress/

  • SVG-based circular progress arc using stroke-dashoffset technique
  • Smooth transition-all duration-500 animation on the arc
  • Center label renders the current percentage inside the SVG
  • Props: value (0–100), size? (px, default 80), strokeWidth? (default 6), label?
  • Full ARIA support: role="progressbar", aria-valuenow, aria-valuemin, aria-valuemax

Root barrel frontend/src/components/index.ts

  • Exports both components and their types under the // UI section

Acceptance Criteria

  • ProgressBar animates to correct fill width
  • CircularProgress arc matches the value via stroke-dashoffset
  • Both have correct ARIA attributes (role, aria-valuenow, aria-valuemin, aria-valuemax)
  • All prop variations typed and exported
  • No TypeScript errors (strict: true compliant)
  • Tailwind-only styling, no per-component CSS
  • Barrel index.ts in each component folder
  • Exported from root components/index.ts

@Damidesign
Damidesign merged commit 46c64f0 into Navin-xmr:main Jun 26, 2026
2 of 5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant