diff --git a/src/app/core/auth/auth.service.ts b/src/app/core/auth/auth.service.ts
index 4a30300fc1bafea707633ab9bc4844a79067b48f..52cec91f2858e664101be6c9b098f2babbfa341f 100644
--- a/src/app/core/auth/auth.service.ts
+++ b/src/app/core/auth/auth.service.ts
@@ -35,7 +35,7 @@ export class AuthService {
     this.user$ = new BehaviorSubject(initialUser);
   }
 
-  login(username: string, password: string) {
+  login(username: string, password: string): Observable<boolean> {
     return this.http.post<any>(this.loginUrl, { username: username, password: password }).pipe(
       tap(data => this.token.set(data.token)),
       map(data => this.userAdapter.adapt(data.user)),
diff --git a/src/app/members/projects/overview/overview.component.scss b/src/app/members/projects/overview/overview.component.scss
index b3f289014c493f7fd5553e463a628c7bde7c7e5b..1fe80a21edceac227f4c8250e2d35442b47a1b8e 100644
--- a/src/app/members/projects/overview/overview.component.scss
+++ b/src/app/members/projects/overview/overview.component.scss
@@ -6,7 +6,7 @@
 }
 
 #my-participations {
-  background: lighten($color-purple-light, 15);
+  background: $color-purple-lighter;
 }
 
 #page {
diff --git a/src/app/members/student-home/student-home.component.scss b/src/app/members/student-home/student-home.component.scss
index 4b741780e8ca7375acc23a77fbd2a59265b3b0ba..eb3c7e0d7f567ac81c6d58d424a3b9b03a251b1a 100644
--- a/src/app/members/student-home/student-home.component.scss
+++ b/src/app/members/student-home/student-home.component.scss
@@ -6,11 +6,11 @@
 }
 
 #visits {
-  // TODO use a background image
+  // TODO use a background image?
   background: $color-light-blue;
 }
 
 #projects {
-  // TODO use a background image
-  background: $color-purple-light;
+  // TODO use a background image?
+  background: $color-purple-lighter;
 }
diff --git a/src/app/signup/student-signup/student-signup.component.html b/src/app/signup/student-signup/student-signup.component.html
index 542d303b5be9435964fe00c6345c0fae4f50c03f..d5e1b7e33beaec08b50c6ca82b53f9ba5038ff7d 100644
--- a/src/app/signup/student-signup/student-signup.component.html
+++ b/src/app/signup/student-signup/student-signup.component.html
@@ -80,9 +80,13 @@
     </mat-form-field>
 
     <div class="text-center">
-      <button mat-raised-button color="primary" [disabled]="!formGroup.valid">M'inscrire</button>
+      <button mat-raised-button color="primary" [disabled]="!formGroup.valid || loading">
+        M'inscrire
+        <app-load-spinner *ngIf="loading" [block]="false"></app-load-spinner>
+      </button>
     </div>
 
+
     <p class="text-center">
       J'ai déjà un compte ! <a routerLink="/connexion">Me connecter</a>
     </p>
diff --git a/src/app/signup/student-signup/student-signup.component.ts b/src/app/signup/student-signup/student-signup.component.ts
index d05cfb6a719a9fd236ea3a09c70c310bc7d432d5..ac78486756ca5897ca1c0deb38a2dc775ba6052c 100644
--- a/src/app/signup/student-signup/student-signup.component.ts
+++ b/src/app/signup/student-signup/student-signup.component.ts
@@ -3,7 +3,7 @@ import { FormGroup, FormBuilder, Validators } from '@angular/forms';
 import { Router } from '@angular/router';
 import { MatSnackBar } from '@angular/material';
 import { Observable } from 'rxjs';
-import { tap } from 'rxjs/operators';
+import { tap, mergeMap } from 'rxjs/operators';
 import { Registration, RegistrationService, PasswordErrorStateMatcher } from '../core';
 import { AuthService } from 'app/core';
 
@@ -17,6 +17,7 @@ export class StudentSignupComponent implements OnInit {
 
   registration: Registration;
   formGroup: FormGroup;
+  loading = false;
 
   matcher = new PasswordErrorStateMatcher();
 
@@ -52,16 +53,21 @@ export class StudentSignupComponent implements OnInit {
   }
 
   submit() {
+    this.loading = true;
     const registration: Registration = this.formGroup.value;
     const password: string = this.formGroup.controls.password.value;
     this.registrationService.create(registration, password).pipe(
-      tap(() => this.auth.login(registration.email, password)),
+      mergeMap(() => this.auth.login(registration.email, password)),
       tap(() => this.snackBar.open(
         `Ton compte a été créé ! Tu es maintenant connecté.`,
         'OK',
         { duration: 3000 },
       )),
+      tap(() => this.loading = false),
       tap(() => this.router.navigate(['/'])),
-    ).subscribe();
+    ).subscribe(
+      () => {},
+      (error) => this.loading = false,
+    );
   }
 }
diff --git a/src/sass/_variables.scss b/src/sass/_variables.scss
index 34c60cc6f5a55a9becfed72208200e8f0340e65f..8bfcba041604a375292e7d62d2959503310a2b62 100644
--- a/src/sass/_variables.scss
+++ b/src/sass/_variables.scss
@@ -3,6 +3,7 @@ $color-darkest-blue: rgb(32, 26, 78);
 $color-dark-blue: rgb(46, 37, 128);
 $color-purple: rgb(99, 92, 161);
 $color-purple-light: rgb(151, 146, 192);
+$color-purple-lighter: lighten($color-purple-light, 15);
 $color-turquoise: rgb(43, 181, 186);
 $color-light-blue: rgb(213, 250, 255);
 $color-accent: #F3395E;