autentikar
Customization

Capture Modules

Apply module-specific UI customization to UnifiedID and PhotoIDScan.

UnifiedID

UnifiedID does not define a completely independent Autentikar theme. It inherits the shared Core styles and delegates the FaceTec capture UI to FaceTec customization.

iOS

Use AutentikarFaceTecCustomization for the FaceTec interface. Core values continue to style the surrounding Autentikar screens.

Android

Configure the faceTecCustomization property exposed by AutentikarUnifiedIDManager. The FaceTec configuration controls facial verification and FaceTec-based ID capture while the surrounding flow inherits Core.

The manager also exposes faceTecLowLightCustomization so a dedicated theme can be used when FaceTec enters its low-light experience.

FaceTec controls the appearance of its capture screens. The available values inherit from the provider's FaceTecCustomization class.

PhotoIDScan

PhotoIDScan has its own AutentikarPhotoIDScanCustomization class on both platforms. It is designed for the native document-capture experience while retaining the general visual language configured in Core.

Configure and apply the object before starting the flow. Properties you do not change retain their default values.

iOS

Apply the customization

PhotoIDScanCustomization.swift
import AutentikarPhotoIDScan
import UIKit

let custom = AutentikarPhotoIDScanCustomization()
custom.backgroundColor = .systemBackground
custom.title.color = .label
custom.button.activeColor = .systemBlue

AutentikarPhotoIDScanManager.shared.setCustomization(custom)

General appearance

PropertyTypeDefaultPurpose
backgroundColorUIColor.whiteBackground of the document review screen.
closeIconColorUIColor#082C4CClose-icon color on the document review screen.

Typography

PropertyTypeDefaultPurpose
title.fontUIFontPlus Jakarta Sans SemiBold, 18 ptMain title font.
title.colorUIColor.blackMain title color.
subTitle.fontUIFontPlus Jakarta Sans SemiBold, 17 ptFont for subtitles and highlighted information.
subTitle.colorUIColor.blackColor exposed by the subtitle model. Camera guidance uses cameraScreen.infoTextColor.
text.fontUIFontPlus Jakarta Sans Regular, 16 ptGeneral text font.
text.colorUIColor.blackGeneral text color.

Primary button

PropertyTypeDefaultPurpose
button.fontUIFontPlus Jakarta Sans Regular, 16 ptButton title font.
button.activeTextColorUIColor.whiteText color when the button is enabled.
button.activeColorUIColor#082C4CBackground color when the button is enabled.
button.disableTextColorUIColor.whiteText color when the button is disabled.
button.disabledColorUIColor#5F6368Background color when the button is disabled.
button.cornerRadiusCGFloat10Button corner radius in points.

Document card

PropertyTypeDefaultPurpose
contentCard.reintentIconColorUIColor#082C4CColor of the icon used to recapture the document.
contentCard.cardIDFrontImageNameString"autentikarCardIDFront"Placeholder image name for the document front.
contentCard.cardIDBackImageNameString"autentikarCardIDBack"Placeholder image name for the document back.
contentCard.dashedLineColorUIColor#082C4CColor of the card's dashed border.
contentCard.overlayActionContent.backgroundColorUIColor#082C4CBackground of the action overlay displayed over the card.
contentCard.overlayActionContent.iconColorUIColor.whiteOverlay icon color.
contentCard.overlayActionContent.text.fontUIFontPlus Jakarta Sans Regular, 16 ptOverlay text font.
contentCard.overlayActionContent.text.colorUIColor.whiteOverlay text color.
Names assigned to cardIDFrontImageName and cardIDBackImageName must exist in the resource bundle used by AutentikarPhotoIDScan.

Camera screen

PropertyTypeDefaultPurpose
cameraScreen.closeIconColorUIColor#082C4CCamera close-icon color.
cameraScreen.infoTextColorUIColor.blackColor of the text that identifies the side and displays capture recommendations.
cameraScreen.frameReferenceColorUIColor#082C4CColor of the frame, progress, and detection guides.
cameraScreen.statusHintText.fontUIFontPlus Jakarta Sans Regular, 16 ptDetection-status message font.
cameraScreen.statusHintText.colorUIColor.blackDetection-status message color.

