Feature Language Change NPM Resource Changed UI/UX PR-6.1-dev AI Generated Pending

User tests: Successful: Unsuccessful:

avatar coolcat-creations
coolcat-creations
11 Oct 2024

This PR implements a new login flow for the Backend login screen, providing improved clarity and a modern user experience consistent with authentication patterns used by major services (Google, Microsoft, GitHub).

Key Changes

  • Username field is always visible and must be entered first
  • After providing the username, the user is choosing between two options:
  • "Continue with password": reveals password field and submit button
  • "Continue with passkey": initiates WebAuthn/passkey authentication (if available)
  • Password field and submit button are hidden by default (with JS enabled)
  • Passkey requires username but does NOT trigger HTML5 password validation errors
  • With JavaScript disabled, the classic username + password + submit flow remains fully functional
  • All form elements are visible and usable without JS
  • If passkey is clicked without username, a warning alert appears
  • Username field is focused for immediate input

UI Improvements:

  • Both login method buttons have consistent styling with icons

  • Buttons stack vertically with 100% width for better mobile experience

  • Icon sizes are constrained to prevent layout issues

  • Language selector moved to bottom as visually secondary element

  • "OR" separator only appears when additional login methods exist beyond passkey

  • Removed broken MOD_LOGIN_CHOSE_LANGUAGE legend (was printing as raw language key)

  • Removed unused MOD_LOGIN_WITH_USERNAME_AND_PASSWORD language string

Testing Instructions

SSL must be enabled

  1. Test the Password login:
    — Enter username → Click "Continue with password" → Enter password → Click "Log in"

  2. Passkey login flow (if configured):
    — Enter username → Click "Continue with passkey" → Complete WebAuthn flow

  3. Passkey without username:
    — Click passkey button without entering username
    — Verify: warning alert appears at the top, username field is focused

  4. No-JS fallback:
    —Disable JavaScript in browser
    —Verify: password field and submit button are visible and functional

  • Information: It's normal that a red warning appears at the top of the page, thats not a failed test
  1. Validation messages:
    —Submit form without username
    —Verify: browser validation tooltip is visible (not overlapped)

  2. No raw language keys:
    — Verify no untranslated language keys appear in the Form

grafik grafik
  1. Disable Passkey Plugin and check if the Form is shown completely without 2 Steps
avatar coolcat-creations coolcat-creations - open - 11 Oct 2024
avatar coolcat-creations coolcat-creations - change - 11 Oct 2024
Status New Pending
avatar joomla-cms-bot joomla-cms-bot - change - 11 Oct 2024
Category Administration Language & Strings Modules Repository NPM Change
avatar coolcat-creations coolcat-creations - change - 11 Oct 2024
The description was changed
avatar coolcat-creations coolcat-creations - edited - 11 Oct 2024
avatar coolcat-creations coolcat-creations - change - 11 Oct 2024
The description was changed
avatar coolcat-creations coolcat-creations - edited - 11 Oct 2024
avatar coolcat-creations coolcat-creations - change - 11 Oct 2024
Labels Added: Language Change NPM Resource Changed PR-5.3-dev
avatar richard67 richard67 - change - 11 Oct 2024
The description was changed
avatar richard67 richard67 - edited - 11 Oct 2024
avatar richard67 richard67 - change - 11 Oct 2024
The description was changed
avatar richard67 richard67 - edited - 11 Oct 2024
avatar richard67
richard67 - comment - 11 Oct 2024

@coolcat-creations I've allowed myself to fix the markdown formatting of the description so the headings for actual and expected result are shown as expected in our PR template, and the check boxes for documentation are right.

avatar coolcat-creations
coolcat-creations - comment - 11 Oct 2024

@coolcat-creations I've allowed myself to fix the markdown formatting of the description so the headings for actual and expected result are shown as expected in our PR template, and the check boxes for documentation are right.

Thank you for your help, Richard!

avatar dautrich dautrich - test_item - 11 Oct 2024 - Tested unsuccessfully
avatar dautrich
dautrich - comment - 11 Oct 2024

I have tested this item 🔴 unsuccessfully on 52e7bff

Didn't see anything about passwordless login on the admin login screen.


