fix: style ExternalOidc login button on identity-server pages - #1325
Conversation
* Introduced a new button for OIDC authentication in _theme.html. * Added corresponding styles for the OIDC button in _bootstrap.scss. * Defined a new color variable for OIDC in _vars.scss. * Updated icon styles in style.css to include OIDC icon.
|
Sorry, for the late reply. The icons are created with icomoon.io. You need to update the file using this tool. Otherwise it gets overwritten the next time. |
| .icon-external-link:before { | ||
| content: "\e96d"; | ||
| } | ||
| .icon-externaloidc:before { |
There was a problem hiding this comment.
Sorry, for the late reply. The icons are created with icomoon.io. You need to update the file using this tool. Otherwise it gets overwritten the next time.
There was a problem hiding this comment.
Thanks for the review, fixed in c52e9fa
I imported the existing selection.json, added an externaloidc icon to the set, and committed the regenerated style.css, selection.json, demo.html, font files, and icons/externaloidc.svg.
The icon now has its own glyph at \e906 instead of a hand-edited alias of external-link, so it won’t be overwritten on the next export.
Add a dedicated glyph instead of hand-editing style.css so the icon survives the next icomoon export.
Summary
Fixes unstyled external OIDC login buttons on identity-server pages (
/identity-server/account/login/and profile external-login links).When
identity.oidc*is configured, Squidex registers the authentication scheme asExternalOidc. The Razor views derive CSS classes from the scheme name (ExternalOidc→btn-externaloidc,icon-externaloidc), but the theme only defined variants for GitHub, Google, Microsoft, and Twitter.This PR adds the missing button variant, color variable, and icon alias so generic OIDC providers render consistently with other external login buttons.
Before / After
Before
Unstyled plain text — no background color, no icon:


After
Styled button with icon, visually distinct from GitHub/Google/Microsoft:


Root cause
Login.cshtmlandProfile.cshtmluse:The OIDC scheme name is ExternalOidc (Squidex.Web.Constants.ExternalScheme), but
_bootstrap.scsshad nobtn-externaloidcrule and icomoon had no icon-externaloidc.Color choice
Generic OIDC is intentionally not styled as a specific IdP brand (Auth0, Azure AD, Okta, etc.). The slate blue-gray (#526484) reads as neutral enterprise SSO and stays visually distinct from:
How to test
identity.allowPasswordAuth: trueoridentity.allowCustomDomains: trueso the login page is shown instead of auto-redirecting when only one provider is configured./identity-server/account/login/and verify the OIDC button has background color and icon.Checklist