East Blue v0.1.0
Component Assessment
Overview
Components
Accordion
Action List - with Counter
Action List - with Description
Action Row
Ad Carousel
Ad
Ad Space
Alert
DM LM
Avatar
Avatar Group
Label Label
Badge
Banner
Bottom Sheet
Button
Callout
Generic Card
Generic Transaction Card
Carousel Card
Carousel Item
Chat Field
Checkbox
Chip
Countdown
Counter
Date Picker
Date Picker - Group
Date Picker - Item
Month and Year Picker - Item
Select
Select Group
Select Item
Empty State
Amount Text Field
Input Field
Labeled Field
Recipient Field
Search Field
Select Field
Text Area
Upload File
View Only Field
Brand App Bar
Detail Hero
Footer
Page Banner
Section Header
Inline Message
Inline Text
List
List Item
List Item Asset
Menu Grid
Modal
Overlay
Progress Bar
Radio Button
Radio Button with Label
Service Item
Slider
Stepper
Stepper - Circular
Stepper - Dash
Subtext Message
Table Row
Table Scheduling
Table Transaction
Tab Item
Tabs
Title Header
Title Bar - App
Toast
Toast - With Button
Segmented Control - Group
Segmented Control Button
Toggle
Toggle - Segmented Control
Toggle - With Label
Tooltip
Tooltip - Onboarding
Tooltip Blurred and Transparent
Tooltip V2
Visual Popup
35%
Horizontal Voucher
Terms & Conditions Accordion
35%
Vertical Voucher
35%
Voucher Asset
Voucher Card Horizontal
Voucher Details
Icons Styles
KeepNeeds Refinement
Footer Component link

A page-bottom region containing partner logos, regulatory disclaimers, and helper links.

Keep — all findings resolved
Rebuilt on node 4227:11068 in the 2026 Working File as Alignment × LogoType × Label × Description, authored as a curated seven-variant set. The per-partner axes are collapsed into one enum, property and layer naming follow the guidelines throughout, and every dimension is a whole pixel. Five questions the original assessment left open are settled by decision: the raster partner marks, the baked disclaimer, Alignment staying a property, Footer remaining a component, and the variant selection being curated rather than partial. All four DS Health traits pass; the only item still open is Code Connect, blocked until the native library exists.
In Context

The Footer sits at the bottom of lending/savings/investment flows — carrying regulatory disclosures, partner attribution, and a link to more information on the Help Center.

