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

# Customize the UI

> How to integrate the Almedia SDK — synced from the source repository.

The SDK ships with sensible defaults. Customization is available at three levels of depth.

## Level 1 - Text and colors

**Almedia → Settings** exposes visible string and primary color on the link popup, notification card, and activity overlay. Edit those fields directly - the built-in prefabs read the settings asset and apply it **at runtime**. No code and no writable prefab are needed. To preview your changes, enter **Play mode** - the editor mock bridge drives the UI, so the popup, notification card, and overlay render with your settings.

> The settings asset is the **default layer**. A host runtime theming or localization system (Unity Localization Package's `LocalizeStringEvent`, dynamic theming, etc.) attached to a UI element still wins, because those components initialize *after* the SDK applies the settings. To fully hand-author a prefab, see Level 2 and untick its **Apply Host Settings** checkbox so these settings are not overlaid onto it.

## Level 2 - Prefab Variants

For anything beyond text and primary colors (layout changes, custom fonts, additional elements, full re-skin):

1. Right-click the default prefab in `Packages/com.almedia.sdk/Runtime/Prefabs/LinkPopup.prefab` (or `NotificationCard.prefab`, `ActivityOverlay.prefab`) and choose **Create → Prefab Variant**.
2. Save the variant into a host-owned folder, for example `Assets/UI/Almedia/MyLinkPopup.prefab`.
3. Edit the variant freely. Keep the same root component (`LinkPopupController`, etc.); the SDK looks up serialized references on the root.
4. Assign the variant where the SDK takes it from:
   * **Link popup** → the `LinkButton` prefab's (or your scene instance's) **Link Popup** field. For `ShowLink()`, **Almedia → Settings → Default UI Prefabs → Link Popup**.
   * **Notification card / activity overlay** → **Almedia → Settings → Default UI Prefabs**.

The SDK instantiates the variant instead of the default. If you hand-author the variant's strings and colors, untick **Apply Host Settings** on its root so the Level 1 settings are not overlaid at runtime; leave it ticked to keep the variant themable from settings. Properties you don't change in the variant continue to inherit from the base prefab and receive SDK updates on package upgrade.

## Level 3 - Build your own UI

Disable the default notification UI in settings, then implement the visuals directly by subscribing to `OnNotificationsReceived`, `OnStatusChanged`, and `OnLinkCompleted`. The SDK still drives status, notification fetching, and linking; the host manages the UI flow. For the link popup, derive from `AlmediaLinkPopupController` instead; see [Your own popup design](https://docs.almedia.dev/technical/integration-guide/the-linking-flow.md#your-own-popup-design).

Disabling the toggle also clears the notification prefab references to the bundled SDK prefabs, so those prefabs and their art stay out of your build. A prefab you assigned yourself stays assigned - and, like any asset your project references, still ships.

***


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.