eleven / messenger Public

home: Google arrival fix + branded button (#1154)

finishOidc mirrored finishSiwa except its closing anchorArrival() — the
line that lifts the waiting face — so the first live Google sign-in
stranded on the ring (the landing had rendered beneath it; a reload
showed it). Plus the branded button both places: Google's light-button
spec (white/hairline, the official four-colour G — their rendered button
needs their JS, which the CSP rightly blocks).
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Paul Campbell 10c44beffab47edd88b2fdd58b7c0c4031f190b2 parent 155592d
2 files changed, +16 −2
  • home/web/pages/index.html +12 −2
  • home/web/static/home.js +4 −0
diff --git a/home/web/pages/index.html b/home/web/pages/index.html
index 8ada238..b0df054 100644
--- a/home/web/pages/index.html
+++ b/home/web/pages/index.html
@@ -44,6 +44,16 @@
global .hidden at equal specificity — restate the hide here (the same
trap .icon-add.hidden answers below). Demoted doors hide this way. */
.apple-btn.hidden { display: none; }
+ /* Google's door, to their light-button spec: white, hairline border, the
+ official four-colour G (inline SVG — their rendered button needs their
+ JS, which the CSP rightly blocks; hand-built like Apple's). */
+ .google-btn {
+ display: flex; align-items: center; justify-content: center; gap: 8px;
+ background: light-dark(#fff, #131314); color: light-dark(#1f1f1f, #e3e3e3);
+ border: 1px solid light-dark(#747775, #8e918f);
+ position: relative; /* anchors the loading ring */
+ }
+ .google-btn.hidden { display: none; }
/* A working button wears a ring (Apple hand-over, Send code): the wait
needs a face even when the server is instant. White reads on both the
black and accent buttons — the only wearers. Reduced motion keeps a
@@ -790,7 +800,7 @@
<div id="signed-out">
<div class="actions" id="main-doors">
<button id="apple-signin" class="apple-btn" type="button"><svg viewBox="0 0 814 1000" width="14" height="17" fill="currentColor" aria-hidden="true"><path d="M788.1 340.9c-5.8 4.5-108.2 62.2-108.2 190.5 0 148.4 130.3 200.9 134.2 202.2-.6 3.2-20.7 71.9-68.7 141.9-42.8 61.6-87.5 123.1-155.5 123.1s-85.5-39.5-164-39.5c-76.5 0-103.7 40.8-165.9 40.8s-105.6-57-155.5-127C46.7 790.7 0 663 0 541.8c0-194.4 126.4-297.5 250.8-297.5 66.1 0 121.2 43.4 162.7 43.4 39.5 0 101.1-46 176.3-46 28.5 0 130.9 2.6 198.3 99.2zm-234-181.5c31.1-36.9 53.1-88.1 53.1-139.3 0-7.1-.6-14.3-1.9-20.1-50.6 1.9-110.8 33.7-147.1 75.8-28.5 32.4-55.1 83.6-55.1 135.5 0 7.8 1.3 15.6 1.9 18.1 3.2.6 8.4 1.3 13.6 1.3 45.4 0 102.5-30.4 135.5-71.3z"/></svg>Continue with Apple</button>
- <button id="google-signin" class="hidden" type="button"><svg viewBox="0 0 48 48" width="16" height="16" aria-hidden="true"><path fill="#EA4335" d="M24 9.5c3.54 0 6.71 1.22 9.21 3.6l6.85-6.85C35.9 2.38 30.47 0 24 0 14.62 0 6.51 5.38 2.56 13.22l7.98 6.19C12.43 13.72 17.74 9.5 24 9.5z"/><path fill="#4285F4" d="M46.98 24.55c0-1.57-.15-3.09-.38-4.55H24v9.02h12.94c-.58 2.96-2.26 5.48-4.78 7.18l7.73 6c4.51-4.18 7.09-10.36 7.09-17.65z"/><path fill="#FBBC05" d="M10.53 28.59c-.48-1.45-.76-2.99-.76-4.59s.27-3.14.76-4.59l-7.98-6.19C.92 16.46 0 20.12 0 24c0 3.88.92 7.54 2.56 10.78l7.97-6.19z"/><path fill="#34A853" d="M24 48c6.48 0 11.93-2.13 15.89-5.81l-7.73-6c-2.15 1.45-4.92 2.3-8.16 2.3-6.26 0-11.57-4.22-13.47-9.91l-7.98 6.19C6.51 42.62 14.62 48 24 48z"/></svg>Continue with Google</button>
+ <button id="google-signin" class="google-btn hidden" type="button"><svg viewBox="0 0 48 48" width="16" height="16" aria-hidden="true"><path fill="#EA4335" d="M24 9.5c3.54 0 6.71 1.22 9.21 3.6l6.85-6.85C35.9 2.38 30.47 0 24 0 14.62 0 6.51 5.38 2.56 13.22l7.98 6.19C12.43 13.72 17.74 9.5 24 9.5z"/><path fill="#4285F4" d="M46.98 24.55c0-1.57-.15-3.09-.38-4.55H24v9.02h12.94c-.58 2.96-2.26 5.48-4.78 7.18l7.73 6c4.51-4.18 7.09-10.36 7.09-17.65z"/><path fill="#FBBC05" d="M10.53 28.59c-.48-1.45-.76-2.99-.76-4.59s.27-3.14.76-4.59l-7.98-6.19C.92 16.46 0 20.12 0 24c0 3.88.92 7.54 2.56 10.78l7.97-6.19z"/><path fill="#34A853" d="M24 48c6.48 0 11.93-2.13 15.89-5.81l-7.73-6c-2.15 1.45-4.92 2.3-8.16 2.3-6.26 0-11.57-4.22-13.47-9.91l-7.98 6.19C6.51 42.62 14.62 48 24 48z"/></svg>Continue with Google</button>
<button id="email-signin" class="secondary" type="button">Continue with email</button>
<button id="signin" class="passkey-link" type="button">Sign in with a passkey</button>
<button id="other-ways" class="passkey-link" type="button">Other ways to sign in</button>
@@ -844,7 +854,7 @@
<h2 class="create-title">Other ways to sign in</h2>
<div class="actions">
<button id="otherways-apple" class="apple-btn" type="button"><svg viewBox="0 0 814 1000" width="14" height="17" fill="currentColor" aria-hidden="true"><path d="M788.1 340.9c-5.8 4.5-108.2 62.2-108.2 190.5 0 148.4 130.3 200.9 134.2 202.2-.6 3.2-20.7 71.9-68.7 141.9-42.8 61.6-87.5 123.1-155.5 123.1s-85.5-39.5-164-39.5c-76.5 0-103.7 40.8-165.9 40.8s-105.6-57-155.5-127C46.7 790.7 0 663 0 541.8c0-194.4 126.4-297.5 250.8-297.5 66.1 0 121.2 43.4 162.7 43.4 39.5 0 101.1-46 176.3-46 28.5 0 130.9 2.6 198.3 99.2zm-234-181.5c31.1-36.9 53.1-88.1 53.1-139.3 0-7.1-.6-14.3-1.9-20.1-50.6 1.9-110.8 33.7-147.1 75.8-28.5 32.4-55.1 83.6-55.1 135.5 0 7.8 1.3 15.6 1.9 18.1 3.2.6 8.4 1.3 13.6 1.3 45.4 0 102.5-30.4 135.5-71.3z"/></svg>Continue with Apple</button>
- <button id="otherways-google" class="secondary" type="button">Continue with Google</button>
+ <button id="otherways-google" class="google-btn" type="button"><svg viewBox="0 0 48 48" width="16" height="16" aria-hidden="true"><path fill="#EA4335" d="M24 9.5c3.54 0 6.71 1.22 9.21 3.6l6.85-6.85C35.9 2.38 30.47 0 24 0 14.62 0 6.51 5.38 2.56 13.22l7.98 6.19C12.43 13.72 17.74 9.5 24 9.5z"/><path fill="#4285F4" d="M46.98 24.55c0-1.57-.15-3.09-.38-4.55H24v9.02h12.94c-.58 2.96-2.26 5.48-4.78 7.18l7.73 6c4.51-4.18 7.09-10.36 7.09-17.65z"/><path fill="#FBBC05" d="M10.53 28.59c-.48-1.45-.76-2.99-.76-4.59s.27-3.14.76-4.59l-7.98-6.19C.92 16.46 0 20.12 0 24c0 3.88.92 7.54 2.56 10.78l7.97-6.19z"/><path fill="#34A853" d="M24 48c6.48 0 11.93-2.13 15.89-5.81l-7.73-6c-2.15 1.45-4.92 2.3-8.16 2.3-6.26 0-11.57-4.22-13.47-9.91l-7.98 6.19C6.51 42.62 14.62 48 24 48z"/></svg>Continue with Google</button>
<!-- Microsoft's door, same shape: DOORS.microsoft plus
<button id="otherways-microsoft" class="secondary" type="button">Continue with Microsoft</button> -->
<!-- GitHub's door ("for the nerds"), all-ways only, never a platform
diff --git a/home/web/static/home.js b/home/web/static/home.js
index d8d7395..b9f19fc 100644
--- a/home/web/static/home.js
+++ b/home/web/static/home.js
@@ -690,6 +690,10 @@ async function finishOidc(rec, idToken, backToMethods = false, intentStr = "") {
finishHomeLoader({ immediate: true });
return;
}
+ // The landing rendered beneath the cover — this is what LIFTS it (the
+ // ring gives way to the lockup, then the spaces screen). Its omission
+ // stranded the first live Google sign-in on the waiting face.
+ anchorArrival();
}
// finishOidcLink — finishSiwaLink's twin: the ADD round trip (link:true +