Branding
By default the SDK applies the branding configured in the dashboard (Configuración → Marca), the same model the web flow uses: five seed colors, an optional logo, a typography preset and per-element overrides. Anything you don’t override is derived from the seeds exactly like the web flow, and a dark background color flips the derivation so dark brands work without a dark-mode flag. Choose the source withbrandingMode:
Typography presets (
inter, roboto, lato, …) resolve to a font only if your app bundles that font. Otherwise the SDK falls back to the system font.Color mode
colorMode sets light or dark: .system (default), .light, .dark on iOS; SYSTEM, LIGHT, DARK on Android. showsThemeToggle: true adds a light/dark switch to the header.
Language
The flow runs in English, Spanish or Portuguese, following the workflow’s language settings:- If the workflow pins one language, the flow always uses it.
- Otherwise the SDK uses the device language when the workflow allows it, and falls back to the first allowed language.
showsLanguageSwitcher: false hides it; true shows it, and on a workflow that pins a language it offers all three.
Header, exit and attribution
- iOS
- Android
- The SDK draws one header with the tenant logo (or the workflow name), the step counter, a progress bar and the optional switchers. It never shows the Legal Talent logo.
showsHeader: falsehides it when your app provides its own navigation bar.onExit:adds a close button with a confirmation dialog.showsAttribution: falsehides the “Powered by Legal Talent” footer. White-label tenants never show it.autoDismissOnComplete: truedismisses the flow (SwiftUIdismiss()) as soon as it finishes, instead of leaving the final page on screen. Use it when you present the flow modally and don’t dismiss it yourself inonComplete.
Entry gate and terms
Every flow opens on an entry gate: a brand banner, the flow name, a preview of the steps, and consent to the terms and privacy policy. The SDK uses this pause to prefetch on-device models so capture steps open instantly. White-label tenants link their own terms. On iOS you can also passprivacyPolicyURL, termsOfServiceURL, or tosOptions when your tenant uses a terms-of-service system.
Document capture
documentCaptureOptions tunes the document steps:
Presets:
.standard, .cameraOnly, .automaticCameraOnly, .guidedCameraOnlyForIdentityDocuments.
The workflow’s identity document policy always wins:
capture_mode: live_only hides the pickers and upload_only hides the camera, regardless of these options.Selfie capture
The selfie step always uses the front camera with framing checks and auto-capture; there is no gallery path. On iOS,selfieCaptureOptions accepts:
.standard: runs a passive on-device anti-spoof check and attaches its evidence to the step..cameraOnlyNoAntiSpoof: same capture UX without the model, for low-end devices or when your backend runs its own presentation-attack detection.
selfieCaptureConfiguration.
Liveness screens
The face-liveness detector is rendered by AWS Amplify: its oval, live prompts and spinner use Amplify’s own colors and cannot be themed. The SDK brands everything around it (intro, frame, errors). Amplify’s strings can be localized. On iOS, copy theen.lproj, es.lproj and pt.lproj folders from liveness-strings/ in the SDK repository into your app target and list es and pt as localizations. If you already have a Localizable.strings, merge the amplify_ui_liveness_* keys instead. The detector follows the device language, not the flow’s.
If you have a dedicated Cognito Identity Pool, pass it with livenessConfiguration; otherwise the SDK uses the default pool for the environment.