Live Preview
Properties
Variant
Alignment
Description
Partner Logos
DS Health
Reusable
Pass
Works as the page-bottom region across the flows that need a regulatory disclaimer. The seven authored variants are a curated set matching real screens rather than a partial matrix, so every supported arrangement is available without detaching.
Self-contained
Pass
Owns its disclaimer copy, partner marks and layout. The baked legal text is deliberate — fixed wording that must not drift per instance.
Consistent
Pass
Property names follow §1, the partner axes are collapsed into one LogoType enum, Label reads True/False, and every layer carries a semantic name.
Composable
Pass
Partner marks come from Logos - Footer instances so a logo change updates from one source, and the component drops into any page bottom without configuration.
Behavior
State iOS Android Figma Property Notes
Default Yes Yes 7 variants The only modeled state — footer is informational.
Link pressed N/A N/A Not modeled "GLoan/GCredit/GSave on Help Center" should be a Text Button / Link instance with its own pressed state.
Link disabled N/A N/A Not modeled Informational link — rarely disabled in practice.
Issues
  • Code Connect mappings not registered. Blocked — no native library exists yet. C7 · Code Connect Linkability
  • Property names cleaned up. v2.0: Rebuilt on node 4227:11068 in the 2026 Working File. The spaced, jargon-laden property names are gone — the schema is now Alignment × LogoType × Label × Description, all PascalCase per §1. (C2 · Rename) C2 · Variant & Property Naming
  • Three partner axes collapsed into one enum. v2.0: LogoType = Group | Single | None replaces the separate per-partner axes, which is what drove most of the original cartesian blow-up. (C2 · Property) C2 · Variant & Property Naming
  • hasDescription renamed to Description. v2.1: The property carries three values — Default, None, Link — so a has* prefix was wrong on two counts: §2 reserves it for true/false booleans, and Link describes a content type rather than presence. Now a plain enum. (C2 · Rename) C2 · Variant & Property Naming
  • Layer naming cleaned up. v2.1: container → FooterContent and #text → Disclaimer, so the layer names say what they hold. (C1) C1 · Layer Structure & Naming
  • Raster partner logos accepted. v2.1: Closed by owner decision — the partner marks stay as supplied raster assets inside Logos - Footer instances. Partner branding arrives as fixed artwork the DS does not control and may not redraw, so vectorising would mean recreating third-party marks. The instancing is the part that matters: a logo change updates from one source rather than per variant. (C6) C6 · Asset & Icon Quality
  • Baked disclaimer copy accepted. v2.1: Closed by owner decision — the regulatory disclaimer stays as text in the component rather than becoming a slot. It is legal copy with fixed wording, so making it freely editable per instance would invite exactly the drift the fixed wording exists to prevent. (C1) C1 · Layer Structure & Naming
  • Alignment retained as a property. v2.1: Closed by owner decision — alignment stays on the component rather than moving to the consumer. The original assessment argued it is a layout concern; in practice the two alignments pair with different logo and label arrangements, so treating it as a component property keeps those pairings authored rather than left to each screen. (C4) C4 · Native Mappability
  • Footer confirmed as a component. v2.1: Closed by owner decision — Footer stays a DS component rather than becoming a screen-level composition. The regulatory disclaimer and partner marks are fixed content that must appear identically wherever they appear, which is precisely what a component guarantees and a composition does not. (Family) C4 · Native Mappability
  • Label values normalised. v2.2: The No value is renamed False, so Label now reads True / False consistently across all seven variants. It maps cleanly to a Swift Bool or Kotlin Boolean. The property keeps the bare name Label rather than taking a has prefix — worth revisiting only if the family standardises on verb-prefixed booleans. (C2 · Rename) C2 · Variant & Property Naming
  • Variant heights rounded. v2.3: All seven variants now measure whole pixels — 150, 182, 120, 116, 95, 108 and 80 — replacing the unrounded auto-layout results. The last outlier, Alignment=Left, LogoType=Single, Label=False, Description=Link, went 115.751 → 116. Every dimension maps cleanly to a native layout value. (C4) C4 · Native Mappability
  • Variant selection confirmed curated. v2.3: Closed by owner decision — the seven authored variants are the curated set, not a partial fill of a 36-cell matrix. Each corresponds to a screen that exists: left-aligned footers carry no label, LogoType=None and Description=Default each serve a single context. Unauthored combinations are deliberately unsupported rather than pending, so a consumer finding no variant for a pairing has the answer. (C2) C2 · Variant & Property Naming
Types
Default
DES DEV

Page-bottom region. Flip the Variant control to walk through every shipped layout (1–7), then override Alignment / Description / Partner Logos to compose your own.

Properties
Variant
Alignment
Description
Partner Logos
Properties
Variant 1
Alignment left
Description none
Partner logos powered-by
Colors
Surface #FFFFFF
Label #90A8D0
Description #6780A9
Link #005CE5
Layout
Width 360
Padding 24 all sides
Row gap (V1/V6) 16
Logo→logo gap 16
Logo size 18 tall (asset)
Typography
Label (Powered by) Proxima Soft Bold · 12 / 12 · +0.5 · #90A8D0
Disclaimer BarkAda Semibold · 12 / 18 · #6780A9
Link BarkAda Semibold · 12 / 18 · #005CE5
EBFooter("Powered by Fuse")
    .ebDisclaimer("Regulatory disclaimer copy")
    .ebHelpLink("Help center", destination: url)
Variant 1 — Colors

Footer chrome palette: white surface with muted helper labels and an accent link.