This comment was created with the J!Tracker Application at issues.joomla.org/tracker/joomla-cms/44228.
avatar dautrich
dautrich - comment - 11 Oct 2024

grafik

System plugin for passwordless login was enabled.

BTW: I couldn't see the language switcher with the prebuild package because the language pack for i.e. German does not yet exist.

avatar coolcat-creations
coolcat-creations - comment - 11 Oct 2024

That's odd - for me it works. Did you test then with English? Are you sure the "Passkey" Plugin is enabled?

avatar dautrich
dautrich - comment - 11 Oct 2024

I used the prebuilt package. And I have verified that the plugin for the Passkey (~ passwordless) Login was enabled.

avatar richard67
richard67 - comment - 11 Oct 2024

@dautrich And you have once edited your user and registered your passkey like described here? https://docs.joomla.org/WebAuthn_Passwordless_Login

avatar richard67
richard67 - comment - 11 Oct 2024

Regarding other language than English for 5.3 so you have multi language: You can download a language pack for 5.1 (or 5.2 soon) and install it with the normal extensions installer.

avatar dautrich
dautrich - comment - 11 Oct 2024

@richard67 That hasn't been the problem. I'm on localhost and use Laragon. The issue was that I wasn't under https://. Now I've convinced Laragon to allow https:// and I can see the login:
grafik

avatar richard67
richard67 - comment - 11 Oct 2024

@dautrich Yes, passkey requires https. Maybe you ran into this issue #44208 but haven't seen the error message because debug not enabled and/or error reporting not on maximum?

avatar dautrich
dautrich - comment - 11 Oct 2024

@richard67 Next issue: Tried to download a German language pack from joomla.org, but only see a white screen with the word "Error".

avatar richard67
richard67 - comment - 11 Oct 2024

@richard67 Next issue: Tried to download a German language pack from joomla.org, but only see a white screen with the word "Error".

@dautrich Works for me, https://downloads.joomla.org/language-packs/translations-joomla5/downloads/joomla5-german/5-1-4-1 .

avatar chmst
chmst - comment - 11 Oct 2024

Re-Arranging the screen is a great idea. But do we relly need the Text "login with your username and password"? What else could the user expect on a login screen?

avatar dautrich
dautrich - comment - 11 Oct 2024

@richard67 Has been a hickup on the joomla.org website, obviously.

avatar dautrich
dautrich - comment - 11 Oct 2024

Things are improving after I installed a German language pack and set German as the default language for frontend, backend, and content:

grafik

Two remarks:

  1. There is an unnecessary language string (marked in red).
  2. I agree with @chmst that the text is redundant (marked in green).

For 1.: There is a class "visually-hidden" missing in the legend of the fieldset. If inserted, it looks like this:
grafik

avatar dautrich
dautrich - comment - 11 Oct 2024

Using keyboard navigation (tab key), the language selection is barely unreachable. By default, focus is on the username field, and you have to tab through all available elements (including the browser header), before you finally reach the language selector.
Would be better to give this field the initial focus.

avatar brianteeman
brianteeman - comment - 11 Oct 2024

Using keyboard navigation (tab key), the language selection is barely unreachable. By default, focus is on the username field, and you have to tab through all available elements (including the browser header), before you finally reach the language selector. Would be better to give this field the initial focus.

thats no different to the current behaviour

avatar coolcat-creations
coolcat-creations - comment - 11 Oct 2024

Re-Arranging the screen is a great idea. But do we relly need the Text "login with your username and password"? What else could the user expect on a login screen?

The first option is username and password and the other option has the headline: Or
I think if we say be, we have to say A ? What do you think ?

avatar coolcat-creations
coolcat-creations - comment - 11 Oct 2024

About the language and the focus - I wonder if we should do a second PR where the language actually changes by changing this dropdown? Because it does not and if you don't understand "Sign in with a pass key" in Chinese the dropdown is not really helpful.

avatar dautrich
dautrich - comment - 11 Oct 2024

The first option is username and password and the other option has the headline: Or I think if we say be, we have to say A ? What do you think ?

