Skip to main content
O SDK permite personalização completa através do objeto hubOptions.

Idiomas Suportados

const hubOptions = {
  locale: 'pt-BR', // 'pt-BR' | 'en-US' | 'custom'
};
ValorDescrição
pt-BRPortuguês (Brasil) — padrão
en-USInglês (Estados Unidos)
customTextos personalizados

Personalização de Textos

Você pode customizar todos os textos exibidos na interface usando locale: 'custom':
const hubOptions = {
  locale: 'custom',
  strings: {
    actions: {
      ready: 'ESTOU PRONTO',
      tryAgain: 'TENTE NOVAMENTE',
    },
    accessibility: {
      cancelButton: 'Cancelar',
      tapGuidance: 'Toque duas vezes na tela para orientação',
    },
    instructions: {
      title: 'Verificação Facial',
      subtitle: 'Posicione seu rosto no círculo e pressione Estou Pronto',
    },
  },
};
Os valores acima são os padrões do idioma pt-BR. Você pode combinar idioma predefinido com customização parcial — as strings não especificadas usarão os valores padrão do idioma selecionado.

Personalização de Cores (Tema)

Customize a aparência visual da interface:
const hubOptions = {
  colorTheme: {
    // Cores principais
    primaryColor: '#667eea',       // Cor da marca principal
    secondaryColor: '#764ba2',     // Cor de destaque

    // Fundos
    backgroundColor: '#ffffff',    // Fundo principal
    surfaceColor: '#f8f9fa',       // Fundo de cards e painéis
    overlayColor: 'rgba(0, 0, 0, 0.6)', // Sobreposição de modal
  },
};

Propriedade brandingImage

A propriedade brandingImage permite exibir o logo da sua marca na interface do SDK. Aceita:
  • URL: link para uma imagem (PNG, SVG, etc.)
  • Base64: string data URI com a imagem codificada

Temas Pré-definidos

O SDK exporta dois temas prontos para uso:

VALID_COLOR_THEME — Tema da Valid

Tema preto e branco com a identidade visual da Valid:
const hubOptions = {
  colorTheme: ValidHub.VALID_COLOR_THEME,
};

DEFAULT_COLOR_THEME — Tema Padrão

Tema neutro com tons de azul/roxo (usado quando nenhum tema é especificado):
const hubOptions = {
  colorTheme: ValidHub.DEFAULT_COLOR_THEME,
};

Logo da Valid

O SDK também exporta o logo da Valid em base64 para uso com o brandingImage:
const hubOptions = {
  colorTheme: {
    ...ValidHub.VALID_COLOR_THEME,
    brandingImage: ValidHub.VALID_LOGO_BASE64,
  },
};

Componentes de UI

Você pode controlar a visibilidade e o comportamento de componentes individuais da interface usando UIComponentOptions:
const hubOptions = {
  uiComponents: {
    title: {
      enabled: true,
      text: 'Verificação Facial',
    },
    subtitle: {
      enabled: true,
      text: 'Posicione seu rosto no círculo',
    },
  },
};
const hubOptions = {
  uiComponents: {
    captureButton: {
      enabled: true,
      position: 'bottom',   // 'bottom' | 'right' | 'left'
      size: 'medium',        // 'small' | 'medium' | 'large'
    },
    confirmButton: {
      enabled: true,
    },
    cancelButton: {
      enabled: true,
      position: 'topRight', // 'topLeft' | 'topRight' | 'bottomLeft' | 'bottomRight' | 'disabled'
    },
    switchCameraButton: {
      enabled: true,
    },
    backButton: {
      enabled: true,
    },
  },
};
const hubOptions = {
  uiComponents: {
    faceDetectionMask: {
      enabled: true,
      type: 'oval',        // 'face' | 'square' | 'circle' | 'oval'
      strokeWidth: 2,
      showProgress: true,
    },
  },
};
const hubOptions = {
  uiComponents: {
    loadingIndicator: {
      enabled: true,
      type: 'dots',        // 'dots' | 'spinner' | 'progress'
    },
    feedbackDisplay: {
      enabled: true,
      position: 'bottom',  // 'top' | 'center' | 'bottom'
      showIcon: true,
    },
  },
};

Exemplos de Temas

const hubOptions = {
  locale: 'pt-BR',
  colorTheme: {
    primaryColor: '#818cf8',
    secondaryColor: '#a78bfa',
    backgroundColor: '#1f2937',
    surfaceColor: '#374151',
    overlayColor: 'rgba(0, 0, 0, 0.8)',
    textColor: '#f9fafb',
    textColorSecondary: '#d1d5db',
    textColorLight: '#f9fafb',
    buttonColor: '#818cf8',
    confirmButtonColor: '#34d399',
    cancelButtonColor: '#f87171',
    buttonTextColor: '#1f2937',
    successColor: '#34d399',
    errorColor: '#f87171',
    warningColor: '#fbbf24',
    infoColor: '#60a5fa',
    frameColor: '#818cf8',
    maskColor: 'rgba(0, 0, 0, 0.7)',
  },
};
const hubOptions = {
  locale: 'pt-BR',
  strings: {
    instructions: {
      title: 'Verificação de Identidade',
      subtitle: 'Olhe diretamente para a câmera',
    },
    actions: {
      ready: 'COMEÇAR',
    },
  },
  colorTheme: {
    primaryColor: '#003366',
    secondaryColor: '#0066cc',
    backgroundColor: '#f5f5f5',
    buttonColor: '#003366',
    confirmButtonColor: '#28a745',
    frameColor: '#003366',
  },
};

Exemplo Completo com Personalização

const hub = ValidHub.createHub();

const config = {
  apiKey: 'sua-api-key',
  cek: 'sua-cek-base64',
  mount: '#camera-container',
  env: 'production',
  appName: 'minha-aplicacao',
  risk: 'LIVENESS_RISK_HIGH',

  hubOptions: {
    locale: 'pt-BR',
    strings: {
      instructions: {
        title: 'Verificação de Identidade',
        subtitle: 'Posicione seu rosto no centro da tela',
      },
      actions: {
        ready: 'ESTOU PRONTO',
        tryAgain: 'TENTE NOVAMENTE',
      },
      feedback: {
        centerFace: 'Centralize Seu Rosto',
        faceNotFound: 'Rosto Não Encontrado',
        perfect: 'Perfeito!',
        holdStill: 'Mantenha-se Parado',
      },
      status: {
        processing: 'Analisando biometria facial...',
        success: 'Sucesso',
      },
    },
    colorTheme: {
      ...ValidHub.VALID_COLOR_THEME,
      brandingImage: ValidHub.VALID_LOGO_BASE64,
    },
  },

  onSuccess: (result) => {
    console.log('Sucesso:', result);
  },
  onFailure: (error) => {
    console.error('Erro:', error);
  },
  onProgress: (state) => {
    console.log('Estado:', state);
  },
};

const result = await hub.run(config);

Próximos Passos

Implementação

Veja como implementar a verificação

Troubleshooting

Tratamento de erros e boas práticas