@nodefony/security 10.0.0-beta.1 → 10.0.0-beta.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +7 -5
- package/dist/_virtual/{_@oxc-project_runtime@0.151.0 → _@oxc-project_runtime@0.153.0}/helpers/esm/decorate.js +1 -1
- package/dist/_virtual/{_@oxc-project_runtime@0.151.0 → _@oxc-project_runtime@0.153.0}/helpers/esm/decorateMetadata.js +1 -1
- package/dist/index.js +44 -10
- package/dist/nodefony/command/security-oauth-doctor.js +66 -0
- package/dist/nodefony/command/security-secrets.js +42 -25
- package/dist/nodefony/command/security-token.js +46 -15
- package/dist/nodefony/command/security-user-delete.js +5 -4
- package/dist/nodefony/command/security-user-password.js +4 -11
- package/dist/nodefony/config/config.js +80 -5
- package/dist/nodefony/contracts/index.js +1 -2
- package/dist/nodefony/errors/InsecureTransportError.js +24 -0
- package/dist/nodefony/errors/index.js +2 -1
- package/dist/nodefony/keycloak/keycloakAdmin.js +255 -0
- package/dist/nodefony/keycloak/keycloakRealm.js +260 -0
- package/dist/nodefony/keycloak/keycloakRealmInput.js +124 -0
- package/dist/nodefony/keycloak/scaffold.js +231 -0
- package/dist/nodefony/keycloak/security-keycloak-realm.js +128 -0
- package/dist/nodefony/scaffold/contribute.js +20 -0
- package/dist/nodefony/service/authFlow.js +111 -11
- package/dist/nodefony/service/firewall.js +111 -21
- package/dist/nodefony/service/keycloak.js +209 -0
- package/dist/nodefony/service/oauth2.js +379 -26
- package/dist/nodefony/service/securityHeaders.js +12 -1
- package/dist/nodefony/service/tokenService.js +57 -6
- package/dist/nodefony/service/totp.js +51 -6
- package/dist/nodefony/service/webAuthn.js +20 -2
- package/dist/nodefony/src/SecuredArea.js +14 -3
- package/dist/nodefony/src/admin/SecurityAdminApi.js +70 -40
- package/dist/nodefony/src/admin/adminAudit.js +0 -1
- package/dist/nodefony/src/admin/userRevocationCascade.js +79 -15
- package/dist/nodefony/src/authenticator/ExternalJwtAuthenticator.js +66 -6
- package/dist/nodefony/src/authenticator/FirewallRealtimeAuthenticator.js +38 -15
- package/dist/nodefony/src/authenticator/JwtAuthenticator.js +1 -0
- package/dist/nodefony/src/authenticator/UserPasswordAuthenticator.js +13 -3
- package/dist/nodefony/src/authenticator/authenticatorRegistry.js +9 -2
- package/dist/nodefony/src/authenticator/bearer.js +1 -2
- package/dist/nodefony/src/boot/publicRoutesNotice.js +27 -0
- package/dist/nodefony/src/entryPoint.js +39 -0
- package/dist/nodefony/src/oauth/clientCredentials.js +40 -0
- package/dist/nodefony/src/oauth/metadata.js +36 -9
- package/dist/nodefony/src/oauth/oauth2Client.js +60 -33
- package/dist/nodefony/src/oauth/oauthProviderRegistry.js +39 -6
- package/dist/nodefony/src/oauth/providerDiagnosis.js +283 -0
- package/dist/nodefony/src/oauth/providerRoles.js +79 -0
- package/dist/nodefony/src/oauth/providers/github.js +32 -6
- package/dist/nodefony/src/oauth/providers/oidc.js +82 -3
- package/dist/nodefony/src/openToSignup.js +47 -0
- package/dist/nodefony/src/sessionAuthentication.js +26 -0
- package/dist/nodefony/src/token/JwtKeystore.js +78 -46
- package/dist/nodefony/src/token/RemoteJwtVerifier.js +40 -13
- package/dist/nodefony/src/token/secretFile.js +59 -2
- package/dist/nodefony/src/transport/CredentialTransportPolicy.js +51 -0
- package/dist/types/index.d.ts +26 -6
- package/dist/types/nodefony/command/security-oauth-doctor.d.ts +23 -0
- package/dist/types/nodefony/command/security-secrets.d.ts +2 -0
- package/dist/types/nodefony/command/security-token.d.ts +9 -0
- package/dist/types/nodefony/command/security-user-delete.d.ts +4 -3
- package/dist/types/nodefony/command/security-user-password.d.ts +4 -4
- package/dist/types/nodefony/config/config.d.ts +63 -1
- package/dist/types/nodefony/contracts/IAuthenticator.d.ts +1 -1
- package/dist/types/nodefony/contracts/IFirewallDescription.d.ts +42 -1
- package/dist/types/nodefony/contracts/IOAuthProvider.d.ts +48 -0
- package/dist/types/nodefony/contracts/ISecuredArea.d.ts +22 -0
- package/dist/types/nodefony/contracts/ITotpSecret.d.ts +4 -1
- package/dist/types/nodefony/contracts/ITotpSecretStore.d.ts +7 -1
- package/dist/types/nodefony/contracts/IWebAuthnCredential.d.ts +4 -1
- package/dist/types/nodefony/contracts/IWebAuthnCredentialStore.d.ts +6 -0
- package/dist/types/nodefony/errors/InsecureTransportError.d.ts +20 -0
- package/dist/types/nodefony/errors/index.d.ts +1 -0
- package/dist/types/nodefony/keycloak/keycloakAdmin.d.ts +154 -0
- package/dist/types/nodefony/keycloak/keycloakRealm.d.ts +138 -0
- package/dist/types/nodefony/keycloak/keycloakRealmInput.d.ts +92 -0
- package/dist/types/nodefony/keycloak/scaffold.d.ts +98 -0
- package/dist/types/nodefony/keycloak/security-keycloak-realm.d.ts +43 -0
- package/dist/types/nodefony/scaffold/contribute.d.ts +15 -0
- package/dist/types/nodefony/service/authFlow.d.ts +35 -3
- package/dist/types/nodefony/service/firewall.d.ts +17 -3
- package/dist/types/nodefony/service/keycloak.d.ts +115 -0
- package/dist/types/nodefony/service/oauth2.d.ts +125 -9
- package/dist/types/nodefony/service/securityHeaders.d.ts +2 -1
- package/dist/types/nodefony/service/tokenService.d.ts +7 -1
- package/dist/types/nodefony/service/totp.d.ts +28 -4
- package/dist/types/nodefony/service/webAuthn.d.ts +23 -1
- package/dist/types/nodefony/src/SecuredArea.d.ts +4 -0
- package/dist/types/nodefony/src/admin/userRevocationCascade.d.ts +54 -12
- package/dist/types/nodefony/src/authenticator/ExternalJwtAuthenticator.d.ts +18 -0
- package/dist/types/nodefony/src/authenticator/FirewallRealtimeAuthenticator.d.ts +13 -0
- package/dist/types/nodefony/src/authenticator/UserPasswordAuthenticator.d.ts +11 -3
- package/dist/types/nodefony/src/boot/publicRoutesNotice.d.ts +16 -0
- package/dist/types/nodefony/src/entryPoint.d.ts +37 -0
- package/dist/types/nodefony/src/oauth/clientCredentials.d.ts +54 -0
- package/dist/types/nodefony/src/oauth/metadata.d.ts +24 -1
- package/dist/types/nodefony/src/oauth/oauth2Client.d.ts +50 -1
- package/dist/types/nodefony/src/oauth/oauthProviderRegistry.d.ts +46 -2
- package/dist/types/nodefony/src/oauth/providerDiagnosis.d.ts +117 -0
- package/dist/types/nodefony/src/oauth/providerRoles.d.ts +58 -0
- package/dist/types/nodefony/src/oauth/providers/oidc.d.ts +34 -1
- package/dist/types/nodefony/src/openToSignup.d.ts +36 -0
- package/dist/types/nodefony/src/sessionAuthentication.d.ts +14 -0
- package/dist/types/nodefony/src/token/JwtKeystore.d.ts +47 -5
- package/dist/types/nodefony/src/token/RemoteJwtVerifier.d.ts +29 -2
- package/dist/types/nodefony/src/token/secretFile.d.ts +22 -0
- package/dist/types/nodefony/src/transport/CredentialTransportPolicy.d.ts +47 -0
- package/docs/api-keys.md +18 -18
- package/docs/audit.md +24 -22
- package/docs/authenticators.md +62 -29
- package/docs/authorization.md +16 -16
- package/docs/cors.md +30 -30
- package/docs/csrf.md +35 -33
- package/docs/external-jwt.md +68 -5
- package/docs/firewall.md +78 -45
- package/docs/headers.md +35 -35
- package/docs/index.md +15 -7
- package/docs/keycloak.md +818 -0
- package/docs/lexique.md +15 -15
- package/docs/login-page.md +361 -0
- package/docs/oauth2.md +242 -125
- package/docs/obtenir-un-jeton.md +18 -11
- package/docs/tokens.md +138 -86
- package/docs/totp.md +113 -71
- package/docs/webauthn.md +115 -115
- package/docs/webhooks.md +21 -21
- package/keycloak/themes/nodefony/account/resources/css/nodefony.css +66 -0
- package/keycloak/themes/nodefony/account/resources/img/favicon.ico +0 -0
- package/keycloak/themes/nodefony/account/resources/img/logo.png +0 -0
- package/keycloak/themes/nodefony/account/theme.properties +14 -0
- package/keycloak/themes/nodefony/admin/resources/css/nodefony.css +66 -0
- package/keycloak/themes/nodefony/admin/resources/img/favicon.ico +0 -0
- package/keycloak/themes/nodefony/admin/resources/img/logo.png +0 -0
- package/keycloak/themes/nodefony/admin/theme.properties +12 -0
- package/keycloak/themes/nodefony/email/html/template.ftl +73 -0
- package/keycloak/themes/nodefony/email/messages/messages_en.properties +2 -0
- package/keycloak/themes/nodefony/email/messages/messages_fr.properties +3 -0
- package/keycloak/themes/nodefony/email/resources/img/logo.png +0 -0
- package/keycloak/themes/nodefony/email/theme.properties +8 -0
- package/keycloak/themes/nodefony/login/messages/messages_en.properties +22 -0
- package/keycloak/themes/nodefony/login/messages/messages_fr.properties +25 -0
- package/keycloak/themes/nodefony/login/resources/css/login.css +1141 -0
- package/keycloak/themes/nodefony/login/resources/css/nodefony.css +688 -0
- package/keycloak/themes/nodefony/login/resources/css/skins/blueprint.css +70 -0
- package/keycloak/themes/nodefony/login/resources/css/skins/console.css +57 -0
- package/keycloak/themes/nodefony/login/resources/css/skins/dots.css +67 -0
- package/keycloak/themes/nodefony/login/resources/css/skins/enterprise.css +84 -0
- package/keycloak/themes/nodefony/login/resources/css/skins/horizon.css +158 -0
- package/keycloak/themes/nodefony/login/resources/css/skins/ledger.css +224 -0
- package/keycloak/themes/nodefony/login/resources/css/skins/minimal.css +63 -0
- package/keycloak/themes/nodefony/login/resources/css/skins/photo-card.css +72 -0
- package/keycloak/themes/nodefony/login/resources/img/favicon.ico +0 -0
- package/keycloak/themes/nodefony/login/resources/img/logo.png +0 -0
- package/keycloak/themes/nodefony/login/template.ftl +423 -0
- package/keycloak/themes/nodefony/login/theme.properties +17 -0
- package/keycloak/themes/nodefony/welcome/resources/css/nodefony.css +32 -0
- package/keycloak/themes/nodefony/welcome/resources/img/logo.png +0 -0
- package/keycloak/themes/nodefony/welcome/theme.properties +11 -0
- package/keycloak/themes/nodefony-blueprint/login/theme.properties +12 -0
- package/keycloak/themes/nodefony-console/login/theme.properties +12 -0
- package/keycloak/themes/nodefony-dots/login/theme.properties +12 -0
- package/keycloak/themes/nodefony-enterprise/login/theme.properties +12 -0
- package/keycloak/themes/nodefony-horizon/login/theme.properties +12 -0
- package/keycloak/themes/nodefony-ledger/login/theme.properties +12 -0
- package/keycloak/themes/nodefony-minimal/login/theme.properties +12 -0
- package/keycloak/themes/nodefony-photo-card/login/theme.properties +12 -0
- package/package.json +17 -15
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
/* ═══ nodefony/login/skins/blueprint.css — habillage « Plan technique » ═══
|
|
2
|
+
Produits techniques, API, plateformes de données : grille de plan, fond
|
|
3
|
+
bleu nuit.
|
|
4
|
+
|
|
5
|
+
Mise en page : `card` · fond décoré (`<body data-backdrop>`).
|
|
6
|
+
Chargée APRÈS `login.css` et AVANT la feuille de l'application
|
|
7
|
+
(`loginPage.skin: "blueprint"`) : elle ne redéfinit que des variables
|
|
8
|
+
`--nf-login-*` et la disposition de sa mise en page — jamais le balisage.
|
|
9
|
+
Aucune photo n'est fournie : elle vient de l'application
|
|
10
|
+
(`--nf-login-hero-image`). Le jeu CLAIR est écrit deux fois, à l'identique,
|
|
11
|
+
comme dans `login.css`. */
|
|
12
|
+
:root {
|
|
13
|
+
--nf-login-home-green: #7cc46c;
|
|
14
|
+
--nf-login-bg: #0b1622;
|
|
15
|
+
--nf-login-surface: #0f1d2c;
|
|
16
|
+
--nf-login-raised: #142638;
|
|
17
|
+
--nf-login-line: #1d3247;
|
|
18
|
+
--nf-login-line-strong: #2a4560;
|
|
19
|
+
--nf-login-field: #0b1825;
|
|
20
|
+
--nf-login-muted: #8fa3b8;
|
|
21
|
+
--nf-login-backdrop: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2240%22%20height%3D%2240%22%3E%3Cpath%20d%3D%22M8%200V40M0%208H40%22%20stroke%3D%22%231a3550%22%20stroke-opacity%3D%22.35%22%20stroke-width%3D%22.5%22%2F%3E%3Cpath%20d%3D%22M16%200V40M0%2016H40%22%20stroke%3D%22%231a3550%22%20stroke-opacity%3D%22.35%22%20stroke-width%3D%22.5%22%2F%3E%3Cpath%20d%3D%22M24%200V40M0%2024H40%22%20stroke%3D%22%231a3550%22%20stroke-opacity%3D%22.35%22%20stroke-width%3D%22.5%22%2F%3E%3Cpath%20d%3D%22M32%200V40M0%2032H40%22%20stroke%3D%22%231a3550%22%20stroke-opacity%3D%22.35%22%20stroke-width%3D%22.5%22%2F%3E%3Cpath%20d%3D%22M40%200H0V40%22%20fill%3D%22none%22%20stroke%3D%22%231a3550%22%20stroke-width%3D%221%22%2F%3E%3C%2Fsvg%3E");
|
|
22
|
+
--nf-login-card-shadow: 0 0 0 6px rgba(11, 22, 34, 0.9);
|
|
23
|
+
color-scheme: dark;
|
|
24
|
+
}
|
|
25
|
+
@media (prefers-color-scheme: light) {
|
|
26
|
+
:root:not([data-theme="dark"]) {
|
|
27
|
+
--nf-login-home-green: #3f7a35;
|
|
28
|
+
--nf-login-on-brand: #ffffff;
|
|
29
|
+
--nf-login-accent: #0067ba;
|
|
30
|
+
--nf-login-ok: #1f8a5b;
|
|
31
|
+
--nf-login-warn: #8a5a00;
|
|
32
|
+
--nf-login-crit: #c4321a;
|
|
33
|
+
--nf-login-bg: #eef4fa;
|
|
34
|
+
--nf-login-surface: #ffffff;
|
|
35
|
+
--nf-login-raised: #eef3f8;
|
|
36
|
+
--nf-login-line: #d5e1ec;
|
|
37
|
+
--nf-login-line-strong: #bfd0e0;
|
|
38
|
+
--nf-login-heading: #0e1726;
|
|
39
|
+
--nf-login-text: #2b3a52;
|
|
40
|
+
--nf-login-muted: #5b6b84;
|
|
41
|
+
--nf-login-field: #ffffff;
|
|
42
|
+
--nf-login-crit-bg: #fff3f0;
|
|
43
|
+
--nf-login-ok-bg: #edf8f2;
|
|
44
|
+
--nf-login-backdrop: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2240%22%20height%3D%2240%22%3E%3Cpath%20d%3D%22M8%200V40M0%208H40%22%20stroke%3D%22%23cfe0ef%22%20stroke-opacity%3D%22.35%22%20stroke-width%3D%22.5%22%2F%3E%3Cpath%20d%3D%22M16%200V40M0%2016H40%22%20stroke%3D%22%23cfe0ef%22%20stroke-opacity%3D%22.35%22%20stroke-width%3D%22.5%22%2F%3E%3Cpath%20d%3D%22M24%200V40M0%2024H40%22%20stroke%3D%22%23cfe0ef%22%20stroke-opacity%3D%22.35%22%20stroke-width%3D%22.5%22%2F%3E%3Cpath%20d%3D%22M32%200V40M0%2032H40%22%20stroke%3D%22%23cfe0ef%22%20stroke-opacity%3D%22.35%22%20stroke-width%3D%22.5%22%2F%3E%3Cpath%20d%3D%22M40%200H0V40%22%20fill%3D%22none%22%20stroke%3D%22%23cfe0ef%22%20stroke-width%3D%221%22%2F%3E%3C%2Fsvg%3E");
|
|
45
|
+
--nf-login-card-shadow: 0 0 0 6px rgba(238, 244, 250, 0.9);
|
|
46
|
+
color-scheme: light;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
:root[data-theme="light"] {
|
|
50
|
+
--nf-login-home-green: #3f7a35;
|
|
51
|
+
--nf-login-on-brand: #ffffff;
|
|
52
|
+
--nf-login-accent: #0067ba;
|
|
53
|
+
--nf-login-ok: #1f8a5b;
|
|
54
|
+
--nf-login-warn: #8a5a00;
|
|
55
|
+
--nf-login-crit: #c4321a;
|
|
56
|
+
--nf-login-bg: #eef4fa;
|
|
57
|
+
--nf-login-surface: #ffffff;
|
|
58
|
+
--nf-login-raised: #eef3f8;
|
|
59
|
+
--nf-login-line: #d5e1ec;
|
|
60
|
+
--nf-login-line-strong: #bfd0e0;
|
|
61
|
+
--nf-login-heading: #0e1726;
|
|
62
|
+
--nf-login-text: #2b3a52;
|
|
63
|
+
--nf-login-muted: #5b6b84;
|
|
64
|
+
--nf-login-field: #ffffff;
|
|
65
|
+
--nf-login-crit-bg: #fff3f0;
|
|
66
|
+
--nf-login-ok-bg: #edf8f2;
|
|
67
|
+
--nf-login-backdrop: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2240%22%20height%3D%2240%22%3E%3Cpath%20d%3D%22M8%200V40M0%208H40%22%20stroke%3D%22%23cfe0ef%22%20stroke-opacity%3D%22.35%22%20stroke-width%3D%22.5%22%2F%3E%3Cpath%20d%3D%22M16%200V40M0%2016H40%22%20stroke%3D%22%23cfe0ef%22%20stroke-opacity%3D%22.35%22%20stroke-width%3D%22.5%22%2F%3E%3Cpath%20d%3D%22M24%200V40M0%2024H40%22%20stroke%3D%22%23cfe0ef%22%20stroke-opacity%3D%22.35%22%20stroke-width%3D%22.5%22%2F%3E%3Cpath%20d%3D%22M32%200V40M0%2032H40%22%20stroke%3D%22%23cfe0ef%22%20stroke-opacity%3D%22.35%22%20stroke-width%3D%22.5%22%2F%3E%3Cpath%20d%3D%22M40%200H0V40%22%20fill%3D%22none%22%20stroke%3D%22%23cfe0ef%22%20stroke-width%3D%221%22%2F%3E%3C%2Fsvg%3E");
|
|
68
|
+
--nf-login-card-shadow: 0 0 0 6px rgba(238, 244, 250, 0.9);
|
|
69
|
+
color-scheme: light;
|
|
70
|
+
}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/* ═══ nodefony/login/skins/console.css — habillage « Console » ═══
|
|
2
|
+
Outils, back-offices, consoles : la signature de la barre de debug, en
|
|
3
|
+
carte centrée.
|
|
4
|
+
|
|
5
|
+
Mise en page : `card`.
|
|
6
|
+
Chargée APRÈS `login.css` et AVANT la feuille de l'application
|
|
7
|
+
(`loginPage.skin: "console"`) : elle ne redéfinit que des variables
|
|
8
|
+
`--nf-login-*` et la disposition de sa mise en page — jamais le balisage.
|
|
9
|
+
Aucune photo n'est fournie : elle vient de l'application
|
|
10
|
+
(`--nf-login-hero-image`). Le jeu CLAIR est écrit deux fois, à l'identique,
|
|
11
|
+
comme dans `login.css`. */
|
|
12
|
+
:root {
|
|
13
|
+
--nf-login-home-green: #7cc46c;
|
|
14
|
+
color-scheme: dark;
|
|
15
|
+
}
|
|
16
|
+
@media (prefers-color-scheme: light) {
|
|
17
|
+
:root:not([data-theme="dark"]) {
|
|
18
|
+
--nf-login-home-green: #3f7a35;
|
|
19
|
+
--nf-login-on-brand: #ffffff;
|
|
20
|
+
--nf-login-accent: #0067ba;
|
|
21
|
+
--nf-login-ok: #1f8a5b;
|
|
22
|
+
--nf-login-warn: #8a5a00;
|
|
23
|
+
--nf-login-crit: #c4321a;
|
|
24
|
+
--nf-login-bg: #fafbfd;
|
|
25
|
+
--nf-login-surface: #ffffff;
|
|
26
|
+
--nf-login-raised: #f1f5fa;
|
|
27
|
+
--nf-login-line: #e3e9f2;
|
|
28
|
+
--nf-login-line-strong: #cfd8e6;
|
|
29
|
+
--nf-login-heading: #0e1726;
|
|
30
|
+
--nf-login-text: #2b3a52;
|
|
31
|
+
--nf-login-muted: #5b6b84;
|
|
32
|
+
--nf-login-field: #ffffff;
|
|
33
|
+
--nf-login-crit-bg: #fff3f0;
|
|
34
|
+
--nf-login-ok-bg: #edf8f2;
|
|
35
|
+
color-scheme: light;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
:root[data-theme="light"] {
|
|
39
|
+
--nf-login-home-green: #3f7a35;
|
|
40
|
+
--nf-login-on-brand: #ffffff;
|
|
41
|
+
--nf-login-accent: #0067ba;
|
|
42
|
+
--nf-login-ok: #1f8a5b;
|
|
43
|
+
--nf-login-warn: #8a5a00;
|
|
44
|
+
--nf-login-crit: #c4321a;
|
|
45
|
+
--nf-login-bg: #fafbfd;
|
|
46
|
+
--nf-login-surface: #ffffff;
|
|
47
|
+
--nf-login-raised: #f1f5fa;
|
|
48
|
+
--nf-login-line: #e3e9f2;
|
|
49
|
+
--nf-login-line-strong: #cfd8e6;
|
|
50
|
+
--nf-login-heading: #0e1726;
|
|
51
|
+
--nf-login-text: #2b3a52;
|
|
52
|
+
--nf-login-muted: #5b6b84;
|
|
53
|
+
--nf-login-field: #ffffff;
|
|
54
|
+
--nf-login-crit-bg: #fff3f0;
|
|
55
|
+
--nf-login-ok-bg: #edf8f2;
|
|
56
|
+
color-scheme: light;
|
|
57
|
+
}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/* ═══ nodefony/login/skins/dots.css — habillage « Trame de points » ═══
|
|
2
|
+
SaaS grand public, applications métier : discret, clair d'abord, ombre
|
|
3
|
+
légère.
|
|
4
|
+
|
|
5
|
+
Mise en page : `card` · fond décoré (`<body data-backdrop>`).
|
|
6
|
+
Chargée APRÈS `login.css` et AVANT la feuille de l'application
|
|
7
|
+
(`loginPage.skin: "dots"`) : elle ne redéfinit que des variables
|
|
8
|
+
`--nf-login-*` et la disposition de sa mise en page — jamais le balisage.
|
|
9
|
+
Aucune photo n'est fournie : elle vient de l'application
|
|
10
|
+
(`--nf-login-hero-image`). Le jeu CLAIR est écrit deux fois, à l'identique,
|
|
11
|
+
comme dans `login.css`. */
|
|
12
|
+
:root {
|
|
13
|
+
--nf-login-home-green: #7cc46c;
|
|
14
|
+
--nf-login-bg: #111317;
|
|
15
|
+
--nf-login-backdrop: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2222%22%20height%3D%2222%22%3E%3Ccircle%20cx%3D%2211%22%20cy%3D%2211%22%20r%3D%221.1%22%20fill%3D%22%232c3038%22%2F%3E%3C%2Fsvg%3E");
|
|
16
|
+
--nf-login-card-shadow:
|
|
17
|
+
0 1px 2px rgba(0, 0, 0, 0.4), 0 12px 32px rgba(0, 0, 0, 0.35);
|
|
18
|
+
color-scheme: dark;
|
|
19
|
+
}
|
|
20
|
+
@media (prefers-color-scheme: light) {
|
|
21
|
+
:root:not([data-theme="dark"]) {
|
|
22
|
+
--nf-login-home-green: #3f7a35;
|
|
23
|
+
--nf-login-on-brand: #ffffff;
|
|
24
|
+
--nf-login-accent: #0067ba;
|
|
25
|
+
--nf-login-ok: #1f8a5b;
|
|
26
|
+
--nf-login-warn: #8a5a00;
|
|
27
|
+
--nf-login-crit: #c4321a;
|
|
28
|
+
--nf-login-bg: #f7f7f8;
|
|
29
|
+
--nf-login-surface: #ffffff;
|
|
30
|
+
--nf-login-raised: #f1f5fa;
|
|
31
|
+
--nf-login-line: #e3e9f2;
|
|
32
|
+
--nf-login-line-strong: #cfd8e6;
|
|
33
|
+
--nf-login-heading: #0e1726;
|
|
34
|
+
--nf-login-text: #2b3a52;
|
|
35
|
+
--nf-login-muted: #5b6b84;
|
|
36
|
+
--nf-login-field: #ffffff;
|
|
37
|
+
--nf-login-crit-bg: #fff3f0;
|
|
38
|
+
--nf-login-ok-bg: #edf8f2;
|
|
39
|
+
--nf-login-backdrop: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2222%22%20height%3D%2222%22%3E%3Ccircle%20cx%3D%2211%22%20cy%3D%2211%22%20r%3D%221.1%22%20fill%3D%22%23d4d7dc%22%2F%3E%3C%2Fsvg%3E");
|
|
40
|
+
--nf-login-card-shadow:
|
|
41
|
+
0 1px 2px rgba(16, 24, 40, 0.06), 0 12px 32px rgba(16, 24, 40, 0.08);
|
|
42
|
+
color-scheme: light;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
:root[data-theme="light"] {
|
|
46
|
+
--nf-login-home-green: #3f7a35;
|
|
47
|
+
--nf-login-on-brand: #ffffff;
|
|
48
|
+
--nf-login-accent: #0067ba;
|
|
49
|
+
--nf-login-ok: #1f8a5b;
|
|
50
|
+
--nf-login-warn: #8a5a00;
|
|
51
|
+
--nf-login-crit: #c4321a;
|
|
52
|
+
--nf-login-bg: #f7f7f8;
|
|
53
|
+
--nf-login-surface: #ffffff;
|
|
54
|
+
--nf-login-raised: #f1f5fa;
|
|
55
|
+
--nf-login-line: #e3e9f2;
|
|
56
|
+
--nf-login-line-strong: #cfd8e6;
|
|
57
|
+
--nf-login-heading: #0e1726;
|
|
58
|
+
--nf-login-text: #2b3a52;
|
|
59
|
+
--nf-login-muted: #5b6b84;
|
|
60
|
+
--nf-login-field: #ffffff;
|
|
61
|
+
--nf-login-crit-bg: #fff3f0;
|
|
62
|
+
--nf-login-ok-bg: #edf8f2;
|
|
63
|
+
--nf-login-backdrop: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2222%22%20height%3D%2222%22%3E%3Ccircle%20cx%3D%2211%22%20cy%3D%2211%22%20r%3D%221.1%22%20fill%3D%22%23d4d7dc%22%2F%3E%3C%2Fsvg%3E");
|
|
64
|
+
--nf-login-card-shadow:
|
|
65
|
+
0 1px 2px rgba(16, 24, 40, 0.06), 0 12px 32px rgba(16, 24, 40, 0.08);
|
|
66
|
+
color-scheme: light;
|
|
67
|
+
}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
/* ═══ nodefony/login/skins/enterprise.css — habillage « Entreprise » ═══
|
|
2
|
+
Intranet derrière un fournisseur d'identité : courbes de niveau,
|
|
3
|
+
palette sarcelle. Dessiné pour `providersFirst: true` — le compte de
|
|
4
|
+
l'entreprise passe avant le compte local.
|
|
5
|
+
|
|
6
|
+
Mise en page : `card` · fond décoré (`<body data-backdrop>`).
|
|
7
|
+
Chargée APRÈS `login.css` et AVANT la feuille de l'application
|
|
8
|
+
(`loginPage.skin: "enterprise"`) : elle ne redéfinit que des variables
|
|
9
|
+
`--nf-login-*` et la disposition de sa mise en page — jamais le balisage.
|
|
10
|
+
Aucune photo n'est fournie : elle vient de l'application
|
|
11
|
+
(`--nf-login-hero-image`). Le jeu CLAIR est écrit deux fois, à l'identique,
|
|
12
|
+
comme dans `login.css`. */
|
|
13
|
+
:root {
|
|
14
|
+
--nf-login-home-green: #7cc46c;
|
|
15
|
+
--nf-login-brand: #0f766e;
|
|
16
|
+
--nf-login-brand-hover: #0b5f58;
|
|
17
|
+
--nf-login-accent: #2dd4bf;
|
|
18
|
+
--nf-login-bg: #0e1514;
|
|
19
|
+
--nf-login-surface: #141d1c;
|
|
20
|
+
--nf-login-raised: #1a2625;
|
|
21
|
+
--nf-login-line: #243432;
|
|
22
|
+
--nf-login-line-strong: #334744;
|
|
23
|
+
--nf-login-field: #101918;
|
|
24
|
+
--nf-login-muted: #8fa6a2;
|
|
25
|
+
--nf-login-backdrop: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1600 1000' preserveAspectRatio='xMidYMid slice'%3E%3Cg fill='none' stroke='%232dd4bf' stroke-opacity='0.16' stroke-width='1.2'%3E%3Cpolyline points='1300,280 1298,284 1295,287 1292,290 1289,292 1287,294 1284,297 1282,299 1280,301 1277,303 1275,306 1272,307 1269,309 1266,310 1262,312 1259,312 1255,313 1252,314 1248,315 1244,316 1240,317 1236,317 1231,317 1227,317 1222,316 1218,314 1215,312 1212,309 1211,305 1209,302 1208,298 1208,295 1207,292 1207,289 1206,286 1204,283 1203,280 1202,277 1201,273 1201,270 1202,267 1203,263 1205,260 1208,258 1211,255 1215,254 1219,252 1222,251 1226,249 1230,248 1233,247 1237,246 1240,246 1244,245 1248,245 1252,246 1255,247 1259,248 1262,249 1265,250 1269,251 1272,252 1276,253 1280,254 1285,256 1289,257 1293,259 1297,262 1300,265 1302,269 1302,272 1302,276 1300,280'/%3E%3Cpolyline points='1351,280 1346,287 1341,293 1335,299 1329,304 1323,308 1319,313 1314,317 1310,322 1306,326 1301,330 1295,334 1290,338 1283,341 1277,343 1270,345 1263,347 1256,349 1248,351 1240,353 1232,354 1223,356 1214,356 1204,355 1196,353 1188,349 1181,344 1176,338 1172,331 1170,324 1169,317 1168,310 1167,304 1166,298 1164,292 1162,286 1160,280 1157,274 1156,267 1156,260 1157,253 1160,247 1164,241 1169,236 1176,232 1183,228 1190,225 1197,222 1204,219 1211,217 1218,214 1225,212 1233,211 1240,210 1248,210 1256,211 1263,212 1270,214 1277,217 1284,219 1290,222 1297,224 1305,226 1313,228 1322,230 1331,234 1339,238 1346,243 1352,250 1355,257 1356,265 1355,273 1351,280'/%3E%3Cpolyline points='1400,280 1393,290 1384,299 1375,307 1367,315 1359,321 1352,328 1346,335 1340,341 1333,348 1327,355 1319,361 1311,367 1301,371 1292,376 1281,379 1271,382 1260,385 1248,388 1236,391 1223,394 1209,395 1195,396 1181,394 1168,391 1156,385 1146,377 1139,367 1134,357 1130,346 1129,335 1128,325 1127,315 1126,306 1124,298 1121,289 1118,280 1115,271 1113,261 1112,251 1114,241 1118,231 1124,223 1132,215 1141,208 1151,203 1161,197 1172,193 1182,189 1192,184 1203,180 1214,177 1225,174 1236,173 1248,173 1260,174 1271,176 1282,179 1292,183 1302,187 1313,191 1323,194 1335,197 1347,201 1360,205 1372,210 1384,217 1395,225 1402,235 1407,246 1408,258 1405,269 1400,280'/%3E%3Cpolyline points='1447,280 1437,293 1426,305 1414,316 1403,325 1393,334 1384,343 1376,352 1369,361 1361,371 1353,380 1343,389 1332,396 1320,403 1307,409 1293,414 1279,419 1264,423 1248,428 1231,432 1214,435 1196,437 1177,437 1158,435 1140,429 1125,421 1112,410 1102,397 1095,383 1092,368 1090,353 1090,339 1090,326 1089,314 1086,303 1083,292 1079,280 1074,268 1071,255 1071,242 1072,229 1077,216 1085,205 1095,194 1106,185 1119,177 1133,170 1146,163 1159,157 1173,151 1187,145 1201,140 1216,137 1232,134 1248,134 1264,135 1279,138 1294,143 1308,148 1322,154 1335,159 1349,164 1364,169 1380,174 1397,180 1413,188 1429,197 1442,208 1451,221 1457,235 1458,250 1454,266 1447,280'/%3E%3Cpolyline points='1492,280 1480,296 1466,311 1452,324 1439,336 1427,347 1417,358 1408,369 1399,381 1390,394 1380,406 1368,417 1355,428 1339,437 1323,445 1305,452 1287,458 1268,463 1248,468 1227,473 1205,477 1181,479 1158,479 1134,475 1112,468 1093,457 1077,443 1066,426 1058,407 1055,388 1053,370 1054,353 1054,337 1053,322 1050,308 1046,294 1041,280 1036,265 1032,250 1030,233 1031,217 1037,201 1045,186 1057,173 1071,161 1087,151 1103,142 1119,133 1136,124 1153,116 1170,109 1188,102 1208,97 1228,94 1248,93 1268,95 1288,100 1306,106 1324,113 1341,120 1358,128 1375,135 1394,141 1413,148 1433,156 1453,165 1471,177 1487,191 1498,207 1505,225 1506,244 1501,262 1492,280'/%3E%3Cpolyline points='1536,280 1521,299 1505,316 1489,332 1474,346 1461,360 1450,373 1440,388 1430,402 1420,418 1408,433 1394,447 1378,460 1360,472 1340,482 1318,490 1296,498 1273,504 1248,510 1222,515 1195,519 1167,521 1139,520 1111,515 1085,506 1062,492 1044,474 1031,454 1023,431 1019,408 1019,386 1019,365 1020,346 1019,329 1017,313 1011,297 1005,280 998,263 992,244 989,225 990,205 996,186 1005,168 1019,152 1035,137 1053,124 1072,112 1091,101 1111,90 1131,80 1153,70 1175,62 1199,56 1223,52 1248,52 1273,55 1297,60 1319,68 1340,77 1361,87 1380,97 1401,106 1422,114 1444,123 1467,133 1490,144 1512,158 1530,175 1543,194 1551,215 1552,237 1546,259 1536,280'/%3E%3Cpolyline points='1579,280 1563,302 1545,322 1528,340 1511,357 1497,373 1485,389 1474,407 1463,425 1452,443 1438,462 1422,479 1403,495 1381,509 1357,520 1332,530 1305,539 1277,546 1248,553 1218,558 1186,562 1153,563 1120,561 1088,554 1059,543 1033,526 1012,505 998,480 989,454 986,427 986,401 987,377 989,356 988,336 984,317 978,299 969,280 960,260 953,238 948,216 948,193 954,170 964,149 978,129 996,111 1017,95 1039,81 1061,67 1085,54 1109,42 1134,30 1161,21 1189,14 1218,10 1248,10 1277,14 1305,21 1331,31 1356,43 1379,55 1402,67 1425,78 1449,89 1474,100 1500,111 1526,124 1550,141 1571,160 1586,182 1595,206 1596,231 1590,256 1579,280'/%3E%3Cpolyline points='1622,280 1605,305 1586,328 1567,348 1550,368 1535,387 1522,407 1510,427 1499,448 1486,470 1470,492 1451,512 1429,531 1404,547 1376,560 1346,571 1314,581 1282,588 1248,595 1213,600 1177,603 1140,604 1102,600 1066,592 1033,577 1005,558 983,533 967,505 958,475 955,444 955,415 957,389 958,364 957,342 952,322 944,301 933,280 922,257 912,233 906,207 904,180 909,154 920,128 936,105 956,84 979,65 1004,48 1030,31 1058,16 1086,2 1116,-11 1147,-22 1180,-29 1214,-33 1248,-32 1282,-27 1314,-17 1343,-5 1371,10 1397,25 1422,39 1447,53 1473,65 1501,77 1530,91 1559,106 1587,124 1610,145 1628,170 1638,197 1640,225 1634,253 1622,280'/%3E%3Cpolyline points='1666,280 1649,308 1629,334 1610,358 1591,380 1575,402 1561,425 1549,449 1536,473 1521,499 1504,524 1482,547 1456,568 1426,586 1394,601 1359,612 1323,622 1286,630 1248,636 1209,640 1168,643 1127,642 1086,637 1046,627 1010,610 979,588 954,560 938,528 928,495 925,461 926,429 928,400 929,373 926,349 920,326 910,304 896,280 882,254 869,227 861,197 858,166 862,136 873,107 891,80 914,56 940,33 968,13 998,-5 1030,-22 1062,-38 1097,-52 1133,-64 1171,-72 1209,-75 1248,-73 1286,-66 1322,-54 1355,-38 1385,-21 1413,-3 1440,13 1468,29 1497,43 1527,57 1559,71 1591,88 1622,107 1648,131 1668,158 1681,187 1684,219 1679,250 1666,280'/%3E%3Cpolyline points='1713,280 1696,311 1676,340 1655,367 1636,393 1619,418 1604,444 1590,472 1575,500 1559,528 1538,556 1513,582 1483,606 1449,625 1412,641 1373,653 1332,662 1291,669 1248,675 1204,679 1160,680 1115,678 1070,672 1027,660 988,641 954,616 928,585 910,550 900,514 896,477 897,442 898,410 899,382 895,356 886,331 873,306 856,280 839,251 823,220 812,187 808,152 812,118 824,84 844,54 869,26 899,1 931,-22 966,-43 1001,-62 1039,-79 1078,-94 1119,-106 1161,-113 1205,-115 1248,-112 1290,-102 1329,-88 1365,-70 1398,-50 1428,-29 1458,-10 1487,7 1518,23 1551,38 1586,53 1622,71 1656,92 1686,117 1710,146 1724,178 1730,212 1725,247 1713,280'/%3E%3Cpolyline points='1764,280 1746,315 1725,347 1703,378 1683,407 1665,435 1648,465 1633,496 1616,527 1597,559 1573,590 1544,618 1510,643 1471,663 1430,679 1386,691 1341,700 1295,707 1248,711 1201,714 1152,715 1103,712 1055,704 1009,690 967,670 931,643 903,609 883,572 872,532 868,493 867,456 868,422 867,391 861,363 850,336 834,309 814,280 793,248 774,213 761,176 756,137 760,98 773,61 795,26 823,-5 857,-33 894,-58 933,-80 973,-101 1016,-119 1060,-134 1106,-145 1153,-152 1201,-153 1248,-148 1294,-136 1336,-119 1375,-98 1410,-76 1442,-53 1473,-32 1505,-13 1538,3 1574,19 1613,35 1653,53 1691,75 1725,102 1753,133 1770,168 1778,205 1775,243 1764,280'/%3E%3Cpolyline points='367,820 368,823 368,827 368,830 366,833 364,836 361,839 358,841 355,844 352,846 349,848 346,850 343,852 340,854 336,855 332,856 328,857 324,858 320,858 316,857 312,857 308,856 304,855 300,854 296,853 292,852 288,850 285,848 281,846 279,843 277,840 276,836 276,833 277,829 278,826 280,823 281,820 283,817 283,815 284,812 284,809 283,806 283,803 284,800 285,796 286,793 288,790 291,787 295,785 299,783 303,782 307,781 311,780 316,779 320,779 325,779 329,780 333,781 337,782 341,785 344,787 346,791 348,794 349,797 350,800 352,802 353,805 355,807 357,809 360,811 363,814 365,817 367,820'/%3E%3Cpolyline points='415,820 417,827 418,834 417,841 414,847 409,853 404,859 398,864 391,868 385,872 379,876 373,880 366,884 359,888 352,891 345,893 336,895 328,895 320,895 312,894 304,892 297,890 289,888 281,886 274,884 266,882 258,879 251,876 244,871 239,866 235,859 233,852 233,845 234,838 237,832 239,826 242,820 244,815 245,810 246,804 246,798 245,792 245,785 246,778 248,771 251,765 256,759 262,754 269,749 277,746 285,743 294,741 302,740 311,739 320,738 329,739 338,740 346,743 354,746 360,751 366,756 371,762 374,769 377,775 379,780 382,785 385,790 389,794 394,799 400,803 405,808 410,814 415,820'/%3E%3Cpolyline points='463,820 468,830 469,841 467,852 463,862 456,871 448,879 439,887 429,893 419,899 410,906 400,911 390,917 380,922 368,926 357,930 345,931 332,932 320,931 308,929 297,926 285,923 274,920 263,917 252,914 240,911 229,907 218,902 208,895 199,888 194,878 190,868 190,858 191,848 194,838 198,829 201,820 204,812 206,804 206,796 206,787 205,777 205,767 206,756 209,746 215,736 222,727 232,719 243,713 255,708 267,704 280,702 294,700 307,699 320,699 333,700 346,702 358,706 370,711 379,718 388,726 394,735 399,744 403,753 407,761 411,769 417,775 423,782 431,788 439,794 448,802 457,810 463,820'/%3E%3Cpolyline points='514,820 520,834 522,849 520,863 514,877 505,889 494,900 481,910 468,919 454,927 441,935 427,943 414,950 399,956 384,961 369,965 352,967 336,967 320,965 304,963 289,959 275,955 260,951 246,947 231,943 216,939 200,934 185,928 172,920 160,910 152,898 147,885 145,871 147,857 150,844 155,832 159,820 162,809 164,798 165,787 164,775 163,762 164,748 166,734 170,720 178,706 189,695 202,685 217,677 233,671 250,666 268,663 285,662 303,661 320,661 337,662 354,666 370,671 385,678 398,687 408,698 417,709 424,721 430,732 435,743 441,752 448,761 457,769 468,777 481,786 493,796 505,807 514,820'/%3E%3Cpolyline points='567,820 575,838 578,856 575,875 567,892 555,908 540,922 524,934 506,945 489,955 472,964 454,973 437,982 418,989 400,995 380,999 360,1001 340,1000 320,998 301,994 283,990 265,985 247,980 229,976 211,972 191,967 172,961 153,954 135,944 120,932 109,917 102,901 99,884 100,867 104,851 109,835 114,820 118,806 120,792 121,777 121,762 120,746 121,728 125,711 131,693 141,677 155,663 172,651 191,642 212,635 234,630 255,627 277,625 299,624 320,625 341,627 362,631 381,637 399,646 415,657 429,670 440,683 448,698 456,711 463,724 471,735 481,746 493,755 508,765 524,776 540,789 555,804 567,820'/%3E%3Cpolyline points='623,820 632,842 635,864 631,887 621,908 606,927 587,943 566,958 545,971 523,982 501,993 480,1003 459,1012 437,1020 414,1027 391,1031 367,1033 343,1032 320,1029 298,1025 276,1019 255,1014 234,1009 213,1004 190,1000 167,995 143,989 120,980 98,969 79,955 65,938 55,919 51,898 52,878 56,857 61,838 67,820 72,803 75,786 76,768 77,749 77,729 79,709 84,688 92,667 105,648 123,632 143,618 167,608 192,600 218,595 244,592 269,590 295,589 320,590 345,593 369,597 392,604 414,614 433,627 449,642 462,658 473,674 483,690 492,705 503,718 515,730 531,741 549,753 569,767 589,782 608,800 623,820'/%3E%3Cpolyline points='679,820 690,846 693,873 688,899 675,923 656,945 633,965 608,981 582,996 556,1008 530,1020 505,1031 479,1041 454,1050 428,1057 401,1061 374,1063 347,1062 320,1059 294,1054 270,1048 246,1042 221,1037 196,1033 170,1028 142,1024 113,1017 85,1008 59,995 36,979 18,959 6,937 1,913 1,888 5,864 12,842 19,820 25,799 29,779 31,758 32,736 34,713 37,689 44,665 55,642 71,621 91,602 116,587 144,576 173,567 203,562 232,559 262,557 291,556 320,557 349,560 376,565 403,572 428,583 450,597 469,613 485,631 499,650 511,667 523,684 536,699 552,713 571,726 593,741 617,756 641,775 662,796 679,820'/%3E%3Cpolyline points='737,820 749,850 751,881 744,911 728,939 705,964 678,985 648,1004 617,1019 586,1033 557,1046 528,1057 499,1068 470,1077 440,1085 410,1090 380,1092 350,1091 320,1088 291,1083 263,1077 236,1071 208,1066 179,1062 148,1058 116,1054 82,1047 49,1037 18,1023 -10,1005 -31,982 -45,956 -52,928 -52,900 -47,872 -40,845 -31,820 -23,796 -18,772 -14,748 -11,724 -8,698 -3,671 5,644 19,618 38,594 62,574 90,558 122,545 155,537 188,531 222,527 255,525 288,524 320,525 352,527 384,532 414,540 442,551 468,566 491,584 510,603 526,623 541,643 556,662 572,679 591,695 613,711 639,727 667,746 694,767 719,792 737,820'/%3E%3Cpolyline points='795,820 807,854 808,889 798,923 779,954 753,981 721,1005 686,1025 650,1042 615,1056 582,1069 549,1082 517,1093 485,1103 453,1111 419,1117 386,1120 353,1119 320,1116 288,1112 257,1106 226,1101 194,1097 161,1093 125,1090 88,1086 49,1079 10,1068 -26,1052 -57,1031 -82,1006 -98,976 -106,944 -107,912 -101,879 -92,849 -81,820 -71,793 -63,766 -57,739 -53,711 -48,683 -41,653 -31,624 -15,595 7,570 34,548 66,530 101,517 138,507 175,501 212,497 248,494 284,493 320,493 356,494 391,498 425,506 458,518 487,533 513,552 536,573 555,596 573,618 591,638 610,658 632,676 658,694 687,713 718,735 748,760 775,788 795,820'/%3E%3Cpolyline points='924,950 924,953 925,956 925,960 925,963 924,967 923,970 921,973 919,976 916,979 912,980 908,982 904,983 899,983 895,983 891,983 887,984 884,984 880,985 876,986 872,987 868,987 863,987 859,987 855,985 851,983 848,981 846,978 844,974 842,971 841,968 841,965 840,962 839,959 838,956 838,953 838,950 838,947 838,944 839,941 841,939 842,936 844,933 846,931 847,928 849,925 850,922 852,918 855,915 858,912 862,909 866,907 870,906 875,906 880,907 885,909 889,911 892,913 895,916 898,919 901,921 903,923 906,925 909,927 911,929 914,931 917,933 919,936 920,938 922,941 923,944 923,947 924,950'/%3E%3Cpolyline points='969,950 970,956 971,963 971,970 971,977 970,984 968,991 964,997 959,1003 953,1008 945,1012 936,1014 927,1016 919,1016 910,1016 902,1017 895,1017 887,1018 880,1019 872,1021 864,1022 856,1023 847,1023 838,1022 830,1019 823,1015 817,1010 812,1004 809,998 806,992 804,985 802,979 800,973 798,968 796,962 795,956 794,950 794,944 795,938 797,932 800,927 803,921 806,916 809,910 813,905 816,899 820,893 824,886 829,880 835,874 843,868 851,865 861,863 871,863 880,865 889,868 897,873 904,878 910,884 916,889 921,894 926,898 931,902 936,905 942,909 947,912 952,917 957,921 961,927 964,932 966,938 968,944 969,950'/%3E%3Cpolyline points='1015,950 1017,960 1019,970 1019,980 1019,991 1018,1001 1014,1012 1008,1022 1000,1031 990,1038 978,1043 965,1047 951,1049 938,1049 925,1049 913,1049 902,1049 891,1050 880,1052 869,1054 857,1056 844,1058 831,1057 819,1056 807,1052 796,1046 787,1039 780,1030 774,1021 769,1012 766,1003 762,994 759,985 756,977 753,968 751,959 749,950 749,941 750,932 753,923 757,914 761,906 767,898 772,890 778,881 783,872 789,863 796,854 804,844 813,835 825,828 837,823 851,820 866,821 880,824 893,829 905,836 915,844 924,853 932,860 940,867 947,873 955,879 963,884 971,889 980,894 988,900 995,907 1002,915 1006,923 1010,932 1013,941 1015,950'/%3E%3Cpolyline points='1064,950 1067,963 1069,977 1069,991 1069,1005 1067,1020 1061,1034 1053,1047 1042,1059 1028,1068 1011,1075 993,1079 975,1081 957,1082 940,1081 924,1080 909,1080 894,1081 880,1083 865,1086 850,1089 833,1090 816,1091 799,1088 784,1084 769,1076 757,1067 747,1056 739,1045 733,1033 727,1021 722,1009 717,997 712,986 708,974 704,962 702,950 701,938 703,925 707,913 712,901 719,890 726,879 734,868 742,857 750,846 758,834 767,821 778,809 792,798 807,789 824,782 842,779 861,780 880,784 897,792 913,801 926,812 938,823 948,833 958,842 968,849 979,856 990,862 1001,869 1013,875 1025,883 1035,892 1044,902 1051,913 1057,925 1061,937 1064,950'/%3E%3Cpolyline points='1115,950 1118,967 1120,984 1121,1002 1120,1020 1116,1038 1109,1056 1098,1072 1083,1086 1065,1098 1044,1106 1021,1111 997,1113 975,1112 953,1111 934,1110 915,1109 898,1110 880,1113 862,1116 843,1120 822,1122 802,1123 781,1120 761,1115 743,1107 727,1096 714,1083 704,1068 695,1054 687,1039 680,1025 673,1010 667,996 660,981 656,966 652,950 652,934 654,918 659,903 666,888 675,874 686,860 696,847 706,833 717,820 728,805 740,790 754,776 771,762 790,751 811,744 834,740 857,741 880,747 901,756 920,768 937,781 951,794 964,806 976,817 989,826 1002,833 1017,841 1032,848 1048,856 1063,866 1076,877 1088,890 1098,903 1105,918 1111,934 1115,950'/%3E%3Cpolyline points='1168,950 1171,970 1173,991 1173,1013 1171,1035 1166,1057 1156,1078 1142,1097 1124,1114 1101,1127 1075,1136 1047,1141 1019,1142 992,1141 966,1139 943,1137 921,1137 901,1138 880,1141 859,1145 836,1150 812,1153 787,1155 762,1153 738,1147 716,1138 697,1125 680,1110 667,1093 655,1076 645,1059 636,1041 627,1024 619,1006 611,988 605,969 601,950 601,931 604,911 611,892 620,874 632,858 645,842 659,826 672,810 685,794 699,777 714,760 731,743 751,728 773,715 799,707 826,703 853,704 880,711 905,721 927,735 947,750 964,765 980,779 995,791 1010,801 1027,810 1045,818 1064,826 1084,836 1102,847 1120,861 1134,876 1146,893 1156,911 1163,930 1168,950'/%3E%3C/g%3E%3C/svg%3E");
|
|
26
|
+
/* Motif du thème clair, écrit UNE fois : les deux copies du jeu clair le
|
|
27
|
+
désignent par cette variable au lieu de le recopier (35 Ko chacun). */
|
|
28
|
+
--nf-login-enterprise-topo-light: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1600 1000' preserveAspectRatio='xMidYMid slice'%3E%3Cg fill='none' stroke='%230f766e' stroke-opacity='0.12' stroke-width='1.2'%3E%3Cpolyline points='1299,280 1297,284 1295,287 1293,290 1290,292 1287,295 1285,297 1283,300 1281,302 1280,305 1278,308 1275,311 1272,314 1269,316 1265,317 1261,318 1257,318 1252,318 1248,318 1244,317 1240,316 1237,315 1233,313 1229,312 1226,311 1223,309 1220,307 1217,305 1215,302 1213,299 1212,297 1211,294 1210,291 1209,288 1207,286 1205,283 1203,280 1201,277 1200,273 1198,269 1198,265 1198,261 1200,258 1203,255 1206,252 1211,250 1215,249 1220,248 1225,248 1229,248 1233,247 1237,247 1241,247 1244,247 1248,247 1252,247 1255,247 1259,248 1262,249 1266,250 1269,251 1272,253 1275,254 1278,256 1282,257 1286,259 1289,261 1293,263 1296,266 1298,269 1299,273 1300,276 1299,280'/%3E%3Cpolyline points='1351,280 1348,287 1343,293 1338,299 1332,305 1327,309 1322,314 1318,319 1314,324 1310,330 1306,335 1301,341 1295,346 1289,350 1281,353 1273,355 1265,355 1256,355 1248,354 1240,352 1233,350 1225,348 1218,346 1211,344 1204,341 1197,338 1191,335 1186,330 1181,325 1177,320 1174,314 1172,308 1170,303 1167,297 1165,292 1161,286 1157,280 1153,273 1150,266 1148,259 1147,251 1149,243 1152,236 1158,230 1166,225 1174,221 1184,219 1193,217 1202,217 1211,217 1219,216 1227,216 1234,216 1241,215 1248,215 1255,215 1262,215 1269,216 1276,218 1283,220 1290,222 1296,225 1303,228 1310,231 1317,234 1324,237 1332,241 1339,246 1345,252 1349,258 1352,265 1353,273 1351,280'/%3E%3Cpolyline points='1404,280 1399,291 1391,300 1383,309 1374,317 1365,324 1358,331 1351,338 1345,345 1340,353 1333,361 1326,369 1318,377 1308,383 1297,387 1285,390 1273,391 1260,391 1248,390 1236,388 1225,385 1214,383 1203,380 1192,377 1181,373 1171,369 1161,363 1152,356 1145,349 1140,341 1135,332 1131,324 1128,315 1125,307 1121,298 1116,289 1110,280 1105,270 1101,259 1098,248 1097,236 1100,225 1106,214 1115,205 1126,198 1139,193 1153,190 1167,188 1181,187 1194,187 1206,187 1217,186 1227,185 1238,184 1248,183 1259,183 1269,183 1280,184 1291,186 1301,189 1311,193 1321,196 1332,200 1342,205 1354,209 1365,215 1376,221 1387,228 1396,237 1403,247 1406,258 1407,269 1404,280'/%3E%3Cpolyline points='1457,280 1449,294 1439,307 1427,318 1414,328 1403,338 1392,347 1383,356 1375,365 1367,376 1359,386 1350,397 1339,406 1326,415 1312,421 1297,425 1280,427 1264,427 1248,426 1232,423 1217,421 1202,418 1187,414 1172,411 1157,406 1143,400 1130,393 1118,384 1108,374 1100,363 1094,351 1089,339 1085,327 1081,316 1076,304 1070,293 1064,280 1057,267 1052,252 1049,237 1048,222 1052,207 1061,193 1073,182 1088,173 1106,166 1124,162 1143,160 1161,159 1177,158 1192,158 1207,157 1221,155 1234,153 1248,152 1262,151 1277,150 1291,151 1306,154 1320,157 1334,161 1348,166 1362,172 1377,177 1392,184 1407,191 1422,200 1436,210 1448,222 1457,235 1461,250 1461,265 1457,280'/%3E%3Cpolyline points='1509,280 1499,298 1484,313 1469,327 1453,340 1438,351 1424,362 1413,373 1403,384 1394,397 1384,410 1373,423 1360,435 1345,446 1327,454 1308,459 1288,462 1268,463 1248,462 1228,460 1209,457 1190,454 1170,451 1151,446 1132,441 1114,433 1097,424 1082,413 1070,400 1060,385 1052,370 1047,355 1042,340 1037,325 1032,311 1025,296 1018,280 1011,263 1005,246 1001,227 1002,208 1007,190 1017,174 1033,159 1052,148 1073,140 1096,135 1119,133 1141,131 1161,130 1179,129 1197,128 1214,125 1231,122 1248,119 1266,117 1284,116 1303,117 1321,120 1339,124 1357,129 1375,135 1393,142 1412,149 1431,157 1451,167 1469,178 1487,191 1501,206 1511,224 1516,242 1515,261 1509,280'/%3E%3Cpolyline points='1559,280 1546,301 1528,320 1509,336 1489,350 1471,363 1455,376 1441,388 1430,402 1419,417 1408,433 1396,449 1380,463 1363,477 1342,487 1320,495 1296,499 1272,501 1248,500 1224,498 1201,496 1177,492 1153,488 1130,483 1106,477 1084,468 1063,456 1045,442 1030,426 1019,409 1010,390 1004,371 999,353 994,335 988,317 981,299 974,280 966,260 960,239 956,217 957,195 964,174 976,154 994,138 1017,125 1042,115 1069,109 1096,106 1121,104 1145,103 1166,101 1187,98 1207,94 1227,90 1248,86 1270,82 1292,81 1315,81 1337,84 1360,88 1382,95 1404,102 1426,110 1449,120 1472,130 1495,142 1517,156 1537,172 1553,191 1564,212 1569,235 1568,258 1559,280'/%3E%3Cpolyline points='1607,280 1590,304 1569,325 1546,344 1523,360 1502,375 1483,389 1468,403 1456,419 1444,437 1432,455 1418,474 1401,492 1381,508 1358,521 1332,531 1305,537 1276,540 1248,540 1220,539 1192,536 1163,533 1135,528 1107,522 1079,514 1053,503 1029,489 1007,473 990,453 977,432 968,409 962,387 957,365 952,343 947,323 940,302 932,280 924,257 917,233 913,208 915,183 922,159 937,136 957,117 983,102 1012,91 1042,84 1072,79 1101,76 1128,74 1153,71 1177,67 1200,62 1224,56 1248,50 1274,46 1300,43 1327,43 1354,46 1381,52 1408,59 1434,68 1460,78 1486,90 1512,103 1539,117 1564,134 1586,154 1604,176 1616,201 1621,227 1618,254 1607,280'/%3E%3Cpolyline points='1652,280 1632,307 1608,331 1581,351 1555,369 1531,386 1511,402 1495,418 1481,437 1469,457 1456,478 1441,501 1423,522 1400,541 1374,557 1345,569 1314,577 1281,581 1248,582 1215,581 1182,579 1149,575 1116,569 1084,562 1052,552 1021,539 994,523 970,503 951,479 937,454 928,428 921,402 917,376 913,352 908,328 901,304 893,280 884,255 877,228 873,200 874,171 883,144 898,118 921,97 949,79 981,66 1015,58 1048,52 1080,48 1111,44 1139,40 1166,34 1192,27 1220,19 1248,12 1278,6 1309,3 1341,4 1372,7 1403,14 1434,23 1464,34 1493,46 1523,60 1553,76 1582,93 1609,113 1634,136 1653,162 1666,191 1670,221 1665,251 1652,280'/%3E%3Cpolyline points='1695,280 1672,310 1644,336 1614,359 1586,378 1560,396 1538,414 1521,433 1507,454 1495,477 1481,502 1465,528 1445,554 1421,576 1392,595 1359,610 1323,620 1286,625 1248,627 1210,626 1173,623 1135,618 1097,611 1060,603 1024,591 990,575 959,555 933,532 913,505 898,476 889,446 884,416 880,387 877,360 872,333 866,307 857,280 848,252 839,222 834,191 835,160 844,129 860,101 884,76 915,56 950,41 986,31 1023,23 1059,18 1092,12 1123,6 1154,-1 1184,-10 1215,-19 1248,-28 1282,-35 1318,-38 1354,-38 1391,-33 1426,-25 1460,-14 1494,-1 1527,14 1559,31 1592,49 1623,70 1653,93 1679,119 1700,149 1712,181 1716,214 1710,248 1695,280'/%3E%3Cpolyline points='1735,280 1709,312 1679,341 1647,366 1616,387 1589,407 1566,427 1549,448 1535,472 1522,499 1508,528 1491,558 1470,587 1443,614 1410,636 1373,653 1333,665 1291,671 1248,673 1205,672 1163,668 1120,662 1078,654 1037,643 997,629 959,610 926,587 898,560 877,529 862,496 853,462 849,429 846,397 844,367 840,338 833,309 823,280 813,250 803,217 797,183 796,149 804,115 821,83 847,55 879,32 916,15 956,2 996,-7 1035,-15 1072,-22 1107,-30 1141,-39 1175,-49 1211,-60 1248,-70 1287,-77 1328,-80 1368,-79 1409,-74 1448,-64 1486,-50 1523,-34 1559,-16 1594,3 1629,25 1662,48 1694,74 1722,103 1743,136 1756,171 1759,208 1752,245 1735,280'/%3E%3Cpolyline points='1773,280 1746,315 1714,346 1680,373 1647,396 1619,418 1596,441 1578,465 1564,492 1551,523 1537,556 1519,590 1496,623 1466,654 1430,679 1388,698 1343,711 1296,718 1248,720 1200,719 1153,713 1105,706 1059,696 1014,682 970,665 930,644 895,617 865,586 843,552 829,515 820,478 817,441 815,406 813,373 809,342 802,311 791,280 778,247 767,212 758,175 757,137 764,99 781,64 807,33 841,7 881,-13 924,-29 968,-40 1010,-50 1051,-58 1090,-68 1128,-79 1166,-91 1206,-103 1248,-113 1292,-120 1337,-123 1382,-121 1427,-113 1470,-101 1511,-85 1551,-66 1589,-45 1626,-23 1663,1 1699,28 1732,57 1761,89 1783,124 1797,162 1800,202 1792,242 1773,280'/%3E%3Cpolyline points='367,820 367,823 366,827 365,830 364,833 363,836 361,839 359,842 357,845 354,847 350,849 346,850 343,851 339,853 335,854 332,855 328,856 324,857 320,858 316,859 311,859 307,859 303,858 299,856 296,854 293,851 291,848 290,844 289,841 288,838 287,835 285,833 284,831 282,828 280,826 278,823 276,820 274,817 274,814 274,810 274,807 275,803 277,800 279,797 281,794 284,791 287,788 290,786 294,784 298,782 302,781 307,781 311,781 316,782 320,784 324,786 327,788 330,790 333,792 336,793 339,794 342,794 346,795 350,796 354,797 358,799 361,801 364,804 366,807 367,810 368,813 368,817 367,820'/%3E%3Cpolyline points='416,820 415,827 413,833 412,840 410,846 407,852 403,858 399,864 393,869 387,874 380,877 372,880 365,882 357,884 350,886 343,888 335,890 328,892 320,895 312,896 303,897 294,897 286,895 278,892 272,887 266,881 262,875 259,869 257,862 255,857 252,851 250,846 246,842 242,837 237,832 233,826 229,820 227,814 225,807 226,800 227,793 230,786 233,780 238,774 242,768 248,762 254,757 261,752 268,748 276,745 285,743 294,743 303,744 312,746 320,750 327,754 334,758 340,761 345,764 351,766 358,768 365,769 372,770 381,772 389,774 397,777 404,781 409,787 413,793 416,800 417,806 417,813 416,820'/%3E%3Cpolyline points='467,820 465,830 462,840 459,850 456,860 451,869 445,878 438,886 429,893 420,900 409,905 398,909 386,912 375,914 364,917 353,920 343,923 332,926 320,930 308,932 295,934 282,934 269,931 258,927 248,920 240,912 233,903 228,894 224,884 221,876 217,868 212,860 206,853 200,846 193,838 187,829 181,820 178,810 176,800 177,789 179,779 184,769 189,760 196,751 204,742 213,734 222,726 232,720 243,714 255,709 268,707 282,706 295,708 308,711 320,716 331,722 340,728 349,733 358,737 366,740 376,742 387,744 399,745 411,747 424,750 436,755 447,761 456,769 462,779 466,789 468,799 468,810 467,820'/%3E%3Cpolyline points='519,820 516,834 512,847 507,860 501,873 495,885 486,897 476,908 465,917 451,925 437,931 421,936 406,940 392,943 377,946 364,950 350,954 335,959 320,964 304,968 287,970 270,970 253,968 237,962 223,954 212,943 203,932 196,919 190,907 185,896 179,885 173,875 165,865 156,855 147,844 139,833 132,820 128,807 126,793 127,779 131,765 138,752 146,740 156,728 167,717 178,707 191,697 205,688 219,681 236,675 253,672 270,671 288,673 305,678 320,684 334,692 347,699 358,705 370,710 382,714 395,716 410,717 426,719 444,721 461,725 478,732 493,740 505,751 514,764 519,777 521,792 521,806 519,820'/%3E%3Cpolyline points='572,820 567,837 561,854 554,870 546,886 537,901 526,915 513,928 498,940 481,949 463,956 444,962 426,966 408,970 390,974 373,979 356,985 339,991 320,997 300,1003 279,1007 257,1008 236,1005 216,999 198,989 183,976 171,962 162,946 154,931 147,917 140,903 131,890 122,878 111,865 100,851 90,836 83,820 78,803 76,786 79,768 85,752 94,736 105,721 117,707 131,693 146,681 162,669 178,658 197,649 216,642 237,638 259,637 280,640 301,645 320,653 337,661 353,670 368,677 383,683 398,686 415,689 434,690 455,691 477,694 500,699 521,707 540,718 555,732 566,748 573,766 575,784 575,802 572,820'/%3E%3Cpolyline points='624,820 617,841 609,861 600,880 590,899 578,916 564,933 548,948 530,961 509,971 488,980 466,986 444,992 423,996 403,1001 383,1008 363,1015 342,1023 320,1032 296,1039 271,1044 244,1046 218,1044 194,1037 172,1025 153,1010 138,993 127,975 117,957 108,939 99,922 89,906 77,891 65,875 53,858 42,840 33,820 28,800 28,779 32,758 40,738 51,720 65,702 81,686 97,671 115,656 133,642 153,630 175,619 198,611 222,606 248,604 273,607 297,612 320,621 341,630 360,639 378,647 396,654 415,657 436,660 459,661 485,663 513,666 540,672 566,682 589,696 607,713 620,733 628,754 630,776 628,798 624,820'/%3E%3Cpolyline points='674,820 665,844 655,867 643,889 630,910 616,931 600,949 581,966 560,981 536,993 511,1003 486,1010 462,1016 438,1022 415,1028 392,1036 370,1045 346,1056 320,1067 292,1077 262,1084 231,1086 200,1084 171,1076 144,1063 122,1046 104,1026 89,1004 78,983 67,962 57,942 46,922 33,904 20,884 6,864 -6,843 -14,820 -19,796 -19,772 -13,749 -3,726 11,705 28,685 46,666 65,649 85,632 107,617 129,602 154,589 180,580 208,573 237,571 266,573 294,579 320,587 344,597 367,607 388,616 410,623 433,627 458,629 486,630 517,632 550,636 582,644 612,656 639,673 660,693 674,717 682,742 684,769 681,795 674,820'/%3E%3Cpolyline points='722,820 711,847 698,873 684,898 669,922 652,944 633,965 612,983 588,1000 562,1013 534,1024 507,1033 479,1041 453,1048 427,1056 402,1066 377,1077 350,1090 320,1104 288,1116 253,1125 217,1129 181,1127 146,1118 116,1103 89,1084 68,1060 51,1035 38,1009 26,985 15,961 3,938 -11,916 -25,894 -39,871 -51,846 -60,820 -64,793 -62,766 -55,740 -43,714 -27,691 -8,669 13,648 35,628 57,610 81,592 106,575 132,560 162,548 193,540 225,537 258,538 290,543 320,552 348,563 374,573 400,583 425,589 452,594 482,596 514,598 550,601 588,606 625,616 659,630 689,650 712,674 728,701 735,731 736,761 731,791 722,820'/%3E%3Cpolyline points='768,820 754,850 738,879 722,906 704,932 686,956 665,979 641,1000 615,1018 587,1034 557,1046 527,1056 497,1066 468,1075 440,1085 413,1097 384,1111 354,1127 320,1143 283,1158 243,1168 202,1173 160,1171 121,1162 86,1145 56,1122 32,1095 13,1066 -2,1036 -15,1008 -27,980 -39,954 -53,929 -68,903 -82,877 -94,849 -103,820 -106,790 -103,760 -94,731 -80,703 -62,677 -41,653 -18,630 5,609 29,587 55,567 82,548 111,530 143,516 177,506 213,501 250,501 286,506 320,515 352,526 382,537 412,547 441,554 472,559 506,562 544,565 584,568 626,575 668,587 706,604 738,627 763,655 779,686 787,720 786,754 779,788 768,820'/%3E%3Cpolyline points='920,950 920,953 920,956 920,959 920,962 920,965 920,969 920,973 919,976 918,980 915,983 912,986 907,988 903,989 898,989 893,989 888,988 884,987 880,986 876,984 873,983 869,983 866,982 862,981 858,980 855,979 851,977 848,975 846,973 843,971 842,968 840,965 839,962 837,959 836,956 835,953 834,950 833,947 833,943 834,940 835,937 837,934 840,932 843,929 847,928 850,926 853,924 856,922 859,920 861,918 864,915 868,913 871,911 876,909 880,908 885,908 889,908 894,910 898,912 901,914 904,917 906,920 909,923 911,926 913,928 914,931 916,933 918,936 919,939 920,942 920,944 920,947 920,950'/%3E%3Cpolyline points='962,950 962,956 962,962 962,968 962,974 963,981 963,988 962,996 960,1003 956,1011 951,1017 944,1023 935,1026 926,1028 916,1029 906,1028 897,1025 888,1023 880,1020 873,1018 866,1016 859,1014 852,1012 844,1011 837,1009 830,1007 824,1004 818,1000 812,996 808,991 804,985 800,980 797,974 794,969 791,963 788,956 786,950 784,943 784,937 786,930 789,923 793,918 799,913 805,908 812,904 819,901 825,898 831,894 837,890 842,886 849,881 855,876 863,872 871,869 880,867 889,866 898,868 907,870 914,875 921,880 927,885 932,891 936,896 940,902 944,907 948,912 952,917 955,922 958,927 960,933 961,939 962,944 962,950'/%3E%3Cpolyline points='1006,950 1006,959 1006,968 1006,977 1006,987 1006,997 1006,1008 1004,1020 1001,1031 995,1042 987,1052 976,1059 963,1064 948,1067 933,1067 919,1065 905,1062 892,1057 880,1053 869,1049 859,1046 849,1044 838,1042 828,1040 817,1037 807,1034 797,1030 787,1024 779,1018 772,1011 765,1003 760,995 754,987 749,978 744,969 740,960 736,950 734,940 734,929 736,919 740,909 747,901 756,893 766,886 777,881 787,876 797,871 806,866 815,860 824,854 833,847 843,840 855,834 867,830 880,827 894,827 907,829 919,833 931,839 940,847 949,855 956,863 963,871 970,878 976,886 982,893 988,900 993,908 998,916 1001,924 1004,933 1005,941 1006,950'/%3E%3Cpolyline points='1051,950 1051,962 1051,974 1051,987 1051,1000 1051,1014 1050,1029 1047,1044 1042,1059 1034,1073 1022,1085 1007,1095 989,1102 970,1105 950,1104 931,1101 912,1096 895,1090 880,1084 866,1079 853,1075 839,1072 826,1070 812,1067 797,1064 783,1061 770,1055 757,1049 745,1040 735,1031 726,1021 718,1011 710,1000 703,988 696,976 689,963 684,950 681,936 681,922 684,908 691,895 700,883 713,873 726,864 741,857 755,850 769,844 782,838 794,831 806,823 818,815 832,806 847,798 863,792 880,789 898,788 915,791 931,797 946,805 959,814 971,825 981,835 990,845 999,855 1008,864 1016,874 1025,883 1033,893 1039,904 1045,915 1048,926 1050,938 1051,950'/%3E%3Cpolyline points='1099,950 1099,965 1098,981 1098,997 1097,1013 1096,1031 1094,1049 1090,1068 1083,1086 1072,1104 1057,1118 1038,1130 1015,1138 991,1141 966,1140 942,1136 919,1129 899,1121 880,1114 863,1108 846,1103 830,1099 813,1097 796,1095 778,1092 760,1087 742,1081 726,1074 711,1064 697,1053 685,1040 674,1027 664,1013 654,999 645,983 637,967 631,950 627,932 627,914 631,897 640,880 653,865 669,853 687,842 706,833 725,826 742,819 759,811 774,803 789,794 804,784 821,773 839,764 859,757 880,753 902,752 923,755 943,761 962,771 978,782 992,795 1005,807 1017,819 1029,831 1041,842 1052,854 1064,865 1074,878 1083,891 1090,905 1095,920 1098,935 1099,950'/%3E%3Cpolyline points='1148,950 1147,969 1146,988 1144,1007 1143,1027 1141,1047 1138,1069 1132,1091 1122,1113 1109,1133 1090,1150 1067,1164 1040,1172 1011,1175 982,1174 953,1168 926,1160 902,1151 880,1143 860,1135 840,1130 821,1127 801,1124 780,1122 758,1120 736,1115 714,1109 693,1100 674,1088 657,1075 642,1060 628,1044 615,1027 603,1009 592,991 583,971 575,950 572,928 572,907 578,885 590,866 606,848 626,833 649,820 672,810 695,802 717,794 737,786 755,777 773,766 791,755 811,743 832,732 855,723 880,717 906,716 931,719 955,726 977,737 997,750 1014,764 1030,778 1046,792 1060,806 1075,819 1090,832 1104,846 1117,861 1129,878 1138,895 1144,913 1147,931 1148,950'/%3E%3C/g%3E%3C/svg%3E");
|
|
29
|
+
--nf-login-backdrop-size: cover;
|
|
30
|
+
color-scheme: dark;
|
|
31
|
+
}
|
|
32
|
+
@media (prefers-color-scheme: light) {
|
|
33
|
+
:root:not([data-theme="dark"]) {
|
|
34
|
+
--nf-login-home-green: #3f7a35;
|
|
35
|
+
--nf-login-on-brand: #ffffff;
|
|
36
|
+
--nf-login-accent: #0f766e;
|
|
37
|
+
--nf-login-ok: #1f8a5b;
|
|
38
|
+
--nf-login-warn: #8a5a00;
|
|
39
|
+
--nf-login-crit: #c4321a;
|
|
40
|
+
--nf-login-bg: #f2f7f6;
|
|
41
|
+
--nf-login-surface: #ffffff;
|
|
42
|
+
--nf-login-raised: #edf4f3;
|
|
43
|
+
--nf-login-line: #dce8e6;
|
|
44
|
+
--nf-login-line-strong: #cfd8e6;
|
|
45
|
+
--nf-login-heading: #0e1726;
|
|
46
|
+
--nf-login-text: #2b3a52;
|
|
47
|
+
--nf-login-muted: #5b6b84;
|
|
48
|
+
--nf-login-field: #ffffff;
|
|
49
|
+
--nf-login-crit-bg: #fff3f0;
|
|
50
|
+
--nf-login-ok-bg: #edf8f2;
|
|
51
|
+
--nf-login-brand: #0f766e;
|
|
52
|
+
--nf-login-brand-hover: #0b5f58;
|
|
53
|
+
--nf-login-backdrop: var(--nf-login-enterprise-topo-light);
|
|
54
|
+
--nf-login-backdrop-size: cover;
|
|
55
|
+
color-scheme: light;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
:root[data-theme="light"] {
|
|
59
|
+
--nf-login-home-green: #3f7a35;
|
|
60
|
+
--nf-login-on-brand: #ffffff;
|
|
61
|
+
--nf-login-accent: #0f766e;
|
|
62
|
+
--nf-login-ok: #1f8a5b;
|
|
63
|
+
--nf-login-warn: #8a5a00;
|
|
64
|
+
--nf-login-crit: #c4321a;
|
|
65
|
+
--nf-login-bg: #f2f7f6;
|
|
66
|
+
--nf-login-surface: #ffffff;
|
|
67
|
+
--nf-login-raised: #edf4f3;
|
|
68
|
+
--nf-login-line: #dce8e6;
|
|
69
|
+
--nf-login-line-strong: #cfd8e6;
|
|
70
|
+
--nf-login-heading: #0e1726;
|
|
71
|
+
--nf-login-text: #2b3a52;
|
|
72
|
+
--nf-login-muted: #5b6b84;
|
|
73
|
+
--nf-login-field: #ffffff;
|
|
74
|
+
--nf-login-crit-bg: #fff3f0;
|
|
75
|
+
--nf-login-ok-bg: #edf8f2;
|
|
76
|
+
--nf-login-brand: #0f766e;
|
|
77
|
+
--nf-login-brand-hover: #0b5f58;
|
|
78
|
+
--nf-login-backdrop: var(--nf-login-enterprise-topo-light);
|
|
79
|
+
--nf-login-backdrop-size: cover;
|
|
80
|
+
color-scheme: light;
|
|
81
|
+
}
|
|
82
|
+
body[data-sso-first] form .nf-btn {
|
|
83
|
+
width: 100%;
|
|
84
|
+
}
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
/* ═══ nodefony/login/skins/horizon.css — habillage « Horizon » ═══
|
|
2
|
+
Application grand public ou produit SaaS : une carte postale. La photo
|
|
3
|
+
de l'application vit DANS la carte, en bandeau ; sans photo, le bandeau
|
|
4
|
+
prend la couleur du panneau de marque.
|
|
5
|
+
|
|
6
|
+
Mise en page : `card`.
|
|
7
|
+
Chargée APRÈS `login.css` et AVANT la feuille de l'application
|
|
8
|
+
(`loginPage.skin: "horizon"`) : elle ne redéfinit que des variables
|
|
9
|
+
`--nf-login-*` et la disposition de sa mise en page — jamais le balisage.
|
|
10
|
+
Aucune photo n'est fournie : elle vient de l'application
|
|
11
|
+
(`--nf-login-hero-image`). Le jeu CLAIR est écrit deux fois, à l'identique,
|
|
12
|
+
comme dans `login.css`. */
|
|
13
|
+
:root {
|
|
14
|
+
--nf-login-bg: #0f1317;
|
|
15
|
+
--nf-login-surface: #171b21;
|
|
16
|
+
--nf-login-raised: #1e232b;
|
|
17
|
+
--nf-login-line: #272d36;
|
|
18
|
+
--nf-login-line-strong: #38404b;
|
|
19
|
+
--nf-login-field: #11151a;
|
|
20
|
+
--nf-login-card-width: 540px;
|
|
21
|
+
--nf-login-card-radius: 14px;
|
|
22
|
+
--nf-login-title-size: 24px;
|
|
23
|
+
/* Le bandeau porte la photo de l'application (`--nf-login-hero-image`) ;
|
|
24
|
+
une photo de 1100 px de large suffit à 540 px, même en Retina. */
|
|
25
|
+
--nf-login-band-height: 170px;
|
|
26
|
+
/* Décalage en px : un pourcentage se calculerait sur la boîte entière de .nf-head, pas sur le bandeau. */
|
|
27
|
+
--nf-login-band-position: center 0;
|
|
28
|
+
/* Micro-légende posée sur la photo (`"43.27 N · 5.35 E"`), ou rien. */
|
|
29
|
+
--nf-login-band-caption: none;
|
|
30
|
+
color-scheme: dark;
|
|
31
|
+
}
|
|
32
|
+
@media (prefers-color-scheme: light) {
|
|
33
|
+
:root:not([data-theme="dark"]) {
|
|
34
|
+
--nf-login-on-brand: #ffffff;
|
|
35
|
+
--nf-login-accent: #0067ba;
|
|
36
|
+
--nf-login-ok: #1f8a5b;
|
|
37
|
+
--nf-login-warn: #8a5a00;
|
|
38
|
+
--nf-login-crit: #c4321a;
|
|
39
|
+
--nf-login-bg: #eef1f5;
|
|
40
|
+
--nf-login-surface: #ffffff;
|
|
41
|
+
--nf-login-raised: #f2f4f7;
|
|
42
|
+
--nf-login-line: #e1e5ea;
|
|
43
|
+
--nf-login-line-strong: #ccd2da;
|
|
44
|
+
--nf-login-heading: #111317;
|
|
45
|
+
--nf-login-text: #343a40;
|
|
46
|
+
--nf-login-muted: #5d646d;
|
|
47
|
+
--nf-login-field: #ffffff;
|
|
48
|
+
--nf-login-crit-bg: #fff3f0;
|
|
49
|
+
--nf-login-ok-bg: #edf8f2;
|
|
50
|
+
color-scheme: light;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
:root[data-theme="light"] {
|
|
54
|
+
--nf-login-on-brand: #ffffff;
|
|
55
|
+
--nf-login-accent: #0067ba;
|
|
56
|
+
--nf-login-ok: #1f8a5b;
|
|
57
|
+
--nf-login-warn: #8a5a00;
|
|
58
|
+
--nf-login-crit: #c4321a;
|
|
59
|
+
--nf-login-bg: #eef1f5;
|
|
60
|
+
--nf-login-surface: #ffffff;
|
|
61
|
+
--nf-login-raised: #f2f4f7;
|
|
62
|
+
--nf-login-line: #e1e5ea;
|
|
63
|
+
--nf-login-line-strong: #ccd2da;
|
|
64
|
+
--nf-login-heading: #111317;
|
|
65
|
+
--nf-login-text: #343a40;
|
|
66
|
+
--nf-login-muted: #5d646d;
|
|
67
|
+
--nf-login-field: #ffffff;
|
|
68
|
+
--nf-login-crit-bg: #fff3f0;
|
|
69
|
+
--nf-login-ok-bg: #edf8f2;
|
|
70
|
+
color-scheme: light;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
/* ── La carte postale : la photo vit DANS la carte, le texte jamais dessus ──
|
|
74
|
+
Le bandeau est porté par .nf-head, pas par la carte : seuls ses trois enfants
|
|
75
|
+
sont « à revoir » pour axe (fond image), le reste de la carte reste mesurable. */
|
|
76
|
+
.nf-strip {
|
|
77
|
+
border-bottom-color: transparent;
|
|
78
|
+
background: transparent;
|
|
79
|
+
}
|
|
80
|
+
.nf-stage {
|
|
81
|
+
padding: 32px 16px 40px;
|
|
82
|
+
}
|
|
83
|
+
.nf-card {
|
|
84
|
+
overflow: hidden;
|
|
85
|
+
}
|
|
86
|
+
.nf-head {
|
|
87
|
+
position: relative;
|
|
88
|
+
padding-top: calc(var(--nf-login-band-height) + 25px);
|
|
89
|
+
/* Sans photo, le bandeau prend la couleur pleine du panneau de marque. */
|
|
90
|
+
background: var(--nf-login-hero-image) var(--nf-login-band-position) / 100%
|
|
91
|
+
auto no-repeat;
|
|
92
|
+
background-color: var(--nf-login-hero-bg);
|
|
93
|
+
}
|
|
94
|
+
/* Sous la photo, une plaque pleine bordée d'un filet : le titre est sur la surface, jamais sur l'image. */
|
|
95
|
+
.nf-head::after {
|
|
96
|
+
content: "";
|
|
97
|
+
position: absolute;
|
|
98
|
+
top: var(--nf-login-band-height);
|
|
99
|
+
left: 0;
|
|
100
|
+
right: 0;
|
|
101
|
+
bottom: 0;
|
|
102
|
+
border-top: 1px solid var(--nf-login-line);
|
|
103
|
+
background: var(--nf-login-surface);
|
|
104
|
+
}
|
|
105
|
+
.nf-head > * {
|
|
106
|
+
position: relative;
|
|
107
|
+
z-index: 1;
|
|
108
|
+
}
|
|
109
|
+
/* La marque, en pastille pleine posée sur la photo : lisible par construction. */
|
|
110
|
+
.nf-head .nf-brand {
|
|
111
|
+
display: inline-flex;
|
|
112
|
+
position: absolute;
|
|
113
|
+
top: 14px;
|
|
114
|
+
left: 14px;
|
|
115
|
+
margin: 0;
|
|
116
|
+
padding: 6px 10px 6px 8px;
|
|
117
|
+
border: 1px solid var(--nf-login-line);
|
|
118
|
+
border-radius: 8px;
|
|
119
|
+
background: var(--nf-login-surface);
|
|
120
|
+
font-size: 13px;
|
|
121
|
+
}
|
|
122
|
+
.nf-head .nf-brand .nf-logo {
|
|
123
|
+
height: 18px;
|
|
124
|
+
}
|
|
125
|
+
/* Micro-légende en chasse fixe, même pastille : le détail qui dit « un vrai lieu ».
|
|
126
|
+
`content: none` (défaut) ne crée pas la pastille. */
|
|
127
|
+
.nf-head::before {
|
|
128
|
+
content: var(--nf-login-band-caption);
|
|
129
|
+
position: absolute;
|
|
130
|
+
top: calc(var(--nf-login-band-height) - 32px);
|
|
131
|
+
right: 14px;
|
|
132
|
+
z-index: 1;
|
|
133
|
+
padding: 6px 8px;
|
|
134
|
+
border: 1px solid var(--nf-login-line);
|
|
135
|
+
border-radius: 6px;
|
|
136
|
+
background: var(--nf-login-surface);
|
|
137
|
+
font: 700 9px/1 var(--nf-login-mono);
|
|
138
|
+
letter-spacing: 0.6px;
|
|
139
|
+
color: var(--nf-login-muted);
|
|
140
|
+
}
|
|
141
|
+
.nf-sub {
|
|
142
|
+
margin-top: 2px;
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
/* Petit écran : la carte postale ne doit pas pousser le bouton hors de l'écran.
|
|
146
|
+
Le bandeau rétrécit sur un écran COURT (téléphone, fenêtre basse), et la
|
|
147
|
+
scène reprend les marges serrées de login.css — la règle ci-dessus, posée
|
|
148
|
+
sans condition, les écrasait. */
|
|
149
|
+
@media (max-height: 760px) {
|
|
150
|
+
:root {
|
|
151
|
+
--nf-login-band-height: 96px;
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
@media (max-width: 520px) {
|
|
155
|
+
.nf-stage {
|
|
156
|
+
padding: 16px 12px 24px;
|
|
157
|
+
}
|
|
158
|
+
}
|