# Customizing the styling

The files placed in the `src` file tree will replace the original files. This allows the white label build to have custom colors and styling.

## Theme

The app theme can be customized using the values in the ../src/design-system/theme.js file. The javascript file contains three customizable variables:

* `Theme`: Contains the following variables:
  * `borderRadius` determines the radius of some card-like elements, e.g Modals.
  * `touchOpacity` the opacity of pressable items that should indicate pressed state
* `COLORS`: Determines the color scheme of the entire application. It uses a color pallet system (You can generate a color pallet using any of the tools like [JSON Color Palette Generator](https://json-color-palette-generator.vercel.app/), [Smart Swatch](https://smart-swatch.netlify.app/), or [Palx](https://palx.jxnblk.com/)). This section contains the following main colors:
  * `primary`: primary brand color pallet.
  * `primaryButton`: range `200-600` pallet for primary button phases (disabled, pressed, etc.) and a `text` value to set the color of the primary button text.
  * `secondaryButton`: range `200-600` pallet for secondary button phases (disabled, pressed, etc.) and a `text` value to set the color of secondary button texts.
  * `secondary`: with only 400 and 600 values in the pallet, they is used as accent backgrounds in sections of the application. To maintain contrast in values are recommended to be dark colored for dark themed customization and light for light themed customization.
  * `neutral`: a pallet for background and text colors. Contrast between 1 and 900 should be as much as possible, with light theme ranging from very dark(e.g {1: "black"}) to very light (e.g {900: "white}) and dark theme ranging the opposite way
  * `orange`: test mode indicator background and text colors
  * `teal`: validity indicator colors
  * `blue`: used once for information box background.
  * `warning`: pending state indicator color
  * `error`: error state indicator pallet
  * `backdrop`: used for modal backdrop transparency (dark)
  * `whiteBackdrop`: used for modal backdrop transparency (light)
  * `warningBg`: warning box background
* `baseTheme`: This should require no much changes. However if there is a need to change the style for specific components, this can be updated based on [nativebase guideline](https://docs.nativebase.io/customizing-components).

[See examples of white labeled wallet designs](https://www.figma.com/file/hpHhkjv6tz3KdlSX8Hr1tH/White-label-wallet-\(Copy\)?type=design\&node-id=8-175\&mode=design)

## Images

The app icon and the splash screen logo can be customized on the app.

**TIP** You can use tools like <https://www.appicon.co> to auto-size your images to the appropriate sizes.

### Updating the Splash Screen Logo

There are two logos with sizes variations available for customization, they need to be replaced in the following folders.

{% hint style="warning" %}
**Please ensure that the image width matches while allowing the height to be flexible. Avoid adding empty margins to fill the remaining height.**
{% endhint %}

| Icon Size | Example                          | Icon Size | Example                          |
| --------- | -------------------------------- | --------- | -------------------------------- |
| 382 x 128 | ![](/files/2Y78j9END91dqvJWVQEx) | 318 x 72  | ![](/files/2Y78j9END91dqvJWVQEx) |
| 850 x 192 | ![](/files/2Y78j9END91dqvJWVQEx) | 425 x 96  | ![](/files/2Y78j9END91dqvJWVQEx) |
| 212 x 48  | ![](/files/2Y78j9END91dqvJWVQEx) | 637 x 144 | ![](/files/2Y78j9END91dqvJWVQEx) |
| 212 x 48  | ![](/files/2Y78j9END91dqvJWVQEx) | 850 x 192 | ![](/files/2Y78j9END91dqvJWVQEx) |

### Updating the App Icon

The app icon should be a `.png` file and needs to be replaced with your custom app icon in these sizes.

<table><thead><tr><th width="197">Android icon size</th><th>Example</th><th>iOS icon size</th><th>Example</th></tr></thead><tbody><tr><td>120 x 120</td><td><img src="/files/niMyeZIHXy7hBRLoOPNE" alt=""></td><td>40 x 40</td><td><img src="/files/fFPbV03CUHk1WkZGBSva" alt=""></td></tr><tr><td>48 x 48</td><td><img src="/files/uMCr19i4PBi0UdO6j71G" alt=""></td><td>58 x 58</td><td><img src="/files/C0IkOEqWbjm4Pu372OoK" alt=""></td></tr><tr><td>72 x 72</td><td><img src="/files/BigZsnMI8uXLjecLqVzg" alt=""></td><td>60 x 60</td><td><img src="/files/X8MRZtQPaeeDcFQaZMnA" alt=""></td></tr><tr><td>96 x 96</td><td><img src="/files/9F5InP3w0ZltpoRPGqi4" alt=""></td><td>80 x 80</td><td><img src="/files/fKPg6R3JdXlvoXUlHzI4" alt=""></td></tr><tr><td>144 x 144</td><td><img src="/files/1t5U45CSOYklFc8EHaIo" alt=""></td><td>87 x 87</td><td><img src="/files/kCg3b67pcn95UarEbmaF" alt=""></td></tr><tr><td>192 x 192</td><td><img src="/files/tAEAzTpy6Kymn2FTAgiw" alt=""></td><td>120 x 120</td><td><img src="/files/niMyeZIHXy7hBRLoOPNE" alt=""></td></tr><tr><td></td><td></td><td>180 x 180</td><td><img src="/files/zxRmLHhgyXjWtlNNJDG7" alt=""></td></tr><tr><td></td><td></td><td>1024 x 1024</td><td><img src="/files/OycFlxbBoxzC7EhXSKVQ" alt=""></td></tr></tbody></table>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.truvera.io/credential-wallet/white-label-wallet/configuration/customizing-the-styling.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
