Visão geral:
Desculpe responder a más notícias, mas depois de pesquisar e depurar, fica bem claro que não há como personalizar o estilo dos novos controles do reCAPTCHA. Os controles são envolvidos em um iframe
, o que impede o uso de CSS para estilizá-los, e a política de mesma origem impede que o JavaScript acesse o conteúdo, descartando até mesmo uma solução hacky.
Por que não personalizar API ?:
Ao contrário do reCAPTCHA API Versão 1.0 , não há opções de personalização na API Versão 2.0 . Se considerarmos como essa nova API funciona, não é nenhuma surpresa por quê.
Embora a nova API reCAPTCHA possa parecer simples, há um alto grau de sofisticação por trás dessa modesta caixa de seleção. CAPTCHAs há muito confiam na incapacidade dos robôs de resolver textos distorcidos. No entanto, nossa pesquisa mostrou recentemente que a tecnologia de Inteligência Artificial de hoje pode resolver até mesmo a variante mais difícil de texto distorcido com precisão de 99,8%. Assim, o texto distorcido, por si só, não é mais um teste confiável.
Para contrariar isso, no ano passado desenvolvemos um back-end de Análise de Risco Avançada para reCAPTCHA que considera ativamente todo o envolvimento do usuário com o CAPTCHA - antes, durante e depois - para determinar se esse usuário é humano. Isso nos permite confiar menos na digitação de texto distorcido e, por sua vez, oferece uma experiência melhor para os usuários. Falamos sobre isso em nossa postagem do Dia dos Namorados no início deste ano.
Se você pudesse manipular diretamente o estilo dos elementos de controle, poderia facilmente interferir na lógica de criação de perfil do usuário que torna o novo reCAPTCHA possível.
E um tema personalizado ?:
Agora, a nova API oferece uma theme
opção , pela qual você pode escolher um tema predefinido como light
e dark
. No entanto, atualmente não há uma maneira de criar um tema personalizado. Se inspecionarmos o iframe
, descobriremos que o theme
nome é passado na string de consulta do src
atributo. Este URL se parece com o seguinte.
https://www.google.com/recaptcha/api2/anchor?...&theme=dark&...
Este parâmetro determina qual nome de classe CSS é usado no elemento wrapper no iframe
e determina o tema predefinido a ser usado.
Explorando a fonte minimizada, descobri que existem na verdade 4 valores de tema válidos, que são mais do que os 2 listados na documentação, mas default
e standard
são os mesmos que light
.
Podemos ver o código que seleciona o nome da classe deste objeto aqui.
Não há código para um tema personalizado e, se qualquer outro theme
valor for especificado, ele usará o standard
tema.
Em conclusão:
No momento, não há como estilizar totalmente os novos elementos reCAPTCHA, apenas os elementos de invólucro ao redor do iframe
podem ser estilizados. Isso quase certamente foi feito intencionalmente, para evitar que os usuários quebrassem a lógica de criação de perfil do usuário que torna possível a nova caixa de seleção livre de captcha. É possível que o Google possa implementar uma API de tema personalizado limitada, talvez permitindo que você escolha cores personalizadas para os elementos existentes, mas não espero que o Google implemente um estilo CSS completo.