SignUp per Application - disabling .ulp-alternate-action removes to much

Hi I followed this article to remove the signup link for certain apps:

I used the following code in HTML

/\* Custom Logic to hide Sign Up for specific app \*/ {% if application.name == "" %} .ulp-alternate-action { display: none; } {% endif %}

But .ulp-alternate-action does not only remove the signup link. It removes also other links like “return” on all screens or options to ignore Passkey. That leads to the situation that I am enforced to enable Passkey because the “ignore” links is not displayed.
Is there a better way to remove the signup link for certain apps?

Hi @Alois.Goeth

The .ulp-alternate-action class is applied to multiple elements on different Universal Login screens, not just the signup link. Auth0 changed the implementation around April–May 2023, and the class now covers all alternate action links including return buttons and passkey-related options. Hiding the entire class removes all of these elements, not just the signup prompt. As the New Universal Login has evolved to support new features like Passkeys and stepped-up authentication, this CSS class is now applied to multiple elements, including “Forgot Password,” “Return to previous screen,” and “Use another method/Ignore Passkey”.

Because the Liquid {% if %} block applies your CSS globally to the prompt when the application matches, this generic selector inadvertently wipes out all secondary actions on the screen.

Official Workaround:

  1. Avoid using .ulp-alternate-action { display: none; } because this CSS selector hides all alternate action links on the page, including "return" buttons and passkey ignore options, as documented in the Auth0 support article on this issue.
  2. Use a more specific selector that targets only the signup link by its text content or href attribute, because Auth0 support guidance recommends using XPath or DOM traversal to identify and remove only the signup link element.
  3. Implement the following JavaScript-based approach instead of CSS-only hiding, as shown in the Auth0 support article on Universal Login page template customization:
    var xpath = "//a\[contains(@href,'signup')\]";
    
    var signUpLink = document.evaluate(xpath, document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue;
    
    if (signUpLink) {
    
     signUpLink.parentElement.remove();
    
    }
  4. Wrap this JavaScript logic in a conditional check for your specific application name so it only applies to the apps where you want to hide signup:
    {% if application.name == "Your App Name" %}
    
    <script>
    
     // XPath-based signup link removal code here
    
    </script>
    
    {% endif %}
  5. Test the result on all Universal Login screens (login, password reset, passkey enrollment) to ensure that only the signup link is removed and that return buttons and passkey options remain visible.
  6. Review the Auth0 support article on ulp-alternate-action not working in the New Universal Login template for additional context on why the CSS-only approach is no longer reliable.

Let me know if the provideds solution does the trick or not!

Kind Regards,
Nik

@nik.baleca

Thanks for the help! It’s a bit of a hack, but hey—it works. :grinning_face_with_smiling_eyes: