wp-m365-login/assets/css/login.css
friloo 1202283eda
Add Entra group restriction, button-only mode and detailed README
Groups: a Graph-backed picker on the Security tab (search by name or
paste object IDs) stores allowed group IDs. During sign-in membership is
read from the ID token's groups claim when present, otherwise verified
through Microsoft Graph checkMemberGroups (transitive). Verification
failures refuse the sign-in.

Button-only mode: hides the password form and the lost-password link
and rejects password sign-ins on wp-login.php via the authenticate
filter. A generated, rate-limited fallback key re-enables the form for
30 minutes per browser; M365_LOGIN_DISABLE_BUTTON_ONLY switches the
mode off from wp-config.php.

Also: new German-language README with sequence diagram, settings
reference, troubleshooting and hook examples; readme.txt external
services section now covers Microsoft Graph; translations updated.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JJxAHYdMfKPoN4koRc4Ci2
2026-09-22 14:30:53 +00:00

136 lines
2.5 KiB
CSS
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/* M365 Login login screen button */
.m365-login {
--m365-bg: #2f2f2f;
--m365-bg-hover: #1a1a1a;
--m365-color: #ffffff;
--m365-border: #2f2f2f;
--m365-radius: 4px;
margin: 0 0 16px;
}
.m365-login--below {
background: #fff;
padding: 0 24px 26px;
margin: -1px 0 0;
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04);
border: 1px solid #c3c4c7;
border-top: 0;
}
body.m365-login-attached #loginform {
border-bottom: 0;
box-shadow: none;
}
.m365-login--above {
background: #fff;
padding: 24px;
margin: 20px 0 0;
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04);
border: 1px solid #c3c4c7;
}
.m365-login--above .m365-login__divider {
margin: 22px 0 0;
}
.m365-login__divider {
position: relative;
text-align: center;
margin: 0 0 22px;
color: #646970;
font-size: 13px;
line-height: 1;
}
.m365-login__divider::before {
content: "";
position: absolute;
left: 0;
right: 0;
top: 50%;
height: 1px;
background: #dcdcde;
}
.m365-login__divider span {
position: relative;
background: #fff;
padding: 0 12px;
text-transform: lowercase;
}
.m365-login__button {
display: flex;
align-items: center;
justify-content: center;
gap: 12px;
box-sizing: border-box;
width: 100%;
min-height: 44px;
padding: 10px 16px;
background: var(--m365-bg);
color: var(--m365-color);
border: 1px solid var(--m365-border);
border-radius: var(--m365-radius);
font-size: 15px;
font-weight: 600;
line-height: 1.3;
text-decoration: none;
cursor: pointer;
transition: background-color 0.15s ease, box-shadow 0.15s ease, transform 0.1s ease;
}
.m365-login__button:hover,
.m365-login__button:focus {
background: var(--m365-bg-hover);
color: var(--m365-color);
text-decoration: none;
}
.m365-login__button:focus {
outline: none;
box-shadow: 0 0 0 2px #fff, 0 0 0 4px var(--m365-bg-hover);
}
.m365-login__button:active {
transform: translateY(1px);
}
.m365-login__icon {
flex: 0 0 auto;
width: 20px;
height: 20px;
display: block;
background: #fff;
padding: 3px;
box-sizing: content-box;
border-radius: 2px;
}
.m365-login__label {
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.m365-login--shortcode {
padding: 0;
border: 0;
background: transparent;
max-width: 360px;
}
/* Button-only mode: the password form is hidden until the fallback key is used. */
body.m365-button-only #loginform,
body.m365-button-only #nav {
display: none;
}
body.m365-button-only .m365-login--below,
body.m365-button-only .m365-login--above {
margin-top: 20px;
padding: 26px 24px;
border: 1px solid #c3c4c7;
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04);
}