Published: May 12, 2026
Immediate UI mode for logins is a web capability designed to streamline sign-in flows. This feature lets you proactively offer passkeys and managed passwords directly to your users when they reach a sign-in moment, such as clicking a Sign In or Checkout button.
Abstract
Immediate UI mode provides a mode that fails promptly if no credentials are
locally available. This behavior mirrors preferImmediatelyAvailableCredentials
APIs found on mobile platforms like Android and iOS. When credentials exist, the
browser presents an immediate login dialog to the user. Otherwise, it rejects
the promise silently, letting you provide alternative sign-in methods, for
example, a sign-in form, without disrupting the user experience.
As of May 2026, Chrome is the only browser that supports immediate UI mode.
Check prerequisites
To use immediate UI mode, the user must already have eligible credentials available locally on their device. On Chrome, these credentials include:
- Passkeys saved in a passkey provider such as Google Password Manager, Windows Hello, or iCloud Keychain.
- Passwords saved in Google Password Manager.
If no local credentials exist, the API rejects the request without showing the immediate login dialog.
Detect feature support
Before you call immediate UI mode, verify whether the browser supports the
immediateGet capability using the
PublicKeyCredential.getClientCapabilities() method. If it is not supported,
fall back to existing sign-in methods, such as email and password forms, phone
number verification, or social logins.
async function checkImmediateAvailability() {
try {
const capabilities = await PublicKeyCredential.getClientCapabilities();
if (capabilities.immediateGet) {
console.log("Immediate UI mode is supported.");
} else {
console.log("Immediate UI mode is NOT supported.");
}
} catch (error) {
console.error("Error checking client capabilities:", error);
}
}
For broader browser support, use the polyfill available in the WebAuthn Polyfills GitHub repository.
Request credentials
To trigger the immediate login flow, call navigator.credentials.get() with the
uiMode field set to 'immediate'.
By including password: true in your request, users can benefit from this
experience if the browser supports password
credentials.
// This call must follow a user gesture, like a button click
button.addEventListener('click', async (event) => {
event.preventDefault();
try {
const cred =