Hacktoberfest 2026:维护者为十月标记出来的 issue,仍然开放、适合新手。 浏览 Hacktoberfest issue

feat: modernize progress indicators

未关闭
#4,971 0 条评论 0 个 reaction 已指派 1 人 在 GitHub 查看

维护者通常 7 天内回复

@adrcotfas 已经在做这个了。

开始于 2026年6月9日。

评估

这个 Issue 还没有评估数据。

描述

v6
  • Modernize progress indicators according to the MD3 Specs and reuse existing MD theme foundation tokens (motion, shape etc) where appropriate.
  • Extract component tokens to a separate file for easier maintenance

Current State

Existing "Activity Indicator" and "Progress Bar" components correspond to MD3 Progress Indicators.

Activity Indicator

MD3 spec: Progress indicators (Circular)
Specs link: https://m3.material.io/components/progress-indicators/specs

Color tokens
  • No track color. MD3 requires a track arc behind the indicator (token: secondaryContainer); only primary is rendered
Spacing / sizing
  • Stroke width is size / 10 (2.4dp @ small, 4.8dp @ large). MD3 specifies a fixed 4dp stroke for both indicator and track
Behavior
  • Arc ends are square (border clipping technique). MD3 requires rounded stroke caps
  • No track rendered. MD3 always shows the inactive track arc
  • M3 Expressive wavy circular and linear indicators not implemented
Notes
  • Rename to match MD3: CircularProgressIndicator and move to a “Progress Indicators” directory together with Linear Progress Indicator.
  • Entire rendering approach is MD2-era (two clipped half-border views). MD3-compliant implementation needs SVG or canvas-based arc for rounded caps and track

Progress Bar

MD3 spec: Linear progress indicator
Specs link: https://m3.material.io/components/progress-indicators/specs

Color tokens
  • Active indicator: color || theme.colors.primary ✅
  • Track: theme.colors.surfaceVariant; spec requires secondaryContainer ❌
  • No stop indicator rendered; spec defines a stop indicator at 100% (color primary)
Spacing / sizing
  • Height: 4dp ✅
  • Track has no borderRadius; spec corner.full requires borderRadius: 2 for 4dp height
  • Active indicator fill has no borderRadius; same issue as track
  • No 4dp horizontal inset from screen edges; spec shows 4dp padding on each side
  • Configurable thickness not supported (M3 Expressive)
  • Wavy shape (amplitude 3dp, wavelength 40dp, height 10dp) not supported (M3 Expressive)
Behavior
  • Determinate mode: progress value animates via scaleX ✅
  • Indeterminate mode: looping translate + scaleX animation ✅
  • Visibility fade in/out ✅
  • RTL support ✅
  • Stop indicator not shown at the end of the track
Notes
  • Should be renamed LinearProgressIndicator and placed in a shared ProgressIndicator/ directory alongside ActivityIndicator (circular), matching MD3 naming
  • ProgressBar name and the color prop (which bypasses the token system) are library-level issues to address at rename time
主要语言
TypeScript
星标
14.5k
派生
2.2k
平均合并
6 天 12 小时
30 天内合并 PR
5

环境准备

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

callstack/react-native-paper 的其他 Issue

查看 callstack/react-native-paper 的全部 Issue

相似的 Issue

更多 TypeScript Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。