Role Token Default
Surface footer/color/bg #FFFFFF
Label footer/color/label #90A8D0
Description footer/color/description #6780A9
Link footer/color/label-link #005CE5
Property Mapping
Figma PropertySwiftUICompose
label: yes | no poweredByLabel?: String poweredByLabel: String?
gcash x partner + with partner + grouped logos partnerLogos?: .none | .single | .grouped | .gcashX partnerLogos: EBPartnerLogos?
(baked in each variant) partnerLogo slot partnerLogo: Image?
description: none | default | with link disclaimer?: String disclaimer: String?
(baked in each variant) helpLink?: { label, action } helpLink: EBHelpLink?
alignment: left | center (removed — consumer owns layout) (n/a)
Accessibility
RequirementiOSAndroid
Logo alt text Each partner logo must carry .accessibilityLabel("GCash") / .accessibilityLabel("CIMB"). Each logo Image must supply contentDescription.
Help link role Expose as Button with accessibility hint "Opens help center". Wrap in Modifier.clickable with Role.Button semantics.
Minimum touch target Help-link hit area ≥44×44pt. Help-link hit area ≥48×48dp.
Reading order Label → logos → disclaimer → help link. VoiceOver follows DOM order. Same order — TalkBack follows composition order.
Disclaimer readability Ensure Dynamic Type scales disclaimer text; do not clip at large sizes. Support fontScale; wrap rather than truncate.
Criteria Scorecard
ID Criterion Status Notes
C1 Layer Structure & Naming Requires Rework Variant names spell out all 6 axes verbatim; layer names default-hug groups like "Logos - Footer Group" repeat across variants.
C2 Variant & Property Naming Requires Rework Property names contain spaces (gcash x partner, grouped logos, with partner). Three axes describe the same thing.
C3 Token Coverage Ready Spacing, bg, label, description, and link-label are all bound to main/footer/color/* and space/space-* tokens. Typography pulls Primary/Label/Fine, Secondary/Bold/Caption, and Secondary/Bold/Small Caption.
C4 Native Mappability Requires Rework Disclaimer copy + help link live inside variants — not props. Alignment is a consumer concern. Partner logos are baked assets, not a slot.
C5 Interaction State Coverage Requires Rework Help-center link is styled text, not a Text Button instance — no pressed/focused/disabled states.
C6 Asset & Icon Quality Requires Rework CIMB, Fuse, PDAX, Bayad logos ship as raster <img> fills. Need vector source + a Partner Logos set.
C7 Code Connect Linkability Not Mapped Cannot map until property names normalize, drawn text becomes slots, and partner logos resolve via a Slot.
Variants Inventory (7 total)

Six boolean-ish axes combine to ~96 theoretical shapes — only 7 built. Each shipped variant solves a specific product flow (GLoan, GCredit, GSave, PDAX, Bayad).

#Nodedescriptionlabelgcash x partneralignmentwith partnergrouped logosUse case
121:215191nonenonoleftyesnoGLoan — Powered-by Fuse + disclaimer + link
221:215193defaultnoyesleftnonoCredit acknowledgement + GCash × CIMB
321:215195with linknonocenternonoGSave — centered help-link only
421:215197nonenoyescenternonoGCash × CIMB logos, centered, no text
521:215199with linknoyesleftnonoGCredit — link + GCash × CIMB
621:215201with linknonoleftyesnoPowered-by Bayad row + link
721:215203noneyesnocenternoyes"In partnership with" · GCash + PDAX grouped
1.0.0 — April 2026Major
Initial Assessment · node 21:215190
Verdict: Restructure — Rename 6 axes to camelCase, collapse three partner booleans into one partnerLogos enum, expose partner-logo Slot, remove alignment axis (consumer owns layout). Open
Architecture
Disclaimer + help link should be slots, not baked copy — Disclaimer becomes disclaimer: String (or Inline Text instance). Help link becomes a Text Button instance with its own state coverage. Open
C4 · C5
Partner logos are raster — Provide vector source in a Partner Logos set; swap raster fills for Logo instances. Open
C6
C7 — Code Connect — Blocked until property names normalize and content slots are introduced. Open
C7
On this page
Are you looking for Components?
esc