I'm with @chmst : Why should we need "Log in with your username and password", when immediately below there is a form asking for username and password? We could safely omit this line (which eliminates the task to translate the sentence as well).

We would end up like this:
grafik

avatar dautrich
dautrich - comment - 11 Oct 2024

About the language and the focus - I wonder if we should do a second PR where the language actually changes by changing this dropdown? Because it does not and if you don't understand "Sign in with a pass key" in Chinese the dropdown is not really helpful.

Maybe you're right. If you want to avoid a second PR, you might consider using something like a horizontal ruler instead of the "OR".

avatar coolcat-creations
coolcat-creations - comment - 11 Oct 2024

But the "OR" is intentional...

avatar dautrich
dautrich - comment - 11 Oct 2024

Doesn't fit very well to German.

avatar coolcat-creations
coolcat-creations - comment - 11 Oct 2024

Why ? My screenshots are all German and show exactly this just a HR is not enough

avatar chmst
chmst - comment - 11 Oct 2024

The first option is username and password and the other option has the headline: Or
I think if we say be, we have to say A ? What do you think ?

Correct. But as a user I don't see that these text fragments form one sentence. Suppose you are blind then the screenreander reads the first part of the sentence .. the labels, announces the input field .. then says "or" ...

What, if we start with a complete sentence: "Login with username and password or with a passkey" - then the two clearly separated blocks?

At the moment I have no good testing environment - can someone listen to the screenreader?

avatar dautrich
dautrich - comment - 11 Oct 2024

Why ? My screenshots are all German and show exactly this just a HR is not enough

My screenshot above is German as well, but it shows "OR", which obviously is not correct in German.

avatar richard67
richard67 - comment - 11 Oct 2024

Why ? My screenshots are all German and show exactly this just a HR is not enough

My screenshot above is German as well, but it shows "OR", which obviously is not correct in German.

@dautrich A new language string added by this PR to the English file can't be available in the German translation yet :-) https://github.com/joomla/joomla-cms/pull/44228/files#diff-749c19a3bc27785f12905b9c65fe7600eedf704f0bb0093fbf838b266713fa29R11

@coolcat-creations Have you checked if there isn't already a global language string for "OR" (or "Or" or "or") which we could use here instead of creating a new string?

avatar brianteeman
brianteeman - comment - 11 Oct 2024

@coolcat-creations Have you checked if there isn't already a global language string for "OR" (or "Or" or "or") which we could use here instead of creating a new string?

There isnt and its not a good idea to add one for the reasons stated above by @chmst

avatar coolcat-creations
coolcat-creations - comment - 11 Oct 2024

@coolcat-creations Have you checked if there isn't already a global language string for "OR" (or "Or" or "or") which we could use here instead of creating a new string?

There isnt and its not a good idea to add one for the reasons stated above by @chmst

I thought maybe someone wants to override it with something else than or, it's not possible when I take the general "OR"
Otherwise all OR will be replaced with "or use one of these methods" 😅

avatar universewrld
universewrld - comment - 11 Oct 2024

@coolcat-creations I think this could be improved:

изображение

this text could be inside the field, as @google did with its login page (and many other services):

изображение

avatar coolcat-creations
coolcat-creations - comment - 11 Oct 2024

That actually not so good UX if in the moment you click in the Field the label disappears

avatar universewrld
universewrld - comment - 11 Oct 2024

@coolcat-creations also I think the or could be between the two lines (not above the lines) as done by Amazon and in your examples above:

изображение

avatar universewrld
universewrld - comment - 11 Oct 2024

That actually not so good UX if in the moment you click in the Field the label disappears

this is how it works, it's very convenient, you can check it by opening a new tab in private mode:
https://accounts.google.com/ServiceLogin

изображение

avatar coolcat-creations
coolcat-creations - comment - 11 Oct 2024

That actually not so good UX if in the moment you click in the Field the label disappears

this is how it works, it's very convenient, you can check it by opening a new tab in private mode:

https://accounts.google.com/ServiceLogin

изображение

Yes but changing all Inputs/ Labels are not scope of this PR, if I do it here I would need to do it everywhere.

avatar universewrld
universewrld - comment - 11 Oct 2024

