Components

The core UI primitives of East Blue. Each one is scored for design-system health (structure, naming, tokens) and native mobile readiness for SwiftUI and Jetpack Compose handoff.

84 components 465 open 58 resolved
Keep

Accordion

A disclosure row that expands to reveal content. Supports optional leading icon and description via boolean visibility properties. Reduced from 24 to 6 variants (Type × State) with color tokens fully connected.

Restructure

Action List

A row primitive used in lists of tappable rows — title, optional trailing CTA, and chevron.

Consolidate

Action List - with Counter

Action-list row with a 32px leading icon, label, trailing chevron, and a trailing Counter pill.

Consolidate

Action List - with Description

Action-list row with a primary label and a secondary description line beneath it.

Keep

Ad Space

A canonical surface for ads, promos, and sponsored placements — supports banner, promo, and hero size families with a single content slot.

Fix

Alert

A persistent in-flow status banner with intent (info, success, warning, danger), title, description, and optional CTA.

Restructure

Amount Text Field

A display-style numeric input for PHP amount entry in Send Money, Cash-In, and top-up flows. Sits on a single underline — Large is a 53px headline, Default prefixes a peso glyph with a 35px amount.

Keep

Avatar

A circular display element showing user initials or a profile image. Supports 7 sizes (20px-90px) and 3 types (dark initials, light initials, image). Used when a profile image is unavailable or for visual user identification.

Fix

Avatar Group

Stacked or overlapping avatars used to show participant lists — conversation members, shared documents, collaboration indicators.

Keep

Badge

A small label used to flag status, counts, or category — supports multiple intents and densities.

Restructure

Banner

A neutral-background promotional banner with an image or icon, a text stack (preamble, heading, description), and an optional button link.

Restructure

Bottom Sheet

The bottom-anchored sheet surface used for list pickers, confirmations, forms, and onboarding.

Keep

Button

Used to trigger an action when tapped. The button's Call to Action describes the action that will occur. The Large/Medium Buttons are the default size for the GCash app.

Restructure

Callout

A compact attention strip with neutral, info, warning, or danger intent, optional description, and an optional leading icon.

Consolidate

Carousel - Discount Card

A discount-themed card variant inside a horizontally scrolling carousel — hero image, percent-off badge, and label.

Carousel - Item

A horizontal-scroll item used as a building block for product/promo carousels.

Restructure

Carousel Card

A tappable card used inside a horizontally scrolling carousel — image, title, and optional description.

Restructure

Chat Field

A message-composer input with a text area, leading attachment, and trailing send action.

Keep

Checkbox

A selection control for binary and partial choices. 33 variants across isSelected (true/false/indeterminate) × State (Default/Pressed/Focused/Disabled/Error) × Size (Small/Medium/Large). Code Connect registration pending.

Restructure

Chip

A 32px pill used for filters, tags, selected values, and pill-styled dropdown triggers.

Restructure

Countdown

A live timer showing time remaining (days · hours · minutes · seconds) across multiple presentations — full promo card, single bar, segmented boxes, or a compact pill.

Fix

Counter

A small numeric badge used to display unread or pending counts on icons and rows.

Restructure

Date Picker

The full calendar UI used to pick a date — header, weekday row, and a 7×6 day grid.

Consolidate

Date Picker - Group

The calendar surface that hosts the Day/Month/Year picker grids.

Consolidate

Date Picker - Item

The 32×32 selectable day cell rendered inside the Date Picker calendar grid.

Fix

Dropdown

A trigger button that opens a popover surface containing selectable options.

Fix

Dropdown Item

A single selectable row inside a Dropdown popover — label, optional leading icon, and selected/disabled states.

Consolidate

Dropdown Item Group

The popover surface that opens when a Dropdown is tapped — a stack of Dropdown Items in a rounded card with a drop shadow.

Restructure

Empty State

A full-frame empty-state pattern — illustration or icon, title, description, and optional CTA.

Restructure

Footer

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

Fix

Generic Card

A generic surface card used to group content into a tappable unit — header, body slot, and optional footer.

Restructure

Generic Transaction Card

A transaction-summary card with merchant info, amount, date, and tappable detail surface.

Restructure

Header

The top-of-screen header pattern with title, leading back action, and trailing actions.

Restructure

Header - Centered

A header variant with the title centered, optional leading and trailing actions on either side.

Restructure

Header - Transaction

A transaction-detail header with the merchant logo, transaction amount, and date.

Consolidate

Header - With Logo

A header variant featuring the GCash wordmark instead of a title; trailing actions optional.

Consolidate

Horizontal Voucher

A 336-wide voucher tile with a 144px hero image, status row, title, price, and validity period.

Fix

Inline Message

A subtle inline status message rendered alongside form fields or content — neutral, info, success, or error intent.

Restructure

Inline Text

A single-line text element used for inline labels, captions, or value pairs within a row.

Fix

Input Field

A standard form text-input field — label, body, and four interaction states (default, active, error, disabled).

Keep