Capture button

The current version exposes takePhotoButton, but CameraViewController does not yet apply these properties to the manual capture button. That button currently uses button.font, button.activeTextColor, and button.activeColor.
PropertyTypeDefaultPurpose
takePhotoButton.borderColorCGColorWhite at 55% opacityBorder color of the circular capture button.
takePhotoButton.cornerRadiusCGFloat36Corner radius in points.
takePhotoButton.borderWidthCGFloat5Border width in points.
takePhotoButton.backgroundColorUIColor.whiteBackground color.
takePhotoButton.shadowColorCGColorBlackShadow color.
takePhotoButton.shadowOpacityFloat0.30Shadow opacity.
takePhotoButton.shadowOffsetCGSize(0, 3)Horizontal and vertical shadow offset.
takePhotoButton.shadowRadiusCGFloat7Shadow blur radius.
takePhotoButton.tintColorUIColor#082C4CCamera-icon color.

Complete example

PhotoIDScanCustomization.swift
import AutentikarPhotoIDScan
import UIKit

let custom = AutentikarPhotoIDScanCustomization()

custom.backgroundColor = .systemBackground
custom.closeIconColor = .label
custom.title.font = .boldSystemFont(ofSize: 20)
custom.title.color = .label
custom.subTitle.font = .systemFont(ofSize: 17, weight: .semibold)
custom.subTitle.color = .label
custom.text.font = .systemFont(ofSize: 16)
custom.text.color = .secondaryLabel

custom.button.activeColor = .systemBlue
custom.button.activeTextColor = .white
custom.button.disabledColor = .systemGray
custom.button.disableTextColor = .white
custom.button.cornerRadius = 14

custom.contentCard.cardIDFrontImageName = "CompanyIDFront"
custom.contentCard.cardIDBackImageName = "CompanyIDBack"
custom.contentCard.reintentIconColor = .systemBlue
custom.contentCard.dashedLineColor = .systemBlue
custom.contentCard.overlayActionContent.backgroundColor = .systemBlue
custom.contentCard.overlayActionContent.iconColor = .white
custom.contentCard.overlayActionContent.text.color = .white

custom.cameraScreen.closeIconColor = .white
custom.cameraScreen.infoTextColor = .white
custom.cameraScreen.frameReferenceColor = .systemBlue
custom.cameraScreen.statusHintText.color = .white

AutentikarPhotoIDScanManager.shared.setCustomization(custom)

Android

Apply the customization

MainActivity.kt
import android.graphics.Color
import com.autentikar.photoidscan.common.managers.AutentikarPhotoIDScanManager
import com.autentikar.photoidscan.utilities.customizations.AutentikarPhotoIDScanCustomization

val custom = AutentikarPhotoIDScanCustomization().apply {
    backgroundColor = Color.WHITE
    title.color = Color.BLACK
    button.activeColor = Color.rgb(8, 44, 76)
}

AutentikarPhotoIDScanManager.setCustomization(custom)

General appearance

PropertyTypeDefaultPurpose
backgroundColorInt (@ColorInt)#FFFFFFBackground of the document review screen.
closeIconColorInt (@ColorInt)#082C4CClose-icon color on the document review screen.

Typography

PropertyTypeDefaultPurpose
title.typefaceTypeface?nullTitle typeface; Plus Jakarta Sans SemiBold is used when unset.
title.colorInt (@ColorInt)#3A3A3CMain title color.
subTitle.typefaceTypeface?nullSubtitle typeface; Plus Jakarta Sans Regular is used when unset.
subTitle.colorInt (@ColorInt)#3A3A3CSubtitle color.
text.typefaceTypeface?nullGeneral text typeface; Plus Jakarta Sans Light is used when unset.
text.colorInt (@ColorInt)#3A3A3CGeneral text color.