Yes but changing all Inputs/ Labels are not scope of this PR, if I do it here I would need to do it everywhere.

there's still a lot of time until version 5.3, I think it's worth it to make the login form better.

avatar chmst
chmst - comment - 11 Oct 2024

When you work on new login form, please make sure, that it is accessible for all. WCAG 2.2

avatar coolcat-creations
coolcat-creations - comment - 11 Oct 2024

Yes but changing all Inputs/ Labels are not scope of this PR, if I do it here I would need to do it everywhere.

there's still a lot of time until version 5.3, I think it's worth it to make the login form better.

Yes but changing Input Fields in Joomla is a bigger scope, it can't be part of this PR

avatar coolcat-creations
coolcat-creations - comment - 11 Oct 2024

When you work on new login form, please make sure, that it is accessible for all. WCAG 2.2

Was this directed to me ?

avatar chmst
chmst - comment - 11 Oct 2024

It was for @universewrld.
@coolcat-creations I agree with you that it is not in scope of this PR. Re-arranging the fields is an improvement and enough.

avatar fgsw
fgsw - comment - 14 Oct 2024

@dautrich how do you get the screen at #44228 (comment)?

There is always shown the Constant like in your #44228 (comment):

Ohne Titel

avatar Fedik
Fedik - comment - 14 Oct 2024

@coolcat-creations thanks for your work, looks very nice.
Please keep language field as it was, after the username and password field.
It is an optional input, it should not be first on the page.

avatar coolcat-creations
coolcat-creations - comment - 14 Oct 2024

@Fedik ok,but it should also not be between two alternate sign in options. Then I put it at the very end?

avatar Fedik
Fedik - comment - 14 Oct 2024

Then I put it at the very end?

Not sure, but can try. We probably could even make it "hiddable" somehow, but that another topic 😃
My concern (currently) that it should not be the first input that User will see 😉

avatar dautrich
dautrich - comment - 14 Oct 2024

@fgsw It's a mockup. I installed locally and modified administrator/modules/mod_login/tmpl/default.php. I added a 'class="visually-hidden"' to line 31 and deleted line 42.

avatar dautrich
dautrich - comment - 14 Oct 2024

@Fedik ok,but it should also not be between two alternate sign in options. Then I put it at the very end?

Maybe yes, but it should somehow be obvious that the language selection belongs to both login options.

avatar fgsw
fgsw - comment - 14 Oct 2024

Info Please fill in this field is shown partiell above "Log in"-Button:

Ohne Titel

avatar fgsw
fgsw - comment - 15 Oct 2024

Beside the 2 mentioned Issues i found no more.

Test as Instructions say but not screen reader. Looked at Desktop, iPad, iPhone; Light/Dark mode; RTL-Language (Farsi).

@dautrich Can you reset your test result to "Not tested" so it not count als failed.

avatar dautrich dautrich - test_item - 15 Oct 2024 - Tested successfully
avatar dautrich
dautrich - comment - 15 Oct 2024

I have tested this item ✅ successfully on 52e7bff


This comment was created with the J!Tracker Application at issues.joomla.org/tracker/joomla-cms/44228.

I tested with different viewport sizes (desktop, tablet, smartphone) and using keyboard. No further issues.

avatar inforaghavms inforaghavms - test_item - 22 Feb 2025 - Tested unsuccessfully
avatar inforaghavms
inforaghavms - comment - 22 Feb 2025

I have tested this item 🔴 unsuccessfully on 52e7bff

Passkey is enabled but still passkey is not available in the login page. And Language dropdown is not available at the top.


This comment was created with the J!Tracker Application at issues.joomla.org/tracker/joomla-cms/44228.

avatar HLeithner
HLeithner - comment - 4 Mar 2025

This pull request has been automatically rebased to 6.0-dev.

avatar HLeithner HLeithner - change - 4 Mar 2025
Title
[J5.3] - Improve UX - Rearrange Admin Login screen
[6.0] - Improve UX - Rearrange Admin Login screen
avatar HLeithner HLeithner - edited - 4 Mar 2025
avatar HLeithner
HLeithner - comment - 31 Aug 2025

This pull request has been automatically rebased to 6.1-dev.

