Updated: 2026-06-26
Audited: 2026-06-26
blue → red) is activated
when the pilot is at or near the regulatory limit. Figma annotation: "gradient style for all progress bar fills".
psH738AqHDxuMyFm897f9r ·
Component: progress bar & labels (4537:14830) in components ftdt section ·
captured 2026-06-26
| State | Fill style | When used |
|---|---|---|
| Default | Solid interactive/blue-lt (#007bc2); width = Percentage × track width | Normal operating range |
| At-Limit | Linear gradient #007bc2 → #c02126 (left to right); width = 100% | Pilot at or past regulatory limit — Figma annotation confirms gradient applies to all bars at limit |
Tier: primitive. Extends ComponentViewModel. VM holds data only — fill appearance is determined by CSS/renderer from Percentage and IsAtLimit.
| Screen | Node | Instances | Labels seen |
|---|---|---|---|
| FTDT — Cumulative Limitations | 4535:14038 | 5 | Flight Hours: "672hrs in 672hrs", "1000hrs in 365days" · Duty Period Hours: "100hrs in 168hrs", "100hrs in 672hrs" + more |
| FTDT — Duty Periods (per card) | 4544:5877 | 1 per card | "Max Duty Period 14:00" |
| FTDT — Archived Logs (per card) | 4575:9452 | 1 per card | "Max Duty Period 14:00" |
Percentage × 100% on the CSS fill element. The track uses overflow:hidden so the fill never exceeds the track bounds.interactive/blue-lt is an accent token that may be overridden per MEC. The gradient endpoint (red/500) is semantic and should NOT be MEC-themed — it always signals a limit state regardless of airline brand.Target home: ALPAMobile.HybridUi (shared Razor class library). Component file: ProgressBar.razor.
| Parameter | Type | Required | Description |
|---|---|---|---|
Label | string | Yes | Limit descriptor — left label (e.g. "1000hrs in 365days"). |
CurrentValue | string | Yes | Limit descriptor — right value (e.g. "0:29"). |
Percentage | double | Yes | Fill width as a fraction 0.0–1.0. Rendered as width:@(Percentage*100)%. |
IsAtLimit | bool | Yes | When true, applies alpa-progress-bar__fill--limit gradient modifier. |
PercentageText | string | Yes | Footer row — left label (e.g. "0.45%"). |
LimitValue | string | Yes | Footer row — right label (e.g. "99:33"). |
@* Standalone — e.g. Cumulative Limitations screen *@
<AlpaProgressBar Label="@Vm.Label"
CurrentValue="@Vm.CurrentValue"
Percentage="@Vm.Percentage"
IsAtLimit="@Vm.IsAtLimit"
PercentageText="@Vm.PercentageText"
LimitValue="@Vm.LimitValue" />
@* Composed inside DutyPeriodCard.razor (MaxDutyBar slot) *@
<AlpaProgressBar Label="@Vm.MaxDutyBar.Label"
CurrentValue="@Vm.MaxDutyBar.CurrentValue"
Percentage="@Vm.MaxDutyBar.Percentage"
IsAtLimit="@Vm.MaxDutyBar.IsAtLimit"
PercentageText="@Vm.MaxDutyBar.PercentageText"
LimitValue="@Vm.MaxDutyBar.LimitValue" />
Classes will live in ALPAMobile.HybridUi/wwwroot/css/alpa-components.css under the alpa-progress-bar BEM block. The --limit modifier is the only state variant.
| Class | Scope | Key rules |
|---|---|---|
.alpa-progress-bar | Root wrapper | display:flex; flex-direction:column; width:100% |
.alpa-progress-bar__label-row | Top row (label + value) | display:flex; justify-content:space-between; align-items:center; margin-bottom:8px |
.alpa-progress-bar__label | Left limit descriptor | font-family:var(--font-family/alt); font-weight:600; font-size:18px; color:var(--text-primary) |
.alpa-progress-bar__value | Right current value | Same as __label |
.alpa-progress-bar__track | Backing bar | background:var(--surface-subtle); height:5px; border-radius:10px; overflow:hidden |
.alpa-progress-bar__fill | Blue fill | height:100%; border-radius:10px; background:var(--interactive-blue-lt) · width set inline from Percentage |
.alpa-progress-bar__fill--limit | At-limit fill modifier | background:linear-gradient(to right, var(--interactive-blue-lt), var(--status-error)) |
.alpa-progress-bar__footer-row | Bottom row (pct + limit) | display:flex; justify-content:space-between; align-items:center; margin-top:4px |
.alpa-progress-bar__pct | Footer left | font-family:var(--font-family/body); font-weight:var(--font-weight/heavy); font-size:16px; color:var(--text-primary) |
.alpa-progress-bar__limit-val | Footer right | Same as __pct |