fix(frontend): logo/favicon corrects et pages d'authentification plus posees
Le src="logo.png" relatif resolvait mal sur les routes autres que "/" : chemin absolu "/logo.png". Titre de page "Frontend" -> "EnerVision", favicon regenere depuis l'icone reelle du logo. Pages login/change-password retravaillees (fond degrade de marque, carte plus large, logo et titre plus presents) via une classe .auth-page partagee plutot que dupliquee par page.
This commit is contained in:
Binary file not shown.
|
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 57 KiB |
@@ -1,7 +1,7 @@
|
|||||||
<div class="auth-page">
|
<div class="auth-page">
|
||||||
<form class="auth-card-wrapper" [formGroup]="form" (ngSubmit)="onSubmit()">
|
<form class="auth-card-wrapper" [formGroup]="form" (ngSubmit)="onSubmit()">
|
||||||
<ev-card>
|
<ev-card>
|
||||||
<img src="logo.png" alt="EnerVision" class="auth-logo" />
|
<img src="/logo.png" alt="EnerVision" class="auth-logo" />
|
||||||
<h1>Nouveau mot de passe</h1>
|
<h1>Nouveau mot de passe</h1>
|
||||||
<p class="auth-subtitle">Votre mot de passe est provisoire, vous devez le modifier avant de continuer</p>
|
<p class="auth-subtitle">Votre mot de passe est provisoire, vous devez le modifier avant de continuer</p>
|
||||||
|
|
||||||
|
|||||||
@@ -1,34 +1,28 @@
|
|||||||
:host {
|
ev-card {
|
||||||
display: flex;
|
padding: 3rem 2.5rem;
|
||||||
align-items: center;
|
box-shadow:
|
||||||
justify-content: center;
|
0 20px 25px -5px rgba(0, 0, 0, 0.06),
|
||||||
min-height: 100vh;
|
0 8px 10px -6px rgba(0, 0, 0, 0.04);
|
||||||
background: var(--color-bg);
|
|
||||||
}
|
|
||||||
|
|
||||||
.auth-card-wrapper {
|
|
||||||
width: 100%;
|
|
||||||
max-width: 360px;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.auth-logo {
|
.auth-logo {
|
||||||
display: block;
|
display: block;
|
||||||
height: 48px;
|
height: 64px;
|
||||||
margin: 0 auto 1rem;
|
margin: 0 auto 1.5rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
h1 {
|
h1 {
|
||||||
margin: 0;
|
margin: 0;
|
||||||
font-size: 1.5rem;
|
font-size: 1.85rem;
|
||||||
font-weight: 700;
|
font-weight: 700;
|
||||||
color: var(--color-text);
|
color: var(--color-text);
|
||||||
text-align: center;
|
text-align: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
.auth-subtitle {
|
.auth-subtitle {
|
||||||
margin: 0.25rem 0 1.5rem;
|
margin: 0.4rem 0 2rem;
|
||||||
color: var(--color-text-muted);
|
color: var(--color-text-muted);
|
||||||
font-size: 0.9rem;
|
font-size: 0.95rem;
|
||||||
line-height: 1.4;
|
line-height: 1.4;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
}
|
}
|
||||||
@@ -40,5 +34,5 @@ ev-alert {
|
|||||||
|
|
||||||
ev-button {
|
ev-button {
|
||||||
display: block;
|
display: block;
|
||||||
margin-top: 1.5rem;
|
margin-top: 1.75rem;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
<div class="auth-page">
|
<div class="auth-page">
|
||||||
<form class="auth-card-wrapper" [formGroup]="form" (ngSubmit)="onSubmit()">
|
<form class="auth-card-wrapper" [formGroup]="form" (ngSubmit)="onSubmit()">
|
||||||
<ev-card>
|
<ev-card>
|
||||||
<img src="logo.png" alt="EnerVision" class="auth-logo" />
|
<img src="/logo.png" alt="EnerVision" class="auth-logo" />
|
||||||
<h1>Connexion</h1>
|
<h1>Connexion</h1>
|
||||||
<p class="auth-subtitle">Accédez à votre espace EnerVision</p>
|
<p class="auth-subtitle">Accédez à votre espace EnerVision</p>
|
||||||
|
|
||||||
|
|||||||
@@ -1,34 +1,28 @@
|
|||||||
:host {
|
ev-card {
|
||||||
display: flex;
|
padding: 3rem 2.5rem;
|
||||||
align-items: center;
|
box-shadow:
|
||||||
justify-content: center;
|
0 20px 25px -5px rgba(0, 0, 0, 0.06),
|
||||||
min-height: 100vh;
|
0 8px 10px -6px rgba(0, 0, 0, 0.04);
|
||||||
background: var(--color-bg);
|
|
||||||
}
|
|
||||||
|
|
||||||
.auth-card-wrapper {
|
|
||||||
width: 100%;
|
|
||||||
max-width: 360px;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.auth-logo {
|
.auth-logo {
|
||||||
display: block;
|
display: block;
|
||||||
height: 48px;
|
height: 64px;
|
||||||
margin: 0 auto 1rem;
|
margin: 0 auto 1.5rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
h1 {
|
h1 {
|
||||||
margin: 0;
|
margin: 0;
|
||||||
font-size: 1.5rem;
|
font-size: 1.85rem;
|
||||||
font-weight: 700;
|
font-weight: 700;
|
||||||
color: var(--color-text);
|
color: var(--color-text);
|
||||||
text-align: center;
|
text-align: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
.auth-subtitle {
|
.auth-subtitle {
|
||||||
margin: 0.25rem 0 1.5rem;
|
margin: 0.4rem 0 2rem;
|
||||||
color: var(--color-text-muted);
|
color: var(--color-text-muted);
|
||||||
font-size: 0.9rem;
|
font-size: 0.95rem;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -39,5 +33,5 @@ ev-alert {
|
|||||||
|
|
||||||
ev-button {
|
ev-button {
|
||||||
display: block;
|
display: block;
|
||||||
margin-top: 1.5rem;
|
margin-top: 1.75rem;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
<div class="dashboard">
|
<div class="dashboard">
|
||||||
<header class="dashboard__header">
|
<header class="dashboard__header">
|
||||||
<div class="dashboard__brand">
|
<div class="dashboard__brand">
|
||||||
<img src="logo.png" alt="EnerVision" class="dashboard__logo" />
|
<img src="/logo.png" alt="EnerVision" class="dashboard__logo" />
|
||||||
<div>
|
<div>
|
||||||
<h1>Vue d'ensemble</h1>
|
<h1>Vue d'ensemble</h1>
|
||||||
<p class="dashboard__subtitle">Consommation instantanée du parc</p>
|
<p class="dashboard__subtitle">Consommation instantanée du parc</p>
|
||||||
|
|||||||
@@ -2,10 +2,10 @@
|
|||||||
<html lang="en">
|
<html lang="en">
|
||||||
<head>
|
<head>
|
||||||
<meta charset="utf-8" />
|
<meta charset="utf-8" />
|
||||||
<title>Frontend</title>
|
<title>EnerVision</title>
|
||||||
<base href="/" />
|
<base href="/" />
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||||
<link rel="icon" type="image/x-icon" href="favicon.ico" />
|
<link rel="icon" type="image/x-icon" href="/favicon.ico" />
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<app-root></app-root>
|
<app-root></app-root>
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
@use 'styles/tokens';
|
@use 'styles/tokens';
|
||||||
@use 'styles/forms';
|
@use 'styles/forms';
|
||||||
|
@use 'styles/auth-page';
|
||||||
|
|
||||||
body {
|
body {
|
||||||
margin: 0;
|
margin: 0;
|
||||||
|
|||||||
@@ -0,0 +1,16 @@
|
|||||||
|
.auth-page {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
min-height: 100vh;
|
||||||
|
padding: var(--space-4);
|
||||||
|
box-sizing: border-box;
|
||||||
|
background: radial-gradient(circle at 15% 10%, var(--color-primary-light) 0%, transparent 45%),
|
||||||
|
radial-gradient(circle at 85% 90%, var(--color-primary-light) 0%, transparent 40%),
|
||||||
|
var(--color-bg);
|
||||||
|
}
|
||||||
|
|
||||||
|
.auth-card-wrapper {
|
||||||
|
width: 100%;
|
||||||
|
max-width: 420px;
|
||||||
|
}
|
||||||
@@ -29,6 +29,11 @@ s'appliquent directement à des `<label>`/`<input>` natifs liés par `formContro
|
|||||||
composant `ControlValueAccessor` dédié, le gain n'en vaut pas la complexité pour des formulaires
|
composant `ControlValueAccessor` dédié, le gain n'en vaut pas la complexité pour des formulaires
|
||||||
aussi simples que ceux de ce projet.
|
aussi simples que ceux de ce projet.
|
||||||
|
|
||||||
|
La classe `.auth-page` (`apps/frontend/src/styles/_auth-page.scss`, importée globalement) porte
|
||||||
|
le fond dégradé et le centrage commun aux pages d'authentification (`login`, `change-password`,
|
||||||
|
et à terme `forgot-password`/`reset-password`) : elle enveloppe la carte, pas de duplication du
|
||||||
|
fond par page.
|
||||||
|
|
||||||
## Composants partagés
|
## Composants partagés
|
||||||
|
|
||||||
Dans `apps/frontend/src/app/shared/components/ui/`, chacun standalone, à importer directement
|
Dans `apps/frontend/src/app/shared/components/ui/`, chacun standalone, à importer directement
|
||||||
|
|||||||
Reference in New Issue
Block a user