Visión general:
Lamento ser el que responde a las malas noticias, pero después de investigar y depurar, está bastante claro que no hay forma de personalizar el estilo de los nuevos controles reCAPTCHA. Los controles están envueltos en un iframe
, lo que evita el uso de CSS para diseñarlos, y la Política del mismo origen evita que JavaScript acceda a los contenidos, descartando incluso una solución pirata.
¿Por qué no personalizar la API ?:
A diferencia de reCAPTCHA API Versión 1.0 , no hay opciones de personalización en API Versión 2.0 . Si consideramos cómo funciona esta nueva API, no es de extrañar por qué.
Si bien la nueva API de reCAPTCHA puede parecer simple, hay un alto grado de sofisticación detrás de esa modesta casilla de verificación. Los CAPTCHA se han basado durante mucho tiempo en la incapacidad de los robots para resolver texto distorsionado. Sin embargo, nuestra investigación demostró recientemente que la tecnología de inteligencia artificial actual puede resolver incluso la variante más difícil de texto distorsionado con una precisión del 99,8%. Por lo tanto, el texto distorsionado, por sí solo, ya no es una prueba confiable.
Para contrarrestar esto, el año pasado desarrollamos un backend de análisis de riesgo avanzado para reCAPTCHA que considera activamente el compromiso total de un usuario con el CAPTCHA — antes, durante y después — para determinar si ese usuario es un humano. Esto nos permite confiar menos en escribir texto distorsionado y, a su vez, ofrecer una mejor experiencia a los usuarios. Hablamos de esto en nuestra publicación del Día de San Valentín a principios de este año.
Si pudieras manipular directamente el estilo de los elementos de control, podrías interferir fácilmente con la lógica de creación de perfiles de usuario que hace posible el nuevo reCAPTCHA.
¿Qué pasa con un tema personalizado ?:
Ahora, la nueva API ofrece una theme
opción , mediante la cual puede elegir un tema preestablecido como light
y dark
. Sin embargo, actualmente no existe una forma de crear un tema personalizado. Si inspeccionamos el iframe
, encontraremos que el theme
nombre se pasa en la cadena de consulta del src
atributo. Esta URL se parece a la siguiente.
https://www.google.com/recaptcha/api2/anchor?...&theme=dark&...
Este parámetro determina qué nombre de clase CSS se usa en el elemento contenedor en el iframe
y determina el tema preestablecido a usar.
Cavar a través de la fuente minified, descubrí que en realidad hay 4 valores válidos temáticos, que es más que el 2 que figuran en la documentación, pero default
y standard
son los mismos que light
.
Podemos ver el código que selecciona el nombre de la clase de este objeto aquí.
No hay código para un tema personalizado, y si theme
se especifica cualquier otro valor, usará el standard
tema.
En conclusión:
En la actualidad, no hay forma de diseñar completamente los nuevos elementos reCAPTCHA, solo iframe
se pueden estilizar los elementos de envoltura alrededor . Es casi seguro que esto se hizo intencionalmente, para evitar que los usuarios rompan la lógica de creación de perfiles de usuario que hace posible la nueva casilla de verificación sin captcha. Es posible que Google pueda implementar una API de tema personalizado limitada, quizás permitiéndole elegir colores personalizados para elementos existentes, pero no esperaría que Google implemente un estilo CSS completo.