Labeled Field

A form field with a label-on-top layout, used for plain text and value inputs.

Remove

List

A frame containing 8 hardcoded List Item instances stacked with an 8px gap. No component properties, no variants. Functions as a layout example on the sticker sheet rather than a reusable component.

Fix

List Item

A single row in a list: leading asset + body text. 3 variants by <code>level</code> (1, 2, 3) that control indent (0 / 16 / 32 px). Composes a <strong>List Item Asset</strong> instance for the leading marker.

Restructure

List Item Asset

A list-item variant with a leading asset slot — image, icon, or avatar — alongside the label.

Fix

Menu Grid

A 2D grid of icon-and-label tiles used for top-level service navigation.

Restructure

Modal

A centered overlay surface used for blocking confirmations and dialogs — header, body, and primary/secondary actions.

Consolidate

Month and Year Picker - Item

The 100×32 selectable cell used inside the Month and Year views of Date Picker - Group.

Consolidate

Onboarding - Tooltip

A directional tooltip used in onboarding overlays, with a pointer, header, description, and dismiss control.

Fix

Overlay

A full-viewport scrim used to dim background content behind sheets, modals, and tooltips.

Restructure

Progress Bar

A linear progress indicator showing completion percentage; supports determinate and indeterminate modes.

Restructure

Radio Button

A circular radio control used inside single-select groups; supports default, selected, and disabled.

Fix

Radio Button with Label

A form row pairing a Radio Button with a text label. 4 variants across a <code>size</code> property with mixed values: <code>default</code>, <code>large</code>, <code>default - error</code>, <code>large - error</code>. Only the unselected state is documented across sizes.

Keep

Recipient Field

A form field showing a selected recipient — avatar, name, and contact identifier.

Restructure

Search Field

A search input field with a leading magnifying-glass icon and an optional clear button.

Fix

Segmented Control - Group

A labeled Toggle Segmented Control with optional subtext and a small-avatar group below.

Keep

Select Field

A form field that opens a dropdown of options when tapped — label, value, and chevron.

Fix

Service Item

A service tile — icon slot plus label and optional description — used inside the home Menu Grid and customizable shortcut surfaces. Type axis adds a "New" badge, an Add (+) overlay, or a Remove (–) overlay over the icon.

Restructure

Slider

A horizontal slider control with a continuous fill, a 16×16 knob, and a small percentage tooltip above the knob.

Restructure

Stepper - Bullet

A row of dot markers indicating progress through a multi-step flow, with the current step using a larger emphasis dot.

Restructure

Stepper - Circular

A row of numbered circles whose ring arcs indicate progress through a multi-step flow.

Restructure

Stepper - Dash

A flat segmented progress indicator — a row of rounded dashes where filled dashes mark current and earlier steps.

Restructure

Subtext Message

A small caption rendered beneath form fields for helper text or validation messages.

Fix

Tab Item

A single tab inside the Tabs component — label, optional leading icon, and active/inactive/disabled states.

Restructure

Table

A structured table primitive for displaying rows of label/value or column-aligned data.

Consolidate

Table - Scheduling

A scheduled-payment row with a date-and-amount headline plus an optional grid of label/value detail pairs.

Consolidate

Table - Transaction

A transaction row showing label/value pairs in a structured table layout.

Fix

Tabs

The Tabs container composes a row of <strong>Tab Item</strong> atoms and manages the active index. Currently exposes 3 variants split by <code>tabsCount</code> (2 / 3 / 4). Figma component is currently named singular "Tab" — should be renamed "Tabs".

Remove

Terms & Conditions Accordion

A specialized accordion used inside voucher details to disclose terms and conditions.

Consolidate

Text Area

A multi-line text input for longer-form entry — label, body, and character counter.

Keep

Title Bar

A small section header with a title, optional subtitle, and an optional trailing action.

Restructure

Toast

A transient bottom-anchored message used for confirmations and inline alerts; auto-dismisses after a short delay.

Consolidate

Toast - With Button

A toast variant with a trailing action button used for undo or in-flight confirmations.

Fix

Toggle

A binary switch control with on, off, and disabled states.

Fix

Toggle - Segmented Control

A 2-option segmented control where the selected segment is filled brand-blue and the unselected segment carries a brand-blue outline.

Restructure

Toggle - With Label

A toggle paired with a label and optional helper text in a single row.

Consolidate

Tooltip Blurred and Transparent

A dark, translucent directional tooltip with a backdrop blur, for use over photographic or high-contrast content.

Restructure

Tooltip V2

A small floating callout anchored to a target with a directional pointer; ships in eight pointer positions.

Fix

Upload File

A file-upload field with a tappable upload affordance, file-name display, and progress/error states.

Consolidate

Vertical Voucher

A 162-wide vertical voucher tile combining a Voucher Asset image with title, description, price, validity, and status badges.

Keep

View Only Field

A read-only form field showing a label and value; non-interactive.

Fix

Visual Popup

An illustrated centered popup used for promos, success moments, and notable announcements.

