Advanced Customizations for Universal Login (ACUL)
Learn how Auth0 Advanced Customizations for Universal Login lets you replace the hosted login UI with your own React or Vanilla JS app while Auth0 still drives the authentication state machine.
Advanced Customizations for Universal Login (ACUL) extends the capabilities of Universal Login to support multi-branding, complex security configurations, and integration of numerous analytics platforms.With ACUL, you can write code in your preferred framework, integrate your existing analytics and A/B testing platforms, and define the user experience. The ACUL SDKs act as the connection between your custom code and Universal Login.
Build time begins when you build your customized authentication screens in your own environment.Use the ACUL SDKs to submit your custom code to define prompts and screens with your preferred frontend tech stack, like React or Angular. When you push commits, your CI/CD pipeline runs the build process, compiles your application into static JavaScript and CSS assets, and uploads these assets to your private cloud storage, which serves as your own content delivery network (CDN).Run time begins when your application redirects end users to your Auth0 login page.Auth0 recognizes the authentication screens you configured to use ACUL and serves a minimal host page. The user’s browser loads this page, which contains HTML tags pointing to your asset URLs on your CDN. The browser downloads your JavaScript and CSS, verifies their integrity using the Subresource Integrity (SRI) hashes, and renders your custom UI. From here, your application code and the ACUL SDK manage the rest of the user’s interaction.
{"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":""},"chroma":{"liveDeploymentHistoryId":"6aec6fb9ada4d37850e2a8a2","collectionId":"635ad705-2f6c-402b-b0a8-74a11c64c2a2","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6aec6fb9ada4d37850e2a8a2"},"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":"6aee1cea9fddecd69abca825","clientVersion":"0.0.4076","searchFilterCounts":[{"language":"fr-ca","tag":"Outils de développement","count":1040},{"language":"ja-jp","tag":"開発ツール","count":1040},{"language":"en","tag":"Dev Tools","count":838},{"language":"en","tag":"APIs","count":614},{"language":"fr-ca","tag":"API","count":608},{"language":"ja-jp","tag":"API","count":608},{"language":"en","tag":"Management API","count":490},{"language":"fr-ca","tag":"Management API","count":484},{"language":"ja-jp","tag":"Management API","count":484},{"language":"en","tag":"Get Started","count":289},{"language":"ja-jp","tag":"はじめに","count":285},{"language":"fr-ca","tag":"Personnaliser","count":275},{"language":"ja-jp","tag":"カスタマイズ","count":275},{"language":"fr-ca","tag":"Pour commencer","count":268},{"language":"en","tag":"Reference","count":252},{"language":"en","tag":"Extend","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":"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":"Catalogue des journaux du locataire","count":170},{"language":"ja-jp","tag":"テナントログカタログ","count":170},{"language":"fr-ca","tag":"Sécuriser","count":151},{"language":"ja-jp","tag":"セキュリティ","count":151},{"language":"fr-ca","tag":"Protéger votre application","count":133},{"language":"ja-jp","tag":"アプリケーションを保護する","count":133}],"searchSettings":{"showContentSnippets":true}},"assistantConfig":{"enableAskAiButton":true,"enableStarterQuestions":false,"enableAskAiSearchBar":false,"deflection":{"enabled":false,"type":"link"}},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"comment-mode","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"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/advanced-customizations","slug":"/docs/customize/login-pages/advanced-customizations","pageMetadata":{"title":"Advanced Customizations for Universal Login (ACUL)","description":"Learn how Auth0 Advanced Customizations for Universal Login lets you replace the hosted login UI with your own React or Vanilla JS app while Auth0 still drives the authentication state machine.","href":"/docs/customize/login-pages/advanced-customizations"},"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 Auth0 Advanced Customizations for Universal Login lets you replace the hosted login UI with your own React or Vanilla JS app while Auth0 still drives the authentication state machine.\"\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`,li:`li`,p:`p`,strong:`strong`,ul:`ul`,..._provideComponents(),...props.components},{Callout,Heading,OptimizedImage}=_components;if(!Callout)_missingMdxReference(`Callout`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!OptimizedImage)_missingMdxReference(`OptimizedImage`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Advanced Customizations for Universal Login (ACUL)`}),` extends the capabilities of `,_jsx(_components.a,{href:`/docs/authenticate/login/auth0-universal-login/universal-login-vs-classic-login/universal-experience#universal-login-experience`,children:`Universal Login`}),` to support multi-branding, complex security configurations, and integration of numerous analytics platforms.`]}),`\n`,_jsx(`video`,{autoPlay:true,muted:true,loop:true,playsInline:true,className:`mint-w-full mint-aspect-video mint-rounded-xl`,src:`https://mintlify.s3.us-west-1.amazonaws.com/auth0/docs/images/videos/ACUL.mp4`}),`\n`,_jsxs(_components.p,{children:[`With ACUL, you can write code in your preferred framework, integrate your existing analytics and A/B testing platforms, and define the user experience. The `,_jsx(_components.a,{href:`/docs/customize/login-pages/advanced-customizations/reference`,children:`ACUL SDKs`}),` act as the connection between your custom code and Universal Login.`]}),`\n`,_jsx(Heading,{level:`2`,id:`benefits`,children:`Benefits`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Extend the capabilities of Auth0’s Universal Login to support multiple brands in one tenant.`}),`\n`,_jsxs(_components.li,{children:[`Take advantage of Auth0’s features, such as `,_jsx(_components.a,{href:`/docs/authenticate/database-connections/passkeys`,children:`Passkeys`}),`, `,_jsx(_components.a,{href:`/docs/secure/attack-protection/bot-detection`,children:`Bot Detection`}),`, and `,_jsx(_components.a,{href:`/docs/secure/multi-factor-authentication`,children:`MFA`}),`, without rebuilding your authentication logic.`]}),`\n`,_jsx(_components.li,{children:`Integrate advanced analytics and A/B testing to optimize the user journey.`}),`\n`,_jsxs(_components.li,{children:[`Use the ACUL SDKs to build with your own tech stack. You can:`,`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Use any third-party CSS, JS, or component library`}),`\n`,_jsx(_components.li,{children:`Integrate your preferred analytics platform, such as Heap, Mixpanel, and so on`}),`\n`,_jsx(_components.li,{children:`Build with your preferred frontend framework, such as Vue or React`}),`\n`]}),`\n`]}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`use-cases`,children:`Use cases`}),`\n`,_jsx(_components.p,{children:`You want to use ACUL with your Universal Login implementation if:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`You need to apply specific brand standards to your authentication flows.`}),`\n`,_jsx(_components.li,{children:`You need to provide a multi-branding experience.`}),`\n`,_jsx(_components.li,{children:`You need to provide UI-level A/B testing or detailed analytics.`}),`\n`,_jsx(_components.li,{children:`You need to provide a localized Universal Login in languages that Auth0 does not currently support.`}),`\n`,_jsx(_components.li,{children:`You need to add complex or custom logic to your authentication flows.`}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`To learn more, read `,_jsx(_components.a,{href:`/docs/customize/login-pages/advanced-customizations/acul-use-cases`,children:`ACUL Use Cases`}),`.`]}),`\n`,_jsx(Heading,{level:`2`,id:`how-it-works`,children:`How it works`}),`\n`,_jsx(OptimizedImage,{className:`mint-block dark:mint-hidden`,src:`https://mintlify.s3.us-west-1.amazonaws.com/auth0/docs/images/cdy7uua7fh8z/ACUL/Final-Light-ACUL.png`,alt:`How it works ACUL`}),`\n`,_jsx(OptimizedImage,{className:`mint-hidden dark:mint-block`,src:`https://mintlify.s3.us-west-1.amazonaws.com/auth0/docs/images/cdy7uua7fh8z/ACUL/Final-Dark-ACUL.png`,alt:`How it works ACUL`}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Build time`}),` begins when you build your customized authentication screens in your own environment.`]}),`\n`,_jsxs(_components.p,{children:[`Use the `,_jsx(_components.a,{href:`/docs/customize/login-pages/advanced-customizations/reference`,children:`ACUL SDKs`}),` to submit your custom code to define prompts and screens with your preferred frontend tech stack, like React or Angular. When you push commits, your CI/CD pipeline runs the build process, compiles your application into static JavaScript and CSS assets, and uploads these assets to your private cloud storage, which serves as your own content delivery network (CDN).`]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Run time`}),` begins when your application redirects end users to your Auth0 login page.`]}),`\n`,_jsx(_components.p,{children:`Auth0 recognizes the authentication screens you configured to use ACUL and serves a minimal host page. The user’s browser loads this page, which contains HTML tags pointing to your asset URLs on your CDN. The browser downloads your JavaScript and CSS, verifies their integrity using the Subresource Integrity (SRI) hashes, and renders your custom UI. From here, your application code and the ACUL SDK manage the rest of the user’s interaction.`}),`\n`,_jsx(Heading,{level:`2`,id:`requirements`,children:`Requirements`}),`\n`,_jsx(_components.p,{children:`To start with Advanced Customizations for Universal Login, you must have:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`An Auth0 development tenant configured with `,_jsx(_components.a,{href:`/docs/authenticate/login/auth0-universal-login`,children:`Universal Login`}),` and a `,_jsx(_components.a,{href:`/docs/customize/custom-domains`,children:`custom domain`}),`.`]}),`\n`]}),`\n`,_jsx(Callout,{icon:`file-lines`,color:`#0EA5E9`,iconType:`regular`,children:_jsx(_components.p,{children:`We recommend you create a tenant for testing, development, and production with appropriate environment tags.`})}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`An Auth0 `,_jsx(_components.a,{href:`/docs/get-started/auth0-overview/create-applications#create-applications`,children:`First Party Application`})]}),`\n`,_jsx(_components.li,{children:`A CDN with an included CI/CD pipeline, such as GitHub, to host assets.`}),`\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":{"title":"Advanced Customizations for Universal Login (ACUL)","description":"Learn how Auth0 Advanced Customizations for Universal Login lets you replace the hosted login UI with your own React or Vanilla JS app while Auth0 still drives the authentication state machine.","href":"/docs/customize/login-pages/advanced-customizations"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Benefits","slug":"benefits","depth":2,"children":[]},{"title":"Use cases","slug":"use-cases","depth":2,"children":[]},{"title":"How it works","slug":"how-it-works","depth":2,"children":[]},{"title":"Requirements","slug":"requirements","depth":2,"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"],"dynamicCss":".mint-block {\n display: block\n}\n.mint-hidden {\n display: none\n}\n.mint-aspect-video {\n aspect-ratio: 16 / 9\n}\n.mint-w-full {\n width: 100%\n}\n.mint-rounded-xl {\n border-radius: 0.75rem\n}\n.dark\\:mint-block:is(.dark *) {\n display: block\n}\n.dark\\:mint-hidden:is(.dark *) {\n display: none\n}","subdomain":"auth0","siteName":"Auth0 Docs","title":"Advanced Customizations for Universal Login (ACUL) - Auth0 Docs","relatedPagesConfig":{"enabled":true,"limit":5,"mode":"manual"},"navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{"en":{"href":"/docs/customize/login-pages/advanced-customizations","matchLevel":0},"fr-ca":{"href":"/docs/fr-ca/customize/login-pages/advanced-customizations","matchLevel":1},"ja-jp":{"href":"/docs/ja-jp/customize/login-pages/advanced-customizations","matchLevel":1}}},"lastModified":"2026-10-28T18:56:35.335Z","originalFileLocation":"docs/customize/login-pages/advanced-customizations.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 Auth0 Advanced Customizations for Universal Login lets you replace the hosted login UI with your own React or Vanilla JS app while Auth0 still drives the authentication state machine.\">\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=\"Advanced Customizations for Universal Login (ACUL) - Auth0 Docs\">\u003cmeta data-mint-head property=\"og:description\" content=\"Learn how Auth0 Advanced Customizations for Universal Login lets you replace the hosted login UI with your own React or Vanilla JS app while Auth0 still drives the authentication state machine.\">\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/advanced-customizations\">\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=\"Advanced Customizations for Universal Login (ACUL) - Auth0 Docs\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Learn how Auth0 Advanced Customizations for Universal Login lets you replace the hosted login UI with your own React or Vanilla JS app while Auth0 still drives the authentication state machine.\">\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/advanced-customizations\">\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/advanced-customizations.md\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"en\" href=\"https://auth0.com/docs/customize/login-pages/advanced-customizations\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"fr-CA\" href=\"https://auth0.com/docs/fr-ca/customize/login-pages/advanced-customizations\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"ja-JP\" href=\"https://auth0.com/docs/ja-jp/customize/login-pages/advanced-customizations\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"x-default\" href=\"https://auth0.com/docs/customize/login-pages/advanced-customizations\">\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/advanced-customizations#webpage\",\"url\":\"https://auth0.com/docs/customize/login-pages/advanced-customizations\",\"name\":\"Advanced Customizations for Universal Login (ACUL)\",\"description\":\"Learn how Auth0 Advanced Customizations for Universal Login lets you replace the hosted login UI with your own React or Vanilla JS app while Auth0 still drives the authentication state machine.\",\"dateModified\":\"2026-10-28T18:56:35.335Z\",\"isPartOf\":{\"@id\":\"https://auth0.com#website\"},\"breadcrumb\":{\"@id\":\"https://auth0.com/docs/customize/login-pages/advanced-customizations#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://auth0.com/docs/customize/login-pages/advanced-customizations#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Customize Login Pages\",\"item\":\"https://auth0.com/docs/customize/login-pages\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Advanced Customizations for Universal Login (ACUL)\",\"item\":\"https://auth0.com/docs/customize/login-pages/advanced-customizations\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://auth0.com/docs/customize/login-pages/advanced-customizations#article\",\"headline\":\"Advanced Customizations for Universal Login (ACUL)\",\"name\":\"Advanced Customizations for Universal Login (ACUL)\",\"description\":\"Learn how Auth0 Advanced Customizations for Universal Login lets you replace the hosted login UI with your own React or Vanilla JS app while Auth0 still drives the authentication state machine.\",\"url\":\"https://auth0.com/docs/customize/login-pages/advanced-customizations\",\"mainEntityOfPage\":{\"@id\":\"https://auth0.com/docs/customize/login-pages/advanced-customizations#webpage\"},\"image\":\"https://auth0.com/docs/images/share-image.png\",\"dateModified\":\"2026-10-28T18:56:35.335Z\",\"publisher\":{\"@id\":\"https://auth0.com/#organization\"},\"isPartOf\":{\"@id\":\"https://auth0.com#website\"}}]}\u003c/script>","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"},{"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":[{"title":"Configure Flexible Connection Switching","href":"/docs/customize/login-pages/universal-login/customize-signup-and-login-prompts/connection-switching"},{"title":"Configure Flexible Language Selection","href":"/docs/customize/login-pages/universal-login/customize-signup-and-login-prompts/language-selection"},{"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"},{"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","description":"Learn how to create a custom error page for authorization error events.","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":[{"description":"Enable and configure Auth0 Advanced Customizations for Universal Login using the Auth0 Dashboard, Management API, or IaC tools to customize your Login experience.","sidebarTitle":"Configure ACUL","title":"Configure ACUL","href":"/docs/customize/login-pages/advanced-customizations/configure/overview"},{"description":"Reference for the ACUL rendering configuration object and its properties","title":"ACUL Rendering Configuration Reference","href":"/docs/customize/login-pages/advanced-customizations/configure/reference"},{"description":"Get started with Auth0 Advanced Customizations for Universal Login by scaffolding a sample project, deploying it to your tenant, and rendering your first custom login screen.","title":"ACUL Quickstart","href":"/docs/customize/login-pages/advanced-customizations/quickstart"},{"description":"Develop an Auth0 Advanced Customizations for Universal Login project locally with the ACUL SDK so you can iterate on screens against your tenant before deploying.","title":"ACUL Development Workflow","href":"/docs/customize/login-pages/advanced-customizations/development-workflow"},{"description":"Deploy an Auth0 Advanced Customizations for Universal Login project to production by uploading the built bundle to your CDN and updating the per-screen configuration in Auth0.","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":[{"description":"Build a Universal Login theme with Tailwind CSS using Auth0 ACUL to customize the login experience to the styling of your main application.","title":"Create a theme with Tailwind","href":"/docs/customize/login-pages/advanced-customizations/acul-use-cases/create-theme-tailwind"},{"description":"Add your choice of component libraries to customize your Universal Login prompt screens using ACUL.","title":"Integrate a Custom Component Library","href":"/docs/customize/login-pages/advanced-customizations/acul-use-cases/integrate-custom-component"},{"description":"Describes how to migrate from Classic Login to Universal Login with ACUL.","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","description":"Reference the SDKs and developer resources available for Auth0 Advanced Customizations for Universal Login.","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/advanced-customizations"}]},{"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/advanced-customizations"}]}]},"basePath":"","title":"Advanced Customizations for Universal Login (ACUL) - Auth0 Docs","buildId":"dpl_2grHJBti9hgwf9Do67jupa8J7v8e","deploymentId":"dpl_2grHJBti9hgwf9Do67jupa8J7v8e","dynamics":["a74be98ba7"],"chunks":["zoom-image-lightbox-Cj13LI_E.js","lightbox-handle-r17bVUz3.js"]}