> ## Documentation Index
> Fetch the complete documentation index at: https://docs.pulseshiga.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Theming & copy

> Every theme token, string placeholder, the attribution toggle, density, and the formatting helpers that keep your screens in sync.

The hosted rendering models — [embedded iframe](/render/embedded-iframe) and
[hosted page](/render/hosted-page) — accept a `theme` object and a `strings`
object at mount (or via [dashboard configuration](/render/dashboard-config)).

## Theme tokens

| Token                 | Purpose                                                             |
| --------------------- | ------------------------------------------------------------------- |
| `primaryColor`        | Your brand color, used for primary actions.                         |
| `borderRadius`        | Corner rounding across the surface.                                 |
| `mode`                | `light` or `dark`.                                                  |
| `fontFamily`          | Your font stack.                                                    |
| `inkColor`            | Primary text color.                                                 |
| `mutedColor`          | Secondary/muted text color.                                         |
| `backgroundColor`     | Surface background color.                                           |
| `buttonTextColor`     | Text color on primary buttons.                                      |
| `lineColor`           | Borders and dividers.                                               |
| `successColor`        | Success state color.                                                |
| `dangerColor`         | Error/danger state color.                                           |
| `pageBackgroundColor` | Backdrop color behind the surface — used by the Tier B hosted page. |
| `density`             | `"compact"` (default) or `"comfortable"` for roomier spacing.       |

## Copy — `strings`

Override any copy with a `strings` object. Placeholders are substituted at
render time:

* `{target}`
* `{asset}`
* `{assetAmount}`
* `{network}`

```ts theme={null}
strings: { title: 'Add {target} to your safe' }
```

## Attribution

A greyed-out "Powered by Pulse" renders at the foot of the surface by default.
It is never mandatory — set `attribution: "none"` to remove it. No other Pulse
branding is rendered in any tier.

## Formatting helpers

`@pulsebyshiga/collect-js` exports the same formatting helpers the embed uses
internally, so your own screens (rate previews, receipts, headless UI) format
amounts identically:

```ts theme={null}
formatFiat("1000000.00", "NGN") // → "₦1,000,000.00"
formatAsset(...)
```