Restructure

Voucher Asset

A ticket-shaped image clipped into a notched frame, used as the visual on voucher placements.

Restructure

Voucher Card Horizontal

A 336×111 horizontal voucher card with text content on the left and a perforated image frame on the right; ships in four state variants (limited, expiring, used, expired).

Product Layer

Voucher Details

A 336×704 single-instance screen rendering merchant header, voucher content, and optional terms-and-conditions sections.

Actions

Inputs & Forms

Restructure

Amount Text Field

A display-style numeric input for PHP amount entry in Send Money, Cash-In, and top-up flows. Sits on a single underline — Large is a 53px headline, Default prefixes a peso glyph with a 35px amount.

Restructure

Chat Field

A message-composer input with a text area, leading attachment, and trailing send action.

Keep

Checkbox

A selection control for binary and partial choices. 33 variants across isSelected (true/false/indeterminate) × State (Default/Pressed/Focused/Disabled/Error) × Size (Small/Medium/Large). Code Connect registration pending.

Restructure

Date Picker

The full calendar UI used to pick a date — header, weekday row, and a 7×6 day grid.

Consolidate

Date Picker - Group

The calendar surface that hosts the Day/Month/Year picker grids.

Consolidate

Date Picker - Item

The 32×32 selectable day cell rendered inside the Date Picker calendar grid.

Fix

Dropdown

A trigger button that opens a popover surface containing selectable options.

Fix

Dropdown Item

A single selectable row inside a Dropdown popover — label, optional leading icon, and selected/disabled states.

Consolidate

Dropdown Item Group

The popover surface that opens when a Dropdown is tapped — a stack of Dropdown Items in a rounded card with a drop shadow.

Fix

Input Field

A standard form text-input field — label, body, and four interaction states (default, active, error, disabled).

Keep

Labeled Field

A form field with a label-on-top layout, used for plain text and value inputs.

Consolidate

Month and Year Picker - Item

The 100×32 selectable cell used inside the Month and Year views of Date Picker - Group.

Restructure

Radio Button

A circular radio control used inside single-select groups; supports default, selected, and disabled.

Fix

Radio Button with Label

A form row pairing a Radio Button with a text label. 4 variants across a <code>size</code> property with mixed values: <code>default</code>, <code>large</code>, <code>default - error</code>, <code>large - error</code>. Only the unselected state is documented across sizes.

Keep

Recipient Field

A form field showing a selected recipient — avatar, name, and contact identifier.

Restructure

Search Field

A search input field with a leading magnifying-glass icon and an optional clear button.

Fix

Segmented Control - Group

A labeled Toggle Segmented Control with optional subtext and a small-avatar group below.

Keep

Select Field

A form field that opens a dropdown of options when tapped — label, value, and chevron.

Consolidate

Text Area

A multi-line text input for longer-form entry — label, body, and character counter.

Fix

Toggle

A binary switch control with on, off, and disabled states.

Fix

Toggle - Segmented Control

A 2-option segmented control where the selected segment is filled brand-blue and the unselected segment carries a brand-blue outline.

Restructure

Toggle - With Label

A toggle paired with a label and optional helper text in a single row.

Fix

Upload File

A file-upload field with a tappable upload affordance, file-name display, and progress/error states.

Keep

View Only Field

A read-only form field showing a label and value; non-interactive.

Feedback & Status

Containers & Surfaces

Navigation

Data Display

Keep

Avatar

A circular display element showing user initials or a profile image. Supports 7 sizes (20px-90px) and 3 types (dark initials, light initials, image). Used when a profile image is unavailable or for visual user identification.

Fix

Avatar Group

Stacked or overlapping avatars used to show participant lists — conversation members, shared documents, collaboration indicators.

Consolidate

Carousel - Discount Card

A discount-themed card variant inside a horizontally scrolling carousel — hero image, percent-off badge, and label.

Carousel - Item

A horizontal-scroll item used as a building block for product/promo carousels.

Restructure

Carousel Card

A tappable card used inside a horizontally scrolling carousel — image, title, and optional description.

Remove

List

A frame containing 8 hardcoded List Item instances stacked with an 8px gap. No component properties, no variants. Functions as a layout example on the sticker sheet rather than a reusable component.

Fix

List Item

A single row in a list: leading asset + body text. 3 variants by <code>level</code> (1, 2, 3) that control indent (0 / 16 / 32 px). Composes a <strong>List Item Asset</strong> instance for the leading marker.

Restructure

List Item Asset

A list-item variant with a leading asset slot — image, icon, or avatar — alongside the label.

Fix

Menu Grid

A 2D grid of icon-and-label tiles used for top-level service navigation.

Restructure

Table

A structured table primitive for displaying rows of label/value or column-aligned data.

Consolidate

Table - Scheduling

A scheduled-payment row with a date-and-amount headline plus an optional grid of label/value detail pairs.

Consolidate

Table - Transaction

A transaction row showing label/value pairs in a structured table layout.

Promotions

Other