A display-only transaction row — a header of column labels, or a content row with a full-width label above however many peso-amount cells you drop into its slot.
Keep — now built from the family's shared atoms
The rebuild turned this from a parallel re-implementation into a genuine composition. Its header slot holds the same Table Cell component that Table Row uses; its content slot holds the same Table Amount Cell that Table Scheduling uses. Settings are Role (Header / Content) and State (Default / Disabled), matching Table Row exactly, and no. of columns is gone — column count is however many cells sit in the ⤷ ColumnSlot. The raster peso is a Peso Sign - Proxima vector instance inherited from the shared amount cell. Kept as its own component because it carries a full-width #label row above its amount cells, which a plain Table Row doesn't. Rows are display-only, and amounts are unsigned by approved design.
In Context
Per-variant descriptions cite account limits — e.g. daily / monthly send caps showing used vs. remaining peso amounts in aligned columns. Other GCash surfaces like transaction history and receipts use the Generic Transaction Card vertical stack, not this tabular layout.
Live Preview
Column Label
Column Label
Column Label
Properties
Role
State
hasLabel
#label
hasBorder
⤷ ColumnSlot
Table Cell ⤷ AssetSlot
Cells
DS Health
Reusable
Pass
⤷ ColumnSlot takes any number of cells, and the shared Table Amount Cell carries its own ⤷ CurrencySlot — a non-peso currency is a swap, not a detach.
Self-contained
Pass
The currency prefix is a Peso Sign - Proxima vector instance inherited from the shared amount cell. The raster image fill and its remote asset URL are gone.
Consistent
Pass
Role and State match Table Row exactly, slots use the family's ⤷ …Slot form, and container is named the same way across all four versions. The no. of columns string-with-period property is gone.
Composable
Pass
Built from the family's own atoms — Table Cell in the header, Table Amount Cell in the content row. Nothing is re-implemented locally.
Behavior
State
iOS
Android
Figma Property
Notes
Header
Yes
Yes
Role=Header
360 × 66 on a #F6F9FD ground. ⤷ ColumnSlot holds Table Cell instances, each with a 24 × 24 ⤷ AssetSlot above a Proxima Soft Semibold 12 label.
Content
Yes
Yes
Role=Content
360 × 68 on white. A full-width #label in #6780A9 sits above a row of Table Amount Cell instances, each pairing a label with a peso-prefixed #value.
Disabled
Yes
Yes
State=Disabled
Text dims to #C2CFE5 across labels and values alike.
Pressed
N/A
N/A
Not built
Not needed — rows are display-only and carry no tap target.
Issues
Code Connect mappings not registered. Blocked — the native component library doesn't exist yet. Nothing to action on the design side. C7 · Code Connect Linkability
It composes the family's atoms instead of duplicating them. v2.0: rebuilt on node 5896:39727. The header's ⤷ ColumnSlot holds the same Table Cell component Table Row uses; the content row holds the same Table Amount Cell Table Scheduling uses. What were three parallel re-implementations are now one family sharing parts. C1 · Layer Structure & Naming
no. of columns is gone. v2.0: column count comes from the number of cells in ⤷ ColumnSlot. The period-in-name string enum inherited from the old Table is no longer there to fix. C2 · Variant & Property Naming
The row maps to native primitives. v2.0: frames and slots throughout — a VStack / Column with a nested row of cells. No platform table primitive required. C4 · Native Mappability
Interaction states are intentionally minimal. v2.0: reviewed and settled. Rows are display-only, so pressed and selected are not needed. State=Disabled is built and dims text to #C2CFE5. Amounts carry no + / − prefix and no positive/negative colouring — that is the approved design, not a gap. C5 · Interaction State Coverage
The peso sign is a vector. v2.0: the raster image fill and its remote figma.com/api/mcp/asset/* URL are gone, replaced by a Peso Sign - Proxima instance in ⤷ CurrencySlot. The header's hardcoded #C2C6CF circle is now a ⤷ AssetSlot holding a swappable Placeholder. C6 · Asset & Icon Quality
Staying a separate component is intentional. v2.0: reviewed and dismissed. Transaction keeps its own record because its content row carries a full-width #label above the amount cells, which a plain Table Row entry doesn't. Same reasoning as Table Scheduling — and since both now build from shared atoms, the family reads as one. C1 · Layer Structure & Naming
container is named consistently. v2.1: all four versions use lowercase container. The Header versions previously used Container. C1 · Layer Structure & Naming
The shared amount cell has a family-neutral name. v2.1: Table Scheduling Amount Cell renamed to Table Amount Cell. It is used by both Scheduling and Transaction, so the old name claimed a family it no longer belonged to exclusively. The rename propagated to both components. C1 · Layer Structure & Naming
Recommendations
Document amount-sign semantics. Amounts here are unsigned by approved design — used, remaining, and cap totals rather than signed movements. Write that down so the component isn't reached for on flows that need + / −; those belong to Generic Transaction Card. Docs
Align the amount label token with Inline Text. The content-row label uses #6780A9 and the value #0A2757 — the same semantic pair Inline Text covers with its own tokens. A shared set would stop the two drifting apart. Token
Audit the colour token bindings. The review tooling reads raw hex and can't see variable bindings, so C3 is recorded as unverified. Confirm #F6F9FD, #E5EBF4, #0A2757, #6780A9, and the #C2CFE5 disabled colour are all bound. Token
Flatten the peso glyph. For the Iconography team: Peso Sign - Proxima wraps a shape_full BOOLEAN_OPERATION. Flattening it to a plain vector removes a class of export and scaling surprises. Shared with Table Scheduling. Asset
See siblings:Table Row and Table Scheduling — all three share Table Cell and Table Amount Cell. Keep slot naming and state coverage aligned across the family. Family
Remove Table - Transaction from core DS, or fold it into Table as a recipe. v2.0: Settled — neither. It keeps its own record because its content row carries a full-width label above the amount cells, and it now composes the family's shared atoms rather than duplicating them. Family
Consolidate with Table's row primitive. v2.0: Applied in substance — the header slot holds Table Row's Table Cell and the content slot holds Table Amount Cell, so the parts are shared even though the record stays separate. Composition
Rename or drop no. of columns. v2.0: Applied — dropped. Column count comes from the number of cells in ⤷ ColumnSlot. Rename
Replace the raster peso sign with a text glyph or vector icon. v2.0: Applied — a Peso Sign - Proxima vector instance in ⤷ CurrencySlot, inherited from the shared amount cell. Asset
Give the container one name across all versions. v2.1: Applied — lowercase container on all four. Rename
Give the shared amount cell a family-neutral name. v2.1: Applied — Table Scheduling Amount Cell is now Table Amount Cell, propagated to both Scheduling and Transaction. Rename
Types
Header row
DESDEV
Subtle-bg row with bottom border. 10px Proxima Soft Semibold column labels across equal-width flex columns. Optional 24px icon above each label.
Group the preamble label with each amount column so VoiceOver reads "Daily, three thousand five hundred pesos".
Group the preamble label with each amount column so TalkBack reads "Daily, three thousand five hundred pesos".
Criteria Scorecard
ID
Criterion
Status
Notes
C1
Layer Structure & Naming
Ready
Composes Table Row's Table Cell in the header and the shared Table Amount Cell in the content row. container is named the same way across all four versions.
C2
Variant & Property Naming
Ready
Role and State match Table Row exactly. The no. of columns property and its period are gone.
C3
Token Coverage
Needs Refinement
Not verified — the read-only tooling cannot see variable bindings. The hardcoded #C2C6CF header circle is gone, replaced by a ⤷ AssetSlot.
C4
Native Mappability
Ready
Frames and slots throughout — builds as a VStack / Column with a nested row of cells.
C5
Interaction State Coverage
Ready
Display-only by design, so pressed is not needed. State=Disabled dims text to #C2CFE5. Amounts are unsigned by approved design.
C6
Asset & Icon Quality
Needs Refinement
Raster replaced by a Peso Sign - Proxima vector instance, and the header circle by a ⤷ AssetSlot. The glyph still wraps a shape_full BOOLEAN_OPERATION — delegated to the Iconography team.
C7
Code Connect Linkability
Not Mapped
Blocked — the native component library does not exist yet.
Variants Inventory (4 total)
Role (2) × State (2) = 4 published versions, listed below. Two booleans sit on top without adding variants — hasBorder on every row, and hasLabel on Content only — so the real combination count is 12. Column count isn't a version either: the ⤷ ColumnSlot takes however many cells you drop in — Table Cell instances in the header, Table Amount Cell instances in the content row, where each cell's own #label is hidden.
Role
State
Dimensions
Background
Node
Header
Default
360 × 66
#F6F9FD
5896:39740
Header
Disabled
360 × 66
#F6F9FD
5900:40254
Content
Default
360 × 68
#FFFFFF
5896:39762
Content
Disabled
360 × 68
#FFFFFF
5900:40274
1.0.0 — April 2026Major
Initial Assessment · node 47:324709
Family assessed — 6 variants (2 type × 2 columns × 2 icon, pruned). Only used for account-limit surfaces in the sticker sheet. Documented
Initial
Duplicate of Table — Reuses Table's variant schema with narrower column coverage and a peso-specialised content row. Recommend folding into Table as a recipe. Open
C1 Open
no. of columns inherited naming — String enum with a period in the property name, carried over from Table. Open
C2 Open
No native mobile primitive — Same mobile problem as Table; transaction totals should be Inline Text stacks. Open
C4 Open
No interaction or amount-sign states — No pressed / disabled, no positive / negative amount differentiation. Open
C5 Open
Peso sign is a raster asset — Content row currency prefix is an image fill, not a text glyph or vector. Header icon placeholder is still hardcoded #C2C6CF. Open