diff --git a/src/app/pages/login-form/login-form.component.css b/src/app/pages/login-form/login-form.component.css
index 4fa4b3e..c70a7bd 100644
--- a/src/app/pages/login-form/login-form.component.css
+++ b/src/app/pages/login-form/login-form.component.css
@@ -1,85 +1,152 @@
-.bg {
- --background: linear-gradient(180deg, #e6dede, #e58a8a);
+/* Import Google Font */
+@import url('https://fonts.googleapis.com/css2?family=Nunito:wght@400;600;700;800&display=swap');
+
+/* ---- Page background ---- */
+ion-content.bg {
+ --background: transparent;
+ --overflow: hidden;
+
+ &::before {
+ content: '';
+ position: fixed;
+ inset: 0;
+ background: linear-gradient(
+ 160deg,
+ #f9e8e8 0%,
+ #f2c4c4 35%,
+ #e89898 70%,
+ #d97070 100%
+ );
+ z-index: -1;
+ }
}
+/* ---- Centered container ---- */
.container {
- text-align: center;
- padding-top: 60px;
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ justify-content: center;
+ min-height: 100%;
+ padding: 40px 24px;
+ font-family: 'Nunito', sans-serif;
+ gap: 10px;
}
+/* ---- Logo box ---- */
.logo-box {
- width: 90px;
- height: 90px;
- margin: 0 auto 10px;
- border-radius: 20px;
- background: #f2eaea;
+ width: 80px;
+ height: 80px;
+ background: #ffffff;
+ border-radius: 22px;
display: flex;
align-items: center;
justify-content: center;
-
- box-shadow: 8px 8px 15px #d1bcbc,
- -8px -8px 15px #ffffff;
+ box-shadow: 0 4px 18px rgba(180, 80, 80, 0.18);
+ overflow: hidden;
+ margin-bottom: 4px;
img {
- width: 50px;
+ width: 52px;
+ height: 52px;
+ object-fit: contain;
}
}
+/* ---- App title ---- */
h1 {
- color: #b86b6b;
- margin-bottom: 30px;
+ font-family: 'Nunito', sans-serif;
+ font-size: 28px;
+ font-weight: 800;
+ color: #b05050;
+ margin: 0 0 10px;
+ letter-spacing: 0.5px;
}
+/* ---- White card ---- */
.card {
- width: 85%;
- max-width: 320px;
- margin: auto;
- padding: 25px;
- border-radius: 20px;
- background: #f2eaea;
-
- box-shadow: 10px 10px 20px #cfaeae,
- -10px -10px 20px #ffffff;
+ width: 100%;
+ max-width: 340px;
+ background: rgba(255, 255, 255, 0.88);
+ border-radius: 24px;
+ padding: 28px 24px 32px;
+ box-shadow: 0 8px 32px rgba(180, 80, 80, 0.12);
+ display: flex;
+ flex-direction: column;
+ gap: 14px;
h3 {
- color: #c27a7a;
- margin-bottom: 20px;
- font-weight: normal;
+ font-family: 'Nunito', sans-serif;
+ font-size: 16px;
+ font-weight: 700;
+ color: #b05050;
+ text-align: center;
+ margin: 0 0 4px;
}
}
+/* ---- Inputs ---- */
.input {
- margin: 10px 0;
- border-radius: 20px;
-
- --background: #f2eaea;
- --padding-start: 15px;
-
- box-shadow: inset 5px 5px 10px #d1bcbc,
- inset -5px -5px 10px #ffffff;
+ --background: rgba(255, 255, 255, 0.95);
+ --border-radius: 50px;
+ --padding-start: 18px;
+ --padding-end: 18px;
+ --inner-padding-end: 0;
+ --highlight-color-focused: #d97070;
+ border-radius: 50px;
+ box-shadow: 0 2px 8px rgba(180, 80, 80, 0.10);
+ overflow: hidden;
ion-input {
- color: #a35c5c;
+ --placeholder-color: #c9a0a0;
+ --placeholder-opacity: 1;
+ --color: #6b3030;
+ font-family: 'Nunito', sans-serif;
+ font-size: 15px;
+ font-weight: 600;
+ caret-color: #d97070;
}
}
+/* ---- Login button ---- */
.btn {
- margin-top: 15px;
- --background: #b86b6b;
- --border-radius: 20px;
+ --background: #b05050;
+ --background-activated: #903838;
+ --border-radius: 50px;
+ --box-shadow: 0 4px 16px rgba(176, 80, 80, 0.35);
+ --color: #ffffff;
+ font-family: 'Nunito', sans-serif;
+ font-size: 16px;
+ font-weight: 700;
+ letter-spacing: 0.3px;
+ margin-top: 6px;
+ height: 48px;
+ transition: transform 0.15s ease, box-shadow 0.15s ease;
- box-shadow: 5px 5px 10px #a45f5f,
- -5px -5px 10px #ff9c9c;
+ &:active {
+ transform: scale(0.97);
+ --box-shadow: 0 2px 8px rgba(176, 80, 80, 0.25);
+ }
}
+/* ---- Sign-up link ---- */
.signup {
- margin-top: 20px;
- color: white;
+ text-align: center;
+ font-family: 'Nunito', sans-serif;
font-size: 14px;
+ font-weight: 700;
+ color: #b05050;
+ line-height: 1.7;
+ margin-top: 6px;
a {
- color: white;
- font-weight: bold;
+ color: #b05050;
+ font-weight: 800;
text-decoration: underline;
+ text-underline-offset: 2px;
+
+ &:hover {
+ color: #903838;
+ }
}
}
\ No newline at end of file
diff --git a/src/app/pages/login-form/login-form.component.html b/src/app/pages/login-form/login-form.component.html
index 39bcccf..9d94226 100644
--- a/src/app/pages/login-form/login-form.component.html
+++ b/src/app/pages/login-form/login-form.component.html
@@ -28,7 +28,7 @@
diff --git a/src/app/pages/login-form/login-form.component.ts b/src/app/pages/login-form/login-form.component.ts
index 9399107..299922c 100644
--- a/src/app/pages/login-form/login-form.component.ts
+++ b/src/app/pages/login-form/login-form.component.ts
@@ -26,6 +26,10 @@ export class LoginFormComponent {
isLoading = false;
+ goToRegister() {
+ this.router.navigate(['/register']);
+ }
+
loginForm = this.fb.group({
name: ['', [Validators.required]],
password: ['', [Validators.required]]
@@ -34,6 +38,8 @@ export class LoginFormComponent {
async submitForm(): Promise {
if (this.loginForm.valid) {
+
+
await this.navCtrl.navigateRoot(['main/messages']);
this.isLoading = true;
diff --git a/src/app/pages/register-form/register-form.component.css b/src/app/pages/register-form/register-form.component.css
index e69de29..7b374a8 100644
--- a/src/app/pages/register-form/register-form.component.css
+++ b/src/app/pages/register-form/register-form.component.css
@@ -0,0 +1,160 @@
+@import url('https://fonts.googleapis.com/css2?family=Nunito:wght@400;600;700;800&display=swap');
+
+/* ---- Page background ---- */
+ion-content.bg {
+ --background: transparent;
+ --overflow: hidden;
+
+ &::before {
+ content: '';
+ position: fixed;
+ inset: 0;
+ background: linear-gradient(
+ 160deg,
+ #f9e8e8 0%,
+ #f2c4c4 35%,
+ #e89898 70%,
+ #d97070 100%
+ );
+ z-index: -1;
+ }
+}
+
+/* ---- Centered container ---- */
+.container {
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ justify-content: center;
+ min-height: 100%;
+ padding: 40px 24px;
+ font-family: 'Nunito', sans-serif;
+ gap: 10px;
+}
+
+/* ---- Logo box ---- */
+.logo-box {
+ width: 80px;
+ height: 80px;
+ background: #ffffff;
+ border-radius: 22px;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ box-shadow: 0 4px 18px rgba(180, 80, 80, 0.18);
+ overflow: hidden;
+ margin-bottom: 4px;
+
+ img {
+ width: 52px;
+ height: 52px;
+ object-fit: contain;
+ }
+}
+
+/* ---- App title ---- */
+h1 {
+ font-family: 'Nunito', sans-serif;
+ font-size: 28px;
+ font-weight: 800;
+ color: #b05050;
+ margin: 0 0 10px;
+ letter-spacing: 0.5px;
+}
+
+/* ---- White card ---- */
+.card {
+ width: 100%;
+ max-width: 340px;
+ background: rgba(255, 255, 255, 0.88);
+ border-radius: 24px;
+ padding: 28px 24px 32px;
+ box-shadow: 0 8px 32px rgba(180, 80, 80, 0.12);
+ display: flex;
+ flex-direction: column;
+ gap: 14px;
+
+ h3 {
+ font-family: 'Nunito', sans-serif;
+ font-size: 16px;
+ font-weight: 700;
+ color: #b05050;
+ text-align: center;
+ margin: 0;
+ }
+
+ .subtitle {
+ font-family: 'Nunito', sans-serif;
+ font-size: 13px;
+ font-weight: 600;
+ color: #c98080;
+ text-align: center;
+ margin: -6px 0 4px;
+ }
+}
+
+/* ---- Inputs ---- */
+.input {
+ --background: rgba(255, 255, 255, 0.95);
+ --border-radius: 50px;
+ --padding-start: 18px;
+ --padding-end: 18px;
+ --inner-padding-end: 0;
+ --highlight-color-focused: #d97070;
+ border-radius: 50px;
+ box-shadow: 0 2px 8px rgba(180, 80, 80, 0.10);
+ overflow: hidden;
+
+ ion-input {
+ --placeholder-color: #c9a0a0;
+ --placeholder-opacity: 1;
+ --color: #6b3030;
+ font-family: 'Nunito', sans-serif;
+ font-size: 15px;
+ font-weight: 600;
+ caret-color: #d97070;
+ }
+}
+
+/* ---- Register button ---- */
+.btn {
+ --background: #b05050;
+ --background-activated: #903838;
+ --border-radius: 50px;
+ --box-shadow: 0 4px 16px rgba(176, 80, 80, 0.35);
+ --color: #ffffff;
+ font-family: 'Nunito', sans-serif;
+ font-size: 16px;
+ font-weight: 700;
+ letter-spacing: 0.3px;
+ margin-top: 6px;
+ height: 48px;
+ transition: transform 0.15s ease, box-shadow 0.15s ease;
+
+ &:active {
+ transform: scale(0.97);
+ --box-shadow: 0 2px 8px rgba(176, 80, 80, 0.25);
+ }
+}
+
+/* ---- Login link ---- */
+.signup {
+ text-align: center;
+ font-family: 'Nunito', sans-serif;
+ font-size: 14px;
+ font-weight: 700;
+ color: #b05050;
+ line-height: 1.7;
+ margin-top: 6px;
+
+ a {
+ color: #b05050;
+ font-weight: 800;
+ text-decoration: underline;
+ text-underline-offset: 2px;
+
+ &:hover {
+ color: #903838;
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/app/pages/register-form/register-form.component.html b/src/app/pages/register-form/register-form.component.html
index e6b0721..b63cea3 100644
--- a/src/app/pages/register-form/register-form.component.html
+++ b/src/app/pages/register-form/register-form.component.html
@@ -1,22 +1,41 @@
-
-
- Inscrivez-vous à Knots !
- Commencez à nouer des liens !
-
+
-
- Nom d'utilisateur
-
-
-
- Mot de Passe
-
-
-
- Confirmez votre mot de passe
-
-
-
+
-
Créer son compte
-
\ No newline at end of file
+
+

+
+
+
Knots
+
+
+
+
Inscrivez-vous à Knots !
+
Commencez à nouer des liens !
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Créer son compte
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/app/pages/register-form/register-form.component.ts b/src/app/pages/register-form/register-form.component.ts
index f1006e0..352db4f 100644
--- a/src/app/pages/register-form/register-form.component.ts
+++ b/src/app/pages/register-form/register-form.component.ts
@@ -1,26 +1,35 @@
-import { Component } from '@angular/core';
+import {Component, inject} from '@angular/core';
import {
- IonButton,
- IonCard,
- IonCardContent,
- IonCardHeader,
- IonCardSubtitle,
- IonCardTitle
-} from "@ionic/angular/standalone";
-
-@Component({
- selector: 'app-register-form',
- imports: [
IonButton,
IonCard,
IonCardContent,
IonCardHeader,
- IonCardTitle,
- IonCardSubtitle
- ],
+ IonCardSubtitle,
+ IonCardTitle, IonContent, IonInput, IonItem
+} from "@ionic/angular/standalone";
+import {Router} from "@angular/router";
+
+@Component({
+ selector: 'app-register-form',
+ imports: [
+ IonButton,
+ IonCard,
+ IonCardContent,
+ IonCardHeader,
+ IonCardTitle,
+ IonCardSubtitle,
+ IonInput,
+ IonContent,
+ IonItem
+ ],
templateUrl: './register-form.component.html',
styleUrl: './register-form.component.css'
})
export class RegisterFormComponent {
+ private router = inject(Router)
+
+ goToLogin() {
+ this.router.navigate(['/login']);
+ }
}