Learn how to add custom fields and text to the Auth0 Universal Login signup and login prompts.
Before you start
Make sure your tenant has a Custom Domain configured.
Confirm you are using Universal Login for all signup and login prompts, and ensure the Customize Login Page toggle has been disabled for Login Prompts.
Customize Signup and Login Prompts is a feature that allows customers with and Custom Page Template enabled to add custom fields and content to their app’s signup and login prompts.
Customize Signup and Login Prompts supports two use cases: custom content and data capture.Custom content is static content like text, links, or images placed directly on the signup and login prompts.Data capture uses form elements dynamically added to the Signup and Login prompts, which is useful for collecting and validating user consent or user-produced data like surname.
Only use Signup and Login Prompt Customizations to convey or collect sensitive or regulated data as permitted under your agreement with Okta.
A prompt is a specific step in a given authentication flow. Each prompt has at least one screen and, depending on tenant configuration, each supported screen has either four or six entry points, which are locations in the screen where custom code (partials) can be inserted.The following prompts can be customized:Login screens
login
login-id
login-password
login-passwordless-sms-otp
login-passwordless-email-code
passkey-enrollment
passkey-enrollment-local
Signup screens
signup
signup-id
signup-password
passkey-enrollment
passkey-enrollment-local
Partials support HTML, CSS, JavaScript, and Liquid syntax to power conditional logic and dynamic variables. In addition, any Liquid variable that is available to the Page Template is also supported.These entry points are available when a database or passwordless connection is enabled:
form-content-start
form-content-end
form-footer-start
form-footer-end
The following entry points are available when at least one social or enterprise connection is enabled:
Select the Screen to customize with the partials editor.
Screens can have the following Rendering modes:
STANDARD: The screen is rendered using the default Universal Login UI; you can use partials to insert code snippets and template variables.
ADVANCED: The screen is rendered using ACUL and partials do not apply.
ADVANCED (FILTERED): The screen is rendered with ACUL applied to specific applications and organizations; partials only apply to screens excluded from ACUL filters.
Select ENTRY POINTS to insert code snippets and template variables.
Select to add CODE SNIPPETS to the selected entry point.
Select { } to add TEMPLATE VARIABLES to the selected entry point.
Select ACTIONS to add Actions and apply custom logic using your partials fields and content.
You can manage Partials using the Auth0 Management API (GET /prompts/{prompts_name}/partials). Every prompt must specify the screen when adding, updating, or deleting a partial. Partials can be a maximum of 10,000 characters.Partials can also be managed using Auth0 CLI’s Customize Interface by running auth0 ul customize in your terminal.
Customize Signup and Login Prompts offers pre-built styles and support for client-side validations for certain HTML form elements. The following elements are supported:
<input type="text">
<input type="number">
<input type="checkbox">
<input type="password">
<input type="email">
<input type="tel">
<input type="url">
<select>
<textarea>
To use pre-built input styles, wrap your form element of choice in a <div> with the ulp-field class. Similarly, add the ulp-error class to the same <div> to use pre-built error styles. If the ulp-error-info element is present, a styled error message will also be displayed.You can find pre-built code snippets when using the partials editor.
The feature’s client-side validation framework allows customers to validate user input using HTML attributes to execute one or more custom validation functions. Validation functions can be included directly in the Partial or included in the <head> of the page template.To add client-side validation to a form element:
Reference the validation function using the data-ulp-validation-function attribute on the <div class="ulp-error-info"> element.
Declare which DOM events the validation function should be run on using the data-ulp-validation-event-listeners attribute on the <div class="ulp-error-info"> element, noting that validations run automatically on submission.
For WCAG compliance, inputs must be programmatically linked to their error messages - for example, by using aria-describedby="error-id" and aria-invalid="true" - to ensure screen readers announce validation errors.
Be cautious when using third-party JavaScript on your signup page. Sensitive security-related information often flows through the signup page, leaving it vulnerable to cross-site scripting.Whenever possible, Auth0 recommends validating user-provided data before submitting.
Partial content can be localized by defining new custom text variables using the Custom Text API. Up to thirty custom text variables can be defined per screen/language combination.
Manage custom text variables with the Custom Text API. Calls must specify the screen when adding, updating, or deleting a custom text variable. Custom text variables follow the var-<name> naming convention. Markdown links are supported and are converted to HTML <a> elements before being displayed to users.Below is an example call to add a variable for the text of a terms of service checkbox label in English and Spanish. See the to learn more.
# PUT /api/v2/prompts/signup-id/custom-text/en{ "signup": { "var-tos": "I agree with the [Terms of Service](https://en.example.com/tos)" }}# PUT /api/v2/prompts/signup-id/custom-text/es{ "signup": { "var-tos": "Estoy de acuerdo con los [Términos de Servicio](https://es.example.com/tos)" }}
Custom text variables are referenced in partials using the prompts.screen.text object; the reference for the var-tos example in the previous section is prompt.screen.text.varTos. See below for an example of how to use a previously created variable in a partial on the Signup ID Prompt, noting that the Management API’s var-tos variable is referenced as varTos in the partial.
Data captured by custom form elements is available in Actions, and Auth0 recommends validating the data collected before saving or submitting it.
When using custom form elements, you must include the ulp- prefix with any input names to ensure the data is available to Actions.
Each Action receives the captured data as an object on the event.request.body. Customers can return a validation error by using the api.validation.error function.When using a database connection:
Data from the Signup Prompts is accessible on the pre-user-registration trigger. A validation error from the trigger prevents the user from registering.
Data from Login Prompts is accessible on the post-login trigger. Validation errors are forwarded to the customer’s application error page.
Data from the Signup Prompts is accessible on the pre-user-registration trigger with the following custom database action scripts: Create User and Login.
Data from Login Prompts is accessible on the post-login trigger with the following custom database action scripts: Login and Change Password.
To use custom database action scripts, enable Context objects in database scripts in your custom database connection. To learn more, read Enable context object.
Data from both the Signup and Login Prompts is accessible on the post-login trigger. Validation errors are forwarded to the customer’s application error page.
Data from the passkey-enrollment prompt is accessible on the pre-user-registration trigger. A validation error from the trigger prevents the user from registering.
The passkey-enrollment and passkey-enrollment-local prompts never capture data on the Post Login trigger.
Data from the passkey-enrollment-local prompt is not accessible since it is always displayed after the post-login trigger is run.
Sanitize any data that you collect on the form before saving or rendering it.
From the Action, captured data can be sent to an external API for validation and storage or saved in user_metadata on the user via api.user.setUserMetadata.
// Given this code in the signup form// <div class="ulp-field">// <label for="full-name">Full Name</label>// <input type="text" name="ulp-full-name" id="full-name">// </div>exports.onExecutePreUserRegistration = async (event, api) => { const fullName = event.request.body['ulp-full-name']; if(!fullName) { api.validation.error("invalid_payload", "Missing Name"); return; } api.user.setUserMetadata("fullName", fullName);};
{"docsConfig":{"theme":"aspen","$schema":"https://mintlify.com/docs.json","name":"Auth0 Docs","description":"Auth0 documentation","colors":{"primary":"#9921FE","light":"#BC6DFF","dark":"#343434"},"logo":{"light":"https://mintlify.s3.us-west-1.amazonaws.com/auth0/docs/images/logo/light.svg","dark":"https://mintlify.s3.us-west-1.amazonaws.com/auth0/docs/images/logo/dark.svg","href":"https://auth0.com/docs/"},"favicon":"https://mintlify.s3.us-west-1.amazonaws.com/auth0/docs/images/logo/favicon.svg","api":{"params":{"post":["x-release-lifecycle"]},"playground":{"proxy":false},"url":"full"},"background":{"decoration":"gradient"},"seo":{"metatags":{"canonical":"https://auth0.com","og:image":"docs/images/share-image.png"}},"fonts":{"body":{"family":"Inter","source":"https://fonts.googleapis.com/css2?family=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900\u0026display=swap","format":"woff2"}},"styling":{"eyebrows":"breadcrumbs","latex":true},"integrations":{"adobe":{"launchUrl":"https://assets.adobedtm.com/6bb3f7663515/7006851c9849/launch-af624fe9e34f.min.js"},"gtm":{"tagId":"GTM-W7FRLJ"},"heap":{"appId":"1279799279"},"onetrust":{"domainScript":"96e22fd8-d619-4cdd-a3c6-d51529d21faf","categoryId":"C0002","scriptSource":"https://cdn.cookielaw.org/scripttemplates/otSDKStub.js"}},"contextual":{"options":["copy","view","chatgpt","claude"],"display":"header"},"navigation":{"languages":[{"language":"en","footer":{"socials":{"x-twitter":"https://x.com/auth0","github":"https://github.com/auth0","linkedin":"https://www.linkedin.com/company/auth0"},"links":[{"header":"Developers","items":[{"label":"Developer Hub","href":"https://developer.auth0.com"},{"label":"Code Samples \u0026 Guides","href":"https://developer.auth0.com/resources"},{"label":"Zero Index Newsletter","href":"https://auth0.com/blog/newsletter"},{"label":"Blog","href":"https://auth0.com/blog"},{"label":"Changelog","href":"https://auth0.com/changelog"}]},{"header":"Docs","items":[{"label":"Documentation","href":"https://auth0.com/docs"},{"label":"Quickstarts","href":"https://auth0.com/docs/quickstarts"},{"label":"APIs","href":"https://auth0.com/docs/api"},{"label":"SDK Libraries","href":"https://auth0.com/docs/libraries"},{"label":"Learn","href":"https://auth0.com/learn"},{"label":"Intro to IAM (CIAM)","href":"https://auth0.com/intro-to-iam"},{"label":"Reports","href":"https://auth0.com/resources/whitepapers"},{"label":"Webinars","href":"https://auth0.com/resources/webinars"}]},{"header":"Support Center","items":[{"label":"Community","href":"https://community.auth0.com"},{"label":"Help","href":"https://support.auth0.com"},{"label":"FAQs","href":"https://auth0.com/docs/troubleshoot"},{"label":"Auth0","href":"https://auth0.com"}]},{"header":"Company","items":[{"label":"Our Customers","href":"https://auth0.com/customers"},{"label":"Compliance","href":"https://auth0.com/security"},{"label":"Partners","href":"https://auth0.com/partners"},{"label":"Careers","href":"https://www.okta.com/company/careers"},{"label":"Okta + Auth0","href":"https://www.okta.com/okta-and-auth0"},{"label":"About us","href":"https://auth0.com/about"}]}]},"href":"docs/get-started"},{"language":"fr-ca","footer":{"socials":{"x-twitter":"https://x.com/auth0","github":"https://github.com/auth0","linkedin":"https://www.linkedin.com/company/auth0"},"links":[{"header":"Développeurs","items":[{"label":"Espace développeurs","href":"https://developer.auth0.com"},{"label":"Exemples de code et guides","href":"https://developer.auth0.com/resources"},{"label":"Infolettre Zero Index","href":"https://auth0.com/blog/newsletter"},{"label":"Blogue","href":"https://auth0.com/blog"},{"label":"Journal des modifications","href":"https://auth0.com/changelog"}]},{"header":"Documentation","items":[{"label":"Documentation","href":"https://auth0.com/docs"},{"label":"Guides de démarrage rapide","href":"https://auth0.com/docs/quickstarts"},{"label":"API","href":"https://auth0.com/docs/api"},{"label":"Bibliothèques SDK","href":"https://auth0.com/docs/libraries"},{"label":"Apprendre","href":"https://auth0.com/learn"},{"label":"Introduction à l’IAM (CIAM)","href":"https://auth0.com/intro-to-iam"},{"label":"Rapports","href":"https://auth0.com/resources/whitepapers"},{"label":"Webinaires","href":"https://auth0.com/resources/webinars"}]},{"header":"Centre d’assistance","items":[{"label":"Communauté","href":"https://community.auth0.com"},{"label":"Aide","href":"https://support.auth0.com"},{"label":"Foire aux questions","href":"https://auth0.com/docs/troubleshoot"},{"label":"Auth0","href":"https://auth0.com"}]},{"header":"Entreprise","items":[{"label":"Nos clients","href":"https://auth0.com/customers"},{"label":"Conformité","href":"https://auth0.com/security"},{"label":"Partenaires","href":"https://auth0.com/partners"},{"label":"Carrières","href":"https://www.okta.com/company/careers"},{"label":"Okta + Auth0","href":"https://www.okta.com/okta-and-auth0"},{"label":"À propos de nous","href":"https://auth0.com/about"}]}]},"href":"docs/fr-ca/get-started"},{"language":"ja-jp","footer":{"socials":{"x-twitter":"https://x.com/auth0","github":"https://github.com/auth0","linkedin":"https://www.linkedin.com/company/auth0"},"links":[{"header":"開発者向け","items":[{"label":"開発者ハブ","href":"https://developer.auth0.com"},{"label":"コードサンプルとガイド","href":"https://developer.auth0.com/resources"},{"label":"Zero Index Newsletter","href":"https://auth0.com/blog/newsletter"},{"label":"ブログ","href":"https://auth0.com/blog"},{"label":"変更履歴","href":"https://auth0.com/changelog"}]},{"header":"ドキュメント","items":[{"label":"ドキュメント","href":"https://auth0.com/docs"},{"label":"クイックスタート","href":"https://auth0.com/docs/quickstarts"},{"label":"API","href":"https://auth0.com/docs/api"},{"label":"SDKライブラリ","href":"https://auth0.com/docs/libraries"},{"label":"教育","href":"https://auth0.com/learn"},{"label":"IAM(CIAM)入門","href":"https://auth0.com/intro-to-iam"},{"label":"レポート","href":"https://auth0.com/resources/whitepapers"},{"label":"ウェビナー","href":"https://auth0.com/resources/webinars"}]},{"header":"サポートセンター","items":[{"label":"コミュニティ","href":"https://community.auth0.com"},{"label":"ヘルプ","href":"https://support.auth0.com"},{"label":"よくある質問","href":"https://auth0.com/docs/troubleshoot"},{"label":"Auth0","href":"https://auth0.com"}]},{"header":"会社情報","items":[{"label":"導入企業","href":"https://auth0.com/customers"},{"label":"コンプライアンス","href":"https://auth0.com/security"},{"label":"パートナー","href":"https://auth0.com/partners"},{"label":"採用情報","href":"https://www.okta.com/company/careers"},{"label":"Okta + Auth0","href":"https://www.okta.com/okta-and-auth0"},{"label":"私たちについて","href":"https://auth0.com/about"}]}]},"href":"docs/ja-jp/get-started"}]}},"deployment":{"deploymentMetadataValue":{"subdomain":"auth0","hasAudioNarration":false,"actualSubdomain":"auth0","customDomains":["auth0.com","auth0.auth0-mintlify.app"],"gitSource":{"type":"github","owner":"atko-cic","repo":"docs","deployBranch":"main","contentDirectory":"main","isPrivate":true,"mountPath":"","label":""},"feedback":{"thumbs":true,"contextualFeedback":{"textInputOnly":true,"allowEmail":false},"agentFeedback":false},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"REMOVE_BRANDING":{"status":"ENABLED"},"CONTEXTUAL_FEEDBACK":{"status":"ENABLED"},"CODE_SNIPPET_FEEDBACK":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6af626113e877a418253f0cc","clientVersion":"0.0.4124","searchFilterCounts":[{"language":"en","tag":"Dev Tools","count":846},{"language":"fr-ca","tag":"Outils de développement","count":846},{"language":"ja-jp","tag":"開発者ツール","count":846},{"language":"en","tag":"APIs","count":622},{"language":"fr-ca","tag":"API","count":622},{"language":"ja-jp","tag":"API","count":622},{"language":"en","tag":"Management API","count":490},{"language":"fr-ca","tag":"API Management","count":490},{"language":"ja-jp","tag":"Management API","count":490},{"language":"en","tag":"Get Started","count":289},{"language":"ja-jp","tag":"はじめに","count":289},{"language":"fr-ca","tag":"Pour commencer","count":279},{"language":"ja-jp","tag":"リファレンス","count":253},{"language":"en","tag":"Reference","count":252},{"language":"fr-ca","tag":"Référence","count":252},{"language":"en","tag":"Extend","count":216},{"language":"fr-ca","tag":"Étendre","count":216},{"language":"ja-jp","tag":"拡張","count":216},{"language":"en","tag":"SDKs","count":209},{"language":"fr-ca","tag":"SDK","count":209},{"language":"ja-jp","tag":"SDK","count":209},{"language":"en","tag":"Monitor","count":194},{"language":"fr-ca","tag":"Surveiller","count":194},{"language":"ja-jp","tag":"監視","count":194},{"language":"en","tag":"Authenticate","count":186},{"language":"fr-ca","tag":"Authentifier","count":186},{"language":"ja-jp","tag":"認証","count":186},{"language":"en","tag":"Tenant Log Event Types","count":171},{"language":"fr-ca","tag":"Types d’événements du journal du locataire","count":171},{"language":"ja-jp","tag":"テナントのログイベントの種類","count":171}],"searchSettings":{"showContentSnippets":true}},"assistantConfig":{"enableAskAiButton":true,"enableStarterQuestions":false,"enableAskAiSearchBar":false,"deflection":{"enabled":false,"type":"link"}},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[],"googleFontsInlined":false},"customCss":[{"filePath":"ui/css/recipe.css","content":"#content-area:has(.recipe-container){overflow:visible!important}.recipe-content .recipe-section:first-of-type{margin-top:1rem}.active-section{opacity:1!important}"},{"filePath":"ui/css/styles.css","content":"@font-face{font-family:\"Inter Fallback\";src:local(\"Arial\");size-adjust:107%;ascent-override:90%;descent-override:22%;line-gap-override:0%}body{font-feature-settings:\"kern\", \"liga\", \"clig\", \"calt\", \"rvrn\";font-family:\"Inter\",\n \"Inter Fallback\",\n system-ui,\n -apple-system,\n sans-serif}.mdx-content{line-height:1.625}#page-title{font-size:var(--text-3xl);line-height:1.15}.mdx-content .link{font-weight:inherit;border:none;text-decoration:underline;text-underline-offset:2px;transition:opacity 0.15s ease-out;color:rgb(var(--primary));\u0026.quickstart_button{text-decoration:none}}.mdx-content .link:hover{color:rgb(var(--tw-prose-links))}.dark .mdx-content .link:hover{color:rgb(var(--primary))}.mdx-content table{border-radius:12px;border:0px;box-shadow:0 0 0 1px rgb(from var(--border-muted) r g b / 50%);overflow:hidden;thead {\n background-color: rgb(from var(--border-muted) r g b / 30%);\n }\n\n th, td {\n padding: 0.5rem;\n }\n\n /* Don't break mid-word in code formatting. */\n code {\n white-space: pre;\n }}img.icon.inline{margin:0}#navbar{padding-bottom:0.5rem;box-shadow:0 0 0 1px oklch(from var(--border) l c h / 0.1),\n 0 1px 1px -1px oklch(from var(--shadow) l c h / 0.06),\n 0 2px 2px -2px oklch(from var(--shadow) l c h / 0.06),\n 0 2px 4px -2px oklch(from var(--shadow) l c h / 0.06);> div:nth-child(2) {\n -webkit-backdrop-filter: blur(20px);\n backdrop-filter: blur(20px);\n transition:\n background-color 0.2s ease,\n backdrop-filter 0.2s ease;\n }\n\n /* This data attribute is set by the navbar controller */\n \u0026[data-is-opaque=\"true\"] > div:nth-child(2) {\n background-color: oklch(from var(--bg) l c h / 1);\n }}body:has([data-uc-component] [data-slot=\"dialog-content\"]) #navbar>div:first-child{border-bottom-color:transparent}body[data-scroll-locked]:has([data-uc-component] [data-slot=\"dialog-content\"]){margin-right:0!important}#adu-root{transition:opacity 0.2s ease,\n visibility 0s linear 0s}body:has([data-uc-component] [data-slot=\"dialog-content\"]) #adu-root{opacity:0;visibility:hidden;transition:opacity 0.2s ease,\n visibility 0s linear 0.2s}.nav-tabs{column-gap:0}.nav-tabs-item{padding:0.25rem 0.75rem;text-shadow:none;div.bottom-0 {\n display: none;\n }}.nav-tabs-item[data-active]{color:rgb(var(--primary))}.dark .nav-tabs-item[data-active]{color:rgb(var(--primary-light))}.nav-tabs-item:hover{color:rgb(var(--primary));background-color:rgb(var(--primary) / .1);transition:all 0.15s ease-out;border-radius:0.75rem}#sidebar-content{border-color:transparent}#sidebar-content{a,\n button {\n text-shadow: none;\n }}.card{transition:all 0.15s ease}.libraries_card{border:1px solid var(--border-muted);\u0026:hover{border-color:var(--border)}img {\n margin: 0;\n }\n\n .libraries_card_divider {\n border-top: 1px solid var(--border-muted);\n margin: 0 1rem;\n }}.api_card_wrapper .card{background-color:transparent;color:var(--foreground-card);[data-component-part=\"card-title\"],\n #card-link-arrow-icon {\n transition: all .15s ease-out;\n color: currentColor;\n }\n\n /* Accent on hover */\n \u0026:hover {\n color: var(--foreground-selected);\n }\n\n /* Use only bottom border */\n border: 0;border-radius:0;border-bottom:3px solid currentColor!important;margin-bottom:1rem;[data-component-part=\"card-content-container\"] {\n padding: 1.25rem 0 0.5rem;\n }\n\n /* Right-align the absolute positioning for the icon */\n #card-link-arrow-icon {\n right: 0;\n }}[data-component-part=\"field-meta-post\"]{background-color:lab(91.896% .077188 -6.94053);color:lab(36.091% 25.9241 -68.0384)}.dark [data-component-part=\"field-meta-post\"]{background-color:lab(16.0426% 6.71726 -27.2409);color:lab(72.6029% 4.08953 -41.9669)}body:has([data-uc-component] [data-slot=\"dialog-overlay\"]) [data-assistant-bar]{visibility:hidden}"},{"filePath":"ui/css/apiExplorer.css","content":"#header{.prose {\n p {\n font-size: 0.875rem;\n }\n }\n\n /* Code block styling — light mode */\n \u0026 pre {\n background-color: #f6f8fa !important;\n border: 1px solid #d0d7de;\n border-radius: 1rem;\n }\n\n \u0026 pre code {\n font-size: 0.75rem;\n background-color: transparent !important;\n }\n\n \u0026 code:not(pre > code) {\n font-size: 0.75rem;\n background-color: #f0f2f4;\n border: 1px solid #d0d7de;\n border-radius: 0.375rem;\n }\n\n /* docs/api/management/v2/clients/update-a-client\n docs/api/management/v2/clients/create-a-client\n docs/api/management/v2/logs/search-log-events */\n \u0026 li {\n font-size: 0.75rem;\n }\n\n \u0026 li::before {\n top: 0.75rem;\n }\n\n /* Code block styling — dark mode */\n /* :is(html.dark) \u0026 pre compiles to: html.dark #header pre */\n :is(html.dark, html[data-appearance=\"dark\"], html[data-theme=\"dark\"]) \u0026 pre {\n background-color: #13141a !important;\n border-color: #2d2f3e !important;\n }\n\n :is(html.dark, html[data-appearance=\"dark\"], html[data-theme=\"dark\"])\n \u0026\n pre\n code {\n background-color: transparent !important;\n }\n\n :is(html.dark, html[data-appearance=\"dark\"], html[data-theme=\"dark\"])\n \u0026\n code:not(pre > code) {\n background-color: #1e1f2b !important;\n border-color: #2d2f3e !important;\n }}.primitive-param-field{font-size:0.875rem;.prose,\n .prose :where(*) {\n font-size: 0.875rem;\n }}.array-param-field{font-size:0.875rem;.prose,\n .prose :where(*) {\n font-size: 0.875rem;\n }}.object-param-field{font-size:0.875rem;.prose,\n .prose :where(*) {\n font-size: 0.875rem;\n }}.api-section-heading-subtitle{font-size:0.875rem;.prose,\n .prose :where(*) {\n font-size: 0.875rem;\n }}svg[style*=\"/zsh.svg\"]{-webkit-mask-image:url(\"/docs/images/auth0-cli.svg\")!important;mask-image:url(\"/docs/images/auth0-cli.svg\")!important}"},{"filePath":"ui/auth0-docs-ui-1.10.0.css","content":"@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-ease:initial;--tw-animation-delay:0s;--tw-animation-direction:normal;--tw-animation-duration:initial;--tw-animation-fill-mode:none;--tw-animation-iteration-count:1;--tw-enter-blur:0;--tw-enter-opacity:1;--tw-enter-rotate:0;--tw-enter-scale:1;--tw-enter-translate-x:0;--tw-enter-translate-y:0;--tw-exit-blur:0;--tw-exit-opacity:1;--tw-exit-rotate:0;--tw-exit-scale:1;--tw-exit-translate-x:0;--tw-exit-translate-y:0}}}@layer theme{:root,:host{--adu-font-sans:ui-sans-serif,system-ui,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",\"Segoe UI Symbol\",\"Noto Color Emoji\";--adu-font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,\"Liberation Mono\",\"Courier New\",monospace;--adu-color-blue-500:oklch(62.3% .214 259.815);--adu-color-white:#fff;--adu-spacing:.25rem;--adu-text-xs--line-height:calc(1/.75);--adu-text-sm--line-height:calc(1.25/.875);--adu-text-base--line-height: 1.5 ;--adu-text-lg--line-height:calc(1.75/1.125);--adu-text-xl--line-height:calc(1.75/1.25);--adu-text-2xl--line-height:calc(2/1.5);--adu-text-3xl--line-height: 1.2 ;--adu-tracking-widest:.1em;--adu-ease-in-out:cubic-bezier(.4,0,.2,1);--adu-animate-pulse:pulse 2s cubic-bezier(.4,0,.6,1) infinite;--adu-default-transition-duration:.15s;--adu-default-transition-timing-function:cubic-bezier(.4,0,.2,1);--adu-default-font-family:var(--adu-font-sans);--adu-default-mono-font-family:var(--adu-font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--adu-default-font-family,ui-sans-serif,system-ui,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",\"Segoe UI Symbol\",\"Noto Color Emoji\");font-feature-settings:var(--adu-default-font-feature-settings,normal);font-variation-settings:var(--adu-default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--adu-default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,\"Liberation Mono\",\"Courier New\",monospace);font-feature-settings:var(--adu-default-mono-font-feature-settings,normal);font-variation-settings:var(--adu-default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}*{border-color:var(--color-border);outline-color:var(--color-ring)}@supports (color:color-mix(in lab,red,red)){*{outline-color:color-mix(in srgb,var(--color-ring) 50%,transparent)}}body{background-color:var(--color-background);color:var(--color-foreground);text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-synthesis:style;font-feature-settings:\"kern\",\"liga\",\"clig\",\"calt\",\"rvrn\"}}@layer components;@layer utilities{.adu\\:\\@container\\/card-header{container:card-header/inline-size}.adu\\:pointer-events-none{pointer-events:none}.adu\\:sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.adu\\:absolute{position:absolute}.adu\\:fixed{position:fixed}.adu\\:relative{position:relative}.adu\\:static{position:static}.adu\\:top-0{top:calc(var(--adu-spacing)*0)}.adu\\:right-0{right:calc(var(--adu-spacing)*0)}.adu\\:left-0{left:calc(var(--adu-spacing)*0)}.adu\\:left-2{left:calc(var(--adu-spacing)*2)}.adu\\:left-73{left:calc(var(--adu-spacing)*73)}.adu\\:z-0{z-index:0}.adu\\:z-30{z-index:30}.adu\\:z-50{z-index:50}.adu\\:z-\\[39\\]{z-index:39}.adu\\:col-start-2{grid-column-start:2}.adu\\:row-span-2{grid-row:span 2/span 2}.adu\\:row-start-1{grid-row-start:1}.adu\\:-mx-1{margin-inline:calc(var(--adu-spacing)*-1)}.adu\\:my-1{margin-block:calc(var(--adu-spacing)*1)}.adu\\:mr-2{margin-right:calc(var(--adu-spacing)*2)}.adu\\:-ml-8{margin-left:calc(var(--adu-spacing)*-8)}.adu\\:ml-2{margin-left:calc(var(--adu-spacing)*2)}.adu\\:ml-auto{margin-left:auto}.adu\\:flex{display:flex}.adu\\:grid{display:grid}.adu\\:hidden{display:none}.adu\\:inline-block{display:inline-block}.adu\\:inline-flex{display:inline-flex}.adu\\:aspect-square{aspect-ratio:1}.adu\\:size-2{width:calc(var(--adu-spacing)*2);height:calc(var(--adu-spacing)*2)}.adu\\:size-3\\.5{width:calc(var(--adu-spacing)*3.5);height:calc(var(--adu-spacing)*3.5)}.adu\\:size-4{width:calc(var(--adu-spacing)*4);height:calc(var(--adu-spacing)*4)}.adu\\:size-8{width:calc(var(--adu-spacing)*8);height:calc(var(--adu-spacing)*8)}.adu\\:size-9{width:calc(var(--adu-spacing)*9);height:calc(var(--adu-spacing)*9)}.adu\\:size-full{width:100%;height:100%}.adu\\:h-4{height:calc(var(--adu-spacing)*4)}.adu\\:h-8{height:calc(var(--adu-spacing)*8)}.adu\\:h-9{height:calc(var(--adu-spacing)*9)}.adu\\:h-10{height:calc(var(--adu-spacing)*10)}.adu\\:h-14{height:calc(var(--adu-spacing)*14)}.adu\\:h-\\[18px\\]{height:18px}.adu\\:h-px{height:1px}.adu\\:max-h-\\(--radix-dropdown-menu-content-available-height\\){max-height:var(--radix-dropdown-menu-content-available-height)}.adu\\:max-h-72\\.5{max-height:calc(var(--adu-spacing)*72.5)}.adu\\:max-h-\\[calc\\(100\\%\\+2px\\)\\]{max-height:calc(100% + 2px)}.adu\\:w-4{width:calc(var(--adu-spacing)*4)}.adu\\:w-8{width:calc(var(--adu-spacing)*8)}.adu\\:w-9{width:calc(var(--adu-spacing)*9)}.adu\\:w-48{width:calc(var(--adu-spacing)*48)}.adu\\:w-73{width:calc(var(--adu-spacing)*73)}.adu\\:w-\\[24px\\]{width:24px}.adu\\:w-full{width:100%}.adu\\:min-w-\\[8rem\\]{min-width:8rem}.adu\\:flex-1{flex:1}.adu\\:shrink-0{flex-shrink:0}.adu\\:origin-\\(--radix-dropdown-menu-content-transform-origin\\){transform-origin:var(--radix-dropdown-menu-content-transform-origin)}.adu\\:animate-in{animation:enter var(--tw-animation-duration,var(--tw-duration,.15s)) var(--tw-ease,ease) var(--tw-animation-delay,0s) var(--tw-animation-iteration-count,1) var(--tw-animation-direction,normal) var(--tw-animation-fill-mode,none)}.adu\\:animate-out{animation:exit var(--tw-animation-duration,var(--tw-duration,.15s)) var(--tw-ease,ease) var(--tw-animation-delay,0s) var(--tw-animation-iteration-count,1) var(--tw-animation-direction,normal) var(--tw-animation-fill-mode,none)}.adu\\:animate-pulse{animation:var(--adu-animate-pulse)}.adu\\:cursor-default{cursor:default}.adu\\:auto-rows-min{grid-auto-rows:min-content}.adu\\:grid-rows-\\[auto_auto\\]{grid-template-rows:auto auto}.adu\\:flex-col{flex-direction:column}.adu\\:flex-wrap{flex-wrap:wrap}.adu\\:items-center{align-items:center}.adu\\:items-start{align-items:flex-start}.adu\\:justify-center{justify-content:center}.adu\\:gap-0{gap:calc(var(--adu-spacing)*0)}.adu\\:gap-1{gap:calc(var(--adu-spacing)*1)}.adu\\:gap-1\\.5{gap:calc(var(--adu-spacing)*1.5)}.adu\\:gap-2{gap:calc(var(--adu-spacing)*2)}.adu\\:gap-3{gap:calc(var(--adu-spacing)*3)}.adu\\:gap-4{gap:calc(var(--adu-spacing)*4)}.adu\\:gap-6{gap:calc(var(--adu-spacing)*6)}.adu\\:gap-8{gap:calc(var(--adu-spacing)*8)}.adu\\:self-start{align-self:flex-start}.adu\\:self-stretch{align-self:stretch}.adu\\:justify-self-end{justify-self:flex-end}.adu\\:overflow-auto{overflow:auto}.adu\\:overflow-hidden{overflow:hidden}.adu\\:overflow-x-hidden{overflow-x:hidden}.adu\\:overflow-y-auto{overflow-y:auto}.adu\\:rounded{border-radius:.25rem}.adu\\:rounded-full{border-radius:9999px}.adu\\:rounded-md{border-radius:.5rem}.adu\\:rounded-none{border-radius:0}.adu\\:rounded-sm{border-radius:.375rem}.adu\\:rounded-xl{border-radius:.875rem}.adu\\:border{border-style:var(--tw-border-style);border-width:1px}.adu\\:border\\!{border-style:var(--tw-border-style)!important;border-width:1px!important}.adu\\:border-border-input{border-color:var(--border-input)}.adu\\:border-border-muted{border-color:var(--border-muted)}.adu\\:bg-\\[\\#232220\\]{background-color:#232220}.adu\\:bg-blue-500{background-color:var(--adu-color-blue-500)}.adu\\:bg-border-input{background-color:var(--border-input)}.adu\\:bg-button-primary{background-color:var(--button-primary)}.adu\\:bg-card{background-color:var(--card)}.adu\\:bg-destructive{background-color:var(--destructive)}.adu\\:bg-input{background-color:var(--input)}.adu\\:bg-page{background-color:var(--page)}.adu\\:bg-popover{background-color:var(--popover)}.adu\\:bg-surface-muted{background-color:var(--surface-muted)}.adu\\:bg-surface-selected{background-color:var(--surface-selected)}.adu\\:fill-current{fill:currentColor}.adu\\:p-0{padding:calc(var(--adu-spacing)*0)}.adu\\:p-1{padding:calc(var(--adu-spacing)*1)}.adu\\:p-2\\.5{padding:calc(var(--adu-spacing)*2.5)}.adu\\:p-4{padding:calc(var(--adu-spacing)*4)}.adu\\:px-1{padding-inline:calc(var(--adu-spacing)*1)}.adu\\:px-2{padding-inline:calc(var(--adu-spacing)*2)}.adu\\:px-3{padding-inline:calc(var(--adu-spacing)*3)}.adu\\:px-4{padding-inline:calc(var(--adu-spacing)*4)}.adu\\:px-6{padding-inline:calc(var(--adu-spacing)*6)}.adu\\:py-1\\.5{padding-block:calc(var(--adu-spacing)*1.5)}.adu\\:py-2{padding-block:calc(var(--adu-spacing)*2)}.adu\\:py-3{padding-block:calc(var(--adu-spacing)*3)}.adu\\:py-6{padding-block:calc(var(--adu-spacing)*6)}.adu\\:pt-3{padding-top:calc(var(--adu-spacing)*3)}.adu\\:pr-2{padding-right:calc(var(--adu-spacing)*2)}.adu\\:pl-8{padding-left:calc(var(--adu-spacing)*8)}.adu\\:text-center{text-align:center}.adu\\:font-aeonik{font-family:Aeonik,sans-serif}.adu\\:font-inter{font-family:Inter,Inter Fallback,system-ui,-apple-system,sans-serif}.adu\\:font-roboto-mono{font-family:Roboto Mono,sans-serif}.adu\\:text-2xl{font-size:2rem;line-height:var(--tw-leading,var(--adu-text-2xl--line-height))}.adu\\:text-3xl{font-size:2.5rem;line-height:var(--tw-leading,var(--adu-text-3xl--line-height))}.adu\\:text-base{font-size:1rem;line-height:var(--tw-leading,var(--adu-text-base--line-height))}.adu\\:text-lg{font-size:1.25rem;line-height:var(--tw-leading,var(--adu-text-lg--line-height))}.adu\\:text-sm{font-size:.875rem;line-height:var(--tw-leading,var(--adu-text-sm--line-height))}.adu\\:text-sm\\!{font-size:.875rem!important;line-height:var(--tw-leading,var(--adu-text-sm--line-height))!important}.adu\\:text-xl{font-size:1.5rem;line-height:var(--tw-leading,var(--adu-text-xl--line-height))}.adu\\:text-xs{font-size:.75rem;line-height:var(--tw-leading,var(--adu-text-xs--line-height))}.adu\\:leading-1\\.5{--tw-leading:calc(var(--adu-spacing)*1.5);line-height:calc(var(--adu-spacing)*1.5)}.adu\\:leading-1\\.15{--tw-leading:1.15;line-height:1.15}.adu\\:leading-1\\.20{--tw-leading:1.2;line-height:1.2}.adu\\:leading-1\\.25{--tw-leading:1.25;line-height:1.25}.adu\\:leading-1\\.30{--tw-leading:1.3;line-height:1.3}.adu\\:leading-1\\.33{--tw-leading:1.33;line-height:1.33}.adu\\:leading-1\\.40{--tw-leading:1.4;line-height:1.4}.adu\\:leading-1\\.45{--tw-leading:1.45;line-height:1.45}.adu\\:leading-1\\.65{--tw-leading:1.65;line-height:1.65}.adu\\:leading-none{--tw-leading:1;line-height:1}.adu\\:font-medium{--tw-font-weight:500;font-weight:500}.adu\\:font-normal{--tw-font-weight:400;font-weight:400}.adu\\:font-semibold{--tw-font-weight:600;font-weight:600}.adu\\:tracking-n-2xl{--tw-tracking:-.02em;letter-spacing:-.02em}.adu\\:tracking-n-3xl{--tw-tracking:-.02125em;letter-spacing:-.02125em}.adu\\:tracking-n-5xl{--tw-tracking:-.044em;letter-spacing:-.044em}.adu\\:tracking-n-6xl{--tw-tracking:-.05em;letter-spacing:-.05em}.adu\\:tracking-n-lg{--tw-tracking:-.011em;letter-spacing:-.011em}.adu\\:tracking-n-md{--tw-tracking:-.00625em;letter-spacing:-.00625em}.adu\\:tracking-n-sm{--tw-tracking:-.006em;letter-spacing:-.006em}.adu\\:tracking-n-xl{--tw-tracking:-.01125em;letter-spacing:-.01125em}.adu\\:tracking-n-xs{--tw-tracking:-.00525em;letter-spacing:-.00525em}.adu\\:tracking-p-2xl{--tw-tracking:.0375em;letter-spacing:.0375em}.adu\\:tracking-p-lg{--tw-tracking:.011em;letter-spacing:.011em}.adu\\:tracking-p-md{--tw-tracking:.01em;letter-spacing:.01em}.adu\\:tracking-p-sm{--tw-tracking:.005em;letter-spacing:.005em}.adu\\:tracking-p-xs{--tw-tracking:.0025em;letter-spacing:.0025em}.adu\\:tracking-widest{--tw-tracking:var(--adu-tracking-widest);letter-spacing:var(--adu-tracking-widest)}.adu\\:whitespace-nowrap{white-space:nowrap}.adu\\:text-\\[\\#f4f4f4\\]{color:#f4f4f4}.adu\\:text-\\[\\#f4f4f4\\]\\!{color:#f4f4f4!important}.adu\\:text-foreground{color:var(--foreground)}.adu\\:text-foreground-bold{color:var(--foreground-bold)}.adu\\:text-foreground-icon{color:var(--foreground-icon)}.adu\\:text-foreground-inverse{color:var(--foreground-inverse)}.adu\\:text-foreground-inverse\\!{color:var(--foreground-inverse)!important}.adu\\:text-white{color:var(--adu-color-white)}.adu\\:uppercase{text-transform:uppercase}.adu\\:underline{text-decoration-line:underline}.adu\\:underline-offset-4{text-underline-offset:4px}.adu\\:underline-offset-auto{text-underline-offset:auto}.adu\\:shadow-lg{--tw-shadow:0px 12px 12px -6px var(--tw-shadow-color,hsla(var(--color-shadow),var(--transparency-level-3))),0px 6px 6px -1.5px var(--tw-shadow-color,hsla(var(--color-shadow),var(--transparency-level-2))),0px 4px 4px 0px var(--tw-shadow-color,hsla(var(--color-shadow),var(--transparency-level-1))),0px 2px 2px -1px var(--tw-shadow-color,hsla(var(--color-shadow),var(--transparency-level-1))),0px 1px 1px -.5px var(--tw-shadow-color,hsla(var(--color-shadow),var(--transparency-level-1)));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.adu\\:shadow-md{--tw-shadow:0px 6px 6px -3px var(--tw-shadow-color,hsla(var(--color-shadow),var(--transparency-level-2))),0px 4px 4px -1px var(--tw-shadow-color,hsla(var(--color-shadow),var(--transparency-level-1))),0px 2px 2px -1px var(--tw-shadow-color,hsla(var(--color-shadow),var(--transparency-level-1))),0px 1px 1px -.5px var(--tw-shadow-color,hsla(var(--color-shadow),var(--transparency-level-1)));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.adu\\:shadow-sm{--tw-shadow:0px 4px 4px -2px var(--tw-shadow-color,hsla(var(--color-shadow),var(--transparency-level-1))),0px 2px 2px -1px var(--tw-shadow-color,hsla(var(--color-shadow),var(--transparency-level-1))),0px 1px 1px -.5px var(--tw-shadow-color,hsla(var(--color-shadow),var(--transparency-level-1)));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.adu\\:outline-hidden{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.adu\\:outline-hidden{outline-offset:2px;outline:2px solid #0000}}.adu\\:transition-\\[height\\]{transition-property:height;transition-timing-function:var(--tw-ease,var(--adu-default-transition-timing-function));transition-duration:var(--tw-duration,var(--adu-default-transition-duration))}.adu\\:transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--adu-default-transition-timing-function));transition-duration:var(--tw-duration,var(--adu-default-transition-duration))}.adu\\:ease-in-out{--tw-ease:var(--adu-ease-in-out);transition-timing-function:var(--adu-ease-in-out)}.adu\\:fill-mode-both{--tw-animation-fill-mode:both;animation-fill-mode:both}.adu\\:outline-none{--tw-outline-style:none;outline-style:none}.adu\\:select-none{-webkit-user-select:none;user-select:none}.adu\\:fade-in{--tw-enter-opacity:0}.adu\\:fade-out{--tw-exit-opacity:0}.adu\\:slide-in-from-left{--tw-enter-translate-x:-100%}.adu\\:slide-in-from-right{--tw-enter-translate-x:100%}.adu\\:slide-out-to-left{--tw-exit-translate-x:-100%}.adu\\:slide-out-to-right{--tw-exit-translate-x:100%}@media (hover:hover){.adu\\:hover\\:bg-button-primary\\/90:hover{background-color:var(--button-primary)}@supports (color:color-mix(in lab,red,red)){.adu\\:hover\\:bg-button-primary\\/90:hover{background-color:color-mix(in oklab,var(--button-primary) 90%,transparent)}}.adu\\:hover\\:bg-destructive\\/90:hover{background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.adu\\:hover\\:bg-destructive\\/90:hover{background-color:color-mix(in oklab,var(--destructive) 90%,transparent)}}.adu\\:hover\\:underline:hover{text-decoration-line:underline}}.adu\\:focus-visible\\:ring-\\[3px\\]:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.adu\\:focus-visible\\:ring-destructive\\/20:focus-visible{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.adu\\:focus-visible\\:ring-destructive\\/20:focus-visible{--tw-ring-color:color-mix(in oklab,var(--destructive) 20%,transparent)}}.adu\\:focus-visible\\:outline-hidden:focus-visible{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.adu\\:focus-visible\\:outline-hidden:focus-visible{outline-offset:2px;outline:2px solid #0000}}.adu\\:disabled\\:pointer-events-none:disabled{pointer-events:none}.adu\\:disabled\\:opacity-50:disabled{opacity:.5}.adu\\:has-data-\\[slot\\=card-action\\]\\:grid-cols-\\[1fr_auto\\]:has([data-slot=card-action]){grid-template-columns:1fr auto}.adu\\:has-\\[\\>svg\\]\\:px-2\\.5:has(>svg){padding-inline:calc(var(--adu-spacing)*2.5)}.adu\\:has-\\[\\>svg\\]\\:px-3:has(>svg){padding-inline:calc(var(--adu-spacing)*3)}.adu\\:has-\\[\\>svg\\]\\:px-4:has(>svg){padding-inline:calc(var(--adu-spacing)*4)}.adu\\:aria-invalid\\:border-destructive[aria-invalid=true]{border-color:var(--destructive)}.adu\\:aria-invalid\\:ring-destructive\\/20[aria-invalid=true]{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.adu\\:aria-invalid\\:ring-destructive\\/20[aria-invalid=true]{--tw-ring-color:color-mix(in oklab,var(--destructive) 20%,transparent)}}.adu\\:data-\\[disabled\\]\\:pointer-events-none[data-disabled]{pointer-events:none}.adu\\:data-\\[disabled\\]\\:opacity-50[data-disabled]{opacity:.5}.adu\\:data-\\[inset\\]\\:pl-8[data-inset]{padding-left:calc(var(--adu-spacing)*8)}.adu\\:data-\\[side\\=bottom\\]\\:slide-in-from-top-2[data-side=bottom]{--tw-enter-translate-y:calc(var(--adu-spacing)*2*-1)}.adu\\:data-\\[side\\=left\\]\\:slide-in-from-right-2[data-side=left]{--tw-enter-translate-x:calc(var(--adu-spacing)*2)}.adu\\:data-\\[side\\=right\\]\\:slide-in-from-left-2[data-side=right]{--tw-enter-translate-x:calc(var(--adu-spacing)*2*-1)}.adu\\:data-\\[side\\=top\\]\\:slide-in-from-bottom-2[data-side=top]{--tw-enter-translate-y:calc(var(--adu-spacing)*2)}.adu\\:data-\\[state\\=closed\\]\\:animate-out[data-state=closed]{animation:exit var(--tw-animation-duration,var(--tw-duration,.15s)) var(--tw-ease,ease) var(--tw-animation-delay,0s) var(--tw-animation-iteration-count,1) var(--tw-animation-direction,normal) var(--tw-animation-fill-mode,none)}.adu\\:data-\\[state\\=closed\\]\\:fade-out-0[data-state=closed]{--tw-exit-opacity:0}.adu\\:data-\\[state\\=closed\\]\\:zoom-out-95[data-state=closed]{--tw-exit-scale:.95}.adu\\:data-\\[state\\=open\\]\\:animate-in[data-state=open]{animation:enter var(--tw-animation-duration,var(--tw-duration,.15s)) var(--tw-ease,ease) var(--tw-animation-delay,0s) var(--tw-animation-iteration-count,1) var(--tw-animation-direction,normal) var(--tw-animation-fill-mode,none)}.adu\\:data-\\[state\\=open\\]\\:fade-in-0[data-state=open]{--tw-enter-opacity:0}.adu\\:data-\\[state\\=open\\]\\:zoom-in-95[data-state=open]{--tw-enter-scale:.95}.adu\\:data-\\[variant\\=destructive\\]\\:text-destructive[data-variant=destructive]{color:var(--destructive)}.adu\\:data-\\[variant\\=destructive\\]\\:focus\\:bg-destructive\\/10[data-variant=destructive]:focus{background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.adu\\:data-\\[variant\\=destructive\\]\\:focus\\:bg-destructive\\/10[data-variant=destructive]:focus{background-color:color-mix(in oklab,var(--destructive) 10%,transparent)}}.adu\\:data-\\[variant\\=destructive\\]\\:focus\\:text-destructive[data-variant=destructive]:focus{color:var(--destructive)}@media (min-width:64rem){.adu\\:lg\\:block{display:block}.adu\\:lg\\:w-auto{width:auto}}.adu\\:dark\\:bg-destructive\\/60:is(.dark *){background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.adu\\:dark\\:bg-destructive\\/60:is(.dark *){background-color:color-mix(in oklab,var(--destructive) 60%,transparent)}}.adu\\:dark\\:bg-input\\/30:is(.dark *){background-color:var(--input)}@supports (color:color-mix(in lab,red,red)){.adu\\:dark\\:bg-input\\/30:is(.dark *){background-color:color-mix(in oklab,var(--input) 30%,transparent)}}.adu\\:dark\\:shadow-xs:is(.dark *){--tw-shadow:0px 2px 2px -1px var(--tw-shadow-color,hsla(var(--color-shadow),var(--transparency-level-1))),0px 1px 1px -.5px var(--tw-shadow-color,hsla(var(--color-shadow),var(--transparency-level-1)));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}@media (hover:hover){.adu\\:dark\\:hover\\:bg-input\\/50:is(.dark *):hover{background-color:var(--input)}@supports (color:color-mix(in lab,red,red)){.adu\\:dark\\:hover\\:bg-input\\/50:is(.dark *):hover{background-color:color-mix(in oklab,var(--input) 50%,transparent)}}}.adu\\:dark\\:focus-visible\\:ring-destructive\\/40:is(.dark *):focus-visible{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.adu\\:dark\\:focus-visible\\:ring-destructive\\/40:is(.dark *):focus-visible{--tw-ring-color:color-mix(in oklab,var(--destructive) 40%,transparent)}}.adu\\:dark\\:aria-invalid\\:ring-destructive\\/40:is(.dark *)[aria-invalid=true]{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.adu\\:dark\\:aria-invalid\\:ring-destructive\\/40:is(.dark *)[aria-invalid=true]{--tw-ring-color:color-mix(in oklab,var(--destructive) 40%,transparent)}}.adu\\:dark\\:data-\\[variant\\=destructive\\]\\:focus\\:bg-destructive\\/20:is(.dark *)[data-variant=destructive]:focus{background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.adu\\:dark\\:data-\\[variant\\=destructive\\]\\:focus\\:bg-destructive\\/20:is(.dark *)[data-variant=destructive]:focus{background-color:color-mix(in oklab,var(--destructive) 20%,transparent)}}.adu\\:\\[\\\u0026_svg\\]\\:pointer-events-none svg{pointer-events:none}.adu\\:\\[\\\u0026_svg\\]\\:shrink-0 svg{flex-shrink:0}.adu\\:\\[\\\u0026_svg\\:not\\(\\[class\\*\\=\\'size-\\'\\]\\)\\]\\:size-4 svg:not([class*=size-]){width:calc(var(--adu-spacing)*4);height:calc(var(--adu-spacing)*4)}.adu\\:\\[\\.border-b\\]\\:pb-6.border-b{padding-bottom:calc(var(--adu-spacing)*6)}.adu\\:\\[\\.border-t\\]\\:pt-6.border-t{padding-top:calc(var(--adu-spacing)*6)}:is(.adu\\:data-\\[variant\\=destructive\\]\\:\\*\\:\\[svg\\]\\:\\!text-destructive[data-variant=destructive]>*):is(svg){color:var(--destructive)!important}}@property --tw-animation-delay{syntax:\"*\";inherits:false;initial-value:0s}@property --tw-animation-direction{syntax:\"*\";inherits:false;initial-value:normal}@property --tw-animation-duration{syntax:\"*\";inherits:false}@property --tw-animation-fill-mode{syntax:\"*\";inherits:false;initial-value:none}@property --tw-animation-iteration-count{syntax:\"*\";inherits:false;initial-value:1}@property --tw-enter-blur{syntax:\"*\";inherits:false;initial-value:0}@property --tw-enter-opacity{syntax:\"*\";inherits:false;initial-value:1}@property --tw-enter-rotate{syntax:\"*\";inherits:false;initial-value:0}@property --tw-enter-scale{syntax:\"*\";inherits:false;initial-value:1}@property --tw-enter-translate-x{syntax:\"*\";inherits:false;initial-value:0}@property --tw-enter-translate-y{syntax:\"*\";inherits:false;initial-value:0}@property --tw-exit-blur{syntax:\"*\";inherits:false;initial-value:0}@property --tw-exit-opacity{syntax:\"*\";inherits:false;initial-value:1}@property --tw-exit-rotate{syntax:\"*\";inherits:false;initial-value:0}@property --tw-exit-scale{syntax:\"*\";inherits:false;initial-value:1}@property --tw-exit-translate-x{syntax:\"*\";inherits:false;initial-value:0}@property --tw-exit-translate-y{syntax:\"*\";inherits:false;initial-value:0}@font-face{font-family:Inter Fallback;src:local(Arial);size-adjust:107%;ascent-override:90%;descent-override:22%;line-gap-override:0%}:root{--page:#fff;--card:#fff;--input:#fff;--destructive:#f3e2de;--popover:#fff;--layer:#fffc;--success:#abdfb9;--info:#b2c5fb;--caution:#ffe573;--warning:#ffbf9f;--button-subtle:#00000008;--surface-muted:#c2c2c2;--surface-selected:#efefef;--button-primary:#191919;--foreground:#767676;--foreground-inverse:#f4f4f4;--foreground-bold:#232220;--foreground-card:#232220;--foreground-destructive:#ba351d;--foreground-popover:#232220;--foreground-selected:#6742d5;--foreground-success:#008140;--foreground-info:#344ac5;--foreground-caution:#907600;--foreground-warning:#c45915;--foreground-icon:#1f1f1f;--border-boldest:#1f1f1f;--border-input:#e6e6e6;--border:#afadaa;--border-muted:#cecdca;--border-success:#008140;--border-info:#344ac5;--border-caution:#907600;--border-warning:#c45915;--code-layer:#f4f4f4;--code-content:#fffc;--code-string-key:#595959;--code-string-value:#149750;--code-boolean:#e27133;--code-delimiter:#afafaf;--code-number:#374ec9;--code-object:#6742d5;--color-shadow:0,0%,0%;--color-shadow-destructive:5,85%,37%;--transparency-level-1:.04;--transparency-level-2:.06;--transparency-level-3:.08;--transparency-level-4:.1;--transparency-level-5:.12;--transparency-level-6:.16;--transparency-level-7:.2;--transparency-level-8:.24;--transparency-level-9:.4}.dark{--page:#191919;--card:#21201f;--input:#0000000d;--destructive:#43140b;--popover:#21201f;--layer:#29272580;--success:#225835;--info:#2f428b;--caution:#433600;--warning:#63361f;--button-subtle:#ffffffe6;--surface-muted:#4a4a4a;--surface-selected:#282828;--button-primary:#fff;--foreground:#7b7b7b;--foreground-inverse:#191919;--foreground-bold:#efede9;--foreground-card:#efede9;--foreground-destructive:#ff9179;--foreground-popover:#efede9;--foreground-selected:#b3a7ff;--foreground-success:#61d287;--foreground-info:#94b2ff;--foreground-caution:#f8d523;--foreground-warning:#ff9f6e;--foreground-icon:#eee;--border-boldest:#eee;--border-input:#282828;--border:#63615e;--border-muted:#3f3d3a;--border-success:#61d287;--border-info:#94b2ff;--border-caution:#f8d523;--border-warning:#ff9f6e;--code-layer:#21201f;--code-content:#1a1918;--code-string-key:#b4b4b4;--code-string-value:#61d287;--code-boolean:#ff9f6e;--code-delimiter:#7b7b7b;--code-number:#94b2ff;--code-object:#b3a7ff;--color-shadow:0,0%,100%;--color-shadow-destructive:5,85%,37%;--transparency-level-1:.04;--transparency-level-2:.06;--transparency-level-3:.08;--transparency-level-4:.1;--transparency-level-5:.12;--transparency-level-6:.16;--transparency-level-7:.2;--transparency-level-8:.24;--transparency-level-9:.4}.adu-dropdown-menu-content,.adu-dropdown-menu-content:before,.adu-dropdown-menu-content:after{border-width:1px;border-color:var(--border-input)}@property --tw-border-style{syntax:\"*\";inherits:false;initial-value:solid}@property --tw-leading{syntax:\"*\";inherits:false}@property --tw-font-weight{syntax:\"*\";inherits:false}@property --tw-tracking{syntax:\"*\";inherits:false}@property --tw-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:\"*\";inherits:false}@property --tw-shadow-alpha{syntax:\"\u003cpercentage>\";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:\"*\";inherits:false}@property --tw-inset-shadow-alpha{syntax:\"\u003cpercentage>\";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:\"*\";inherits:false}@property --tw-ring-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:\"*\";inherits:false}@property --tw-inset-ring-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:\"*\";inherits:false}@property --tw-ring-offset-width{syntax:\"\u003clength>\";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:\"*\";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-ease{syntax:\"*\";inherits:false}@keyframes pulse{50%{opacity:.5}}@keyframes enter{0%{opacity:var(--tw-enter-opacity,1);transform:translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0) scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1)) rotate(var(--tw-enter-rotate,0));filter:blur(var(--tw-enter-blur,0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity,1);transform:translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0) scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1)) rotate(var(--tw-exit-rotate,0));filter:blur(var(--tw-exit-blur,0))}}"},{"filePath":"ui/css/ai.css","content":".connection-card-search,.connection-card-filters button{background:var(--card);border-color:var(--foreground);transition:all 0.2s ease}.connection-card-filters button.active{text-decoration:underline dotted;color:rgb(var(--primary));border-color:rgb(var(--primary))}.connection-card-search{\u0026:focus,\u0026:focus-visible,\u0026:focus-within{border-color:rgb(var(--primary))}input {\n \u0026:focus, \u0026:focus-visible, \u0026:focus-within {\n border: none;\n outline: none;\n }\n }}.connection-card-no-results{text-decoration:none!important;cursor:default!important}.download-button-container{display:inline-block;margin-bottom:1rem}.download-button{display:inline-flex;align-items:center;gap:0.5rem;padding:0.5rem 1.125rem 0.5rem 1rem;border-radius:0.75rem;font-size:0.95rem;font-weight:600;cursor:pointer;transition:all 0.2s ease;text-decoration:none;color:var(--foreground-inverse);background-color:var(--button-primary);box-shadow:0 0 0 1px oklch(from var(--button-primary) l c h / 0.12),\n 0 1px 1px -1px oklch(from var(--button-primary) l c h / 0.06),\n 0 2px 2px -2px oklch(from var(--button-primary) l c h / 0.06),\n 0 2px 4px -2px oklch(from var(--button-primary) l c h / 0.06),\n 0 4px 6px -4px oklch(from var(--button-primary) l c h / 0.06),\n 0 6px 8px -6px oklch(from var(--button-primary) l c h / 0.06),\n 0 -1px 2px 0 oklch(from var(--button-primary) l c h / 0.2) inset}.download-button:hover:not(:disabled){background-color:oklch(from var(--button-primary) l c h / 0.8);box-shadow:0 0 0 4px oklch(from var(--button-primary) l c h / 0.06),\n 0 1px 1px -1px oklch(from var(--button-primary) l c h / 0.06),\n 0 2px 2px -2px oklch(from var(--button-primary) l c h / 0.06),\n 0 2px 4px -2px oklch(from var(--button-primary) l c h / 0.06),\n 0 4px 6px -4px oklch(from var(--button-primary) l c h / 0.06),\n 0 6px 8px -6px oklch(from var(--button-primary) l c h / 0.06),\n 0 -1px 2px 0 oklch(from var(--button-primary) l c h / 0.2) inset}.download-button:disabled{opacity:0.6;cursor:not-allowed}.download-button.downloading{pointer-events:none}.download-spinner{animation:spin 1s linear infinite}@keyframes spin{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}"},{"filePath":"ui/universal-components/universal-components-1.0.27.css","href":"/_mintlify/custom/auth0/73de81e2acf73139/ui/universal-components/universal-components-1.0.27.css"}],"page":{"pagePath":"docs/customize/login-pages/universal-login/customize-signup-and-login-prompts","slug":"/docs/customize/login-pages/universal-login/customize-signup-and-login-prompts","pageMetadata":{"description":"Learn how to add custom fields and text to the Auth0 Universal Login signup and login prompts.","title":"Customize Signup and Login Prompts","href":"/docs/customize/login-pages/universal-login/customize-signup-and-login-prompts"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Learn how to add custom fields and text to the Auth0 Universal Login signup and login prompts.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,li:`li`,ol:`ol`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,ul:`ul`,..._provideComponents(),...props.components},{Callout,Card,CodeBlock,Frame,Heading,OptimizedImage,Tooltip}=_components;if(!Callout)_missingMdxReference(`Callout`,true);if(!Card)_missingMdxReference(`Card`,true);if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Frame)_missingMdxReference(`Frame`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!OptimizedImage)_missingMdxReference(`OptimizedImage`,true);if(!Tooltip)_missingMdxReference(`Tooltip`,true);return _jsxs(_Fragment,{children:[_jsx(Card,{title:`Before you start`,children:_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[`Make sure your tenant has a `,_jsx(_components.a,{href:`/docs/customize/custom-domains`,children:_jsx(_components.strong,{children:`Custom Domain`})}),` configured.`]}),`\n`,_jsxs(_components.li,{children:[`Confirm you are using `,_jsx(_components.a,{href:`/docs/authenticate/login/auth0-universal-login/universal-login-vs-classic-login/universal-experience`,children:_jsx(_components.strong,{children:`Universal Login`})}),` for all signup and login prompts, and ensure the `,_jsx(_components.strong,{children:`Customize Login Page`}),` toggle has been disabled for Login Prompts.`]}),`\n`,_jsxs(_components.li,{children:[`Check that you have a `,_jsx(_components.a,{href:`/docs/customize/login-pages/universal-login/customize-templates#custom-sign-up-prompts`,children:`Custom Page Template`}),` configured.`]}),`\n`]})}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Customize Signup and Login Prompts`}),` is a feature that allows customers with `,_jsx(Tooltip,{tip:`Custom Domain: Third-party domain with a specialized, or vanity, name.`,cta:`View Glossary`,href:`/docs/glossary?term=Custom+Domain`,children:`Custom Domain`}),` and Custom Page Template enabled to add custom fields and content to their app’s signup and login prompts.`]}),`\n`,_jsx(Heading,{level:`2`,id:`use-cases`,children:`Use cases`}),`\n`,_jsxs(_components.p,{children:[`Customize Signup and Login Prompts supports two use cases: `,_jsx(_components.strong,{children:`custom content`}),` and `,_jsx(_components.strong,{children:`data capture.`})]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Custom content`}),` is static content like text, links, or images placed directly on the signup and login prompts.`]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Data capture`}),` uses form elements dynamically added to the Signup and Login prompts, which is useful for collecting and validating user consent or user-produced data like surname.`]}),`\n`,_jsx(Callout,{icon:`file-lines`,color:`#0EA5E9`,iconType:`regular`,children:_jsx(_components.p,{children:`Only use Signup and Login Prompt Customizations to convey or collect sensitive or regulated data as permitted under your agreement with Okta.`})}),`\n`,_jsx(Heading,{level:`2`,id:`terminology`,children:`Terminology`}),`\n`,_jsxs(_components.p,{children:[`A `,_jsx(_components.strong,{children:`prompt`}),` is a specific step in a given authentication flow. Each prompt has at least one `,_jsx(_components.strong,{children:`screen`}),` and, depending on tenant configuration, each supported screen has either four or six `,_jsx(_components.strong,{children:`entry points,`}),` which are locations in the screen where custom code (`,_jsx(_components.strong,{children:`partials`}),`) can be inserted.`]}),`\n`,_jsx(_components.p,{children:`The following prompts can be customized:`}),`\n`,_jsx(_components.p,{children:_jsx(_components.strong,{children:`Login screens`})}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:_jsx(_components.code,{children:`login`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.code,{children:`login-id`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.code,{children:`login-password`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.code,{children:`login-passwordless-sms-otp`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.code,{children:`login-passwordless-email-code`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.code,{children:`passkey-enrollment`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.code,{children:`passkey-enrollment-local`})}),`\n`]}),`\n`,_jsx(_components.p,{children:_jsx(_components.strong,{children:`Signup screens`})}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:_jsx(_components.code,{children:`signup`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.code,{children:`signup-id`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.code,{children:`signup-password`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.code,{children:`passkey-enrollment`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.code,{children:`passkey-enrollment-local`})}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`Partials support HTML, CSS, JavaScript, and `,_jsx(_components.a,{href:`https://github.com/Shopify/liquid/wiki/Liquid-for-Designers`,children:`Liquid syntax`}),` to power conditional logic and dynamic variables. In addition, any Liquid variable that is available to the `,_jsx(_components.a,{href:`/docs/customize/login-pages/universal-login/customize-templates`,children:`Page Template`}),` is also supported.`]}),`\n`,_jsx(_components.p,{children:`These entry points are available when a database or passwordless connection is enabled:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:_jsx(_components.code,{children:`form-content-start`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.code,{children:`form-content-end`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.code,{children:`form-footer-start`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.code,{children:`form-footer-end`})}),`\n`]}),`\n`,_jsx(_components.p,{children:`The following entry points are available when at least one social or enterprise connection is enabled:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:_jsx(_components.code,{children:`secondary-actions-start`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.code,{children:`secondary-actions-end`})}),`\n`]}),`\n`,_jsx(Frame,{children:_jsx(OptimizedImage,{src:`https://mintlify.s3.us-west-1.amazonaws.com/auth0/docs/images/cdy7uua7fh8z/7sQVWVbaTp4VMW4nJjsn2G/74d0b30da7b034bd695274dbd146964b/Custom_Prompts.png`,alt:`Screenshots of each Custom Prompt option and their partials`})}),`\n`,_jsx(Heading,{level:`2`,id:`use-the-auth0-dashboard-to-manage-partials`,children:`Use the Auth0 Dashboard to manage Partials`}),`\n`,_jsx(_components.p,{children:`Use the Dashboard to insert custom fields and content into Login and Signup screens using partials.`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[`Navigate to `,_jsx(_components.a,{href:`https://manage.auth0.com/#/universal-login/customize-partials`,children:`Auth0 Dashboard > Branding > Universal Login`}),`, and select `,_jsx(_components.strong,{children:`Enhance screens with partials`}),`.`]}),`\n`,_jsxs(_components.li,{children:[`Select the `,_jsx(_components.strong,{children:`Screen`}),` to customize with the partials editor.`]}),`\n`]}),`\n`,_jsxs(Callout,{icon:`file-lines`,color:`#0EA5E9`,iconType:`regular`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Screens`}),` can have the following `,_jsx(_components.strong,{children:`Rendering modes`}),`:`]}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`STANDARD`}),`: The `,_jsx(_components.code,{children:`screen`}),` is rendered using the default `,_jsx(_components.a,{href:`/docs/customize/login-pages/universal-login`,children:`Universal Login`}),` UI; you can use partials to insert code snippets and `,_jsx(_components.a,{href:`/docs/customize/login-pages/universal-login/customize-templates#page-template-variables`,children:`template variables`}),`.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`ADVANCED`}),`: The `,_jsx(_components.code,{children:`screen`}),` is rendered using `,_jsx(_components.a,{href:`/docs/customize/login-pages/advanced-customizations`,children:`ACUL`}),` and partials do not apply.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`ADVANCED (FILTERED)`}),`: The `,_jsx(_components.code,{children:`screen`}),` is rendered with ACUL applied to specific applications and organizations; partials only apply to `,_jsx(_components.code,{children:`screens`}),` excluded from ACUL filters.`]}),`\n`]})]}),`\n`,_jsxs(_components.ol,{start:`3`,children:[`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[`Select `,_jsx(_components.strong,{children:_jsx(`svg`,{style:{display:`inline`},width:`20`,height:`20`,viewBox:`0 0 24 24`,fill:`currentColor`,xmlns:`http://www.w3.org/2000/svg`,class:`sc-ezjryM`,children:_jsx(`path`,{\"fill-rule\":`evenodd`,\"clip-rule\":`evenodd`,d:`M5 6a2 2 0 11-4 0 2 2 0 014 0zM3 14a2 2 0 100-4 2 2 0 000 4zM3 20a2 2 0 100-4 2 2 0 000 4zM8 13h15v-2H8v2zM23 7H8V5h15v2zM8 19h15v-2H8v2z`,fill:`inherit`})})}),` `,_jsx(_components.strong,{children:`ENTRY POINTS`}),` to insert code snippets and template variables.`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[`Select `,_jsx(_components.strong,{children:_jsx(`svg`,{style:{display:`inline`},width:`20`,height:`20`,viewBox:`0 0 24 24`,fill:`currentColor`,xmlns:`http://www.w3.org/2000/svg`,class:`sc-bQCGiA`,children:_jsx(`path`,{\"fill-rule\":`evenodd`,\"clip-rule\":`evenodd`,d:`M9.457 6.207L3.664 12l5.793 5.793-1.414 1.414-6.5-6.5a1 1 0 010-1.414l6.5-6.5 1.414 1.414zM14.543 6.207L20.336 12l-5.793 5.793 1.414 1.414 6.5-6.5a1 1 0 000-1.414l-6.5-6.5-1.414 1.414z`,fill:`inherit`})})}),` to add `,_jsx(_components.strong,{children:`CODE SNIPPETS`}),` to the selected entry point.`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[`Select `,_jsx(_components.strong,{children:`{ }`}),` to add `,_jsx(_components.strong,{children:`TEMPLATE VARIABLES`}),` to the selected entry point.`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[`Select `,_jsx(_components.strong,{children:_jsxs(`svg`,{style:{display:`inline`},width:`20`,height:`20`,viewBox:`0 0 24 24`,fill:`currentColor`,xmlns:`http://www.w3.org/2000/svg`,class:`sc-hKiGeM`,children:[_jsx(`path`,{\"fill-rule\":`evenodd`,\"clip-rule\":`evenodd`,d:`M15.152 3a1 1 0 011-1H21a1 1 0 011 1v5.078a1 1 0 01-1 1h-4.848a1 1 0 01-1-1V3zm2 1v3.078H20V4h-2.848z`,fill:`currentColor`}),_jsx(`path`,{d:`M8.554 5.75c-1.265 0-2.369 1.089-2.369 2.53v5.28h-2V8.28c0-2.457 1.913-4.53 4.37-4.53 2.455 0 4.368 2.073 4.368 4.53v7.478c0 1.416 1.085 2.484 2.327 2.484 1.241 0 2.326-1.068 2.326-2.484v-5.324h2v5.324c0 2.432-1.894 4.484-4.326 4.484-2.433 0-4.327-2.052-4.327-4.484V8.28c0-1.441-1.104-2.53-2.369-2.53z`,fill:`currentColor`}),_jsx(`path`,{\"fill-rule\":`evenodd`,\"clip-rule\":`evenodd`,d:`M2 15.922a1 1 0 011-1h4.848a1 1 0 011 1V21a1 1 0 01-1 1H3a1 1 0 01-1-1v-5.078zm2 1V20h2.848v-3.078H4z`,fill:`inherit`})]})}),` `,_jsx(_components.strong,{children:`ACTIONS`}),` to add `,_jsx(_components.a,{href:`/docs/customize/actions/actions-overview`,children:`Actions`}),` and apply custom logic using your partials fields and content.`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[`Select `,_jsx(_components.strong,{children:`Save and Publish`}),` to update your `,_jsx(_components.strong,{children:`Screen`}),`.`]}),`\n`]}),`\n`]}),`\n`,_jsx(Frame,{children:_jsx(OptimizedImage,{src:`https://mintlify.s3.us-west-1.amazonaws.com/auth0/docs/images/universal-login/partials-editor.png`,alt:`[partials]`})}),`\n`,_jsx(Heading,{level:`2`,id:`manage-partials-programmatically`,children:`Manage Partials programmatically`}),`\n`,_jsxs(_components.p,{children:[`You can manage Partials using the `,_jsx(_components.a,{href:`/docs/api/management/v2/prompts/put-partials`,children:`Auth0 Management API`}),` (`,_jsx(_components.code,{children:`GET /prompts/{prompts_name}/partials`}),`). Every prompt must specify the `,_jsx(_components.code,{children:`screen`}),` when adding, updating, or deleting a partial. Partials can be a maximum of 10,000 characters.`]}),`\n`,_jsxs(_components.p,{children:[`Partials can also be managed using Auth0 CLI’s `,_jsx(Tooltip,{tip:`Universal Login: Your application redirects to Universal Login, hosted on Auth0's Authorization Server, to verify a user's identity.`,cta:`View Glossary`,href:`/docs/glossary?term=Universal+Login`,children:`Universal Login`}),` Customize Interface by running `,_jsx(_components.code,{children:`auth0 ul customize`}),` in your terminal.`]}),`\n`,_jsx(Frame,{children:_jsx(OptimizedImage,{src:`https://mintlify.s3.us-west-1.amazonaws.com/auth0/docs/images/cdy7uua7fh8z/KxWfVAMkumyI2jrUqkEp8/b9315709899864a2f8758ad7f5a4f5b2/Partials_CLI_Image.jpg`,alt:`An image showing the command-line interface for Partials. `})}),`\n`,_jsx(Heading,{level:`2`,id:`style-and-validate-form-inputs`,children:`Style and validate Form Inputs`}),`\n`,_jsx(_components.p,{children:`Customize Signup and Login Prompts offers pre-built styles and support for client-side validations for certain HTML form elements. The following elements are supported:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:_jsx(_components.code,{children:`\u003cinput type=\"text\">`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.code,{children:`\u003cinput type=\"number\">`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.code,{children:`\u003cinput type=\"checkbox\">`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.code,{children:`\u003cinput type=\"password\">`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.code,{children:`\u003cinput type=\"email\">`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.code,{children:`\u003cinput type=\"tel\">`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.code,{children:`\u003cinput type=\"url\">`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.code,{children:`\u003cselect>`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.code,{children:`\u003ctextarea>`})}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`To use pre-built input styles, wrap your form element of choice in a `,_jsx(_components.code,{children:`\u003cdiv>`}),` with the `,_jsx(_components.code,{children:`ulp-field`}),` class. Similarly, add the `,_jsx(_components.code,{children:`ulp-error`}),` class to the same `,_jsx(_components.code,{children:`\u003cdiv>`}),` to use pre-built error styles. If the `,_jsx(_components.code,{children:`ulp-error-info`}),` element is present, a styled error message will also be displayed.`]}),`\n`,_jsxs(_components.p,{children:[`You can find pre-built code snippets when using the `,_jsx(_components.a,{href:`#use-the-auth0-dashboard-to-manage-partials`,children:`partials`}),` editor.`]}),`\n`,_jsx(Heading,{level:`3`,id:`client-side-validation`,children:`Client-side validation`}),`\n`,_jsxs(_components.p,{children:[`The feature’s client-side validation framework allows customers to validate user input using HTML attributes to execute one or more custom validation functions. Validation functions can be included directly in the Partial or included in the `,_jsx(_components.code,{children:`\u003chead>`}),` of the page template.`]}),`\n`,_jsx(_components.p,{children:`To add client-side validation to a form element:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`Reference the validation function using the `,_jsx(_components.code,{children:`data-ulp-validation-function`}),` attribute on the `,_jsx(_components.code,{children:`\u003cdiv class=\"ulp-error-info\">`}),` element.`]}),`\n`,_jsxs(_components.li,{children:[`Declare which DOM events the validation function should be run on using the `,_jsx(_components.code,{children:`data-ulp-validation-event-listeners`}),` attribute on the `,_jsx(_components.code,{children:`\u003cdiv class=\"ulp-error-info\">`}),` element, noting that validations run automatically on submission.`]}),`\n`,_jsxs(_components.li,{children:[`For WCAG compliance, inputs must be programmatically linked to their error messages - for example, by using `,_jsx(_components.code,{children:`aria-describedby=\"error-id\"`}),` and `,_jsx(_components.code,{children:`aria-invalid=\"true\"`}),` - to ensure screen readers announce validation errors.`]}),`\n`]}),`\n`,_jsxs(Callout,{icon:`file-lines`,color:`#0EA5E9`,iconType:`regular`,children:[_jsx(_components.p,{children:`Be cautious when using third-party JavaScript on your signup page. Sensitive security-related information often flows through the signup page, leaving it vulnerable to cross-site scripting.`}),_jsx(_components.p,{children:`Whenever possible, Auth0 recommends validating user-provided data before submitting.`})]}),`\n`,_jsx(Heading,{level:`2`,id:`localize-content`,children:`Localize content`}),`\n`,_jsxs(_components.p,{children:[`Partial content can be localized by defining new custom text variables using the `,_jsx(_components.a,{href:`/docs/api/management/v2/prompts/put-custom-text-by-language`,children:`Custom Text API`}),`. Up to thirty custom text variables can be defined per screen/language combination.`]}),`\n`,_jsx(Heading,{level:`3`,id:`create-or-update-a-custom-text-variable`,children:`Create or update a custom text variable`}),`\n`,_jsxs(_components.p,{children:[`Manage custom text variables with the `,_jsx(_components.a,{href:`/docs/api/management/v2/prompts/get-custom-text-by-language`,children:`Custom Text API`}),`. Calls must specify the `,_jsx(_components.code,{children:`screen`}),` when adding, updating, or deleting a custom text variable. Custom text variables follow the `,_jsx(_components.code,{children:`var-\u003cname>`}),` naming convention. Markdown links are supported and are converted to HTML `,_jsx(_components.code,{children:`\u003ca>`}),` elements before being displayed to users.`]}),`\n`,_jsxs(_components.p,{children:[`Below is an example call to add a variable for the text of a terms of service checkbox label in English and Spanish. See the `,_jsx(Tooltip,{tip:`Management API: A product to allow customers to perform administrative tasks.`,cta:`View Glossary`,href:`/docs/glossary?term=Management+API`,children:`Management API`}),` to learn more.`]}),`\n`,_jsx(CodeBlock,{filename:``,lines:`true`,numberOfLines:`13`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`13`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`# PUT /api/v`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`2`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`/prompts/signup-id/custom-text/en`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"signup\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"var-tos\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"I agree with the [Terms of Service](https://en.example.com/tos)\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`# PUT /api/v`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`2`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`/prompts/signup-id/custom-text/es`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"signup\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"var-tos\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Estoy de acuerdo con los [Términos de Servicio](https://es.example.com/tos)\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),`\n`,_jsx(Heading,{level:`3`,id:`use-a-custom-text-variable-in-a-partial`,children:`Use a custom text variable in a Partial`}),`\n`,_jsxs(_components.p,{children:[`Custom text variables are referenced in partials using the `,_jsx(_components.code,{children:`prompts.screen.text`}),` object; the reference for the `,_jsx(_components.code,{children:`var-tos`}),` example in the previous section is `,_jsx(_components.code,{children:`prompt.screen.text.varTos`}),`. See below for an example of how to use a previously created variable in a partial on the Signup ID Prompt, noting that the Management API’s `,_jsx(_components.code,{children:`var-tos`}),` variable is referenced as `,_jsx(_components.code,{children:`varTos`}),` in the partial.`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`5`,language:`html`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`html`,children:_jsxs(_components.code,{language:`html`,numberOfLines:`5`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`# PUT api/v2/prompts/signup/partials`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`\u003c`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`div`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` class`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'ulp-field'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:` \u003c`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`input`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` type`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'checkbox'`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'ulp-terms-of-service'`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` id`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'terms-of-service'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:` \u003c`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`label`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` for`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'terms-of-service'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{{ prompt.screen.text.varTos }}`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`\u003c/`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`label`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`\u003c/`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`div`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>`})]}),`\n`]})})}),`\n`,_jsx(Heading,{level:`2`,id:`validate-and-save-captured-data`,children:`Validate and save captured data`}),`\n`,_jsx(_components.p,{children:`Data captured by custom form elements is available in Actions, and Auth0 recommends validating the data collected before saving or submitting it.`}),`\n`,_jsx(Callout,{icon:`file-lines`,color:`#0EA5E9`,iconType:`regular`,children:_jsxs(_components.p,{children:[`When using custom form elements, you must include the `,_jsx(_components.code,{children:`ulp-`}),` prefix with any input names to ensure the data is available to `,_jsx(_components.a,{href:`/docs/customize/actions/actions-overview`,children:`Actions`}),`.`]})}),`\n`,_jsxs(_components.p,{children:[`Each Action receives the captured data as an object on the `,_jsx(_components.code,{children:`event.request.body`}),`. Customers can return a validation error by using the `,_jsx(_components.code,{children:`api.validation.error`}),` function.`]}),`\n`,_jsxs(_components.p,{children:[`When using a `,_jsx(_components.a,{href:`/docs/authenticate/database-connections#use-auth0-user-store`,children:`database connection`}),`:`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`Data from the Signup Prompts is accessible on the `,_jsx(_components.a,{href:`/docs/actions/reference/pre-user-registration/pre-user-registration-event-object`,children:_jsx(_components.code,{children:`pre-user-registration`})}),` trigger. A validation error from the trigger prevents the user from registering.`]}),`\n`,_jsxs(_components.li,{children:[`Data from Login Prompts is accessible on the `,_jsx(_components.a,{href:`/docs/customize/actions/explore-triggers/post-login`,children:_jsx(_components.code,{children:`post-login`})}),` trigger. Validation errors are forwarded to the customer’s application error page.`]}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`When using `,_jsx(_components.a,{href:`/docs/authenticate/identity-providers/social-identity-providers`,children:`social`}),` or `,_jsx(_components.a,{href:`/docs/authenticate/identity-providers/enterprise-identity-providers/enable-enterprise-connections`,children:`enterprise`}),` connections:`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`Data from Login Prompts is accessible on the `,_jsx(_components.a,{href:`/docs/customize/actions/explore-triggers/post-login`,children:_jsx(_components.code,{children:`post-login`})}),` trigger. Validation errors are forwarded to the customer’s application error page.`]}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`When using a `,_jsx(_components.a,{href:`/docs/authenticate/database-connections/custom-db`,children:`custom database connection`}),`:`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[`Data from the Signup Prompts is accessible on the `,_jsx(_components.a,{href:`/docs/actions/reference/pre-user-registration/pre-user-registration-event-object`,children:_jsx(_components.code,{children:`pre-user-registration`})}),` trigger with the following custom database action scripts: `,_jsx(_components.a,{href:`/docs/authenticate/database-connections/custom-db/templates/create`,children:`Create User`}),` and `,_jsx(_components.a,{href:`/docs/authenticate/database-connections/custom-db/templates/login`,children:`Login`}),`.`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[`Data from Login Prompts is accessible on the `,_jsx(_components.a,{href:`/docs/customize/actions/explore-triggers/post-login`,children:_jsx(_components.code,{children:`post-login`})}),` trigger with the following custom database action scripts: `,_jsx(_components.a,{href:`/docs/authenticate/database-connections/custom-db/templates/login`,children:`Login`}),` and `,_jsx(_components.a,{href:`/docs/authenticate/database-connections/custom-db/templates/change-password`,children:`Change Password`}),`.`]}),`\n`]}),`\n`]}),`\n`,_jsx(Callout,{icon:`file-lines`,color:`#0EA5E9`,iconType:`regular`,children:_jsxs(_components.p,{children:[`To use custom database action scripts, enable `,_jsx(_components.strong,{children:`Context objects in database scripts`}),` in your custom database connection. To learn more, read `,_jsx(_components.a,{href:`/docs/authenticate/database-connections/custom-db/create-db-connection#enable-context-object`,children:`Enable context object`}),`.`]})}),`\n`,_jsxs(_components.p,{children:[`When using a `,_jsx(_components.a,{href:`/docs/authenticate/passwordless/passwordless-with-universal-login`,children:`Passwordless connection`}),`:`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`Data from both the Signup and Login Prompts is accessible on the `,_jsx(_components.a,{href:`/docs/customize/actions/explore-triggers/post-login`,children:_jsx(_components.code,{children:`post-login`})}),` trigger. Validation errors are forwarded to the customer’s application error page.`]}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`When using `,_jsx(_components.a,{href:`/docs/authenticate/database-connections/passkeys`,children:`passkey`}),` prompts:`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`Data from the `,_jsx(_components.code,{children:`passkey-enrollment`}),` prompt is accessible on the `,_jsx(_components.a,{href:`/docs/actions/reference/pre-user-registration/pre-user-registration-event-object`,children:_jsx(_components.code,{children:`pre-user-registration`})}),` trigger. A validation error from the trigger prevents the user from registering.`]}),`\n`,_jsxs(_components.li,{children:[`The `,_jsx(_components.code,{children:`passkey-enrollment`}),` and `,_jsx(_components.code,{children:`passkey-enrollment-local`}),` prompts never capture data on the Post Login trigger.`]}),`\n`,_jsxs(_components.li,{children:[`Data from the `,_jsx(_components.code,{children:`passkey-enrollment-local`}),` prompt is not accessible since it is always displayed after the `,_jsx(_components.a,{href:`/docs/customize/actions/explore-triggers/post-login`,children:_jsx(_components.code,{children:`post-login`})}),` trigger is run.`]}),`\n`]}),`\n`,_jsxs(Callout,{icon:`file-lines`,color:`#0EA5E9`,iconType:`regular`,children:[_jsx(_components.p,{children:`Sanitize any data that you collect on the form before saving or rendering it.`}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`Ensure any data being saved has passed through `,_jsxs(_components.a,{href:`https://shopify.github.io/liquid/filters/escape/`,children:[`Liquid’s `,_jsx(_components.code,{children:`{{escape}}`}),` helper function`]})]}),`\n`,_jsx(_components.li,{children:`If you render data in an Email Template, remove Liquid syntax`}),`\n`,_jsx(_components.li,{children:`If you render data on a webpage, escape HTML entities`}),`\n`,_jsx(_components.li,{children:`If you save data to a database, use parameterized queries`}),`\n`,_jsxs(_components.li,{children:[`If you pass data into query string, encode with eg: `,_jsx(_components.code,{children:`{{encodeURI}}`}),` or `,_jsx(_components.code,{children:`{{encodeURIParam}}`})]}),`\n`]}),_jsxs(_components.p,{children:[`For more information regarding risk mitigation and best practices for securely storing data see `,_jsx(_components.a,{href:`https://cheatsheetseries.owasp.org/cheatsheets/Input_Validation_Cheat_Sheet.html`,children:`this cheatsheet`}),`.`]})]}),`\n`,_jsx(Heading,{level:`3`,id:`save-to-user-metadata`,children:`Save to user metadata`}),`\n`,_jsxs(_components.p,{children:[`From the Action, captured data can be sent to an external API for validation and storage or saved in `,_jsx(_components.code,{children:`user_metadata`}),` on the user via `,_jsx(_components.code,{children:`api.user.setUserMetadata`}),`.`]}),`\n`,_jsx(CodeBlock,{filename:``,lines:`true`,numberOfLines:`15`,language:`javascript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`javascript`,children:_jsxs(_components.code,{language:`javascript`,numberOfLines:`15`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// Given this code in the signup form`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// \u003cdiv class=\"ulp-field\">`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// \u003clabel for=\"full-name\">Full Name\u003c/label>`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// \u003cinput type=\"text\" name=\"ulp-full-name\" id=\"full-name\">`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// \u003c/div>`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:`exports`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`onExecutePreUserRegistration`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` async`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` (`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`event`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`api`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`) `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`=>`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` fullName`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` event`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`request`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`body`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`[`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'ulp-full-name'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`];`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` if`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`!`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`fullName`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`) {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` api`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`validation`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`error`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"invalid_payload\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Missing Name\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`);`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` return`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` api`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`user`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`setUserMetadata`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"fullName\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`fullName`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`);`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`};`})}),`\n`]})})})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"description":"Learn how to add custom fields and text to the Auth0 Universal Login signup and login prompts.","title":"Customize Signup and Login Prompts","href":"/docs/customize/login-pages/universal-login/customize-signup-and-login-prompts"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Use cases","slug":"use-cases","depth":2,"children":[]},{"title":"Terminology","slug":"terminology","depth":2,"children":[]},{"title":"Use the Auth0 Dashboard to manage Partials","slug":"use-the-auth0-dashboard-to-manage-partials","depth":2,"children":[]},{"title":"Manage Partials programmatically","slug":"manage-partials-programmatically","depth":2,"children":[]},{"title":"Style and validate Form Inputs","slug":"style-and-validate-form-inputs","depth":2,"children":[{"title":"Client-side validation","slug":"client-side-validation","depth":3,"children":[]}]},{"title":"Localize content","slug":"localize-content","depth":2,"children":[{"title":"Create or update a custom text variable","slug":"create-or-update-a-custom-text-variable","depth":3,"children":[]},{"title":"Use a custom text variable in a Partial","slug":"use-a-custom-text-variable-in-a-partial","depth":3,"children":[]}]},{"title":"Validate and save captured data","slug":"validate-and-save-captured-data","depth":2,"children":[{"title":"Save to user metadata","slug":"save-to-user-metadata","depth":3,"children":[]}]}],"codeExamples":{}},"jsLinks":["/_mintlify/custom/auth0/68ac07e0f912aad4/docs/scripts/navbar-controller.js","/_mintlify/custom/auth0/98c52e2a822716a4/docs/scripts/overscroll-disable.js","/_mintlify/custom/auth0/15b21268d7cc82a0/ui/auth0-docs-ui-1.10.0.umd.js","/_mintlify/custom/auth0/edda60bac2809e28/ui/js/auth0-cli-language.js","/_mintlify/custom/auth0/af65702d2f0210f7/ui/universal-components/universal-components-1.0.27.umd.js"],"subdomain":"auth0","siteName":"Auth0 Docs","title":"Customize Signup and Login Prompts - Auth0 Docs","relatedPagesConfig":{"enabled":true,"limit":5,"mode":"manual"},"navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{"en":{"href":"/docs/customize/login-pages/universal-login/customize-signup-and-login-prompts","matchLevel":0},"fr-ca":{"href":"/docs/fr-ca/customize/login-pages/universal-login/customize-signup-and-login-prompts","matchLevel":1},"ja-jp":{"href":"/docs/ja-jp/customize/login-pages/universal-login/customize-signup-and-login-prompts","matchLevel":1}}},"lastModified":"2026-10-28T18:56:35.324Z","originalFileLocation":"docs/customize/login-pages/universal-login/customize-signup-and-login-prompts.mdx","locale":"en"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Learn how to add custom fields and text to the Auth0 Universal Login signup and login prompts.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Auth0 Docs\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/svg+xml\" sizes=\"180x180\" href=\"https://mintlify.s3.us-west-1.amazonaws.com/auth0/docs/images/logo/favicon.svg\">\u003clink data-mint-head rel=\"icon\" type=\"image/svg+xml\" sizes=\"32x32\" href=\"https://mintlify.s3.us-west-1.amazonaws.com/auth0/docs/images/logo/favicon.svg\">\u003clink data-mint-head rel=\"icon\" type=\"image/svg+xml\" sizes=\"16x16\" href=\"https://mintlify.s3.us-west-1.amazonaws.com/auth0/docs/images/logo/favicon.svg\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/svg+xml\" href=\"https://mintlify.s3.us-west-1.amazonaws.com/auth0/docs/images/logo/favicon.svg\">\u003cmeta data-mint-head property=\"og:title\" content=\"Customize Signup and Login Prompts - Auth0 Docs\">\u003cmeta data-mint-head property=\"og:description\" content=\"Learn how to add custom fields and text to the Auth0 Universal Login signup and login prompts.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Auth0 Docs\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://auth0.com/docs/customize/login-pages/universal-login/customize-signup-and-login-prompts\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://auth0.mintlify.site/docs/images/share-image.png\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Customize Signup and Login Prompts - Auth0 Docs\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Learn how to add custom fields and text to the Auth0 Universal Login signup and login prompts.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://auth0.mintlify.site/docs/images/share-image.png\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"https://mintlify.s3.us-west-1.amazonaws.com/auth0/_generated/favicon/browserconfig.xml?v=3\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Auth0 Docs\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#9921FE\">\u003clink data-mint-head rel=\"canonical\" href=\"https://auth0.com/docs/customize/login-pages/universal-login/customize-signup-and-login-prompts\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/docs/customize/login-pages/universal-login/customize-signup-and-login-prompts.md\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"en\" href=\"https://auth0.com/docs/customize/login-pages/universal-login/customize-signup-and-login-prompts\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"fr-CA\" href=\"https://auth0.com/docs/fr-ca/customize/login-pages/universal-login/customize-signup-and-login-prompts\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"ja-JP\" href=\"https://auth0.com/docs/ja-jp/customize/login-pages/universal-login/customize-signup-and-login-prompts\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"x-default\" href=\"https://auth0.com/docs/customize/login-pages/universal-login/customize-signup-and-login-prompts\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://auth0.com/#organization\",\"name\":\"Auth0 Docs\",\"url\":\"https://auth0.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintlify.s3.us-west-1.amazonaws.com/auth0/docs/images/logo/light.svg\"}},{\"@type\":\"WebSite\",\"@id\":\"https://auth0.com#website\",\"name\":\"Auth0 Docs\",\"url\":\"https://auth0.com\",\"publisher\":{\"@id\":\"https://auth0.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://auth0.com/docs/customize/login-pages/universal-login/customize-signup-and-login-prompts#webpage\",\"url\":\"https://auth0.com/docs/customize/login-pages/universal-login/customize-signup-and-login-prompts\",\"name\":\"Customize Signup and Login Prompts\",\"description\":\"Learn how to add custom fields and text to the Auth0 Universal Login signup and login prompts.\",\"dateModified\":\"2026-10-28T18:56:35.324Z\",\"isPartOf\":{\"@id\":\"https://auth0.com#website\"},\"breadcrumb\":{\"@id\":\"https://auth0.com/docs/customize/login-pages/universal-login/customize-signup-and-login-prompts#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://auth0.com/docs/customize/login-pages/universal-login/customize-signup-and-login-prompts#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Customize Login Pages\",\"item\":\"https://auth0.com/docs/customize/login-pages\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Customize Universal Login\",\"item\":\"https://auth0.com/docs/customize/login-pages/universal-login\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Customize Signup and Login Prompts\",\"item\":\"https://auth0.com/docs/customize/login-pages/universal-login/customize-signup-and-login-prompts\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://auth0.com/docs/customize/login-pages/universal-login/customize-signup-and-login-prompts#article\",\"headline\":\"Customize Signup and Login Prompts\",\"name\":\"Customize Signup and Login Prompts\",\"description\":\"Learn how to add custom fields and text to the Auth0 Universal Login signup and login prompts.\",\"url\":\"https://auth0.com/docs/customize/login-pages/universal-login/customize-signup-and-login-prompts\",\"mainEntityOfPage\":{\"@id\":\"https://auth0.com/docs/customize/login-pages/universal-login/customize-signup-and-login-prompts#webpage\"},\"image\":\"https://auth0.com/docs/images/share-image.png\",\"dateModified\":\"2026-10-28T18:56:35.324Z\",\"publisher\":{\"@id\":\"https://auth0.com/#organization\"},\"isPartOf\":{\"@id\":\"https://auth0.com#website\"}}]}\u003c/script>","agentPointerHref":"/docs/customize/login-pages/universal-login/customize-signup-and-login-prompts.md","siteName":"Auth0 Docs","nav":{"global":null,"languages":[{"language":"en","footer":{"socials":{"x-twitter":"https://x.com/auth0","github":"https://github.com/auth0","linkedin":"https://www.linkedin.com/company/auth0"},"links":[{"header":"Developers","items":[{"label":"Developer Hub","href":"https://developer.auth0.com"},{"label":"Code Samples \u0026 Guides","href":"https://developer.auth0.com/resources"},{"label":"Zero Index Newsletter","href":"https://auth0.com/blog/newsletter"},{"label":"Blog","href":"https://auth0.com/blog"},{"label":"Changelog","href":"https://auth0.com/changelog"}]},{"header":"Docs","items":[{"label":"Documentation","href":"https://auth0.com/docs"},{"label":"Quickstarts","href":"https://auth0.com/docs/quickstarts"},{"label":"APIs","href":"https://auth0.com/docs/api"},{"label":"SDK Libraries","href":"https://auth0.com/docs/libraries"},{"label":"Learn","href":"https://auth0.com/learn"},{"label":"Intro to IAM (CIAM)","href":"https://auth0.com/intro-to-iam"},{"label":"Reports","href":"https://auth0.com/resources/whitepapers"},{"label":"Webinars","href":"https://auth0.com/resources/webinars"}]},{"header":"Support Center","items":[{"label":"Community","href":"https://community.auth0.com"},{"label":"Help","href":"https://support.auth0.com"},{"label":"FAQs","href":"https://auth0.com/docs/troubleshoot"},{"label":"Auth0","href":"https://auth0.com"}]},{"header":"Company","items":[{"label":"Our Customers","href":"https://auth0.com/customers"},{"label":"Compliance","href":"https://auth0.com/security"},{"label":"Partners","href":"https://auth0.com/partners"},{"label":"Careers","href":"https://www.okta.com/company/careers"},{"label":"Okta + Auth0","href":"https://www.okta.com/okta-and-auth0"},{"label":"About us","href":"https://auth0.com/about"}]}]},"tabs":[{"tab":"Get Started","icon":"play","directory":"accordion","pages":[{"title":"Get Started","href":"/docs/get-started"}]},{"tab":"Authenticate","icon":"lock-keyhole","pages":[{"title":"Authenticate","href":"/docs/authenticate"}]},{"tab":"Manage Users","icon":"user-group","directory":"accordion","pages":[{"title":"Manage Users","href":"/docs/manage-users"}]},{"tab":"Brand","icon":"swatchbook","directory":"accordion","pages":[{"title":"Branding Overview","href":"/docs/customize"},{"group":"Customize Login Pages","root":{"title":"Customize Login Pages","href":"/docs/customize/login-pages"},"expanded":true,"pages":[{"title":"Manage Core Configuration","href":"/docs/customize/login-pages/manage-core-configuration"},{"group":"Customize Universal Login","root":{"title":"Customize Universal Login","href":"/docs/customize/login-pages/universal-login"},"pages":[{"title":"Customize Universal Login Page Themes","href":"/docs/customize/login-pages/universal-login/customize-themes"},{"title":"Customize Universal Login Page Templates","href":"/docs/customize/login-pages/universal-login/customize-templates"},{"description":"Learn how to customize Universal Login text elements using the Auth0 Dashboard or Management API","title":"Customize Universal Login Text Elements","href":"/docs/customize/login-pages/universal-login/customize-text-elements"},{"group":"Customize Signup and Login Prompts","root":{"title":"Customize Signup and Login Prompts","href":"/docs/customize/login-pages/universal-login/customize-signup-and-login-prompts"},"pages":[{"description":"Learn how you can implement flexible connection switching with Universal Login","title":"Configure Flexible Connection Switching","href":"/docs/customize/login-pages/universal-login/customize-signup-and-login-prompts/connection-switching"},{"description":"Learn how you can add a preferred language menu to Universal Login prompts.","title":"Configure Flexible Language Selection","href":"/docs/customize/login-pages/universal-login/customize-signup-and-login-prompts/language-selection"},{"description":"Learn how to use dynamic variables to render localized Universal Login signup and login prompts.","title":"Use Dynamic Variables to Internationalize Custom Form Elements","href":"/docs/customize/login-pages/universal-login/customize-signup-and-login-prompts/use-dynamic-variables-to-internationalize-custom-form-elements"},{"description":"Use Auth0 Actions to validate and store data from custom fields from a customized Universal Login signup page.","title":"Use Actions to Validate and Store End-user Data Gathered By Signup Prompt Customizations","href":"/docs/customize/login-pages/universal-login/customize-signup-and-login-prompts/use-actions-to-validate-and-store-end-user-data-gathered-by-signup-prompt"}]}]},{"group":"Customize Classic Login","root":{"title":"Customize Classic Login","href":"/docs/customize/login-pages/classic-login"},"pages":[{"title":"Customize Classic Login Pages","href":"/docs/customize/login-pages/classic-login/customization-classic"},{"title":"Customize Classic Login Pages with Lock or SDK","href":"/docs/customize/login-pages/classic-login/customize-with-lock-sdk"},{"title":"Customize Lock Error Messages","href":"/docs/customize/login-pages/classic-login/customize-lock-error-messages"},{"title":"Customize Classic Password Reset Page","href":"/docs/customize/login-pages/classic-login/customize-password-reset-page"},{"title":"Classic Login Page Version Control","href":"/docs/customize/login-pages/classic-login/version-control"}]},{"title":"Customize Consent Prompts","href":"/docs/customize/login-pages/customize-consent-prompts"},{"title":"Customize Error Pages","href":"/docs/customize/login-pages/custom-error-pages"},{"group":"Advanced Customizations for Universal Login","root":{"title":"Advanced Customizations for Universal Login (ACUL)","href":"/docs/customize/login-pages/advanced-customizations"},"pages":[{"sidebarTitle":"Configure ACUL","title":"Configure ACUL","href":"/docs/customize/login-pages/advanced-customizations/configure/overview"},{"title":"ACUL Rendering Configuration Reference","href":"/docs/customize/login-pages/advanced-customizations/configure/reference"},{"title":"ACUL Quickstart","href":"/docs/customize/login-pages/advanced-customizations/quickstart"},{"title":"ACUL Development Workflow","href":"/docs/customize/login-pages/advanced-customizations/development-workflow"},{"title":"ACUL Deployment Workflow","href":"/docs/customize/login-pages/advanced-customizations/deployment-workflow"},{"group":"ACUL Use Cases","root":{"title":"ACUL Use Cases","href":"/docs/customize/login-pages/advanced-customizations/acul-use-cases"},"pages":[{"title":"Create a theme with Tailwind","href":"/docs/customize/login-pages/advanced-customizations/acul-use-cases/create-theme-tailwind"},{"title":"Integrate a Custom Component Library","href":"/docs/customize/login-pages/advanced-customizations/acul-use-cases/integrate-custom-component"},{"title":"Migrate from Classic Login to Universal Login with ACUL","href":"/docs/customize/login-pages/advanced-customizations/acul-use-cases/migrate-classic-universal-login"}]},{"title":"ACUL SDKs and Resources","href":"/docs/customize/login-pages/advanced-customizations/reference"}]}]},{"group":"Customize Portals","root":{"title":"Universal Portals","sidebarTitle":"Overview","href":"/docs/customize/portals"},"expanded":true,"pages":[{"title":"Universal Portals Architecture","sidebarTitle":"Architecture","href":"/docs/customize/portals/architecture"},{"title":"Universal Portals Quickstart","sidebarTitle":"Quickstart","href":"/docs/customize/portals/quickstart"},{"title":"Configure Universal Portals","sidebarTitle":"Configure Universal Portals","href":"/docs/customize/portals/customize-portals"},{"title":"Configure an Application for Universal Portals","sidebarTitle":"Configure Application","href":"/docs/customize/portals/configure-portal-application"},{"title":"Access Portals","sidebarTitle":"Access Portals","href":"/docs/customize/portals/access-portals"},{"group":"Reference","pages":[{"title":"Portal Components Library Reference","sidebarTitle":"Portal Components","href":"/docs/customize/portals/portal-components"},{"title":"Troubleshoot Universal Portals","sidebarTitle":"Troubleshoot","href":"/docs/customize/portals/troubleshoot-portals"}]}]},{"group":"Custom Domains","root":{"title":"Custom Domains","href":"/docs/customize/custom-domains"},"expanded":true,"pages":[{"title":"Configure Custom Domains with Auth0-Managed Certificates","href":"/docs/customize/custom-domains/auth0-managed-certificates"},{"group":"Self-Managed Certificates","root":{"title":"Configure Custom Domains with Self-Managed Certificates","href":"/docs/customize/custom-domains/self-managed-certificates"},"pages":[{"title":"Configure Google Cloud Platform with Load Balancing as Reverse Proxy","href":"/docs/customize/custom-domains/self-managed-certificates/configure-gcp-as-reverse-proxy"},{"title":"Configure Cloudflare as Reverse Proxy","href":"/docs/customize/custom-domains/self-managed-certificates/configure-cloudflare-for-use-as-reverse-proxy"},{"title":"Configure AWS CloudFront as Reverse Proxy","href":"/docs/customize/custom-domains/self-managed-certificates/configure-aws-cloudfront-for-use-as-reverse-proxy"},{"title":"Configure Azure CDN as Reverse Proxy","href":"/docs/customize/custom-domains/self-managed-certificates/configure-azure-cdn-for-use-as-reverse-proxy"},{"title":"Configure Akamai as Reverse Proxy","href":"/docs/customize/custom-domains/self-managed-certificates/configure-akamai-for-use-as-reverse-proxy"},{"title":"TLS (SSL) Versions and Ciphers","href":"/docs/customize/custom-domains/self-managed-certificates/tls-ssl"}]},{"title":"Configure Features to Use Custom Domains","href":"/docs/customize/custom-domains/configure-features-to-use-custom-domains"},{"group":"Multiple Custom Domains","pages":[{"title":"Multiple Custom Domains","href":"/docs/customize/custom-domains/multiple-custom-domains"},{"title":"Default Custom Domain","href":"/docs/customize/custom-domains/multiple-custom-domains/default-domain"},{"title":"Migrate to Multiple Custom Domains","href":"/docs/customize/custom-domains/multiple-custom-domains/migration-guide"},{"title":"Actions Integration with Multiple Custom Domains","href":"/docs/customize/custom-domains/multiple-custom-domains/actions-integration"},{"title":"SDK Configuration for Multiple Custom Domains","href":"/docs/customize/custom-domains/multiple-custom-domains/sdk-configuration"},{"title":"Passkeys with Multiple Custom Domains","href":"/docs/customize/custom-domains/multiple-custom-domains/passkeys"},{"title":"SAML Migration for Custom Domains","href":"/docs/customize/custom-domains/multiple-custom-domains/saml-migration"},{"title":"Multiple Custom Domain Use Cases","href":"/docs/customize/custom-domains/multiple-custom-domains/mcd-use-cases"},{"title":"Multiple Custom Domains Best Practices","href":"/docs/customize/custom-domains/multiple-custom-domains/mcd-best-practices"}]}]},{"group":"Customize Emails","root":{"title":"Customize Emails","href":"/docs/customize/email"},"expanded":true,"pages":[{"group":"SMTP Email Providers","root":{"title":"SMTP Email Provider Overview","href":"/docs/customize/email/smtp-email-providers"},"pages":[{"title":"Configure Amazon Simple Email Service (SES) as an Email Provider","sidebarTitle":"Configure Amazon SES","href":"/docs/customize/email/smtp-email-providers/amazon-ses"},{"title":"Configure Azure Communication Services as an Email Provider","sidebarTitle":"Configure Azure Communication Services","href":"/docs/customize/email/smtp-email-providers/azure-communication-services"},{"title":"Configure Mailgun as an Email Provider","sidebarTitle":"Configure Mailgun","href":"/docs/customize/email/smtp-email-providers/mailgun"},{"title":"Configure Mandrill as an Email Provider","sidebarTitle":"Configure Mandrill","href":"/docs/customize/email/smtp-email-providers/mandrill"},{"title":"Configure Microsoft 365 Exchange Online as an Email Provider","sidebarTitle":"Configure Microsoft 365 Exchange Online","href":"/docs/customize/email/smtp-email-providers/microsoft-365-exchange-online"},{"title":"Configure Resend as an Email Provider","sidebarTitle":"Configure Resend","href":"/docs/customize/email/smtp-email-providers/resend"},{"title":"Configure SendGrid as an Email Provider","sidebarTitle":"Configure SendGrid","href":"/docs/customize/email/smtp-email-providers/sendgrid"},{"title":"Configure SparkPost as an Email Provider","sidebarTitle":"Configure SparkPost","href":"/docs/customize/email/smtp-email-providers/sparkpost"},{"title":"Configure an Email Provider using SMTP Server Details","sidebarTitle":"Configure an SMTP Server","href":"/docs/customize/email/smtp-email-providers/smtp-server"},{"group":"Custom Configuration with Actions","root":{"title":"Custom Email Provider Configuration with Actions","href":"/docs/customize/email/smtp-email-providers/custom"},"pages":[{"title":"Configure an Email Provider with a Customized Action","sidebarTitle":"Configure a Custom Email Provider Action","href":"/docs/customize/email/smtp-email-providers/custom/configure-action"},{"title":"Event Object","sidebarTitle":"Event Object","href":"/docs/actions/reference/custom-email-provider/custom-email-provider-event-object"},{"title":"API Object","sidebarTitle":"API Object","href":"/docs/actions/reference/custom-email-provider/custom-email-provider-api-object"}]},{"title":"Troubleshoot Email Provider Delivery Issues","href":"/docs/customize/email/smtp-email-providers/troubleshooting"}]},{"group":"Email Templates","root":{"title":"Email Templates","href":"/docs/customize/email/email-templates"},"pages":[{"title":"Customize Email Templates","href":"/docs/customize/email/email-templates/customize-email-templates"},{"title":"Supported Liquid Syntax for Email Templates","sidebarTitle":"Supported Liquid Syntax","href":"/docs/customize/email/email-templates/supported-liquid-syntax"}]},{"title":"Customize Email and Ticket Handling with the Management API","href":"/docs/customize/email/manage-email-flow"},{"title":"Implement User Invitations for Application Sign-Up using Password Reset Emails","sidebarTitle":"Implement User Invitations using Password Reset Emails","href":"/docs/customize/email/send-email-invitations-for-application-signup"}]},{"group":"Customize Phone Messages","root":{"title":"Customize Phone Messages","href":"/docs/customize/phone-messages"},"expanded":true,"pages":[{"group":"Auth0's Unified Phone Experience","root":{"title":"Auth0's Unified Phone Experience","href":"/docs/customize/phone-messages/unified-phone"},"pages":[{"title":"Use Auth0's Unified Phone Experience for Multi-Factor Authentication","href":"/docs/customize/phone-messages/unified-phone/use-auth0s-unified-phone-experience-for-multi-factor-authentication"},{"title":"Use the Unified Phone Experience for Passwordless","href":"/docs/customize/phone-messages/unified-phone/unified-phone-experience-passwordless"},{"title":"Configure Auth0 Unified Phone Experience","href":"/docs/customize/phone-messages/unified-phone/configure-unified-phone"},{"title":"Migrate to Unified Phone Experience with Terraform","href":"/docs/customize/phone-messages/unified-phone/migrate-to-unified-phone-experience-with-terraform"}]},{"group":"Configure Phone Messaging Providers","root":{"title":"Configure Phone Messaging Providers","sidebarTitle":"Configure a Phone Messaging Provider","href":"/docs/customize/phone-messages/configure-phone-messaging-providers"},"directory":"accordion","pages":[{"title":"Configure Twilio as a Phone Messaging Provider","sidebarTitle":"Twilio","href":"/docs/customize/phone-messages/configure-phone-messaging-providers/configure-twilio-as-a-phone-messaging-provider"},{"group":"Custom Phone Provider","root":{"title":"Configure a Custom Phone Provider","sidebarTitle":"Overview","href":"/docs/customize/phone-messages/configure-phone-messaging-providers/configure-a-custom-phone-provider"},"pages":[{"title":"Configure a Custom Phone Provider with Terraform","sidebarTitle":"Terraform","href":"/docs/customize/phone-messages/configure-phone-messaging-providers/configure-a-custom-phone-provider/configure-a-custom-phone-provider-with-terraform"},{"title":"Configure a Custom Phone Provider with Twilio Verify","sidebarTitle":"Twilio Verify","href":"/docs/customize/phone-messages/configure-phone-messaging-providers/configure-a-custom-phone-provider/configure-a-custom-phone-provider-with-twilio-verify"},{"title":"Event Object","sidebarTitle":"Event Object","href":"/docs/actions/reference/custom-phone-provider/custom-phone-provider-event-object"},{"title":"API Object","sidebarTitle":"API Object","href":"/docs/actions/reference/custom-phone-provider/custom-phone-provider-api-object"}]}]},{"group":"Phone Templates","root":{"title":"Phone Templates","href":"/docs/customize/phone-messages/phone-templates"},"pages":[{"title":"Customize Phone Templates","href":"/docs/customize/phone-messages/phone-templates/customize"},{"title":"Supported Liquid Syntax for Phone Templates","sidebarTitle":"Supported Liquid Syntax","href":"/docs/customize/phone-messages/phone-templates/supported-liquid-syntax"}]},{"title":"Customize Multi-factor Authentication SMS and Voice Messages","href":"/docs/customize/customize-sms-or-voice-messages"}]},{"group":"Optimize Conversions","pages":[{"title":"Auth0 Identity Conversion Suite","sidebarTitle":"Identity Conversion Suite","href":"/docs/customize/identity-conversion-suite"},{"group":"Experiment Center","root":{"title":"Experiment Center","href":"/docs/customize/experiment-center"},"pages":[{"title":"Entities Details","sidebarTitle":"Entities Details","href":"/docs/customize/experiment-center/entities"},{"group":"Integrations","pages":[{"title":"Experiment Center and Auth0 ACUL Integration","sidebarTitle":"ACUL Integration","href":"/docs/customize/experiment-center/integrations/acul-integration-guide"},{"title":"Experiment Center and Auth0 Actions Integration","sidebarTitle":"Actions Integration","href":"/docs/customize/experiment-center/integrations/actions-integration-guide"},{"title":"Experiment Center and Page Templates Integration","sidebarTitle":"Page Templates Integration","href":"/docs/customize/experiment-center/integrations/page-templates-integration-guide"}]}]}]},{"group":"Internationalization and Localization","root":{"title":"Internationalization and Localization","href":"/docs/customize/internationalization-and-localization"},"expanded":true,"pages":[{"title":"Universal Login Internationalization","href":"/docs/customize/internationalization-and-localization/universal-login-internationalization"},{"title":"Lock Internationalization","href":"/docs/customize/internationalization-and-localization/lock-internationalization"},{"title":"Lock.swift Internationalization","href":"/docs/customize/internationalization-and-localization/lock-swift-internationalization"},{"title":"Lock.Android Internationalization","href":"/docs/customize/internationalization-and-localization/lock-android-internationalization"},{"title":"Customize Translation of Lock Password Options","href":"/docs/customize/internationalization-and-localization/password-options-translation"}]}]},{"tab":"Extend","icon":"arrow-up-small-big","directory":"accordion","pages":[{"title":"Extend","href":"/docs/extend"}]},{"tab":"Secure","icon":"shield-check","pages":[{"title":"Secure","href":"/docs/secure"}]},{"tab":"Monitor","icon":"chart-simple","directory":"accordion","pages":[{"title":"Monitor","href":"/docs/deploy-monitor"}]},{"tab":"AI Agents \u0026 MCP","icon":"robot","directory":"accordion","pages":[{"title":"AI Agents \u0026 MCP","href":"/docs/ai-agents-mcp"}]},{"tab":"Platform","icon":"credit-card","pages":[{"title":"Platform","href":"/docs/troubleshoot"}]},{"tab":"Dev Tools","icon":"code-simple","menu":[{"item":"APIs","icon":"code-pull-request","pages":[{"title":"APIs","href":"/docs/api"}]},{"item":"CLIs","icon":"terminal","pages":[{"title":"CLIs","href":"/docs/deploy-monitor/auth0-cli"}]},{"item":"SDKs","icon":"cube","dropdowns":[{"dropdown":"SDK Libraries","icon":"book","description":"","pages":[{"title":"SDK Libraries","href":"/docs/libraries"}]},{"dropdown":"auth0-spa-js","icon":"book-open","description":"version: v2.30.0","pages":[{"title":"auth0-spa-js","href":"/docs/sdk/auth0-spa-js/functions/createAuth0Client"}]},{"dropdown":"auth0-react","icon":"book-open","description":"version: v2.30.0","pages":[{"title":"auth0-react","href":"/docs/sdk/auth0-react/functions/Auth0Provider"}]},{"dropdown":"auth0-acul-js","icon":"book-open","description":"","pages":[{"title":"auth0-acul-js","href":"/docs/libraries/acul/js-sdk"}]},{"dropdown":"auth0-acul-react","icon":"book-open","description":"","pages":[{"title":"auth0-acul-react","href":"/docs/libraries/acul/react-sdk"}]},{"dropdown":"auth0-android","icon":"book-open","description":"","pages":[{"title":"auth0-android","href":"/docs/libraries/auth0-android/auth0-android-configuration"}]},{"dropdown":"auth0-php","icon":"book-open","description":"","pages":[{"title":"auth0-php","href":"/docs/libraries/auth0-php"}]}]},{"item":"Universal Components","icon":"objects-column","pages":[{"title":"Universal Components","href":"/docs/get-started/universal-components/universal-components-overview"}]}],"pages":[{"title":"Dev Tools","href":"/docs/api"}]},{"tab":"auth0-spa-js","hidden":true,"pages":[{"title":"auth0-spa-js","href":"/docs/sdk/auth0-spa-js/package-overview"}]},{"tab":"auth0-react","hidden":true,"pages":[{"title":"auth0-react","href":"/docs/sdk/auth0-react/package-overview"}]}]},{"language":"fr-ca","footer":{"socials":{"x-twitter":"https://x.com/auth0","github":"https://github.com/auth0","linkedin":"https://www.linkedin.com/company/auth0"},"links":[{"header":"Développeurs","items":[{"label":"Espace développeurs","href":"https://developer.auth0.com"},{"label":"Exemples de code et guides","href":"https://developer.auth0.com/resources"},{"label":"Infolettre Zero Index","href":"https://auth0.com/blog/newsletter"},{"label":"Blogue","href":"https://auth0.com/blog"},{"label":"Journal des modifications","href":"https://auth0.com/changelog"}]},{"header":"Documentation","items":[{"label":"Documentation","href":"https://auth0.com/docs"},{"label":"Guides de démarrage rapide","href":"https://auth0.com/docs/quickstarts"},{"label":"API","href":"https://auth0.com/docs/api"},{"label":"Bibliothèques SDK","href":"https://auth0.com/docs/libraries"},{"label":"Apprendre","href":"https://auth0.com/learn"},{"label":"Introduction à l’IAM (CIAM)","href":"https://auth0.com/intro-to-iam"},{"label":"Rapports","href":"https://auth0.com/resources/whitepapers"},{"label":"Webinaires","href":"https://auth0.com/resources/webinars"}]},{"header":"Centre d’assistance","items":[{"label":"Communauté","href":"https://community.auth0.com"},{"label":"Aide","href":"https://support.auth0.com"},{"label":"Foire aux questions","href":"https://auth0.com/docs/troubleshoot"},{"label":"Auth0","href":"https://auth0.com"}]},{"header":"Entreprise","items":[{"label":"Nos clients","href":"https://auth0.com/customers"},{"label":"Conformité","href":"https://auth0.com/security"},{"label":"Partenaires","href":"https://auth0.com/partners"},{"label":"Carrières","href":"https://www.okta.com/company/careers"},{"label":"Okta + Auth0","href":"https://www.okta.com/okta-and-auth0"},{"label":"À propos de nous","href":"https://auth0.com/about"}]}]},"pages":[{"title":"fr-ca","href":"/docs/fr-ca/customize/login-pages/universal-login/customize-signup-and-login-prompts"}]},{"language":"ja-jp","footer":{"socials":{"x-twitter":"https://x.com/auth0","github":"https://github.com/auth0","linkedin":"https://www.linkedin.com/company/auth0"},"links":[{"header":"開発者向け","items":[{"label":"開発者ハブ","href":"https://developer.auth0.com"},{"label":"コードサンプルとガイド","href":"https://developer.auth0.com/resources"},{"label":"Zero Index Newsletter","href":"https://auth0.com/blog/newsletter"},{"label":"ブログ","href":"https://auth0.com/blog"},{"label":"変更履歴","href":"https://auth0.com/changelog"}]},{"header":"ドキュメント","items":[{"label":"ドキュメント","href":"https://auth0.com/docs"},{"label":"クイックスタート","href":"https://auth0.com/docs/quickstarts"},{"label":"API","href":"https://auth0.com/docs/api"},{"label":"SDKライブラリ","href":"https://auth0.com/docs/libraries"},{"label":"教育","href":"https://auth0.com/learn"},{"label":"IAM(CIAM)入門","href":"https://auth0.com/intro-to-iam"},{"label":"レポート","href":"https://auth0.com/resources/whitepapers"},{"label":"ウェビナー","href":"https://auth0.com/resources/webinars"}]},{"header":"サポートセンター","items":[{"label":"コミュニティ","href":"https://community.auth0.com"},{"label":"ヘルプ","href":"https://support.auth0.com"},{"label":"よくある質問","href":"https://auth0.com/docs/troubleshoot"},{"label":"Auth0","href":"https://auth0.com"}]},{"header":"会社情報","items":[{"label":"導入企業","href":"https://auth0.com/customers"},{"label":"コンプライアンス","href":"https://auth0.com/security"},{"label":"パートナー","href":"https://auth0.com/partners"},{"label":"採用情報","href":"https://www.okta.com/company/careers"},{"label":"Okta + Auth0","href":"https://www.okta.com/okta-and-auth0"},{"label":"私たちについて","href":"https://auth0.com/about"}]}]},"pages":[{"title":"ja-jp","href":"/docs/ja-jp/customize/login-pages/universal-login/customize-signup-and-login-prompts"}]}]},"basePath":"","title":"Customize Signup and Login Prompts - Auth0 Docs","buildId":"dpl_8hoxaqFTU7hTr6A2fUraxAyjuiZo","deploymentId":"dpl_8hoxaqFTU7hTr6A2fUraxAyjuiZo","dynamics":["07c022d89b","a74be98ba7"],"chunks":["Frame-Dmj010Ph.js","DynamicMarkdown-GHvayGOn.js","zoom-image-lightbox-8gCTkA22.js","lightbox-handle-r17bVUz3.js"]}