SDK Customization

Your app's theming and customization can be configured in two ways:

SDK Initialization

The values you set directly in your app when integrating the SDK. This is how you customize your brand experience today.

Business Portal Configuration

Coming soon — configure your brand directly from the Vrtx Business Portal, no app changes required.

White-labeled and ready to be customized

Every SDK Customization default — brand colors, spacing, radius, and sizing — ships white-labeled out of the box, so making it yours is just a matter of setting values at SDK Initialization, no design rework or approval cycle required.

How to customize my SDK?

1

Configure your theme

Go to your SDK initialization code and set your brand's colors, spacing, radius, and sizing values.

2

Build your app

Rebuild and run your app as usual — the SDK reads your theme configuration and applies it automatically at runtime, no extra build steps required.

3

View the new theme that matches your application

Launch the app to see your brand colors, spacing, and radius applied across every SDK screen, from the Home screen to card details.

Branding

The top-level brand assets applied throughout the app.

WhatDescriptionRecommendations
Brand nameYour business name, shown at the top of the Home screen.Keep it short — long names may be truncated on smaller screens.
Brand logoYour logo, shown next to your brand name.Use a transparent PNG for the best result.
Card imageThe artwork shown on the wallet card throughout the app.Use an image close to standard card proportions (about 1.586:1). If you don't provide one, a gradient built from your Card gradient colors is shown instead.

Colors

Brand colors can be set per platform, covering buttons, text, fills, backgrounds, gradients, and accent states.

Colors are provided as typed color values in your app code, for example Color(0xFFFF383C).

Brand color

The primary interactive color and its matching label color.

FieldKeyDescriptionRecommendations
PrimaryprimaryUsed for primary buttons and selected states, such as radio buttons and chips.This should be your brand's main color — the one most associated with your identity.
Button labelbuttons_labelThe text color on primary buttons and selected chips.Choose a color with strong contrast against your primary color — usually white or black.

Text colors

Text color roles used across screens, from titles to disabled states.

FieldDescriptionRecommendations
PrimaryYour main text color — titles, body copy, and input values.Should have strong contrast against your backgrounds for easy reading.
SecondarySubtitles, placeholders, and hint text.A softer shade of your primary text color works well.
TertiarySupporting text and icons on a few screens.Keep it close to your secondary text color.
QuaternaryUsed for disabled selection states.A muted, low-contrast tone.

Fill colors

Background fill roles for cards, buttons, dialogs, and other UI containers.

FieldDescriptionRecommendations
PrimaryDialog backgrounds and disabled buttons.A neutral, low-contrast tone.
SecondaryDisabled button backgrounds and unselected states.Should be distinct enough to read as "inactive" without drawing attention.
TertiaryDividers and row backgrounds.Keep subtle.
QuaternaryUnselected chip and date-picker backgrounds.A light, neutral tone.
Vibrant secondaryText color on the account details screen.Choose a higher-contrast tone than your regular secondary fill.

Background colors

Screen-level background colors used behind your app's content.

FieldDescriptionRecommendations
PrimaryThe default screen background.Often white or a very light neutral.
SecondaryBackground for sections like text fields and OTP input.A subtle step away from your primary background.

Card gradient

Shown on the wallet card when no card image is provided.

FieldKeyDescriptionRecommendations
Gradient stop 1wb_01The gradient's starting color.Choose two colors from your brand palette that blend well together.
Gradient stop 2wb_02The gradient's ending color.See above.

Accent colors

Semantic colors for error, success, and other status states.

FieldDescriptionRecommendations
RedUsed for error states — text fields, OTP, passcode, and verification screens.A clear, standard red is easiest for users to recognize.
GreenUsed for success states and credit transaction amounts.A clear, standard green works best.

Spacing

Controls the padding and spacing between elements throughout the app.

kotlin
VrtxSpacing(md = 12.dp, lg = 24.dp)
TokenDefaultDescriptionRecommendations
x00Text field padding.Use for elements that should sit flush against their container.
xxs2Button padding.The tightest spacing value — small changes here are easy to miss.
xs4Buttons, text fields, card delivery tracker.—
sm8Buttons, text fields, chips, dialogs, OTP input.A frequently used value — changes here will be noticeable across several screens.
md12Screen layout padding, text fields, chips, OTP input, wallet card.One of the most visible spacing values in the app — test changes across multiple screens before finalizing.
ml16Screen layout padding, text fields, OTP input, dialogs.—
lg24Buttons, text fields.Good for adding visible breathing room around key actions.

Radius

Controls how rounded corners appear throughout the app — buttons, cards, dialogs, and more.

kotlin
VrtxRadius(md = 16.dp, full = 1024.dp)
TokenDefaultDescriptionRecommendations
s8Transaction details screen.A subtle, minimal rounding.
sm12Wallet card.—
md16Card corner radius — the SDK's most common radius, used on text fields, cards, dialogs, bottom sheets, and most screens.The most impactful radius value to adjust — it sets the overall "roundedness" feel of the app.
ml24Button corner radius.Pair with your md value for a consistent look between cards and buttons.
lg32Bottom sheets.—
xl48One text field style.—
full1024Fully-rounded elements — buttons, chips, radio buttons.Any value large enough to reach full roundedness — no need to fine-tune further.
huge2048One Home layout variant.Only relevant if you use that specific layout variant.

Sizing

Controls the size of specific components and icons.

kotlin
VrtxSizing(sm = 24.dp)
TokenDefaultDescriptionRecommendations
sm24A text field icon.Match this to your icon's intended visual size, and avoid scaling icons non-uniformly.

Layout design options

Three layout variants are available for the Home and Card Settings screens — Option A, B, and C. Pick whichever best fits your app's navigation model.

Layout option A

SDK Customization Layout option A

Layout option B

SDK Customization Layout option B

Layout option C

SDK Customization Layout option C

Coming soon

Dark mode

Automatic theme switching based on system appearance.

Layout flexibility

Additional Home and Card Settings layout variants beyond Options A–C.

Client icon pack

A bundled set of icons for common line-of-business use cases.

Input field style variants

Additional visual styles for text fields.

Quick reference

Everything below is customized today via SDK Initialization.

I want to change...Notes
Brand colors, spacing, corner radius, sizingSee the Colors, Spacing, Radius, and Sizing sections above
Brand nameShown at the top of the Home screen
Brand logoShown next to your brand name
Wallet card artworkReplaces the default gradient shown on the wallet card
App fontApplied across the whole app
Language / right-to-left supportAlso determines which localized strings are shown
Home / Card Settings layoutThree variants available — Option A, B, and C