Skip to main content

Themes

Unit's White-label UIs support multiple Themes. In order to create a new Theme, you would need to upload a JSON that contains the White-label settings associated with that theme via an API. In response, you will get a URL. You will then specify that URL as you initialize any UI Component, under the theme attribute.

The best way to understand how to use the White-label Themes is to see them in action. Try out the Component Preview page in order to make a Component look and feel like your brand. Once you are happy with the result, you can copy the JSON settings from under the 'Appearence Config' tab in the preview page, and create the theme by uploading the JSON to the API.

Customization Options

The settings that make up a theme are divided into two main categories - global settings and component specific settings.

  • Global settings are meant to reflect your brand's design system - colors, fonts, basic component look and feel.
  • Component specific settings are meant to allow you to control UI Elements that are unique to a specific Component (e.g. the color of the font on a card image). On the component specific level, you may also provide overrides to any parameter specified in the global settings.
note

Please reach out to Unit if you need additional customization options to support your brand.

Global Settings

  • This object located on the root of the theme JSON object, but it can also be overridden on the component level.
FieldtypeDescription
logoUrlstringURL to a logo image.
colorsobjectColor palette
typographyobjectTypography (text) preferences
buttonsobjectbuttons states preferences
menuButtonobjectmenu-button states preferences
avatarobjectavatar preferences

Colors

FieldtypeDescription
backgroundstringWill be used as background color of the components, drop downs menus and inner flows.
primarystringWill be used for buttons, icons, highlight fields that are in focus, cover elements.
secondarystringThe secondary brand color is used for secondary buttons.
neutralstringWe will derive 6 neutral shades based on your main Neutral color. These shades will be used for texts, light background colors and disabled/inactive elements.
successstringSemantic. Will be used in messages, toasts, statuses and alerts.
warningstringSemantic. Will be used in messages, toasts, statuses and alerts.
errorstringSemantic. Will be used in messages, toasts, statuses and alerts.

Typography

FieldtypeDescription
commonobjectCommon typography settings (running texts).
titlesobjectTitles typography settings.

Common

FieldtypeDescription
fontFamilystringFont family for Elements. Note, the Components components will not fetch the font. Font should be available on the page from which the Components are used.
fontSizestringFont size for elements. Can be set to either relative or absolute units.

Titles

FieldtypeDescription
h2TitleThe main title used in the Components. Examples include the Card title, Activity table title etc.
h3TitleThe secondary title used in the Components. Examples include menus and empty states.
menuTitleTitleThe title used for mobile menus (card-menu, account-list menu, etc).
componentTitleTitleThe title applied to various components such as card and activity components.
bigNumberBigNumberThe title used for big number displays in components.
flowFlowThe titles used for a flow or series of steps in a component. (card-actions, payments flows, etc.)
responseResponseThe titles used for a response or message in components.
emptyStateEmptyStateThe titles displayed in empty states within component.
tableTableThe titles for tables used in components.
Title
FieldtypeDescription
fontWeight100 , 200 , 300 , 400 , 500 , 600 , 700 , 800 , 900 , 950 , "normal" , "bold" , "bolder" , "lighter"The thickness or boldness of the font.
colorstringThe color of the text in the title.
fontSizestringThe size of the font used in the title.
fontFamilystringThe specific font family for the title's text.
Big Number
FieldtypeDescription
fontWeight100 , 200 , 300 , 400 , 500 , 600 , 700 , 800 , 900 , 950 , "normal" , "bold" , "bolder" , "lighter"The thickness or boldness of the font.
colorstringThe color of the text in the big number display.
fontFamilystringThe specific font family for the big number text.
largeFontSizestringThe font size for larger big number displays.
extraLargeFontSizestringThe font size for extra-large big number displays.
Flow
FieldtypeDescription
titleTitleThe main title for the flow.
subtitleTitleThe secondary title for the flow.
Response
FieldtypeDescription
titleTitleThe title for the response.

Empty State

FieldtypeDescription
titleTitleThe title displayed in the empty state.

Table

FieldtypeDescription
headersTitleThe titles for the table headers.

Buttons

FieldtypeDescription
primaryButtonStatesThe primary style of the button.
secondaryButtonStatesA secondary style option for the button.
subtleButtonStatesA subtle style option for the button.
outlineButtonStatesAn outlined style option for the button.
flatButtonStatesA flat style option for the button.
FieldtypeDescription
defaultButtonAttributesThe default style of the menu button.
hoverButtonAttributesThe style when the button is hovered.
activeButtonAttributesThe style when the button is active.
disabledButtonAttributesThe style when the button is disabled.

Button States

FieldtypeDescription
defaultButtonAttributesThe default style of the menu button.
hoverButtonAttributesThe style when the button is hovered.
activeButtonAttributesThe style when the button is active.
disabledButtonAttributesThe style when the button is disabled.

Button Attributes

