Updated: 2026-06-26
Audited: 2026-06-26
btn-flight finder interior nav
and was entered in figma-component-specs.json as "Flight Finder Nav Button" (June 2026 re-sync).
However, this component appears on FTDT screens as well as Flight Finder — the "Flight Finder" qualifier is
too narrow. A new D-number is needed to assign a cross-feature name before implementation.
Candidate: InteriorTabItem. This page uses Interior Tab Nav Item as a working name.
default (Afacad SemiBold, no decoration) and
active (Futura PT Demi, underline).
psH738AqHDxuMyFm897f9r ·
Component: btn-flight finder interior nav (4457:12515) in Components section (4020:3422) ·
captured 2026-06-26
| Variant | Figma node | Font | Decoration |
|---|---|---|---|
Property 1=default | 4457:12516 | Afacad SemiBold 18px | none |
Property 1=active | 4457:12514 | Futura PT Demi 18px | underline |
The VM name below uses the working name InteriorTabItemViewModel pending a D-number decision. Do not reference this name in any C# code until the decision is recorded.
| Screen | Node | Tabs |
|---|---|---|
| FTDT — Cumulative Limitations | 4535:14038 | Cumulative Limitations (active) · Duty Periods · Archived Logs |
| FTDT — Duty Periods | 4544:5877 | Cumulative Limitations · Duty Periods (active) · Archived Logs |
| FTDT — Archived Logs | 4575:9452 | Cumulative Limitations · Duty Periods · Archived Logs (active) |
| Flight Finder (from Figma node name reference) | 4713:25117 | TBD — pending screen audit |
tab group (4361:8479, 345×31) is the in-screen segment for single-choice filtering (NONSTOP / ONE STOP / MULTILEG). This component is the top-of-screen interior navigation strip. Different Figma masters, different roles.title slot frame) lives in the screen template, not in a separate container component. At implementation, consider whether a InteriorTabNavViewModel container holding ObservableCollection<InteriorTabItemViewModel> is warranted.font-family.overflow-x: clip on the outer container. On very narrow screens or with many tabs, the strip should scroll; the Figma master shows overflow: clip for the artboard frame.Target home: ALPAMobile.HybridUi. Component file: InteriorTabItem.razor (name subject to D-number resolution — see naming note above). The tab row container is an inline <div class="alpa-interior-tab-nav"> assembled by the screen template, not a separate component.
| Parameter | Type | Required | Description |
|---|---|---|---|
Label | string | Yes | Tab display text (e.g. "Duty Periods"). |
IsActive | bool | Yes | True → active state: Futura PT Demi font + underline decoration. |
OnClick | EventCallback | Yes | Navigate to this tab's content view. |
@* Row container assembled in screen template (e.g. FTDTLanding.razor) *@
<div class="alpa-interior-tab-nav">
<AlpaInteriorTabItem Label="Cumulative Limitations"
IsActive="@(ActiveTab == Tab.Cumulative)"
OnClick="@(() => SelectTab(Tab.Cumulative))" />
<AlpaInteriorTabItem Label="Duty Periods"
IsActive="@(ActiveTab == Tab.DutyPeriods)"
OnClick="@(() => SelectTab(Tab.DutyPeriods))" />
<AlpaInteriorTabItem Label="Archived Logs"
IsActive="@(ActiveTab == Tab.ArchivedLogs)"
OnClick="@(() => SelectTab(Tab.ArchivedLogs))" />
</div>
Classes will live in ALPAMobile.HybridUi/wwwroot/css/alpa-components.css under the alpa-interior-tab BEM block. Name subject to D-number resolution.
| Class | Scope | Key rules |
|---|---|---|
.alpa-interior-tab-nav | Row container (screen template) | display:flex; gap:10px; align-items:center; overflow-x:clip; padding:4px 0 |
.alpa-interior-tab | Single tab item root | display:inline-flex; align-items:center; padding:4px 8px; font-family:var(--font-family/alt); font-weight:600; font-size:18px; color:var(--text-primary); white-space:nowrap; cursor:pointer |
.alpa-interior-tab--active | Active state modifier | font-family:var(--font-family/body); font-weight:500; text-decoration:underline; text-underline-offset:3px; text-decoration-thickness:1px |