avatar HLeithner HLeithner - change - 31 Aug 2025
Title
[6.0] - Improve UX - Rearrange Admin Login screen
[6.1] - Improve UX - Rearrange Admin Login screen
avatar HLeithner HLeithner - edited - 31 Aug 2025
avatar RickR2H RickR2H - test_item - 10 Sep 2025 - Tested successfully
avatar RickR2H
RickR2H - comment - 10 Sep 2025

I have tested this item ✅ successfully on 52e7bff


This comment was created with the J!Tracker Application at issues.joomla.org/tracker/joomla-cms/44228.

avatar RickR2H RickR2H - alter_testresult - 10 Sep 2025 - RickR2H: Not tested
avatar RickR2H
RickR2H - comment - 10 Sep 2025

@coolcat-creations could you fix the issues that are open?

avatar coolcat-creations
coolcat-creations - comment - 11 Sep 2025

@RickR2H not sure what the issues were? The project is so old. Should we start from scratch?

avatar muhme muhme - change - 2 Jan 2026
Labels Added: Feature UI/UX PR-6.1-dev
Removed: PR-5.3-dev
avatar muhme
muhme - comment - 2 Jan 2026

Started branch update as there is no full package existing for testing and with gh pr checkout 44228 the result is a Joomla! version 5.3.0-alpha1-dev

avatar richard67
richard67 - comment - 2 Jan 2026

Started branch update as there is no full package existing for testing and with gh pr checkout 44228 the result is a Joomla! version 5.3.0-alpha1-dev

@muhme Then please restore @RickR2H 's test result in the issue tracker.

avatar muhme muhme - alter_testresult - 2 Jan 2026 - RickR2H: Tested successfully
avatar muhme
muhme - comment - 2 Jan 2026

@muhme Then please restore @RickR2H 's test result in the issue tracker.

Restored test result

avatar muhme
muhme - comment - 2 Jan 2026

@coolcat-creations @ThomasFinnern and I started to test this PR from full PR package installation.

  • Installed German language from zip packet and 'Multilingual Sample Data' data
  • Set passkey for user
  • See screen shot
shoot
  • Is variable MOD_LOGIN_CHOSE_LANGUAGE missing in language strings?
  • For me the result may look not that clear, as
    • The legend 'Log in with your username and password' with the same font size as the field labels and the centering looks somehow not in line
    • Needs the language selection a legend as we have already the field label and it is only one field?
    • Perhaps we should have the same horizontal line below language selection?
    • For sign in with a passkey the Username is needed, for me this is visual not clear.
    • Is 'Login in' and 'Sign in' not equivalent and to clarify better to use one, e.g. 'Log in with a password' and 'Log in with a passkey'?

Overall, I’m not sure it feels more user-friendly to me at this stage — though that’s very subjective, and I’m not an end user. Others may well see this differently or have ideas I haven’t considered yet?

avatar coolcat-creations
coolcat-creations - comment - 3 Jan 2026

That PR is more than 2 Years old, I am very happy you tested it! I will review everything and improve it.

avatar brianteeman
brianteeman - comment - 3 Jan 2026

@coolcat-creations for two years testers have been reporting missing language strings (and other things) that you have not addressed so far - thats why the pr has just sat here

avatar coolcat-creations coolcat-creations - change - 3 Jan 2026
The description was changed
avatar coolcat-creations coolcat-creations - edited - 3 Jan 2026
avatar coolcat-creations
coolcat-creations - comment - 3 Jan 2026

@muhme @ThomasFinnern and @brianteeman thank you! I changed the complete PR to a more logical pattern now.
First the Username and then the decision if password or Passkey. If the Passkey plugin is disabled the full form is shown. I tested it with and without Passkey and with and without MFA and it seems to work well. Hope you find some time to test.

avatar joomla-cms-bot joomla-cms-bot - change - 3 Jan 2026
Category Administration Language & Strings Modules Repository NPM Change Administration Language & Strings Modules JavaScript Repository NPM Change
avatar PranavAgarkar07 PranavAgarkar07 - test_item - 31 Jan 2026 - Tested unsuccessfully
avatar PranavAgarkar07
PranavAgarkar07 - comment - 31 Jan 2026