FieldtypeDescription
borderBorderThe border attributes for the button.
textColorstringThe color of the text in the button.
backgroundColorstringThe background color of the button.

Border

FieldtypeDescription
widthstringThe width of the border around the element.
radiusstringThe border radius or curvature of the element's corners.
colorstringThe color of the border around the element.

Avatar

FieldtypeDescription
iconColorstringWill control the color of the icon.
borderColorstringWill control the color of the border.
backgroundColorstringWill control the color of the background.

Component Specific Settings

Card

FieldtypeDescription
designsArray of DesignThe main title used in the Components. Examples include the Card title, Activity table title etc
overrideGlobalThe secondary title used in the Components. Examples include menus and empty states

Card Design

FieldtypeDescription
namestringName of your design, should match the name of Card design in Unit. For charge cards the name must contain "_credit".
urlstringLink to Card image
fontColorstringWill control the font color on top of the Card
boxShadowstringWill control the Card shadow

Account

FieldtypeDescription
titleColorstringWill control the font color of the account title
balanceTitleColorstringWill control the font color of the balance title
coverBackgroundColorstringWill control the color of the cover background

Create Theme

Creates theme for white label components.

VerbPOST
Urlhttps://api.s.unit.sh/white-label/theme
Data TypewhiteLabelTheme
Timeout (Seconds)5

Attributes

NameTypeDescription
namestringTheme Name.
globalobjectGlobal theme setup.
elementsCardobjectCard element setup.
elementsActivityobjectActivity element setup.
elementsAccountobjectAccount theme setup.
elementsPaymentobjectPayment theme setup.
Example Request:
curl -X POST 'https://api.s.unit.sh/white-label/theme'
-H 'Content-Type: application/vnd.api+json'
-H 'Authorization: Bearer ${TOKEN}'
--data-raw '{
"data": {
"type": "whiteLabelTheme",
"attributes": {
"name": "VIP Theme",
"global": {
"colors": {
"background": "#2223334",
"primary": "#0000F0",
"secondary": "#000000",
"neutral": "#FF9933",
"success": "#0CD96F",
"warning": "#FF9933",
"error": "#FF4F64"
},
"typography": {
"common": {
"fontFamily": "sans-serif"
},
"titles": {
"h2": {
"fontWeight": "800"
},
"h3": {
"fontWeight": "800"
}
}
}
},
"elementsCard": {
"designs": [
{
"name": "default",
"url": "https://d1xlopvhx2cz8k.cloudfront.net/resources/outlay.png",
"fontColor": "#00ff00",
"boxShadow": "0px 3.6px 15px 2px rgb(0 0 0 / 0.25)"
}
]
},
"elementsAccount": {
"override": {
"global": {
"colors": {
"background": "#00ff00"
}
}
}
},
"elementsPayment": {
"override": {
"global": {
"typography": {
"common": {
"fontFamily": "Poppins"
}
}
}
}
}
}
}
}'

Response

Response is a JSON:API document.

201 Created

FieldTypeDescription
dataobjectThe requested resource after the operation was completed.
linksobjectRelated Link object with url to be used in component.
FieldTypeDescription
typeStringType of the resource in link.
hrefobjectURL to be set in theme property of component.
Example Response:
{
"data": {
"type": "whiteLabelTheme",
"id": "10008",
"attributes": {
"...": "..."
},
"links": {
"related": {
"type": "application/json",
"href": "https://ui.s.unit.sh/resources/982/themes/605676c1-b00b-4748-9fa4-258d1a28c3fb.json"
}
}
}
}

Update Theme

Updates theme for white label components.
note

You need to send the full theme object in the request body, not only the fields that were changed.

VerbPUT
Urlhttps://api.s.unit.sh/white-label/theme/{id}
Data TypewhiteLabelTheme
Timeout (Seconds)5

Get Theme

Get white label theme by id.
VerbGET
Urlhttps://api.s.unit.sh/white-label/theme/{id}
Data TypewhiteLabelTheme
Timeout (Seconds)5
Example Request:
curl -X GET 'https://api.s.unit.sh/white-label/theme/{id}' \
-H "Authorization: Bearer ${TOKEN}"

List

List themes resources. Paging and sorting can be applied.

VerbGET
Urlhttps://api.s.unit.sh/white-label/theme
Timeout (Seconds)5

Query Parameters

NameTypeDefaultDescription
page[limit]integer100Optional. Maximum number of resources that will be returned. Maximum is 1000 resources. See Pagination.
page[offset]integer0Optional. Number of resources to skip. See Pagination.
filter[fileName]string(empty)Optional. Find by file name.
sortstringsort=-createdAtOptional. sort=createdAt for ascending order or sort=-createdAt (leading minus sign) for descending order.
curl -X GET 'https://api.s.unit.sh/theme?page[limit]=20&page[offset]=10' \
-H "Authorization: Bearer ${TOKEN}"