diff --git a/client/src/app/+admin/system/runners/runner-registration-token-list/runner-registration-token-list.component.html b/client/src/app/+admin/system/runners/runner-registration-token-list/runner-registration-token-list.component.html
index ffca8de4c..72e2a1978 100644
--- a/client/src/app/+admin/system/runners/runner-registration-token-list/runner-registration-token-list.component.html
+++ b/client/src/app/+admin/system/runners/runner-registration-token-list/runner-registration-token-list.component.html
@@ -32,7 +32,7 @@
   
     
   
diff --git a/client/src/app/+my-account/my-account-settings/my-account-two-factor/my-account-two-factor-button.component.html b/client/src/app/+my-account/my-account-settings/my-account-two-factor/my-account-two-factor-button.component.html
index d63a402e5..831b294d1 100644
--- a/client/src/app/+my-account/my-account-settings/my-account-two-factor/my-account-two-factor-button.component.html
+++ b/client/src/app/+my-account/my-account-settings/my-account-two-factor/my-account-two-factor-button.component.html
@@ -2,11 +2,11 @@
   
     Two factor authentication adds an additional layer of security to your account by requiring a numeric code from another device (most commonly mobile phones) when you log in.
 
-    Enable two-factor authentication
+    Enable two-factor authentication
   
 
   
-    Disable two-factor authentication
+    Disable two-factor authentication
   
 
 
diff --git a/client/src/app/+video-studio/edit/video-studio-edit.component.html b/client/src/app/+video-studio/edit/video-studio-edit.component.html
index c29b12157..f26e3119a 100644
--- a/client/src/app/+video-studio/edit/video-studio-edit.component.html
+++ b/client/src/app/+video-studio/edit/video-studio-edit.component.html
@@ -63,7 +63,7 @@
       
 
       
diff --git a/client/src/app/+videos/+video-edit/video-add-components/video-go-live.component.html b/client/src/app/+videos/+video-edit/video-add-components/video-go-live.component.html
index 48ba38c87..4831b7680 100644
--- a/client/src/app/+videos/+video-edit/video-add-components/video-go-live.component.html
+++ b/client/src/app/+videos/+video-edit/video-add-components/video-go-live.component.html
@@ -59,9 +59,9 @@
   >
 
   
-    
   
 
diff --git a/client/src/app/+videos/+video-edit/video-add-components/video-import-torrent.component.html b/client/src/app/+videos/+video-edit/video-add-components/video-import-torrent.component.html
index aa34d644a..af0580dc8 100644
--- a/client/src/app/+videos/+video-edit/video-add-components/video-import-torrent.component.html
+++ b/client/src/app/+videos/+video-edit/video-add-components/video-import-torrent.component.html
@@ -65,8 +65,8 @@
   >
 
   
-    
   
diff --git a/client/src/app/+videos/+video-edit/video-add-components/video-import-url.component.html b/client/src/app/+videos/+video-edit/video-add-components/video-import-url.component.html
index 30eeca704..591573d85 100644
--- a/client/src/app/+videos/+video-edit/video-add-components/video-import-url.component.html
+++ b/client/src/app/+videos/+video-edit/video-add-components/video-import-url.component.html
@@ -63,8 +63,8 @@
   >
 
   
-    
   
diff --git a/client/src/app/+videos/+video-edit/video-add-components/video-upload.component.html b/client/src/app/+videos/+video-edit/video-add-components/video-upload.component.html
index 02eac90b9..165a3fba5 100644
--- a/client/src/app/+videos/+video-edit/video-add-components/video-upload.component.html
+++ b/client/src/app/+videos/+video-edit/video-add-components/video-upload.component.html
@@ -46,13 +46,7 @@
       
 
       
-        
-        
+        
       
     
   
@@ -80,9 +74,9 @@
   
     Publish will be available when upload is finished
 
-    
    
 
diff --git a/client/src/app/+videos/+video-edit/video-update.component.html b/client/src/app/+videos/+video-edit/video-update.component.html
index f77af4dd0..78ae5357a 100644
--- a/client/src/app/+videos/+video-edit/video-update.component.html
+++ b/client/src/app/+videos/+video-edit/video-update.component.html
@@ -42,9 +42,9 @@
     
 
     
-      
     
   
diff --git a/client/src/app/shared/shared-main/buttons/button.component.scss b/client/src/app/shared/shared-main/buttons/button.component.scss
index 964590e29..4300351eb 100644
--- a/client/src/app/shared/shared-main/buttons/button.component.scss
+++ b/client/src/app/shared/shared-main/buttons/button.component.scss
@@ -46,26 +46,6 @@ span[class$=-button] {
   }
 }
 
-.orange-button,
-.grey-button {
-  @include peertube-button;
-}
-
-.orange-button-link,
-.grey-button-link {
-  @include peertube-button-link;
-}
-
-.orange-button,
-.orange-button-link {
-  @include orange-button;
-}
-
-.grey-button,
-.grey-button-link {
-  @include grey-button;
-}
-
 .button-label {
   @include ellipsis;
 }
diff --git a/client/src/app/shared/shared-main/buttons/button.component.ts b/client/src/app/shared/shared-main/buttons/button.component.ts
index 50a3d99ef..d64969653 100644
--- a/client/src/app/shared/shared-main/buttons/button.component.ts
+++ b/client/src/app/shared/shared-main/buttons/button.component.ts
@@ -1,4 +1,4 @@
-import { ChangeDetectionStrategy, Component, Input, OnChanges, OnInit } from '@angular/core'
+import { ChangeDetectionStrategy, Component, Input, OnChanges, OnInit, booleanAttribute } from '@angular/core'
 import { GlobalIconName } from '@app/shared/shared-icons'
 
 @Component({
@@ -10,13 +10,13 @@ import { GlobalIconName } from '@app/shared/shared-icons'
 
 export class ButtonComponent implements OnInit, OnChanges {
   @Input() label = ''
-  @Input() className = 'grey-button'
-  @Input() icon: GlobalIconName = undefined
+  @Input() theme: 'orange' | 'grey' = 'grey'
+  @Input() icon: GlobalIconName
   @Input() ptRouterLink: string[] | string
-  @Input() title: string = undefined
-  @Input() loading = false
-  @Input() disabled = false
-  @Input() responsiveLabel = false
+  @Input() title: string
+  @Input({ transform: booleanAttribute }) loading = false
+  @Input({ transform: booleanAttribute }) disabled = false
+  @Input({ transform: booleanAttribute }) responsiveLabel = false
 
   classes: { [id: string]: boolean } = {}
 
@@ -30,7 +30,10 @@ export class ButtonComponent implements OnInit, OnChanges {
 
   private buildClasses () {
     this.classes = {
-      [this.className]: true,
+      'peertube-button': !this.ptRouterLink,
+      'peertube-button-link': !!this.ptRouterLink,
+      'orange-button': this.theme === 'orange',
+      'grey-button': this.theme === 'grey',
       'disabled': this.disabled,
       'icon-only': !this.label,
       'has-icon': !!this.icon,
diff --git a/client/src/app/shared/shared-main/buttons/edit-button.component.ts b/client/src/app/shared/shared-main/buttons/edit-button.component.ts
index 850be1dec..efc83179d 100644
--- a/client/src/app/shared/shared-main/buttons/edit-button.component.ts
+++ b/client/src/app/shared/shared-main/buttons/edit-button.component.ts
@@ -4,8 +4,7 @@ import { Component, Input, OnInit } from '@angular/core'
   selector: 'my-edit-button',
   template: `
     
   `