> ## Documentation Index
> Fetch the complete documentation index at: https://docs-platform.services-valid.com.br/llms.txt
> Use this file to discover all available pages before exploring further.

# Customização

> Personalize a aparência da UI do FaceTec no iOS via LivenessFacetecSDKCustomization

A UI da captura é renderizada pelo próprio FaceTec SDK. Você consegue personalizá-la passando um `LivenessFacetecSDKCustomization` em `LivenessFacetecSDKConfig`. Cada propriedade é um espelho tipado da customização correspondente do FaceTec — quando você define um campo, ele é aplicado; quando deixa `nil`, o FaceTec usa o padrão.

## Estrutura geral

```swift theme={"theme":"catppuccin-latte"}
import LivenessFacetecSDK

var customization = LivenessFacetecSDKCustomization()

// Defina apenas o que precisar — tudo é opcional.
customization.cancelButton   = nil  // LivenessFacetecSDKCustomization.CancelButtonCustomization?
customization.feedback       = nil  // LivenessFacetecSDKCustomization.FeedbackCustomization?
customization.frame          = nil  // LivenessFacetecSDKCustomization.FrameCustomization?
customization.guidance       = nil  // LivenessFacetecSDKCustomization.GuidanceCustomization?
customization.oval           = nil  // LivenessFacetecSDKCustomization.OvalCustomization?
customization.overlay        = nil  // LivenessFacetecSDKCustomization.OverlayCustomization?
customization.resultScreen   = nil  // LivenessFacetecSDKCustomization.ResultScreenCustomization?
customization.vocalGuidance  = nil  // LivenessFacetecSDKCustomization.VocalGuidanceCustomization?

customization.overrideResultScreenSuccessMessage = nil
customization.securityWatermarkImage             = nil

let config = LivenessFacetecSDKConfig(customization: customization)

try await LivenessFacetecSDKClient.shared.initialize(config: config)
```

## Sub-customizações disponíveis

| Propriedade                          | Tipo                                                          | O que controla                                    |
| ------------------------------------ | ------------------------------------------------------------- | ------------------------------------------------- |
| `cancelButton`                       | `LivenessFacetecSDKCustomization.CancelButtonCustomization?`  | Posição e imagem do botão de cancelar             |
| `feedback`                           | `LivenessFacetecSDKCustomization.FeedbackCustomization?`      | Cores e fonte das mensagens de feedback em tela   |
| `frame`                              | `LivenessFacetecSDKCustomization.FrameCustomization?`         | Borda, raio e sombra do frame                     |
| `guidance`                           | `LivenessFacetecSDKCustomization.GuidanceCustomization?`      | Cores e fontes das telas de guia                  |
| `oval`                               | `LivenessFacetecSDKCustomization.OvalCustomization?`          | Cor e espessura do oval de detecção               |
| `overlay`                            | `LivenessFacetecSDKCustomization.OverlayCustomization?`       | Cor de fundo do overlay e branding                |
| `resultScreen`                       | `LivenessFacetecSDKCustomization.ResultScreenCustomization?`  | Tela de resultado (cores, animações)              |
| `vocalGuidance`                      | `LivenessFacetecSDKCustomization.VocalGuidanceCustomization?` | Modo de guia por voz                              |
| `overrideResultScreenSuccessMessage` | `String?`                                                     | Mensagem customizada na tela de sucesso           |
| `securityWatermarkImage`             | `SecurityWatermarkImage?`                                     | Marca-d'água: `.faceTec`, `.faceTecZoom`, `.none` |

## Exemplo: cores do oval e overlay sem branding

```swift theme={"theme":"catppuccin-latte"}
import LivenessFacetecSDK
import UIKit

var customization = LivenessFacetecSDKCustomization()

var oval = LivenessFacetecSDKCustomization.OvalCustomization()
oval.strokeColor    = UIColor(red: 0.72, green: 0.16, blue: 0.10, alpha: 1.0)
oval.progressColor1 = UIColor(red: 0.72, green: 0.16, blue: 0.10, alpha: 1.0)
oval.progressColor2 = UIColor(red: 0.91, green: 0.27, blue: 0.29, alpha: 1.0)
customization.oval = oval

var overlay = LivenessFacetecSDKCustomization.OverlayCustomization()
overlay.showBrandingImage = false
customization.overlay = overlay

let config = LivenessFacetecSDKConfig(customization: customization)
try await LivenessFacetecSDKClient.shared.initialize(config: config)
```

## Boas práticas

<Warning>
  Mudanças visuais profundas no fluxo do FaceTec precisam respeitar as
  diretrizes de marca da própria FaceTec — em especial, **a marca-d'água de
  segurança** (`securityWatermarkImage`) **não deve ser ocultada** sob risco
  de violar o contrato de uso do motor.
</Warning>

* **Mantenha contraste suficiente** entre o oval guia e o fundo para preservar a acessibilidade.
* **Evite fontes muito pequenas** em `guidance` — o FaceTec já balanceia tamanhos para legibilidade em câmeras frontais.
* **Teste em iPhones de tela compacta** (SE/Mini) — alguns elementos posicionados manualmente podem sobrepor o oval.
* **Reuse o mesmo `LivenessFacetecSDKCustomization`** entre o `initialize` e chamadas subsequentes; trocar customização exige reinicializar o SDK em uma nova execução do app.

## Próximos passos

<CardGroup cols={2}>
  <Card title="Implementação" icon="code" href="/plataforma/liveness/facetec/sdk/ios/implementacao">
    Veja como passar a customização no `initialize`
  </Card>

  <Card title="Solução de problemas" icon="wrench" href="/plataforma/liveness/facetec/sdk/ios/troubleshooting">
    Diagnostique problemas com cores, fontes e recursos
  </Card>
</CardGroup>
