-				
{{.locale.Tr "sign_in_with"}}
-				
+	
+		
+			
{{.locale.Tr "sign_in_with"}}
+			
 		 
 	
diff --git a/web_src/css/modules/animations.css b/web_src/css/modules/animations.css
index 689898da2..0151f1e00 100644
--- a/web_src/css/modules/animations.css
+++ b/web_src/css/modules/animations.css
@@ -46,6 +46,11 @@ code.language-math.is-loading::after {
   height: 1.25rem;
 }
 
+#oauth2-login-navigator.is-loading::after {
+  width: 40px;
+  height: 40px;
+}
+
 @keyframes fadein {
   0% {
     opacity: 0;
diff --git a/web_src/js/features/user-auth.js b/web_src/js/features/user-auth.js
index 60ea14dfa..e3ce4e56e 100644
--- a/web_src/js/features/user-auth.js
+++ b/web_src/js/features/user-auth.js
@@ -1,24 +1,22 @@
 import $ from 'jquery';
-import {hideElem, showElem} from '../utils/dom.js';
 
 export function initUserAuthOauth2() {
-  const $oauth2LoginNav = $('#oauth2-login-navigator');
-  if ($oauth2LoginNav.length === 0) return;
+  const outer = document.getElementById('oauth2-login-navigator');
+  if (!outer) return;
+  const inner = document.getElementById('oauth2-login-navigator-inner');
 
-  $oauth2LoginNav.find('.oauth-login-image').on('click', () => {
-    const oauthLoader = $('#oauth2-login-loader');
-    const oauthNav = $('#oauth2-login-navigator');
-
-    hideElem(oauthNav);
-    oauthLoader.removeClass('disabled');
-
-    setTimeout(() => {
-      // recover previous content to let user try again
-      // usually redirection will be performed before this action
-      oauthLoader.addClass('disabled');
-      showElem(oauthNav);
-    }, 5000);
-  });
+  for (const link of outer.querySelectorAll('.oauth-login-link')) {
+    link.addEventListener('click', () => {
+      inner.classList.add('gt-invisible');
+      outer.classList.add('is-loading');
+      setTimeout(() => {
+        // recover previous content to let user try again
+        // usually redirection will be performed before this action
+        outer.classList.remove('is-loading');
+        inner.classList.remove('gt-invisible');
+      }, 5000);
+    });
+  }
 }
 
 export function initUserAuthLinkAccountView() {