I have tested this item 🔴 unsuccessfully on 6f14f4e

I have tested this item ❌ unsuccessfully on 6f14f4e

Issues found:

  • Missing language string: MOD_LOGIN_CHOSE_LANGUAGE displays as raw key instead of translated text
  • Username + password legend font size and centering appears inconsistent with field labels
  • UX clarity issue: It's not visually clear that username is required for passkey authentication
  • Inconsistent terminology: "Log in" vs "Sign in" used interchangeably

The two-step login flow concept works, but the above issues need to be addressed before this can be merged.


This comment was created with the J!Tracker Application at issues.joomla.org/tracker/joomla-cms/44228.

avatar coolcat-creations
coolcat-creations - comment - 2 Feb 2026

I am confused as it works on my side I will recheck it.

avatar coolcat-creations coolcat-creations - change - 2 Feb 2026
Labels Added: AI Generated
avatar coolcat-creations
coolcat-creations - comment - 2 Feb 2026

@PranavAgarkar07 can you retest? I cannot reproduce what you wrote

avatar exlemor exlemor - test_item - 2 Feb 2026 - Tested successfully
avatar exlemor
exlemor - comment - 2 Feb 2026

I have tested this item ✅ successfully on a60fb65

I was able to successfully test ALL of the Tests successfully! Great improvement! Thank you for the persistence!


This comment was created with the J!Tracker Application at issues.joomla.org/tracker/joomla-cms/44228.

avatar coolcat-creations coolcat-creations - change - 3 Feb 2026
The description was changed
avatar coolcat-creations coolcat-creations - edited - 3 Feb 2026
avatar dautrich dautrich - test_item - 3 Feb 2026 - Tested successfully
avatar dautrich
dautrich - comment - 3 Feb 2026

I have tested this item ✅ successfully on 714c339

I successfully finished all test steps without any issues. Installed three additional languages (de, fr, it). Tested in desktop and smartphone modes.
Excellent solution!!!


This comment was created with the J!Tracker Application at issues.joomla.org/tracker/joomla-cms/44228.

avatar chmst
chmst - comment - 3 Feb 2026

My admins do not like this solution. It is one click more to login.

The behaviour is confusing if there are errors in input.
Enter a username and "continue with password". Enter a wrong password. It redirects to login and the username is removed.
Or don't enter a username - then the old login with error message appears.
It is not predictable which redirect works in which combination of wrong input.

avatar coolcat-creations
coolcat-creations - comment - 3 Feb 2026

@chmst do you have an idea how to rearrange it so that the current state (before PR) is not confusing? In the current state login with passkey is not clear enough and confuses admins. I used a common pattern for this PR.

avatar chmst
chmst - comment - 3 Feb 2026

My customers are not so familiar with modern technologies - but they will get used to an extra click..

I could imagine two separate boxes on the login screen. One with username -password - login button
and
one with username and passkey button.

More important is the inconsistency when there is an error in input.

avatar coolcat-creations
coolcat-creations - comment - 3 Feb 2026

My customers are not so familiar with modern technologies - but they will get used to an extra click..

I could imagine two separate boxes on the login screen. One with username -password - login button and one with username and passkey button.

More important is the inconsistency when there is an error in input.

I tested my PR with failed password and wrong/aborted passkey and I am redirected to the first view where username has to be added. Thats also the current behaviour in the latest version. Wrong password resets both fields.

avatar Fedik
Fedik - comment - 3 Feb 2026

Extra click is big "no no" from me too 😉
It will slow down my day to day work.

Need to think something better.

avatar Fedik
Fedik - comment - 3 Feb 2026

As an idea.

Show the button on initial visit.
But remember last choice for following visits with possibility to change last choice.

avatar HLeithner
HLeithner - comment - 3 Feb 2026

Maybe we should skip this pr until we find someone who implement Discoverable Credentials for passkeys then we don't need a username anymore.

avatar coolcat-creations coolcat-creations - change - 3 Feb 2026
The description was changed
avatar coolcat-creations coolcat-creations - edited - 3 Feb 2026

Add a Comment

Login with GitHub to post a comment