From e908ef4dfeba9d376c52afa2d140197d2b9a971e Mon Sep 17 00:00:00 2001 From: biss Date: Sun, 23 Aug 2026 22:19:01 +0800 Subject: [PATCH] =?UTF-8?q?=E5=86=8D=E6=AC=A1=E7=BE=8E=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/.gitignore | 4 +- .../components/form/fixed-buttons.module.css | 15 + .../realm-settings/realm-settings-section.css | 376 ++++++++++++++++++ src/console-ui.css | 11 + 4 files changed, 404 insertions(+), 2 deletions(-) create mode 100644 src/admin/components/form/fixed-buttons.module.css create mode 100644 src/admin/realm-settings/realm-settings-section.css diff --git a/src/.gitignore b/src/.gitignore index 2d65f07..3c37d2f 100644 --- a/src/.gitignore +++ b/src/.gitignore @@ -23,11 +23,13 @@ # admin/i18n/messages_en.properties # admin/i18n/messages_zh_Hans.properties # admin/i18n/messages_zh_Hant.properties +# admin/realm-settings/realm-settings-section.css # email/html/template.ftl # email/messages/messages_en.properties # email/messages/messages_zh_CN.properties # email/messages/messages_zh_TW.properties # account/components/page/Page.tsx +# admin/components/form/fixed-buttons.module.css # admin/components/view-header/ViewHeader.tsx # === Owned files end ===== @@ -237,7 +239,6 @@ /admin/realm-settings/PartialImport.tsx /admin/realm-settings/PoliciesTab.tsx /admin/realm-settings/ProfilesTab.tsx -/admin/realm-settings/realm-settings-section.css /admin/realm-settings/RealmSettingsSection.tsx /admin/realm-settings/RealmSettingsTabs.tsx /admin/realm-settings/routes.ts @@ -487,7 +488,6 @@ /admin/components/error/ErrorRenderer.tsx /admin/components/external-link/FormattedLink.tsx /admin/components/form/CodeEditor.tsx -/admin/components/form/fixed-buttons.module.css /admin/components/form/FixedButtonGroup.tsx /admin/components/form/FormAccess.tsx /admin/components/group/group-picker-dialog.css diff --git a/src/admin/components/form/fixed-buttons.module.css b/src/admin/components/form/fixed-buttons.module.css new file mode 100644 index 0000000..b6e636e --- /dev/null +++ b/src/admin/components/form/fixed-buttons.module.css @@ -0,0 +1,15 @@ +/** + * This file has been claimed for ownership from @keycloakify/keycloak-admin-ui version 260700.0.2. + * To relinquish ownership and restore this file to its original content, run the following command: + * + * $ npx keycloakify own --path "admin/components/form/fixed-buttons.module.css" --revert + */ + +.buttonGroup { + position: static; + width: auto; + margin: 1rem 0 0; + padding: 0; + border: 0; + background: transparent; +} diff --git a/src/admin/realm-settings/realm-settings-section.css b/src/admin/realm-settings/realm-settings-section.css new file mode 100644 index 0000000..7d3e342 --- /dev/null +++ b/src/admin/realm-settings/realm-settings-section.css @@ -0,0 +1,376 @@ +/** + * This file has been claimed for ownership from @keycloakify/keycloak-admin-ui version 260700.0.2. + * To relinquish ownership and restore this file to its original content, run the following command: + * + * $ npx keycloakify own --path "admin/realm-settings/realm-settings-section.css" --revert + */ + +.pf-v5-c-card.pf-m-flat.kc-login-screen, +.pf-v5-c-card.pf-m-flat.kc-email-settings, +.pf-v5-c-card.pf-m-flat.kc-user-info-settings, +.pf-v5-c-card.pf-m-flat.kc-email-template, +.pf-v5-c-card.pf-m-flat.kc-email-connection, +.pf-v5-c-card.pf-m-flat.kc-message-bundles, +.pf-v5-c-card.pf-m-flat.kc-sso-session-template, +.pf-v5-c-card.pf-m-flat.kc-client-session-template, +.pf-v5-c-card.pf-m-flat.kc-offline-session-template, +.pf-v5-c-card.pf-m-flat.kc-login-settings-template { + border: none; + margin-top: 0px; + margin-bottom: 0px; + padding-bottom: var(--pf-v5-global--spacer--sm); +} + +article.pf-v5-c-card.pf-m-flat.kc-email-template + > .pf-v5-c-card__header.kc-form-panel__header, +article.pf-v5-c-card.pf-m-flat.kc-email-connection + > .pf-v5-c-card__header.kc-form-panel__header { + margin-top: 0px; + margin-bottom: 0px; + padding-left: 0px; + padding-bottom: 0px; +} + +.kc-login-screen > div.pf-v5-c-card__header.kc-form-panel__header, +.kc-email-settings > div.pf-v5-c-card__header.kc-form-panel__header, +.kc-email-template > div.pf-v5-c-card__header.kc-form-panel__header, +.kc-user-info-settings > div.pf-v5-c-card__header.kc-form-panel__header { + padding-bottom: 0px; + padding-left: 0px; + padding-top: 0px; +} + +.kc-email-settings > div.pf-v5-c-card__body.kc-form-panel__body, +.kc-email-template > div.pf-v5-c-card__body.kc-form-panel__body, +.kc-login-screen > div.pf-v5-c-card__body.kc-form-panel__body, +.kc-user-info-settings > div.pf-v5-c-card__body.kc-form-panel__body { + padding-left: 0px; + padding-bottom: var(--pf-v5-global--spacer--2xl); +} + +button.kc-certificate.pf-v5-c-button.pf-m-secondary { + margin-left: var(--pf-v5-global--spacer--md); +} + +.pf-v5-c-data-list__item-row.test { + font-weight: bold; +} + +.pf-v5-c-data-list__item-content.data-list-cells { + margin-left: var(--pf-v5-global--spacer--xl); +} + +button.pf-v5-c-data-list__item-draggable-button.pf-m-disabled.header-drag-button { + display: none; +} + +button.pf-v5-c-data-list__item-draggable-button.row-drag-button { + padding-top: var(--pf-v5-global--spacer--md); +} + +.pf-v5-c-data-list__item-control { + margin-right: 0px; +} + +.pf-v5-c-data-list__item-row.test { + font-weight: bold; +} + +button.pf-v5-c-button.pf-m-link.add-provider { + padding: 0px; +} + +.pf-v5-c-toolbar__group.providers-toolbar { + padding-left: var(--pf-v5-c-toolbar__content--PaddingLeft); +} + +div#login-action-timeout-label > .pf-v5-c-form__group-label, +div#offline-session-max-label > .pf-v5-c-form__group-label { + width: 90%; +} + +div#offline-session-max-label > .pf-v5-c-form__group-label { + width: 85%; +} + +.pf-v5-c-content.messageBundleDescription { + max-width: 1024px; + padding-bottom: var(--pf-v5-global--spacer--lg); +} + +.kc-message-bundles > .pf-v5-c-card__body.kc-form-panel__body > div.tableBorder { + border-style: solid; + border-width: 1px; + border-color: var(--pf-v5-global--BorderColor--100); + max-width: 1024px; +} + +.pf-v5-c-form__group.kc-email-form-group { + display: inline-block !important; +} + +.pf-v5-c-content.kc-provide-email-text { + padding-bottom: var(--pf-v5-global--spacer--md); +} + +.kc-sso-session-idle-input, +.kc-sso-session-max-input, +.kc-sso-session-max-input, +.kc-sso-session-idle-remember-me-input, +.kc-sso-session-max-remember-me-input, +.kc-offline-session-idle-input, +.kc-offline-session-max-input, +.kc-client-session-idle-input, +.kc-client-session-max-input, +.kc-client-offline-session-max-input, +.kc-client-offline-session-idle-input, +.kc-login-timeout-input, +.kc-login-action-timeout-input, +.kc-access-token-lifespan-input, +.kc-user-initiated-action-lifespan-input, +.kc-default-admin-initiated-input, +.kc-access-token-lifespan-implicit-input, +.kc-client-login-timeout-input, +.kc-email-verification-input, +.kc-idp-email-verification-input, +.kc-idp-forgot-password-input, +.kc-forgot-pw-input, +.kc-execute-actions-input { + width: 170px; + margin-right: 12px; +} + +.kc-sso-session-idle-select, +.kc-sso-session-max-select, +.kc-sso-session-idle-remember-me-select, +.kc-sso-session-max-remember-me-select, +.kc-client-session-idle-select, +.kc-client-session-max-select, +.kc-offline-session-idle-select, +.kc-offline-session-max-select, +.kc-login-action-timeout-select, +.kc-sso-session-idle-select.pf-m-expanded, +.kc-sso-session-max-select.pf-m-expanded { + width: 170px; +} + +article.pf-v5-c-card.pf-m-flat.kc-sso-session-template + > .pf-v5-c-card__header.kc-form-panel__header, +article.pf-v5-c-card.pf-m-flat.kc-sso-session-template + > .pf-v5-c-card__body.kc-form-panel__body, +article.pf-v5-c-card.pf-m-flat.kc-client-session-template + > .pf-v5-c-card__header.kc-form-panel__header, +article.pf-v5-c-card.pf-m-flat.kc-client-session-template + > .pf-v5-c-card__body.kc-form-panel__body, +article.pf-v5-c-card.pf-m-flat.kc-offline-session-template + > .pf-v5-c-card__header.kc-form-panel__header, +article.pf-v5-c-card.pf-m-flat.kc-offline-session-template + > .pf-v5-c-card__body.kc-form-panel__body, +article.pf-v5-c-card.pf-m-flat.kc-login-settings-template + > .pf-v5-c-card__header.kc-form-panel__header, +article.pf-v5-c-card.pf-m-flat.kc-login-settings-template + > .pf-v5-c-card__body.kc-form-panel__body, +article.pf-v5-c-card.pf-m-flat.kc-email-connection + > .pf-v5-c-card__body.kc-form-panel__body { + padding: 0px; +} + +.kc-override-action-tokens-subtitle { + font-size: var(--pf-v5-global--FontSize--md); + font-weight: bold; +} + +.kc-row-drag-button { + padding: var(--pf-v5-global--spacer--sm); +} + +.kc-profiles-config-section { + align-items: center; +} + +.kc-form-radio-btn > input { + transform: scale(1.6); +} + +.kc-editor-radio-btn > input { + transform: scale(1.6); +} + +.kc-emptyExecutors { + color: var(--pf-v5-global--Color--200); +} + +.kc-emptyConditions { + color: var(--pf-v5-global--Color--200); +} + +.kc-emptyClientProfiles { + color: var(--pf-v5-global--Color--200); +} + +.kc-action-dropdown { + background-color: transparent; +} + +.kc-executor-link { + margin-right: 0.625rem; +} + +.kc-unclickable-executor { + font-size: var(--pf-v5-global--FontSize--md); + padding: 0 var(--pf-v5-global--spacer--md) 0 var(--pf-v5-global--spacer--md); +} + +.kc-backToPolicies, +.kc-backToPolicies { + width: 5rem; +} + +.kc-backToPolicies { + float: left; +} + +.kc-executor-trash-icon { + margin-left: 0.5rem; + color: var(--pf-v5-global--Color--200); +} + +.kc-executor-trash-icon:hover { + filter: brightness(55%); +} + +.kc-condition-link { + margin-right: 0.625rem; +} + +.kc-conditionType-trash-icon { + margin-left: 0.5rem; + color: var(--pf-v5-global--Color--400); +} + +.kc-conditionType-trash-icon:hover { + filter: brightness(55%); +} + +.kc_eventListeners_select { + width: 35rem; +} + +input#kc-scopes { + width: 630px; + + margin-right: 24px; +} + +.kc-client-scopes-chip-group { + margin-right: var(--pf-v5-global--spacer--2xl); + max-width: 585px; + min-width: 585px; + padding-left: none; +} + +.kc-join-group-modal-check { + margin-right: var(--pf-v5-global--spacer--sm); +} + +.kc-requiredFor { + display: flex; +} + +.kc-requiredFor-option { + margin-right: 20px; +} + +.kc-emptyValidators { + color: var(--pf-v5-global--Color--200); + margin-left: 25px; +} + +.kc-attributes-validations { + max-width: 1024px; + margin-bottom: 52px; +} + +.kc-attributeCancel { + align-self: center; +} + +.kc--attributes-validations--add-validation-button { + margin-top: -55px; + float: right; +} +.kc--attributes-validations--action-cell { + text-align: right; +} + +.kc-attribute-display-name-iconBtn:hover { + color: var(--pf-v5-c-button--m-primary--active--BackgroundColor); +} + +/* Login settings are a dense list of binary choices, not a stack of page + * headings. Keep its type scale and controls deliberately quiet. */ +.pf-v5-c-card.pf-m-flat.kc-login-screen, +.pf-v5-c-card.pf-m-flat.kc-email-settings, +.pf-v5-c-card.pf-m-flat.kc-user-info-settings { + --pf-v5-c-form--m-horizontal__group-label--md--GridColumnWidth: 9.25rem; + margin: 0; + padding: 0 0 1.25rem; + background: transparent; +} + +.pf-v5-c-card.kc-login-screen > .pf-v5-c-card__header.kc-form-panel__header, +.pf-v5-c-card.kc-email-settings > .pf-v5-c-card__header.kc-form-panel__header, +.pf-v5-c-card.kc-user-info-settings + > .pf-v5-c-card__header.kc-form-panel__header { + margin: 0; + padding: 1.5rem 0 0.75rem; + border-bottom: 1px solid var(--console-line); + background: transparent; +} + +.kc-login-screen .pf-v5-c-title, +.kc-email-settings .pf-v5-c-title, +.kc-user-info-settings .pf-v5-c-title { + margin: 0; + color: var(--console-ink); + font-family: "Segoe UI Variable", "Segoe UI", "PingFang SC", sans-serif; + font-size: 1rem; + font-weight: 700; + letter-spacing: -0.012em; + line-height: 1.4; +} + +.pf-v5-c-card.kc-login-screen > .pf-v5-c-card__body.kc-form-panel__body, +.pf-v5-c-card.kc-email-settings > .pf-v5-c-card__body.kc-form-panel__body, +.pf-v5-c-card.kc-user-info-settings + > .pf-v5-c-card__body.kc-form-panel__body { + padding: 1rem 0 0; +} + +.kc-login-screen .pf-v5-c-form__group, +.kc-email-settings .pf-v5-c-form__group, +.kc-user-info-settings .pf-v5-c-form__group { + margin-bottom: 0.85rem; +} + +.kc-login-screen .pf-v5-c-form__label-text, +.kc-email-settings .pf-v5-c-form__label-text, +.kc-user-info-settings .pf-v5-c-form__label-text { + color: var(--console-ink); + font-size: 0.875rem; + font-weight: 600; +} + +.kc-login-screen .pf-v5-c-switch, +.kc-email-settings .pf-v5-c-switch, +.kc-user-info-settings .pf-v5-c-switch { + --pf-v5-c-switch--FontSize: 0.875rem; + --pf-v5-c-switch__label--PaddingLeft: 0.55rem; +} + +.kc-login-screen .pf-v5-c-switch__label, +.kc-email-settings .pf-v5-c-switch__label, +.kc-user-info-settings .pf-v5-c-switch__label { + font-size: 0.8125rem; + font-weight: 600; +} diff --git a/src/console-ui.css b/src/console-ui.css index bfe0454..3a7c926 100644 --- a/src/console-ui.css +++ b/src/console-ui.css @@ -173,6 +173,17 @@ html[data-console-color-mode] .pf-v5-c-masthead { .pf-v5-c-masthead .pf-v5-c-toolbar, .pf-v5-c-masthead .pf-v5-c-toolbar__content { color: var(--console-ink) !important; + background-color: var(--console-surface) !important; +} + +/* Keycloak's masthead is composed from separate grid regions. Give every + * region the same canvas so the brand column cannot be white beside a dark + * toolbar column. */ +.pf-v5-c-page__header, +.pf-v5-c-page__header > *, +.pf-v5-c-masthead__toggle, +.pf-v5-c-masthead__brand { + background-color: var(--console-surface) !important; } .pf-v5-c-masthead .pf-v5-c-menu-toggle {