Primary button

PropertyTypeDefaultPurpose
button.typefaceTypeface?nullButton typeface; Plus Jakarta Sans Regular is used when unset.
button.activeTextColorInt (@ColorInt)#FFFFFFText color when the button is enabled.
button.activeColorInt (@ColorInt)#082C4CBackground color when the button is enabled.
button.disabledTextColorInt (@ColorInt)#FFFFFFText color when the button is disabled.
button.disabledColorInt (@ColorInt)#5F6368Background color when the button is disabled.
button.cornerRadiusFloat20FButton corner radius in pixels.

Document card

PropertyTypeDefaultPurpose
contentCard.reintentIconColorInt (@ColorInt)#082C4CColor of the icon used to recapture the document.
contentCard.idCardFrontImageInt (@DrawableRes)R.drawable.autentikar_id_card_frontPlaceholder resource for the document front.
contentCard.idCardBackImageInt (@DrawableRes)R.drawable.autentikar_id_card_backPlaceholder resource for the document back.
contentCard.overlayActionContent.backgroundColorInt (@ColorInt)#4D00B6D3Semitransparent action-overlay background.
contentCard.overlayActionContent.iconColorInt (@ColorInt)#FFFFFFOverlay icon color.
contentCard.overlayActionContent.text.typefaceTypeface?nullOverlay text typeface; Plus Jakarta Sans Regular is used when unset.
contentCard.overlayActionContent.text.colorInt (@ColorInt)#FFFFFFOverlay text color.

Camera screen

PropertyTypeDefaultPurpose
cameraScreen.closeIconColorInt (@ColorInt)#082C4CCamera close-icon color.
cameraScreen.progressBarColorInt (@ColorInt)#082C4CCapture progress-indicator color.
cameraScreen.strokeColorInt (@ColorInt)#082C4CDocument guide-frame color.

Complete example

MainActivity.kt
import android.graphics.Color
import android.graphics.Typeface
import com.autentikar.photoidscan.common.managers.AutentikarPhotoIDScanManager
import com.autentikar.photoidscan.utilities.customizations.AutentikarPhotoIDScanCustomization

val custom = AutentikarPhotoIDScanCustomization().apply {
    backgroundColor = Color.WHITE
    closeIconColor = Color.DKGRAY

    title.typeface = Typeface.DEFAULT_BOLD
    title.color = Color.BLACK
    subTitle.typeface = Typeface.DEFAULT
    subTitle.color = Color.DKGRAY
    text.typeface = Typeface.DEFAULT
    text.color = Color.DKGRAY

    button.activeColor = Color.rgb(37, 99, 235)
    button.activeTextColor = Color.WHITE
    button.disabledColor = Color.GRAY
    button.disabledTextColor = Color.WHITE
    button.cornerRadius = 24F

    contentCard.idCardFrontImage = R.drawable.company_id_front
    contentCard.idCardBackImage = R.drawable.company_id_back
    contentCard.reintentIconColor = Color.rgb(37, 99, 235)
    contentCard.overlayActionContent.backgroundColor = Color.argb(77, 37, 99, 235)
    contentCard.overlayActionContent.iconColor = Color.WHITE
    contentCard.overlayActionContent.text.color = Color.WHITE

    cameraScreen.closeIconColor = Color.WHITE
    cameraScreen.progressBarColor = Color.rgb(37, 99, 235)
    cameraScreen.strokeColor = Color.rgb(37, 99, 235)
}

AutentikarPhotoIDScanManager.setCustomization(custom)

How configuration is applied

Every module manager exposes setCustomization except AutentikarUnifiedIDManager, whose FaceTec-specific properties are set directly. This keeps the base theme centralized while allowing the capture provider to retain its own UI controls.

PhotoIDScan customization controls only its review and capture screens. Shared flow screens, such as loading, consent, and standard instructions, continue to use AutentikarCoreCustomization.
Copyright © 2026