aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--CREDITS.md9
-rw-r--r--client/src/app/+my-account/my-account-videos/my-account-videos.component.html2
-rw-r--r--client/src/app/+my-account/my-account.component.ts6
-rw-r--r--client/src/app/+search/search.component.scss2
-rw-r--r--client/src/app/+videos/+video-edit/video-add-components/video-import-torrent.component.html2
-rw-r--r--client/src/app/+videos/+video-edit/video-add-components/video-import-url.component.html2
-rw-r--r--client/src/app/+videos/+video-edit/video-add-components/video-upload.component.html2
-rw-r--r--client/src/app/+videos/+video-edit/video-update.component.html2
-rw-r--r--client/src/app/+videos/+video-watch/video-watch.component.scss2
-rw-r--r--client/src/app/app.component.scss2
-rw-r--r--client/src/app/header/search-typeahead.component.html2
-rw-r--r--client/src/app/header/search-typeahead.component.scss8
-rw-r--r--client/src/app/header/suggestion.component.html2
-rw-r--r--client/src/app/menu/menu.component.html2
-rw-r--r--client/src/app/menu/menu.component.scss2
-rw-r--r--client/src/app/modal/quick-settings-modal.component.scss2
-rw-r--r--client/src/app/shared/shared-icons/global-icon.component.ts115
-rw-r--r--client/src/app/shared/shared-main/buttons/button.component.scss4
-rw-r--r--client/src/app/shared/shared-main/users/user-notifications.component.html4
-rw-r--r--client/src/app/shared/shared-video-miniature/video-actions-dropdown.component.ts2
-rw-r--r--client/src/assets/images/feather/airplay.svg1
-rw-r--r--client/src/assets/images/feather/alert.svg1
-rw-r--r--client/src/assets/images/feather/arrow-up-right.svg1
-rw-r--r--client/src/assets/images/feather/check-circle.svg1
-rw-r--r--client/src/assets/images/feather/check.svg1
-rw-r--r--client/src/assets/images/feather/clock.svg1
-rw-r--r--client/src/assets/images/feather/cloud-download.svg (renamed from client/src/assets/images/global/cloud-download.svg)0
-rw-r--r--client/src/assets/images/feather/cloud-off.svg1
-rw-r--r--client/src/assets/images/feather/cog.svg1
-rw-r--r--client/src/assets/images/feather/corner-up-left.svg1
-rw-r--r--client/src/assets/images/feather/delete.svg1
-rw-r--r--client/src/assets/images/feather/dislike.svg1
-rw-r--r--client/src/assets/images/feather/download.svg1
-rw-r--r--client/src/assets/images/feather/edit-2.svg1
-rw-r--r--client/src/assets/images/feather/eye-off.svg1
-rw-r--r--client/src/assets/images/feather/eye.svg1
-rw-r--r--client/src/assets/images/feather/film.svg1
-rw-r--r--client/src/assets/images/feather/filter.svg1
-rw-r--r--client/src/assets/images/feather/flag.svg1
-rw-r--r--client/src/assets/images/feather/globe.svg1
-rw-r--r--client/src/assets/images/feather/help.svg1
-rw-r--r--client/src/assets/images/feather/home.svg1
-rw-r--r--client/src/assets/images/feather/inbox-full.svg1
-rw-r--r--client/src/assets/images/feather/like.svg1
-rw-r--r--client/src/assets/images/feather/list.svg1
-rw-r--r--client/src/assets/images/feather/log-out.svg1
-rw-r--r--client/src/assets/images/feather/maximize.svg1
-rw-r--r--client/src/assets/images/feather/minimize.svg1
-rw-r--r--client/src/assets/images/feather/more-horizontal.svg1
-rw-r--r--client/src/assets/images/feather/more-vertical.svg1
-rw-r--r--client/src/assets/images/feather/no.svg1
-rw-r--r--client/src/assets/images/feather/play.svg1
-rw-r--r--client/src/assets/images/feather/plus-circle.svg1
-rw-r--r--client/src/assets/images/feather/recently-added.svg1
-rw-r--r--client/src/assets/images/feather/refresh-cw.svg1
-rw-r--r--client/src/assets/images/feather/repeat.svg1
-rw-r--r--client/src/assets/images/feather/search.svg1
-rw-r--r--client/src/assets/images/feather/server.svg1
-rw-r--r--client/src/assets/images/feather/share-2.svg1
-rw-r--r--client/src/assets/images/feather/share.svg1
-rw-r--r--client/src/assets/images/feather/subscriptions.svg (renamed from client/src/assets/images/menu/subscriptions.svg)0
-rw-r--r--client/src/assets/images/feather/syndication.svg1
-rw-r--r--client/src/assets/images/feather/trending.svg1
-rw-r--r--client/src/assets/images/feather/tv.svg1
-rw-r--r--client/src/assets/images/feather/upload.svg1
-rw-r--r--client/src/assets/images/feather/user-plus.svg1
-rw-r--r--client/src/assets/images/feather/user.svg1
-rw-r--r--client/src/assets/images/feather/users.svg1
-rw-r--r--client/src/assets/images/feather/x.svg1
-rw-r--r--client/src/assets/images/global/add.svg8
-rw-r--r--client/src/assets/images/global/alert.svg8
-rw-r--r--client/src/assets/images/global/circle-tick.svg7
-rw-r--r--client/src/assets/images/global/clock.svg8
-rw-r--r--client/src/assets/images/global/cloud-error.svg6
-rw-r--r--client/src/assets/images/global/cog.svg4
-rw-r--r--client/src/assets/images/global/cross.svg6
-rw-r--r--client/src/assets/images/global/delete.svg9
-rw-r--r--client/src/assets/images/global/download.svg7
-rw-r--r--client/src/assets/images/global/edit.svg7
-rw-r--r--client/src/assets/images/global/exit-fullscreen.svg7
-rw-r--r--client/src/assets/images/global/folder.svg7
-rw-r--r--client/src/assets/images/global/forward.svg4
-rw-r--r--client/src/assets/images/global/fullscreen.svg7
-rw-r--r--client/src/assets/images/global/help.svg7
-rw-r--r--client/src/assets/images/global/history.svg8
-rw-r--r--client/src/assets/images/global/inbox-full.svg8
-rw-r--r--client/src/assets/images/global/more-horizontal.svg4
-rw-r--r--client/src/assets/images/global/more-vertical.svg4
-rw-r--r--client/src/assets/images/global/no.svg7
-rw-r--r--client/src/assets/images/global/play.svg4
-rw-r--r--client/src/assets/images/global/playlists.svg4
-rw-r--r--client/src/assets/images/global/refresh.svg4
-rw-r--r--client/src/assets/images/global/repeat.svg7
-rw-r--r--client/src/assets/images/global/robot.svg11
-rw-r--r--client/src/assets/images/global/search.svg7
-rw-r--r--client/src/assets/images/global/server.svg11
-rw-r--r--client/src/assets/images/global/sign-out.svg4
-rw-r--r--client/src/assets/images/global/sparkle.svg6
-rw-r--r--client/src/assets/images/global/syndication.svg4
-rw-r--r--client/src/assets/images/global/tick.svg6
-rw-r--r--client/src/assets/images/global/undo.svg4
-rw-r--r--client/src/assets/images/global/user-add.svg8
-rw-r--r--client/src/assets/images/global/user.svg7
-rw-r--r--client/src/assets/images/global/users.svg8
-rw-r--r--client/src/assets/images/global/validate.svg7
-rw-r--r--client/src/assets/images/global/videos.svg9
-rw-r--r--client/src/assets/images/header/search.svg7
-rw-r--r--client/src/assets/images/menu/eye-closed.svg7
-rw-r--r--client/src/assets/images/menu/eye.svg8
-rw-r--r--client/src/assets/images/menu/globe.svg7
-rw-r--r--client/src/assets/images/menu/go.svg7
-rw-r--r--client/src/assets/images/menu/home.svg7
-rw-r--r--client/src/assets/images/menu/p2p.svg7
-rw-r--r--client/src/assets/images/menu/recently-added.svg8
-rw-r--r--client/src/assets/images/menu/trending.svg8
-rw-r--r--client/src/assets/images/misc/history.svg1
-rw-r--r--client/src/assets/images/misc/keyboard.png (renamed from client/src/assets/images/menu/keyboard.png)bin815 -> 815 bytes
-rw-r--r--client/src/assets/images/misc/language.svg (renamed from client/src/assets/images/menu/language.svg)0
-rw-r--r--client/src/assets/images/misc/menu.svg (renamed from client/src/assets/images/header/menu.svg)0
-rw-r--r--client/src/assets/images/misc/miscellaneous_services.svg1
-rw-r--r--client/src/assets/images/misc/npm.svg (renamed from client/src/assets/images/global/npm.svg)0
-rw-r--r--client/src/assets/images/misc/playlist-add.svg (renamed from client/src/assets/images/video/playlist-add.svg)0
-rw-r--r--client/src/assets/images/misc/subscriptions.svg1
-rw-r--r--client/src/assets/images/misc/support.svg (renamed from client/src/assets/images/video/support.svg)0
-rw-r--r--client/src/assets/images/misc/video-lang.svg (renamed from client/src/assets/images/global/video-lang.svg)0
-rw-r--r--client/src/assets/images/misc/video_library.svg1
-rw-r--r--client/src/assets/images/search/filter.svg9
-rw-r--r--client/src/assets/images/video/dislike.svg7
-rw-r--r--client/src/assets/images/video/like.svg7
-rw-r--r--client/src/assets/images/video/share.svg7
-rw-r--r--client/src/assets/images/video/upload.svg8
-rw-r--r--client/src/sass/include/_mixins.scss5
132 files changed, 146 insertions, 432 deletions
diff --git a/CREDITS.md b/CREDITS.md
index 93fe2cb7b..85a094496 100644
--- a/CREDITS.md
+++ b/CREDITS.md
@@ -387,7 +387,8 @@
387 387
388# Icons 388# Icons
389 389
390 * [Robbie Pearce](https://robbiepearce.com/softies/) 390 * [Feather Icons](feathericons.com/) (MIT)
391 * [Fork-Awesome](https://github.com/ForkAwesome/Fork-Awesome) 391 * `playlist add`, `history`, `subscriptions`, `miscellaneous_services` by Material UI (Apache 2.0)
392 * `playlist add` by Material UI 392 * `support` by Chocobozzz (CC-BY)
393 * `language` by Aaron Jin 393 * `language` by Aaron Jin (CC-BY)
394 * `video-language` by Rigel Kent (CC-BY)
diff --git a/client/src/app/+my-account/my-account-videos/my-account-videos.component.html b/client/src/app/+my-account/my-account-videos/my-account-videos.component.html
index b6047645d..cb149b607 100644
--- a/client/src/app/+my-account/my-account-videos/my-account-videos.component.html
+++ b/client/src/app/+my-account/my-account-videos/my-account-videos.component.html
@@ -31,7 +31,7 @@
31 31
32 <my-button i18n-label label="Change ownership" 32 <my-button i18n-label label="Change ownership"
33 className="action-button-change-ownership grey-button" 33 className="action-button-change-ownership grey-button"
34 icon="forward" 34 icon="ownership-change"
35 (click)="changeOwnership($event, video)" 35 (click)="changeOwnership($event, video)"
36 ></my-button> 36 ></my-button>
37 </div> 37 </div>
diff --git a/client/src/app/+my-account/my-account.component.ts b/client/src/app/+my-account/my-account.component.ts
index 4040ab4f8..85b2795c5 100644
--- a/client/src/app/+my-account/my-account.component.ts
+++ b/client/src/app/+my-account/my-account.component.ts
@@ -30,7 +30,7 @@ export class MyAccountComponent implements OnInit {
30 { 30 {
31 label: this.i18n('My channels'), 31 label: this.i18n('My channels'),
32 routerLink: '/my-account/video-channels', 32 routerLink: '/my-account/video-channels',
33 iconName: 'folder' 33 iconName: 'channel'
34 }, 34 },
35 { 35 {
36 label: this.i18n('My videos'), 36 label: this.i18n('My videos'),
@@ -45,7 +45,7 @@ export class MyAccountComponent implements OnInit {
45 { 45 {
46 label: this.i18n('My subscriptions'), 46 label: this.i18n('My subscriptions'),
47 routerLink: '/my-account/subscriptions', 47 routerLink: '/my-account/subscriptions',
48 iconName: 'subscriptions' 48 iconName: 'inbox-full'
49 }, 49 },
50 { 50 {
51 label: this.i18n('My history'), 51 label: this.i18n('My history'),
@@ -79,7 +79,7 @@ export class MyAccountComponent implements OnInit {
79 { 79 {
80 label: this.i18n('Ownership changes'), 80 label: this.i18n('Ownership changes'),
81 routerLink: '/my-account/ownership', 81 routerLink: '/my-account/ownership',
82 iconName: 'forward' 82 iconName: 'ownership-change'
83 } 83 }
84 ] 84 ]
85 } 85 }
diff --git a/client/src/app/+search/search.component.scss b/client/src/app/+search/search.component.scss
index 6e59adb60..64927fa4b 100644
--- a/client/src/app/+search/search.component.scss
+++ b/client/src/app/+search/search.component.scss
@@ -31,7 +31,7 @@
31 position: relative; 31 position: relative;
32 top: -1px; 32 top: -1px;
33 margin-right: 5px; 33 margin-right: 5px;
34 background-image: url('../../assets/images/search/filter.svg'); 34 background-image: url('../../assets/images/feather/filter.svg');
35 } 35 }
36 } 36 }
37 } 37 }
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 7287f799d..5678f548f 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
@@ -69,7 +69,7 @@
69 (click)="updateSecondStep()" 69 (click)="updateSecondStep()"
70 [ngClass]="{ disabled: !form.valid || isUpdatingVideo === true }" 70 [ngClass]="{ disabled: !form.valid || isUpdatingVideo === true }"
71 > 71 >
72 <my-global-icon iconName="validate" aria-hidden="true"></my-global-icon> 72 <my-global-icon iconName="circle-tick" aria-hidden="true"></my-global-icon>
73 <input type="button" i18n-value value="Update" /> 73 <input type="button" i18n-value value="Update" />
74 </div> 74 </div>
75 </div> 75 </div>
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 1910da403..2e434271e 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
@@ -65,7 +65,7 @@
65 (click)="updateSecondStep()" 65 (click)="updateSecondStep()"
66 [ngClass]="{ disabled: !form.valid || isUpdatingVideo === true }" 66 [ngClass]="{ disabled: !form.valid || isUpdatingVideo === true }"
67 > 67 >
68 <my-global-icon iconName="validate" aria-hidden="true"></my-global-icon> 68 <my-global-icon iconName="circle-tick" aria-hidden="true"></my-global-icon>
69 <input type="button" i18n-value value="Update" /> 69 <input type="button" i18n-value value="Update" />
70 </div> 70 </div>
71 </div> 71 </div>
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 dad88a661..2c40892ee 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
@@ -83,7 +83,7 @@
83 (click)="updateSecondStep()" 83 (click)="updateSecondStep()"
84 [ngClass]="{ disabled: isPublishingButtonDisabled() }" 84 [ngClass]="{ disabled: isPublishingButtonDisabled() }"
85 > 85 >
86 <my-global-icon iconName="validate" aria-hidden="true"></my-global-icon> 86 <my-global-icon iconName="circle-tick" aria-hidden="true"></my-global-icon>
87 <input [disabled]="isPublishingButtonDisabled()" type="button" i18n-value value="Publish" /> 87 <input [disabled]="isPublishingButtonDisabled()" type="button" i18n-value value="Publish" />
88 </div> 88 </div>
89 </div> 89 </div>
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 fbc642db9..1517d4991 100644
--- a/client/src/app/+videos/+video-edit/video-update.component.html
+++ b/client/src/app/+videos/+video-edit/video-update.component.html
@@ -14,7 +14,7 @@
14 14
15 <div class="submit-container"> 15 <div class="submit-container">
16 <div class="submit-button" (click)="update()" [ngClass]="{ disabled: !form.valid || isUpdatingVideo === true }"> 16 <div class="submit-button" (click)="update()" [ngClass]="{ disabled: !form.valid || isUpdatingVideo === true }">
17 <my-global-icon iconName="validate" aria-hidden="true"></my-global-icon> 17 <my-global-icon iconName="circle-tick" aria-hidden="true"></my-global-icon>
18 <input type="button" i18n-value value="Update" /> 18 <input type="button" i18n-value value="Update" />
19 </div> 19 </div>
20 </div> 20 </div>
diff --git a/client/src/app/+videos/+video-watch/video-watch.component.scss b/client/src/app/+videos/+video-watch/video-watch.component.scss
index 2e083982e..c7f91f4a0 100644
--- a/client/src/app/+videos/+video-watch/video-watch.component.scss
+++ b/client/src/app/+videos/+video-watch/video-watch.component.scss
@@ -249,7 +249,7 @@ $video-info-margin-left: 44px;
249 filter: brightness(120%); 249 filter: brightness(120%);
250 250
251 .count { 251 .count {
252 margin-right: 5px; 252 margin: 0 5px;
253 } 253 }
254 } 254 }
255 255
diff --git a/client/src/app/app.component.scss b/client/src/app/app.component.scss
index a2180e19d..d121ebad2 100644
--- a/client/src/app/app.component.scss
+++ b/client/src/app/app.component.scss
@@ -39,7 +39,7 @@
39 39
40 &.icon-menu { 40 &.icon-menu {
41 background-color: pvar(--mainForegroundColor); 41 background-color: pvar(--mainForegroundColor);
42 mask-image: url('../assets/images/header/menu.svg'); 42 mask-image: url('../assets/images/misc/menu.svg');
43 margin: 0 18px 0 20px; 43 margin: 0 18px 0 20px;
44 } 44 }
45 } 45 }
diff --git a/client/src/app/header/search-typeahead.component.html b/client/src/app/header/search-typeahead.component.html
index 4355b67af..548da59bb 100644
--- a/client/src/app/header/search-typeahead.component.html
+++ b/client/src/app/header/search-typeahead.component.html
@@ -4,7 +4,7 @@
4 [(ngModel)]="search" (ngModelChange)="onSearchChange()" (keydown)="handleKey($event)" (keydown.enter)="doSearch()" 4 [(ngModel)]="search" (ngModelChange)="onSearchChange()" (keydown)="handleKey($event)" (keydown.enter)="doSearch()"
5 aria-label="Search" autocomplete="off" 5 aria-label="Search" autocomplete="off"
6 > 6 >
7 <span class="icon icon-search" (click)="doSearch()"></span> 7 <my-global-icon iconName="search" class="icon icon-search" role="button" (click)="doSearch()" (keydown.enter)="doSearch()"></my-global-icon>
8 8
9 <div class="position-absolute jump-to-suggestions"> 9 <div class="position-absolute jump-to-suggestions">
10 10
diff --git a/client/src/app/header/search-typeahead.component.scss b/client/src/app/header/search-typeahead.component.scss
index 920aa61ae..87e8b8c70 100644
--- a/client/src/app/header/search-typeahead.component.scss
+++ b/client/src/app/header/search-typeahead.component.scss
@@ -16,15 +16,13 @@
16 16
17.icon.icon-search { 17.icon.icon-search {
18 @include icon(25px); 18 @include icon(25px);
19 height: 21px; 19 height: 18px;
20
21 background-color: pvar(--mainForegroundColor);
22 mask: url('../../assets/images/header/search.svg') no-repeat 50% 50%;
23 20
24 // yolo 21 // yolo
25 position: absolute; 22 position: absolute;
26 margin-left: -35px; 23 margin-left: -35px;
27 margin-top: 5px; 24 margin-top: 3.5px;
25 right: 10px;
28} 26}
29 27
30.jump-to-suggestions { 28.jump-to-suggestions {
diff --git a/client/src/app/header/suggestion.component.html b/client/src/app/header/suggestion.component.html
index ab4b4b678..4ac9809e1 100644
--- a/client/src/app/header/suggestion.component.html
+++ b/client/src/app/header/suggestion.component.html
@@ -11,7 +11,7 @@
11 ></div> 11 ></div>
12 12
13 <div class="border rounded flex-shrink-0 px-1 bg-gray text-gray-light ml-1 f6"> 13 <div class="border rounded flex-shrink-0 px-1 bg-gray text-gray-light ml-1 f6">
14 <span *ngIf="result.type === 'search-instance'" i18n>In this instance</span> 14 <span *ngIf="result.type === 'search-instance'" i18n>In this instance's network</span>
15 <span *ngIf="result.type === 'search-index'" i18n>In the vidiverse</span> 15 <span *ngIf="result.type === 'search-index'" i18n>In the vidiverse</span>
16 </div> 16 </div>
17</a> 17</a>
diff --git a/client/src/app/menu/menu.component.html b/client/src/app/menu/menu.component.html
index a8d34088c..7f3bff170 100644
--- a/client/src/app/menu/menu.component.html
+++ b/client/src/app/menu/menu.component.html
@@ -26,7 +26,7 @@
26 </a> 26 </a>
27 27
28 <a ngbDropdownItem ngbDropdownToggle class="dropdown-item" routerLink="/my-account/video-channels"> 28 <a ngbDropdownItem ngbDropdownToggle class="dropdown-item" routerLink="/my-account/video-channels">
29 <my-global-icon iconName="folder" aria-hidden="true"></my-global-icon> <ng-container i18n>Channels settings</ng-container> 29 <my-global-icon iconName="channel" aria-hidden="true"></my-global-icon> <ng-container i18n>Channels settings</ng-container>
30 </a> 30 </a>
31 31
32 <div class="dropdown-divider"></div> 32 <div class="dropdown-divider"></div>
diff --git a/client/src/app/menu/menu.component.scss b/client/src/app/menu/menu.component.scss
index 8f8c31417..407d79725 100644
--- a/client/src/app/menu/menu.component.scss
+++ b/client/src/app/menu/menu.component.scss
@@ -296,7 +296,7 @@ menu {
296 top: -1px; 296 top: -1px;
297 margin-right: 10px; 297 margin-right: 10px;
298 298
299 background-image: url('../../assets/images/menu/keyboard.png'); 299 background-image: url('../../assets/images/misc/keyboard.png');
300 } 300 }
301} 301}
302 302
diff --git a/client/src/app/modal/quick-settings-modal.component.scss b/client/src/app/modal/quick-settings-modal.component.scss
index ef21542f3..afc8460d0 100644
--- a/client/src/app/modal/quick-settings-modal.component.scss
+++ b/client/src/app/modal/quick-settings-modal.component.scss
@@ -30,7 +30,7 @@
30 top: -1px; 30 top: -1px;
31 margin-right: 4px; 31 margin-right: 4px;
32 32
33 background-image: url('../../assets/images/menu/keyboard.png'); 33 background-image: url('../../assets/images/misc/keyboard.png');
34 } 34 }
35} 35}
36 36
diff --git a/client/src/app/shared/shared-icons/global-icon.component.ts b/client/src/app/shared/shared-icons/global-icon.component.ts
index 3de926293..75ab9e8f5 100644
--- a/client/src/app/shared/shared-icons/global-icon.component.ts
+++ b/client/src/app/shared/shared-icons/global-icon.component.ts
@@ -2,62 +2,65 @@ import { ChangeDetectionStrategy, Component, ElementRef, Input, OnInit } from '@
2import { HooksService } from '@app/core/plugins/hooks.service' 2import { HooksService } from '@app/core/plugins/hooks.service'
3 3
4const icons = { 4const icons = {
5 'add': require('!!raw-loader?!../../../assets/images/global/add.svg').default, 5 // misc icons
6 'user': require('!!raw-loader?!../../../assets/images/global/user.svg').default, 6 'npm': require('!!raw-loader?!../../../assets/images/misc/npm.svg').default,
7 'sign-out': require('!!raw-loader?!../../../assets/images/global/sign-out.svg').default, 7 'language': require('!!raw-loader?!../../../assets/images/misc/language.svg').default,
8 'syndication': require('!!raw-loader?!../../../assets/images/global/syndication.svg').default, 8 'video-lang': require('!!raw-loader?!../../../assets/images/misc/video-lang.svg').default,
9 'help': require('!!raw-loader?!../../../assets/images/global/help.svg').default, 9 'support': require('!!raw-loader?!../../../assets/images/misc/support.svg').default,
10 'sparkle': require('!!raw-loader?!../../../assets/images/global/sparkle.svg').default, 10 'robot': require('!!raw-loader?!../../../assets/images/misc/miscellaneous_services.svg').default, // material ui
11 'alert': require('!!raw-loader?!../../../assets/images/global/alert.svg').default, 11 'videos': require('!!raw-loader?!../../../assets/images/misc/video_library.svg').default, // material ui
12 'cloud-error': require('!!raw-loader?!../../../assets/images/global/cloud-error.svg').default, 12 'history': require('!!raw-loader?!../../../assets/images/misc/history.svg').default, // material ui
13 'clock': require('!!raw-loader?!../../../assets/images/global/clock.svg').default, 13 'subscriptions': require('!!raw-loader?!../../../assets/images/misc/subscriptions.svg').default, // material ui
14 'user-add': require('!!raw-loader?!../../../assets/images/global/user-add.svg').default, 14 'playlist-add': require('!!raw-loader?!../../../assets/images/misc/playlist-add.svg').default, // material ui
15 'no': require('!!raw-loader?!../../../assets/images/global/no.svg').default, 15
16 'cloud-download': require('!!raw-loader?!../../../assets/images/global/cloud-download.svg').default, 16 // feather icons
17 'undo': require('!!raw-loader?!../../../assets/images/global/undo.svg').default, 17 'flag': require('!!raw-loader?!../../../assets/images/feather/flag.svg').default,
18 'history': require('!!raw-loader?!../../../assets/images/global/history.svg').default, 18 'playlists': require('!!raw-loader?!../../../assets/images/feather/list.svg').default,
19 'circle-tick': require('!!raw-loader?!../../../assets/images/global/circle-tick.svg').default, 19 'syndication': require('!!raw-loader?!../../../assets/images/feather/syndication.svg').default,
20 'cog': require('!!raw-loader?!../../../assets/images/global/cog.svg').default, 20 'help': require('!!raw-loader?!../../../assets/images/feather/help.svg').default,
21 'download': require('!!raw-loader?!../../../assets/images/global/download.svg').default, 21 'alert': require('!!raw-loader?!../../../assets/images/feather/alert.svg').default,
22 'go': require('!!raw-loader?!../../../assets/images/menu/go.svg').default, 22 'globe': require('!!raw-loader?!../../../assets/images/feather/globe.svg').default,
23 'edit': require('!!raw-loader?!../../../assets/images/global/edit.svg').default, 23 'home': require('!!raw-loader?!../../../assets/images/feather/home.svg').default,
24 'forward': require('!!raw-loader?!../../../assets/images/global/forward.svg').default, 24 'recently-added': require('!!raw-loader?!../../../assets/images/feather/recently-added.svg').default,
25 'delete': require('!!raw-loader?!../../../assets/images/global/delete.svg').default, 25 'trending': require('!!raw-loader?!../../../assets/images/feather/trending.svg').default,
26 'server': require('!!raw-loader?!../../../assets/images/global/server.svg').default, 26 'search': require('!!raw-loader?!../../../assets/images/feather/search.svg').default,
27 'cross': require('!!raw-loader?!../../../assets/images/global/cross.svg').default, 27 'upload': require('!!raw-loader?!../../../assets/images/feather/upload.svg').default,
28 'validate': require('!!raw-loader?!../../../assets/images/global/validate.svg').default, 28 'dislike': require('!!raw-loader?!../../../assets/images/feather/dislike.svg').default,
29 'tick': require('!!raw-loader?!../../../assets/images/global/tick.svg').default, 29 'like': require('!!raw-loader?!../../../assets/images/feather/like.svg').default,
30 'repeat': require('!!raw-loader?!../../../assets/images/global/repeat.svg').default, 30 'no': require('!!raw-loader?!../../../assets/images/feather/no.svg').default,
31 'inbox-full': require('!!raw-loader?!../../../assets/images/global/inbox-full.svg').default, 31 'cloud-download': require('!!raw-loader?!../../../assets/images/feather/cloud-download.svg').default,
32 'dislike': require('!!raw-loader?!../../../assets/images/video/dislike.svg').default, 32 'clock': require('!!raw-loader?!../../../assets/images/feather/clock.svg').default,
33 'support': require('!!raw-loader?!../../../assets/images/video/support.svg').default, 33 'cog': require('!!raw-loader?!../../../assets/images/feather/cog.svg').default,
34 'like': require('!!raw-loader?!../../../assets/images/video/like.svg').default, 34 'delete': require('!!raw-loader?!../../../assets/images/feather/delete.svg').default,
35 'more-horizontal': require('!!raw-loader?!../../../assets/images/global/more-horizontal.svg').default, 35 'inbox-full': require('!!raw-loader?!../../../assets/images/feather/inbox-full.svg').default,
36 'more-vertical': require('!!raw-loader?!../../../assets/images/global/more-vertical.svg').default, 36 'sign-out': require('!!raw-loader?!../../../assets/images/feather/log-out.svg').default,
37 'share': require('!!raw-loader?!../../../assets/images/video/share.svg').default, 37 'download': require('!!raw-loader?!../../../assets/images/feather/download.svg').default,
38 'upload': require('!!raw-loader?!../../../assets/images/video/upload.svg').default, 38 'ownership-change': require('!!raw-loader?!../../../assets/images/feather/share.svg').default,
39 'playlist-add': require('!!raw-loader?!../../../assets/images/video/playlist-add.svg').default, 39 'share': require('!!raw-loader?!../../../assets/images/feather/share-2.svg').default,
40 'play': require('!!raw-loader?!../../../assets/images/global/play.svg').default, 40 'channel': require('!!raw-loader?!../../../assets/images/feather/tv.svg').default,
41 'playlists': require('!!raw-loader?!../../../assets/images/global/playlists.svg').default, 41 'user': require('!!raw-loader?!../../../assets/images/feather/user.svg').default,
42 'globe': require('!!raw-loader?!../../../assets/images/menu/globe.svg').default, 42 'users': require('!!raw-loader?!../../../assets/images/feather/users.svg').default,
43 'home': require('!!raw-loader?!../../../assets/images/menu/home.svg').default, 43 'user-add': require('!!raw-loader?!../../../assets/images/feather/user-plus.svg').default,
44 'recently-added': require('!!raw-loader?!../../../assets/images/menu/recently-added.svg').default, 44 'server': require('!!raw-loader?!../../../assets/images/feather/server.svg').default,
45 'trending': require('!!raw-loader?!../../../assets/images/menu/trending.svg').default, 45 'add': require('!!raw-loader?!../../../assets/images/feather/plus-circle.svg').default,
46 'video-lang': require('!!raw-loader?!../../../assets/images/global/video-lang.svg').default, 46 'cloud-error': require('!!raw-loader?!../../../assets/images/feather/cloud-off.svg').default,
47 'videos': require('!!raw-loader?!../../../assets/images/global/videos.svg').default, 47 'undo': require('!!raw-loader?!../../../assets/images/feather/corner-up-left.svg').default,
48 'folder': require('!!raw-loader?!../../../assets/images/global/folder.svg').default, 48 'circle-tick': require('!!raw-loader?!../../../assets/images/feather/check-circle.svg').default,
49 'subscriptions': require('!!raw-loader?!../../../assets/images/menu/subscriptions.svg').default, 49 'more-horizontal': require('!!raw-loader?!../../../assets/images/feather/more-horizontal.svg').default,
50 'language': require('!!raw-loader?!../../../assets/images/menu/language.svg').default, 50 'more-vertical': require('!!raw-loader?!../../../assets/images/feather/more-vertical.svg').default,
51 'unsensitive': require('!!raw-loader?!../../../assets/images/menu/eye.svg').default, 51 'play': require('!!raw-loader?!../../../assets/images/feather/play.svg').default,
52 'sensitive': require('!!raw-loader?!../../../assets/images/menu/eye-closed.svg').default, 52 'p2p': require('!!raw-loader?!../../../assets/images/feather/airplay.svg').default,
53 'p2p': require('!!raw-loader?!../../../assets/images/menu/p2p.svg').default, 53 'fullscreen': require('!!raw-loader?!../../../assets/images/feather/maximize.svg').default,
54 'users': require('!!raw-loader?!../../../assets/images/global/users.svg').default, 54 'exit-fullscreen': require('!!raw-loader?!../../../assets/images/feather/minimize.svg').default,
55 'search': require('!!raw-loader?!../../../assets/images/global/search.svg').default, 55 'film': require('!!raw-loader?!../../../assets/images/feather/film.svg').default,
56 'refresh': require('!!raw-loader?!../../../assets/images/global/refresh.svg').default, 56 'edit': require('!!raw-loader?!../../../assets/images/feather/edit-2.svg').default,
57 'npm': require('!!raw-loader?!../../../assets/images/global/npm.svg').default, 57 'sensitive': require('!!raw-loader?!../../../assets/images/feather/eye.svg').default,
58 'fullscreen': require('!!raw-loader?!../../../assets/images/global/fullscreen.svg').default, 58 'unsensitive': require('!!raw-loader?!../../../assets/images/feather/eye-off.svg').default,
59 'exit-fullscreen': require('!!raw-loader?!../../../assets/images/global/exit-fullscreen.svg').default, 59 'refresh': require('!!raw-loader?!../../../assets/images/feather/refresh-cw.svg').default,
60 'robot': require('!!raw-loader?!../../../assets/images/global/robot.svg').default 60 'go': require('!!raw-loader?!../../../assets/images/feather/arrow-up-right.svg').default,
61 'cross': require('!!raw-loader?!../../../assets/images/feather/x.svg').default,
62 'tick': require('!!raw-loader?!../../../assets/images/feather/check.svg').default,
63 'repeat': require('!!raw-loader?!../../../assets/images/feather/repeat.svg').default
61} 64}
62 65
63export type GlobalIconName = keyof typeof icons 66export type GlobalIconName = keyof typeof icons
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 3ccfefd7e..5b27af3f4 100644
--- a/client/src/app/shared/shared-main/buttons/button.component.scss
+++ b/client/src/app/shared/shared-main/buttons/button.component.scss
@@ -10,6 +10,10 @@ my-small-loader ::ng-deep .root {
10.action-button { 10.action-button {
11 @include peertube-button-link; 11 @include peertube-button-link;
12 @include button-with-icon(21px, 0, -2px); 12 @include button-with-icon(21px, 0, -2px);
13
14 > :nth-child(2) {
15 margin-left: 5px;
16 }
13} 17}
14 18
15.orange-button { 19.orange-button {
diff --git a/client/src/app/shared/shared-main/users/user-notifications.component.html b/client/src/app/shared/shared-main/users/user-notifications.component.html
index 08771110d..d5be1470e 100644
--- a/client/src/app/shared/shared-main/users/user-notifications.component.html
+++ b/client/src/app/shared/shared-main/users/user-notifications.component.html
@@ -43,7 +43,7 @@
43 </ng-container> 43 </ng-container>
44 44
45 <ng-container *ngSwitchCase="UserNotificationType.NEW_VIDEO_ABUSE_FOR_MODERATORS"> 45 <ng-container *ngSwitchCase="UserNotificationType.NEW_VIDEO_ABUSE_FOR_MODERATORS">
46 <my-global-icon iconName="alert" aria-hidden="true"></my-global-icon> 46 <my-global-icon iconName="flag" aria-hidden="true"></my-global-icon>
47 47
48 <div class="message" i18n> 48 <div class="message" i18n>
49 <a (click)="markAsRead(notification)" [routerLink]="notification.videoAbuseUrl">A new video abuse</a> has been created on video <a (click)="markAsRead(notification)" [routerLink]="notification.videoUrl">{{ notification.videoAbuse.video.name }}</a> 49 <a (click)="markAsRead(notification)" [routerLink]="notification.videoAbuseUrl">A new video abuse</a> has been created on video <a (click)="markAsRead(notification)" [routerLink]="notification.videoUrl">{{ notification.videoAbuse.video.name }}</a>
@@ -81,7 +81,7 @@
81 </ng-container> 81 </ng-container>
82 82
83 <ng-container *ngSwitchCase="UserNotificationType.MY_VIDEO_PUBLISHED"> 83 <ng-container *ngSwitchCase="UserNotificationType.MY_VIDEO_PUBLISHED">
84 <my-global-icon iconName="sparkle" aria-hidden="true"></my-global-icon> 84 <my-global-icon iconName="film" aria-hidden="true"></my-global-icon>
85 85
86 <div class="message" i18n> 86 <div class="message" i18n>
87 Your video <a (click)="markAsRead(notification)" [routerLink]="notification.videoUrl">{{ notification.video.name }}</a> has been published 87 Your video <a (click)="markAsRead(notification)" [routerLink]="notification.videoUrl">{{ notification.video.name }}</a> has been published
diff --git a/client/src/app/shared/shared-video-miniature/video-actions-dropdown.component.ts b/client/src/app/shared/shared-video-miniature/video-actions-dropdown.component.ts
index 9bd0741df..3d1fc8690 100644
--- a/client/src/app/shared/shared-video-miniature/video-actions-dropdown.component.ts
+++ b/client/src/app/shared/shared-video-miniature/video-actions-dropdown.component.ts
@@ -283,7 +283,7 @@ export class VideoActionsDropdownComponent implements OnChanges {
283 label: this.i18n('Report'), 283 label: this.i18n('Report'),
284 handler: () => this.showReportModal(), 284 handler: () => this.showReportModal(),
285 isDisplayed: () => this.authService.isLoggedIn() && this.displayOptions.report, 285 isDisplayed: () => this.authService.isLoggedIn() && this.displayOptions.report,
286 iconName: 'alert' 286 iconName: 'flag'
287 } 287 }
288 ], 288 ],
289 [ // actions regarding the account/its server 289 [ // actions regarding the account/its server
diff --git a/client/src/assets/images/feather/airplay.svg b/client/src/assets/images/feather/airplay.svg
new file mode 100644
index 000000000..7ce730225
--- /dev/null
+++ b/client/src/assets/images/feather/airplay.svg
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-airplay"><path d="M5 17H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2h-1"></path><polygon points="12 15 17 21 7 21 12 15"></polygon></svg> \ No newline at end of file
diff --git a/client/src/assets/images/feather/alert.svg b/client/src/assets/images/feather/alert.svg
new file mode 100644
index 000000000..6dcb09632
--- /dev/null
+++ b/client/src/assets/images/feather/alert.svg
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-alert-triangle"><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path><line x1="12" y1="9" x2="12" y2="13"></line><line x1="12" y1="17" x2="12.01" y2="17"></line></svg> \ No newline at end of file
diff --git a/client/src/assets/images/feather/arrow-up-right.svg b/client/src/assets/images/feather/arrow-up-right.svg
new file mode 100644
index 000000000..95678e00b
--- /dev/null
+++ b/client/src/assets/images/feather/arrow-up-right.svg
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-arrow-up-right"><line x1="7" y1="17" x2="17" y2="7"></line><polyline points="7 7 17 7 17 17"></polyline></svg> \ No newline at end of file
diff --git a/client/src/assets/images/feather/check-circle.svg b/client/src/assets/images/feather/check-circle.svg
new file mode 100644
index 000000000..f2f4fd1af
--- /dev/null
+++ b/client/src/assets/images/feather/check-circle.svg
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-check-circle"><path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"></path><polyline points="22 4 12 14.01 9 11.01"></polyline></svg> \ No newline at end of file
diff --git a/client/src/assets/images/feather/check.svg b/client/src/assets/images/feather/check.svg
new file mode 100644
index 000000000..1c209899d
--- /dev/null
+++ b/client/src/assets/images/feather/check.svg
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-check"><polyline points="20 6 9 17 4 12"></polyline></svg> \ No newline at end of file
diff --git a/client/src/assets/images/feather/clock.svg b/client/src/assets/images/feather/clock.svg
new file mode 100644
index 000000000..ea3f5e507
--- /dev/null
+++ b/client/src/assets/images/feather/clock.svg
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-clock"><circle cx="12" cy="12" r="10"></circle><polyline points="12 6 12 12 16 14"></polyline></svg> \ No newline at end of file
diff --git a/client/src/assets/images/global/cloud-download.svg b/client/src/assets/images/feather/cloud-download.svg
index 3a4e58df1..3a4e58df1 100644
--- a/client/src/assets/images/global/cloud-download.svg
+++ b/client/src/assets/images/feather/cloud-download.svg
diff --git a/client/src/assets/images/feather/cloud-off.svg b/client/src/assets/images/feather/cloud-off.svg
new file mode 100644
index 000000000..1e1e7d60b
--- /dev/null
+++ b/client/src/assets/images/feather/cloud-off.svg
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-cloud-off"><path d="M22.61 16.95A5 5 0 0 0 18 10h-1.26a8 8 0 0 0-7.05-6M5 5a8 8 0 0 0 4 15h9a5 5 0 0 0 1.7-.3"></path><line x1="1" y1="1" x2="23" y2="23"></line></svg> \ No newline at end of file
diff --git a/client/src/assets/images/feather/cog.svg b/client/src/assets/images/feather/cog.svg
new file mode 100644
index 000000000..19c27265a
--- /dev/null
+++ b/client/src/assets/images/feather/cog.svg
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-settings"><circle cx="12" cy="12" r="3"></circle><path d="M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 0 1 0 2.83 2 2 0 0 1-2.83 0l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-2 2 2 2 0 0 1-2-2v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 0 1-2.83 0 2 2 0 0 1 0-2.83l.06-.06a1.65 1.65 0 0 0 .33-1.82 1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1-2-2 2 2 0 0 1 2-2h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 0 1 0-2.83 2 2 0 0 1 2.83 0l.06.06a1.65 1.65 0 0 0 1.82.33H9a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 2-2 2 2 0 0 1 2 2v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 0 1 2.83 0 2 2 0 0 1 0 2.83l-.06.06a1.65 1.65 0 0 0-.33 1.82V9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 2 2 2 2 0 0 1-2 2h-.09a1.65 1.65 0 0 0-1.51 1z"></path></svg> \ No newline at end of file
diff --git a/client/src/assets/images/feather/corner-up-left.svg b/client/src/assets/images/feather/corner-up-left.svg
new file mode 100644
index 000000000..0a1ffd613
--- /dev/null
+++ b/client/src/assets/images/feather/corner-up-left.svg
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-corner-up-left"><polyline points="9 14 4 9 9 4"></polyline><path d="M20 20v-7a4 4 0 0 0-4-4H4"></path></svg> \ No newline at end of file
diff --git a/client/src/assets/images/feather/delete.svg b/client/src/assets/images/feather/delete.svg
new file mode 100644
index 000000000..f24d55bf6
--- /dev/null
+++ b/client/src/assets/images/feather/delete.svg
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-trash-2"><polyline points="3 6 5 6 21 6"></polyline><path d="M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6m3 0V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2"></path><line x1="10" y1="11" x2="10" y2="17"></line><line x1="14" y1="11" x2="14" y2="17"></line></svg> \ No newline at end of file
diff --git a/client/src/assets/images/feather/dislike.svg b/client/src/assets/images/feather/dislike.svg
new file mode 100644
index 000000000..3e7bcd6d9
--- /dev/null
+++ b/client/src/assets/images/feather/dislike.svg
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-thumbs-down"><path d="M10 15v4a3 3 0 0 0 3 3l4-9V2H5.72a2 2 0 0 0-2 1.7l-1.38 9a2 2 0 0 0 2 2.3zm7-13h2.67A2.31 2.31 0 0 1 22 4v7a2.31 2.31 0 0 1-2.33 2H17"></path></svg> \ No newline at end of file
diff --git a/client/src/assets/images/feather/download.svg b/client/src/assets/images/feather/download.svg
new file mode 100644
index 000000000..76767a924
--- /dev/null
+++ b/client/src/assets/images/feather/download.svg
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-download"><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"></path><polyline points="7 10 12 15 17 10"></polyline><line x1="12" y1="15" x2="12" y2="3"></line></svg> \ No newline at end of file
diff --git a/client/src/assets/images/feather/edit-2.svg b/client/src/assets/images/feather/edit-2.svg
new file mode 100644
index 000000000..06830c9d0
--- /dev/null
+++ b/client/src/assets/images/feather/edit-2.svg
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-edit-2"><path d="M17 3a2.828 2.828 0 1 1 4 4L7.5 20.5 2 22l1.5-5.5L17 3z"></path></svg> \ No newline at end of file
diff --git a/client/src/assets/images/feather/eye-off.svg b/client/src/assets/images/feather/eye-off.svg
new file mode 100644
index 000000000..77c54cb41
--- /dev/null
+++ b/client/src/assets/images/feather/eye-off.svg
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-eye-off"><path d="M17.94 17.94A10.07 10.07 0 0 1 12 20c-7 0-11-8-11-8a18.45 18.45 0 0 1 5.06-5.94M9.9 4.24A9.12 9.12 0 0 1 12 4c7 0 11 8 11 8a18.5 18.5 0 0 1-2.16 3.19m-6.72-1.07a3 3 0 1 1-4.24-4.24"></path><line x1="1" y1="1" x2="23" y2="23"></line></svg> \ No newline at end of file
diff --git a/client/src/assets/images/feather/eye.svg b/client/src/assets/images/feather/eye.svg
new file mode 100644
index 000000000..9cde24372
--- /dev/null
+++ b/client/src/assets/images/feather/eye.svg
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-eye"><path d="M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z"></path><circle cx="12" cy="12" r="3"></circle></svg> \ No newline at end of file
diff --git a/client/src/assets/images/feather/film.svg b/client/src/assets/images/feather/film.svg
new file mode 100644
index 000000000..ac46360d2
--- /dev/null
+++ b/client/src/assets/images/feather/film.svg
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-film"><rect x="2" y="2" width="20" height="20" rx="2.18" ry="2.18"></rect><line x1="7" y1="2" x2="7" y2="22"></line><line x1="17" y1="2" x2="17" y2="22"></line><line x1="2" y1="12" x2="22" y2="12"></line><line x1="2" y1="7" x2="7" y2="7"></line><line x1="2" y1="17" x2="7" y2="17"></line><line x1="17" y1="17" x2="22" y2="17"></line><line x1="17" y1="7" x2="22" y2="7"></line></svg> \ No newline at end of file
diff --git a/client/src/assets/images/feather/filter.svg b/client/src/assets/images/feather/filter.svg
new file mode 100644
index 000000000..38a47e043
--- /dev/null
+++ b/client/src/assets/images/feather/filter.svg
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-filter"><polygon points="22 3 2 3 10 12.46 10 19 14 21 14 12.46 22 3"></polygon></svg> \ No newline at end of file
diff --git a/client/src/assets/images/feather/flag.svg b/client/src/assets/images/feather/flag.svg
new file mode 100644
index 000000000..037737cb6
--- /dev/null
+++ b/client/src/assets/images/feather/flag.svg
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-flag"><path d="M4 15s1-1 4-1 5 2 8 2 4-1 4-1V3s-1 1-4 1-5-2-8-2-4 1-4 1z"></path><line x1="4" y1="22" x2="4" y2="15"></line></svg> \ No newline at end of file
diff --git a/client/src/assets/images/feather/globe.svg b/client/src/assets/images/feather/globe.svg
new file mode 100644
index 000000000..0a0586d36
--- /dev/null
+++ b/client/src/assets/images/feather/globe.svg
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-globe"><circle cx="12" cy="12" r="10"></circle><line x1="2" y1="12" x2="22" y2="12"></line><path d="M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z"></path></svg> \ No newline at end of file
diff --git a/client/src/assets/images/feather/help.svg b/client/src/assets/images/feather/help.svg
new file mode 100644
index 000000000..51fddd80d
--- /dev/null
+++ b/client/src/assets/images/feather/help.svg
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-help-circle"><circle cx="12" cy="12" r="10"></circle><path d="M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3"></path><line x1="12" y1="17" x2="12.01" y2="17"></line></svg> \ No newline at end of file
diff --git a/client/src/assets/images/feather/home.svg b/client/src/assets/images/feather/home.svg
new file mode 100644
index 000000000..7bb31b23d
--- /dev/null
+++ b/client/src/assets/images/feather/home.svg
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-home"><path d="M3 9l9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z"></path><polyline points="9 22 9 12 15 12 15 22"></polyline></svg> \ No newline at end of file
diff --git a/client/src/assets/images/feather/inbox-full.svg b/client/src/assets/images/feather/inbox-full.svg
new file mode 100644
index 000000000..03a13b4e4
--- /dev/null
+++ b/client/src/assets/images/feather/inbox-full.svg
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-inbox"><polyline points="22 12 16 12 14 15 10 15 8 12 2 12"></polyline><path d="M5.45 5.11L2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z"></path></svg> \ No newline at end of file
diff --git a/client/src/assets/images/feather/like.svg b/client/src/assets/images/feather/like.svg
new file mode 100644
index 000000000..226c44d85
--- /dev/null
+++ b/client/src/assets/images/feather/like.svg
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-thumbs-up"><path d="M14 9V5a3 3 0 0 0-3-3l-4 9v11h11.28a2 2 0 0 0 2-1.7l1.38-9a2 2 0 0 0-2-2.3zM7 22H4a2 2 0 0 1-2-2v-7a2 2 0 0 1 2-2h3"></path></svg> \ No newline at end of file
diff --git a/client/src/assets/images/feather/list.svg b/client/src/assets/images/feather/list.svg
new file mode 100644
index 000000000..5ce38eaa9
--- /dev/null
+++ b/client/src/assets/images/feather/list.svg
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-list"><line x1="8" y1="6" x2="21" y2="6"></line><line x1="8" y1="12" x2="21" y2="12"></line><line x1="8" y1="18" x2="21" y2="18"></line><line x1="3" y1="6" x2="3.01" y2="6"></line><line x1="3" y1="12" x2="3.01" y2="12"></line><line x1="3" y1="18" x2="3.01" y2="18"></line></svg> \ No newline at end of file
diff --git a/client/src/assets/images/feather/log-out.svg b/client/src/assets/images/feather/log-out.svg
new file mode 100644
index 000000000..c9002c903
--- /dev/null
+++ b/client/src/assets/images/feather/log-out.svg
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-log-out"><path d="M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4"></path><polyline points="16 17 21 12 16 7"></polyline><line x1="21" y1="12" x2="9" y2="12"></line></svg> \ No newline at end of file
diff --git a/client/src/assets/images/feather/maximize.svg b/client/src/assets/images/feather/maximize.svg
new file mode 100644
index 000000000..fc3051894
--- /dev/null
+++ b/client/src/assets/images/feather/maximize.svg
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-maximize"><path d="M8 3H5a2 2 0 0 0-2 2v3m18 0V5a2 2 0 0 0-2-2h-3m0 18h3a2 2 0 0 0 2-2v-3M3 16v3a2 2 0 0 0 2 2h3"></path></svg> \ No newline at end of file
diff --git a/client/src/assets/images/feather/minimize.svg b/client/src/assets/images/feather/minimize.svg
new file mode 100644
index 000000000..46d611969
--- /dev/null
+++ b/client/src/assets/images/feather/minimize.svg
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-minimize"><path d="M8 3v3a2 2 0 0 1-2 2H3m18 0h-3a2 2 0 0 1-2-2V3m0 18v-3a2 2 0 0 1 2-2h3M3 16h3a2 2 0 0 1 2 2v3"></path></svg> \ No newline at end of file
diff --git a/client/src/assets/images/feather/more-horizontal.svg b/client/src/assets/images/feather/more-horizontal.svg
new file mode 100644
index 000000000..dc6a85564
--- /dev/null
+++ b/client/src/assets/images/feather/more-horizontal.svg
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-more-horizontal"><circle cx="12" cy="12" r="1"></circle><circle cx="19" cy="12" r="1"></circle><circle cx="5" cy="12" r="1"></circle></svg> \ No newline at end of file
diff --git a/client/src/assets/images/feather/more-vertical.svg b/client/src/assets/images/feather/more-vertical.svg
new file mode 100644
index 000000000..cba6958f2
--- /dev/null
+++ b/client/src/assets/images/feather/more-vertical.svg
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-more-vertical"><circle cx="12" cy="12" r="1"></circle><circle cx="12" cy="5" r="1"></circle><circle cx="12" cy="19" r="1"></circle></svg> \ No newline at end of file
diff --git a/client/src/assets/images/feather/no.svg b/client/src/assets/images/feather/no.svg
new file mode 100644
index 000000000..f4131b85f
--- /dev/null
+++ b/client/src/assets/images/feather/no.svg
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-slash"><circle cx="12" cy="12" r="10"></circle><line x1="4.93" y1="4.93" x2="19.07" y2="19.07"></line></svg> \ No newline at end of file
diff --git a/client/src/assets/images/feather/play.svg b/client/src/assets/images/feather/play.svg
new file mode 100644
index 000000000..fd76e30d6
--- /dev/null
+++ b/client/src/assets/images/feather/play.svg
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-play"><polygon points="5 3 19 12 5 21 5 3"></polygon></svg> \ No newline at end of file
diff --git a/client/src/assets/images/feather/plus-circle.svg b/client/src/assets/images/feather/plus-circle.svg
new file mode 100644
index 000000000..4291ff052
--- /dev/null
+++ b/client/src/assets/images/feather/plus-circle.svg
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-plus-circle"><circle cx="12" cy="12" r="10"></circle><line x1="12" y1="8" x2="12" y2="16"></line><line x1="8" y1="12" x2="16" y2="12"></line></svg> \ No newline at end of file
diff --git a/client/src/assets/images/feather/recently-added.svg b/client/src/assets/images/feather/recently-added.svg
new file mode 100644
index 000000000..4291ff052
--- /dev/null
+++ b/client/src/assets/images/feather/recently-added.svg
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-plus-circle"><circle cx="12" cy="12" r="10"></circle><line x1="12" y1="8" x2="12" y2="16"></line><line x1="8" y1="12" x2="16" y2="12"></line></svg> \ No newline at end of file
diff --git a/client/src/assets/images/feather/refresh-cw.svg b/client/src/assets/images/feather/refresh-cw.svg
new file mode 100644
index 000000000..06c358dd0
--- /dev/null
+++ b/client/src/assets/images/feather/refresh-cw.svg
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-refresh-cw"><polyline points="23 4 23 10 17 10"></polyline><polyline points="1 20 1 14 7 14"></polyline><path d="M3.51 9a9 9 0 0 1 14.85-3.36L23 10M1 14l4.64 4.36A9 9 0 0 0 20.49 15"></path></svg> \ No newline at end of file
diff --git a/client/src/assets/images/feather/repeat.svg b/client/src/assets/images/feather/repeat.svg
new file mode 100644
index 000000000..c7657b08e
--- /dev/null
+++ b/client/src/assets/images/feather/repeat.svg
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-repeat"><polyline points="17 1 21 5 17 9"></polyline><path d="M3 11V9a4 4 0 0 1 4-4h14"></path><polyline points="7 23 3 19 7 15"></polyline><path d="M21 13v2a4 4 0 0 1-4 4H3"></path></svg> \ No newline at end of file
diff --git a/client/src/assets/images/feather/search.svg b/client/src/assets/images/feather/search.svg
new file mode 100644
index 000000000..8710306dd
--- /dev/null
+++ b/client/src/assets/images/feather/search.svg
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-search"><circle cx="11" cy="11" r="8"></circle><line x1="21" y1="21" x2="16.65" y2="16.65"></line></svg> \ No newline at end of file
diff --git a/client/src/assets/images/feather/server.svg b/client/src/assets/images/feather/server.svg
new file mode 100644
index 000000000..54ce094a5
--- /dev/null
+++ b/client/src/assets/images/feather/server.svg
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-server"><rect x="2" y="2" width="20" height="8" rx="2" ry="2"></rect><rect x="2" y="14" width="20" height="8" rx="2" ry="2"></rect><line x1="6" y1="6" x2="6.01" y2="6"></line><line x1="6" y1="18" x2="6.01" y2="18"></line></svg> \ No newline at end of file
diff --git a/client/src/assets/images/feather/share-2.svg b/client/src/assets/images/feather/share-2.svg
new file mode 100644
index 000000000..09b1c7bcd
--- /dev/null
+++ b/client/src/assets/images/feather/share-2.svg
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-share-2"><circle cx="18" cy="5" r="3"></circle><circle cx="6" cy="12" r="3"></circle><circle cx="18" cy="19" r="3"></circle><line x1="8.59" y1="13.51" x2="15.42" y2="17.49"></line><line x1="15.41" y1="6.51" x2="8.59" y2="10.49"></line></svg> \ No newline at end of file
diff --git a/client/src/assets/images/feather/share.svg b/client/src/assets/images/feather/share.svg
new file mode 100644
index 000000000..df38c14d6
--- /dev/null
+++ b/client/src/assets/images/feather/share.svg
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-share"><path d="M4 12v8a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-8"></path><polyline points="16 6 12 2 8 6"></polyline><line x1="12" y1="2" x2="12" y2="15"></line></svg> \ No newline at end of file
diff --git a/client/src/assets/images/menu/subscriptions.svg b/client/src/assets/images/feather/subscriptions.svg
index c7216352a..c7216352a 100644
--- a/client/src/assets/images/menu/subscriptions.svg
+++ b/client/src/assets/images/feather/subscriptions.svg
diff --git a/client/src/assets/images/feather/syndication.svg b/client/src/assets/images/feather/syndication.svg
new file mode 100644
index 000000000..8d5e9d4f4
--- /dev/null
+++ b/client/src/assets/images/feather/syndication.svg
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round" class="feather feather-rss"><path d="M4 11a9 9 0 0 1 9 9"></path><path d="M4 4a16 16 0 0 1 16 16"></path><circle cx="5" cy="19" r="1"></circle></svg> \ No newline at end of file
diff --git a/client/src/assets/images/feather/trending.svg b/client/src/assets/images/feather/trending.svg
new file mode 100644
index 000000000..52026a4df
--- /dev/null
+++ b/client/src/assets/images/feather/trending.svg
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-trending-up"><polyline points="23 6 13.5 15.5 8.5 10.5 1 18"></polyline><polyline points="17 6 23 6 23 12"></polyline></svg> \ No newline at end of file
diff --git a/client/src/assets/images/feather/tv.svg b/client/src/assets/images/feather/tv.svg
new file mode 100644
index 000000000..955bbfff0
--- /dev/null
+++ b/client/src/assets/images/feather/tv.svg
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-tv"><rect x="2" y="7" width="20" height="15" rx="2" ry="2"></rect><polyline points="17 2 12 7 7 2"></polyline></svg> \ No newline at end of file
diff --git a/client/src/assets/images/feather/upload.svg b/client/src/assets/images/feather/upload.svg
new file mode 100644
index 000000000..a1db297c5
--- /dev/null
+++ b/client/src/assets/images/feather/upload.svg
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-upload-cloud"><polyline points="16 16 12 12 8 16"></polyline><line x1="12" y1="12" x2="12" y2="21"></line><path d="M20.39 18.39A5 5 0 0 0 18 9h-1.26A8 8 0 1 0 3 16.3"></path><polyline points="16 16 12 12 8 16"></polyline></svg> \ No newline at end of file
diff --git a/client/src/assets/images/feather/user-plus.svg b/client/src/assets/images/feather/user-plus.svg
new file mode 100644
index 000000000..21460f6ec
--- /dev/null
+++ b/client/src/assets/images/feather/user-plus.svg
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-user-plus"><path d="M16 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2"></path><circle cx="8.5" cy="7" r="4"></circle><line x1="20" y1="8" x2="20" y2="14"></line><line x1="23" y1="11" x2="17" y2="11"></line></svg> \ No newline at end of file
diff --git a/client/src/assets/images/feather/user.svg b/client/src/assets/images/feather/user.svg
new file mode 100644
index 000000000..7bb5f2911
--- /dev/null
+++ b/client/src/assets/images/feather/user.svg
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-user"><path d="M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2"></path><circle cx="12" cy="7" r="4"></circle></svg> \ No newline at end of file
diff --git a/client/src/assets/images/feather/users.svg b/client/src/assets/images/feather/users.svg
new file mode 100644
index 000000000..aacf6b08e
--- /dev/null
+++ b/client/src/assets/images/feather/users.svg
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-users"><path d="M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2"></path><circle cx="9" cy="7" r="4"></circle><path d="M23 21v-2a4 4 0 0 0-3-3.87"></path><path d="M16 3.13a4 4 0 0 1 0 7.75"></path></svg> \ No newline at end of file
diff --git a/client/src/assets/images/feather/x.svg b/client/src/assets/images/feather/x.svg
new file mode 100644
index 000000000..7d5875ca8
--- /dev/null
+++ b/client/src/assets/images/feather/x.svg
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-x"><line x1="18" y1="6" x2="6" y2="18"></line><line x1="6" y1="6" x2="18" y2="18"></line></svg> \ No newline at end of file
diff --git a/client/src/assets/images/global/add.svg b/client/src/assets/images/global/add.svg
deleted file mode 100644
index 4e6955192..000000000
--- a/client/src/assets/images/global/add.svg
+++ /dev/null
@@ -1,8 +0,0 @@
1<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
2 <defs/>
3 <g fill="none" fill-rule="evenodd">
4 <circle cx="12" cy="12" r="10" stroke="#000" stroke-width="2"/>
5 <rect width="2" height="10" x="11" y="7" fill="#000" rx="1"/>
6 <rect width="10" height="2" x="7" y="11" fill="#000" rx="1"/>
7 </g>
8</svg>
diff --git a/client/src/assets/images/global/alert.svg b/client/src/assets/images/global/alert.svg
deleted file mode 100644
index 7571f5e99..000000000
--- a/client/src/assets/images/global/alert.svg
+++ /dev/null
@@ -1,8 +0,0 @@
1<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
2 <defs/>
3 <g fill="none" fill-rule="evenodd">
4 <path stroke="#000" stroke-linejoin="round" stroke-width="2" d="M12.9 3.5L12 2l-.9 1.5-9 16-.8 1.5h21.4l-.8-1.5-9-16z"/>
5 <path fill="#000" d="M12 17.8a1.3 1.3 0 100-2.6 1.3 1.3 0 000 2.6z"/>
6 <rect width="2" height="5" x="11" y="9" fill="#000" rx="1"/>
7 </g>
8</svg>
diff --git a/client/src/assets/images/global/circle-tick.svg b/client/src/assets/images/global/circle-tick.svg
deleted file mode 100644
index 5121a674f..000000000
--- a/client/src/assets/images/global/circle-tick.svg
+++ /dev/null
@@ -1,7 +0,0 @@
1<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
2 <defs/>
3 <g fill="none" fill-rule="evenodd" stroke="#000" stroke-width="2">
4 <circle cx="12" cy="12" r="10"/>
5 <path stroke-linecap="round" stroke-linejoin="round" d="M8.5 12.5l2 2 5-5"/>
6 </g>
7</svg>
diff --git a/client/src/assets/images/global/clock.svg b/client/src/assets/images/global/clock.svg
deleted file mode 100644
index b4cc42751..000000000
--- a/client/src/assets/images/global/clock.svg
+++ /dev/null
@@ -1,8 +0,0 @@
1<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
2 <defs/>
3 <g fill="none" fill-rule="evenodd" stroke="#000" stroke-width="2">
4 <path d="M12 21a9 9 0 110-18 9 9 0 010 18z"/>
5 <path stroke-linecap="round" d="M12 12h4"/>
6 <path stroke-linecap="round" stroke-linejoin="round" d="M12 12V7"/>
7 </g>
8</svg>
diff --git a/client/src/assets/images/global/cloud-error.svg b/client/src/assets/images/global/cloud-error.svg
deleted file mode 100644
index cddbf192e..000000000
--- a/client/src/assets/images/global/cloud-error.svg
+++ /dev/null
@@ -1,6 +0,0 @@
1<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
2 <defs/>
3 <g fill="none" fill-rule="evenodd" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="2">
4 <path d="M7 18H5a4 4 0 111-7.9v-.6a5.5 5.5 0 0110.8-1.4A5 5 0 0123 13a5 5 0 01-5 5h-1M9 21l6-6M15 21l-6-6"/>
5 </g>
6</svg>
diff --git a/client/src/assets/images/global/cog.svg b/client/src/assets/images/global/cog.svg
deleted file mode 100644
index 36d9bab38..000000000
--- a/client/src/assets/images/global/cog.svg
+++ /dev/null
@@ -1,4 +0,0 @@
1<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
2 <defs/>
3 <path fill="none" fill-rule="evenodd" stroke="#000" stroke-linejoin="round" stroke-width="2" d="M7.2 4.4A9 9 0 0110 3.2V2c0-.6.4-1 1-1h2c.5 0 1 .4 1 1v1.2c1 .3 2 .6 2.8 1.2l.9-.9a1 1 0 011.4 0L20.5 5c.4.4.4 1 0 1.4l-.9 1a9 9 0 011.2 2.7H22c.6 0 1 .4 1 1v2c0 .5-.4 1-1 1h-1.2a9 9 0 01-1.2 2.8l.9.9c.4.3.4 1 0 1.4L19 20.5a1 1 0 01-1.4 0l-1-.9a9 9 0 01-2.7 1.2V22c0 .6-.4 1-1 1h-2a1 1 0 01-1-1v-1.2a9 9 0 01-2.8-1.2l-.9.9a1 1 0 01-1.4 0L3.5 19a1 1 0 010-1.4l.9-1A9 9 0 013.2 14H2a1 1 0 01-1-1v-2c0-.5.4-1 1-1h1.2c.3-1 .6-2 1.2-2.8l-.9-.9a1 1 0 010-1.4L5 3.5a1 1 0 011.4 0l1 .9zM12 16a4 4 0 100-8 4 4 0 000 8z"/>
4</svg>
diff --git a/client/src/assets/images/global/cross.svg b/client/src/assets/images/global/cross.svg
deleted file mode 100644
index 3b8b2d30d..000000000
--- a/client/src/assets/images/global/cross.svg
+++ /dev/null
@@ -1,6 +0,0 @@
1<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
2 <defs/>
3 <g fill="none" fill-rule="evenodd" stroke="#000" stroke-linecap="round" stroke-width="2">
4 <path d="M19 5L5 19M5 5l14 14"/>
5 </g>
6</svg>
diff --git a/client/src/assets/images/global/delete.svg b/client/src/assets/images/global/delete.svg
deleted file mode 100644
index 522934703..000000000
--- a/client/src/assets/images/global/delete.svg
+++ /dev/null
@@ -1,9 +0,0 @@
1<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
2 <defs/>
3 <g fill="none" fill-rule="evenodd">
4 <path stroke="#000" stroke-width="2" d="M5 7v13c0 1.1.9 2 2 2h10a2 2 0 002-2V7"/>
5 <rect width="20" height="2" x="2" y="4" fill="#000" rx="1"/>
6 <path fill="#000" d="M9 11c0-.6.4-1 1-1s1 .5 1 1v6c0 .6-.4 1-1 1a1 1 0 01-1-1v-6zm4 0c0-.6.4-1 1-1s1 .5 1 1v6c0 .6-.4 1-1 1a1 1 0 01-1-1v-6z"/>
7 <path stroke="#000" stroke-linejoin="round" stroke-width="2" d="M9 5V3c0-.6.5-1 1-1h4c.6 0 1 .4 1 1v2"/>
8 </g>
9</svg>
diff --git a/client/src/assets/images/global/download.svg b/client/src/assets/images/global/download.svg
deleted file mode 100644
index 5cecec139..000000000
--- a/client/src/assets/images/global/download.svg
+++ /dev/null
@@ -1,7 +0,0 @@
1<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
2 <defs/>
3 <g fill="none" fill-rule="evenodd" stroke="#000" stroke-linecap="round" stroke-width="2">
4 <path d="M12 3v12"/>
5 <path stroke-linejoin="round" d="M18 11l-6 6-6-6M3 18v2c0 .6.4 1 1 1h16c.6 0 1-.4 1-1v-2"/>
6 </g>
7</svg>
diff --git a/client/src/assets/images/global/edit.svg b/client/src/assets/images/global/edit.svg
deleted file mode 100644
index 39cedd063..000000000
--- a/client/src/assets/images/global/edit.svg
+++ /dev/null
@@ -1,7 +0,0 @@
1<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
2 <defs/>
3 <g fill="none" fill-rule="evenodd" stroke="#000" stroke-width="2">
4 <path stroke-linecap="round" stroke-linejoin="round" d="M3 21v-4L15.9 4.1a3 3 0 014.2 0L20 4a3 3 0 010 4.2L7 21H3z"/>
5 <path d="M14.5 5.5l4 4"/>
6 </g>
7</svg>
diff --git a/client/src/assets/images/global/exit-fullscreen.svg b/client/src/assets/images/global/exit-fullscreen.svg
deleted file mode 100644
index 10cb4cc62..000000000
--- a/client/src/assets/images/global/exit-fullscreen.svg
+++ /dev/null
@@ -1,7 +0,0 @@
1<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
2 <defs/>
3 <g fill="none" fill-rule="evenodd" stroke="#333" stroke-linejoin="round" stroke-width="2">
4 <path d="M6 8h12v8H6z"/>
5 <path stroke-linecap="round" d="M20 4v3h3M1 17h3v3M20 20v-3h3M1 7h3V4"/>
6 </g>
7</svg>
diff --git a/client/src/assets/images/global/folder.svg b/client/src/assets/images/global/folder.svg
deleted file mode 100644
index 4bd701c05..000000000
--- a/client/src/assets/images/global/folder.svg
+++ /dev/null
@@ -1,7 +0,0 @@
1<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
2 <defs/>
3 <g fill="none" fill-rule="evenodd">
4 <path stroke="#000" stroke-linejoin="round" stroke-width="2" d="M11.6 8l2.7-2.7.3-.3H20a2 2 0 012 2v11a2 2 0 01-2 2H4a2 2 0 01-2-2v-8c0-1.1.9-2 2-2h7.6z"/>
5 <path fill="#000" d="M3 5c0-.6.4-1 1-1h8.5l-2 2H4a1 1 0 01-1-1z"/>
6 </g>
7</svg>
diff --git a/client/src/assets/images/global/forward.svg b/client/src/assets/images/global/forward.svg
deleted file mode 100644
index 2b3b9d9a1..000000000
--- a/client/src/assets/images/global/forward.svg
+++ /dev/null
@@ -1,4 +0,0 @@
1<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
2 <defs/>
3 <path fill="#000000" fill-rule="nonzero" d="M15 7v4H8l-4 1 4 1h7v4l5-5-5-5zm-7 8a2 2 0 01-.5 0l-4-1c-2-.5-2-3.4 0-4l4-1H13V7a2 2 0 013.4-1.4l5 5c.8.8.8 2 0 2.8l-5 5A2 2 0 0113 17v-2H8z"/>
4</svg>
diff --git a/client/src/assets/images/global/fullscreen.svg b/client/src/assets/images/global/fullscreen.svg
deleted file mode 100644
index 823b53dc6..000000000
--- a/client/src/assets/images/global/fullscreen.svg
+++ /dev/null
@@ -1,7 +0,0 @@
1<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
2 <defs/>
3 <g fill="none" fill-rule="evenodd" stroke="#333" stroke-width="2">
4 <rect width="22" height="16" x="1" y="4" rx="1"/>
5 <path stroke-linecap="round" stroke-linejoin="round" d="M20 10V7h-3M7 17H4v-3M20 14v3h-3M7 7H4v3"/>
6 </g>
7</svg>
diff --git a/client/src/assets/images/global/help.svg b/client/src/assets/images/global/help.svg
deleted file mode 100644
index f89cd5908..000000000
--- a/client/src/assets/images/global/help.svg
+++ /dev/null
@@ -1,7 +0,0 @@
1<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
2 <defs/>
3 <g fill="none" fill-rule="evenodd">
4 <circle cx="12" cy="12" r="10" stroke="#000" stroke-width="2"/>
5 <path fill="#000" d="M12 14.5c.4 0 .6-.2.7-.6v-.7c1.8-.3 3.3-1.2 3.3-3.3 0-2-1.5-3.2-3.8-3.2-1.4 0-2.5.5-3.4 1.3-.2.2-.3.4-.3.7a.9.9 0 001.5.6c.7-.5 1.3-.9 2.2-.9 1.1 0 1.8.7 1.8 1.6 0 1-.8 1.6-2.3 1.7-.4 0-.7.4-.6.8l.1 1.4c0 .4.4.6.7.6h.1zm-1.2 2.3v.2a1 1 0 001.1 1 1 1 0 001.2-1v-.2a1 1 0 00-1.2-1 1 1 0 00-1.1 1z"/>
6 </g>
7</svg>
diff --git a/client/src/assets/images/global/history.svg b/client/src/assets/images/global/history.svg
deleted file mode 100644
index e2a9ba4b2..000000000
--- a/client/src/assets/images/global/history.svg
+++ /dev/null
@@ -1,8 +0,0 @@
1<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
2 <defs/>
3 <g fill="none" fill-rule="evenodd" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="2">
4 <path d="M6.6 18.4A9 9 0 0013 21h0a9 9 0 10-9-9"/>
5 <path fill="#000" d="M1.5 11h6l-3 3z"/>
6 <path d="M13 7v5l2.5 2.5"/>
7 </g>
8</svg>
diff --git a/client/src/assets/images/global/inbox-full.svg b/client/src/assets/images/global/inbox-full.svg
deleted file mode 100644
index f9c67bdf0..000000000
--- a/client/src/assets/images/global/inbox-full.svg
+++ /dev/null
@@ -1,8 +0,0 @@
1<svg xmlns="http://www.w3.org/2000/svg" height="24px" width="24px" viewBox="0 0 24 24">
2 <defs/>
3 <g fill="none" fill-rule="evenodd">
4 <path stroke="#333" stroke-linejoin="round" stroke-width="2" d="M7.4 14H2v6c0 1.1.9 2 2 2h16a2 2 0 002-2v-6H15.9l-.2.6a4 4 0 01-7.4 0l-.2-.6h-.7z"/>
5 <path stroke="#333" stroke-linejoin="round" stroke-width="2" d="M2 15.5V13l3.6-9c.2-.6.8-1 1.4-1h10c.6 0 1.2.4 1.4 1l3.7 9-.1 2"/>
6 <path fill="#333" d="M6 9h12v1H6V9zm-1 2h14v1H5v-1zm2-4h10v1H7V7zm1-2h8v1H8V5z"/>
7 </g>
8</svg>
diff --git a/client/src/assets/images/global/more-horizontal.svg b/client/src/assets/images/global/more-horizontal.svg
deleted file mode 100644
index 5bb0cfc8b..000000000
--- a/client/src/assets/images/global/more-horizontal.svg
+++ /dev/null
@@ -1,4 +0,0 @@
1<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
2 <defs/>
3 <path fill="#000" fill-rule="evenodd" d="M10 12a2 2 0 114 0 2 2 0 11-4 0zm7 0a2 2 0 114 0 2 2 0 11-4 0zM3 12a2 2 0 114 0 2 2 0 11-4 0z"/>
4</svg>
diff --git a/client/src/assets/images/global/more-vertical.svg b/client/src/assets/images/global/more-vertical.svg
deleted file mode 100644
index 42f868af2..000000000
--- a/client/src/assets/images/global/more-vertical.svg
+++ /dev/null
@@ -1,4 +0,0 @@
1<svg xmlns="http://www.w3.org/2000/svg" width="24px" height="24px" viewBox="0 0 24 24">
2 <defs/>
3 <path fill="#000" fill-rule="evenodd" d="M10 12a2 2 0 114 0 2 2 0 11-4 0zm0-7a2 2 0 114 0 2 2 0 11-4 0zm0 14a2 2 0 114 0 2 2 0 11-4 0z"/>
4</svg>
diff --git a/client/src/assets/images/global/no.svg b/client/src/assets/images/global/no.svg
deleted file mode 100644
index f8e409646..000000000
--- a/client/src/assets/images/global/no.svg
+++ /dev/null
@@ -1,7 +0,0 @@
1<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
2 <defs/>
3 <g fill="none" fill-rule="evenodd" stroke="#000" stroke-width="2">
4 <circle cx="12" cy="12" r="9"/>
5 <path d="M18 18L6 6"/>
6 </g>
7</svg>
diff --git a/client/src/assets/images/global/play.svg b/client/src/assets/images/global/play.svg
deleted file mode 100644
index 37f0f0834..000000000
--- a/client/src/assets/images/global/play.svg
+++ /dev/null
@@ -1,4 +0,0 @@
1<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
2 <defs/>
3 <path fill="#000" fill-rule="evenodd" stroke="#000" stroke-linejoin="round" stroke-width="2" d="M5 21V3l16 9z"/>
4</svg>
diff --git a/client/src/assets/images/global/playlists.svg b/client/src/assets/images/global/playlists.svg
deleted file mode 100644
index 22d377cf8..000000000
--- a/client/src/assets/images/global/playlists.svg
+++ /dev/null
@@ -1,4 +0,0 @@
1<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
2 <defs/>
3 <path fill="none" fill-rule="evenodd" stroke="#000" d="M7.5 7c0-.3.2-.5.5-.5h12c.3 0 .5.2.5.5s-.2.5-.5.5H8a.5.5 0 01-.5-.5zm0 5c0-.3.2-.5.5-.5h12c.3 0 .5.2.5.5s-.2.5-.5.5H8a.5.5 0 01-.5-.5zm0 5c0-.3.2-.5.5-.5h12c.3 0 .5.2.5.5s-.2.5-.5.5H8a.5.5 0 01-.5-.5zM4 7.5a.5.5 0 110-1 .5.5 0 010 1zm0 5a.5.5 0 110-1 .5.5 0 010 1zm0 5a.5.5 0 110-1 .5.5 0 010 1z"/>
4</svg>
diff --git a/client/src/assets/images/global/refresh.svg b/client/src/assets/images/global/refresh.svg
deleted file mode 100644
index e85a495e3..000000000
--- a/client/src/assets/images/global/refresh.svg
+++ /dev/null
@@ -1,4 +0,0 @@
1<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
2 <defs/>
3 <path fill="#000" fill-rule="evenodd" d="M21 13a9 9 0 11-9-9v2a7 7 0 107 7 1 1 0 112 0zm-9-4V1l4 4-4 4z"/>
4</svg>
diff --git a/client/src/assets/images/global/repeat.svg b/client/src/assets/images/global/repeat.svg
deleted file mode 100644
index 2b886a914..000000000
--- a/client/src/assets/images/global/repeat.svg
+++ /dev/null
@@ -1,7 +0,0 @@
1<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
2 <defs/>
3 <g fill="none" fill-rule="evenodd">
4 <path fill="#333" fill-rule="nonzero" d="M16.6 9.8A1 1 0 0115 9V5a1 1 0 011.6-.8l3 2a1 1 0 010 1.6l-3 2zM7.4 19.8l-3-2a1 1 0 010-1.6l3-2A1 1 0 019 15v4a1 1 0 01-1.6.8z"/>
5 <path stroke="#333" stroke-linecap="round" stroke-width="2" d="M3 12a5 5 0 015-5h10m3 5a5 5 0 01-5 5H7"/>
6 </g>
7</svg>
diff --git a/client/src/assets/images/global/robot.svg b/client/src/assets/images/global/robot.svg
deleted file mode 100644
index 46db9baef..000000000
--- a/client/src/assets/images/global/robot.svg
+++ /dev/null
@@ -1,11 +0,0 @@
1<svg xmlns="http://www.w3.org/2000/svg" height="24px" width="24px" viewBox="0 0 24 24">
2 <defs/>
3 <g fill="none" fill-rule="evenodd">
4 <rect width="22" height="14" x="1" y="7" stroke="#000" stroke-width="2" rx="2"/>
5 <path fill="#000" d="M11 3h2v4h-2z"/>
6 <circle cx="12" cy="2" r="2" fill="#000"/>
7 <circle cx="18" cy="12" r="2" fill="#000"/>
8 <circle cx="6" cy="12" r="2" fill="#000"/>
9 <path stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M10 15c0 1.1.9 2 2 2h0a2 2 0 002-2"/>
10 </g>
11</svg>
diff --git a/client/src/assets/images/global/search.svg b/client/src/assets/images/global/search.svg
deleted file mode 100644
index 1583c437b..000000000
--- a/client/src/assets/images/global/search.svg
+++ /dev/null
@@ -1,7 +0,0 @@
1<svg xmlns="http://www.w3.org/2000/svg" height="24px" width="24px" viewBox="0 0 24 24">
2 <defs/>
3 <g fill="none" fill-rule="evenodd" stroke="#000" stroke-width="2">
4 <circle cx="10" cy="10" r="7"/>
5 <path stroke-linecap="round" stroke-linejoin="round" d="M15 15l6 6"/>
6 </g>
7</svg>
diff --git a/client/src/assets/images/global/server.svg b/client/src/assets/images/global/server.svg
deleted file mode 100644
index f0deabf07..000000000
--- a/client/src/assets/images/global/server.svg
+++ /dev/null
@@ -1,11 +0,0 @@
1<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
2 <defs/>
3 <g fill="none" fill-rule="evenodd">
4 <ellipse cx="12" cy="6" stroke="#000" stroke-width="2" rx="9" ry="3"/>
5 <path stroke="#000" d="M3 10.5c0 1.7 4 3 9 3h0c5 0 9-1.3 9-3M3 14.5c0 1.7 4 3 9 3s9-1.3 9-3"/>
6 <path stroke="#000" stroke-width="2" d="M3 6v13c0 1.7 4 3 9 3s9-1.3 9-3V6"/>
7 <circle cx="18.5" cy="10.5" r="1" fill="#000"/>
8 <circle cx="18.5" cy="14.5" r="1" fill="#000"/>
9 <circle cx="18.5" cy="18.5" r="1" fill="#000"/>
10 </g>
11</svg>
diff --git a/client/src/assets/images/global/sign-out.svg b/client/src/assets/images/global/sign-out.svg
deleted file mode 100644
index 551c10df9..000000000
--- a/client/src/assets/images/global/sign-out.svg
+++ /dev/null
@@ -1,4 +0,0 @@
1<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1536 1536">
2 <defs/>
3 <path d="M640 1440c0 28 13 96-32 96H288A288 288 0 010 1248V544c0-159 129-288 288-288h320c17 0 32 15 32 32 0 28 13 96-32 96H288c-88 0-160 72-160 160v704c0 88 72 160 160 160h288c25 0 64-5 64 32zm928-544c0 17-7 33-19 45l-544 544c-12 12-28 19-45 19-35 0-64-29-64-64v-288H448c-35 0-64-29-64-64V704c0-35 29-64 64-64h448V352c0-35 29-64 64-64 17 0 33 7 45 19l544 544c12 12 19 28 19 45z"/>
4</svg>
diff --git a/client/src/assets/images/global/sparkle.svg b/client/src/assets/images/global/sparkle.svg
deleted file mode 100644
index c313e0b07..000000000
--- a/client/src/assets/images/global/sparkle.svg
+++ /dev/null
@@ -1,6 +0,0 @@
1<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
2 <defs/>
3 <g fill="none" fill-rule="evenodd" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="2">
4 <path d="M10 9C8.5 7.5 8 3 8 3s-.5 4.5-2 6-4 2-4 2 2.5.5 4 2 2 6 2 6 .5-4.5 2-6 4-2 4-2-2.5-.5-4-2zM19.7 4.8c-1-1-1.2-3.8-1.2-3.8s-.3 2.8-1.2 3.8C16.5 5.7 15 6 15 6s1.5.3 2.3 1.3c1 .9 1.2 3.7 1.2 3.7s.3-2.8 1.2-3.8C20.5 6.3 22 6 22 6s-1.5-.3-2.3-1.3zM17 17c-.8-.8-1-3-1-3s-.3 2.3-1 3c-.8.8-2 1-2 1s1.3.3 2 1c.8.8 1 3 1 3s.3-2.3 1-3c.8-.8 2-1 2-1s-1.3-.3-2-1z"/>
5 </g>
6</svg>
diff --git a/client/src/assets/images/global/syndication.svg b/client/src/assets/images/global/syndication.svg
deleted file mode 100644
index a2ce11f64..000000000
--- a/client/src/assets/images/global/syndication.svg
+++ /dev/null
@@ -1,4 +0,0 @@
1<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 559 559">
2 <defs/>
3 <path d="M53 0a497 497 0 01358 148 508 508 0 01148 358c0 15-5 27-15 38a51 51 0 01-38 15c-15 0-27-5-38-15a51 51 0 01-15-38 390 390 0 00-117-282A400 400 0 0053 106 52 52 0 010 53c0-14 5-27 16-37C26 5 39 0 53 0zm0 201c42 0 82 8 119 25s69 37 96 65a312 312 0 0190 215c0 15-5 27-16 38a51 51 0 01-37 15c-15 0-27-5-38-15a51 51 0 01-15-38 192 192 0 00-59-140 201 201 0 00-140-58c-14 0-27-5-37-16-11-10-16-23-16-37s5-28 16-38c10-10 23-16 37-16zm98 280a73 73 0 01-45 69c-10 4-19 6-30 6a73 73 0 01-68-46 74 74 0 0139-98 74 74 0 01104 69z"/>
4</svg>
diff --git a/client/src/assets/images/global/tick.svg b/client/src/assets/images/global/tick.svg
deleted file mode 100644
index f34040bab..000000000
--- a/client/src/assets/images/global/tick.svg
+++ /dev/null
@@ -1,6 +0,0 @@
1<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
2 <defs/>
3 <g fill="none" fill-rule="evenodd" stroke="#000" stroke-linecap="round" stroke-width="2">
4 <path d="M21 6L9 18M4 13l5 5"/>
5 </g>
6</svg>
diff --git a/client/src/assets/images/global/undo.svg b/client/src/assets/images/global/undo.svg
deleted file mode 100644
index dd7e8face..000000000
--- a/client/src/assets/images/global/undo.svg
+++ /dev/null
@@ -1,4 +0,0 @@
1<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
2 <defs/>
3 <path fill="#000" fill-rule="evenodd" d="M13 19a1 1 0 100 2 9 9 0 10-9-9h2a7 7 0 117 7zm-4-7H1l4 4 4-4z"/>
4</svg>
diff --git a/client/src/assets/images/global/user-add.svg b/client/src/assets/images/global/user-add.svg
deleted file mode 100644
index b52f5fe26..000000000
--- a/client/src/assets/images/global/user-add.svg
+++ /dev/null
@@ -1,8 +0,0 @@
1<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
2 <defs/>
3 <g fill="none" fill-rule="evenodd">
4 <path fill="#000" fill-rule="nonzero" d="M14.3 15H7c-2.8 0-4.6 1.2-5.5 3a6.2 6.2 0 00-.5 3.1 1 1 0 102-.2c0-.6 0-1.3.3-2C4 17.7 5 17 7 17h6.2c.2-.7.6-1.4 1-2z"/>
5 <path fill="#000" d="M19 18v-1.5c0-.3-.2-.5-.5-.5s-.5.2-.5.5V18h-1.5c-.3 0-.5.2-.5.5s.2.5.5.5H18v1.5c0 .3.2.5.5.5s.5-.2.5-.5V19h1.5c.3 0 .5-.2.5-.5s-.2-.5-.5-.5H19zm-.5 5a4.5 4.5 0 110-9 4.5 4.5 0 010 9z"/>
6 <circle cx="12" cy="8" r="5" stroke="#000" stroke-width="2"/>
7 </g>
8</svg>
diff --git a/client/src/assets/images/global/user.svg b/client/src/assets/images/global/user.svg
deleted file mode 100644
index cb37e6060..000000000
--- a/client/src/assets/images/global/user.svg
+++ /dev/null
@@ -1,7 +0,0 @@
1<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
2 <defs/>
3 <g fill="none" fill-rule="evenodd" stroke="#000" stroke-width="2">
4 <path stroke-linecap="round" stroke-linejoin="round" d="M2 21s0-5 5-5h10c6 0 5 5 5 5"/>
5 <circle cx="12" cy="8" r="5"/>
6 </g>
7</svg>
diff --git a/client/src/assets/images/global/users.svg b/client/src/assets/images/global/users.svg
deleted file mode 100644
index 58c1640c1..000000000
--- a/client/src/assets/images/global/users.svg
+++ /dev/null
@@ -1,8 +0,0 @@
1<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
2 <defs/>
3 <g fill="none" fill-rule="evenodd">
4 <path stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M7 21s0-4 4-4h8c4 0 4 4 4 4"/>
5 <path fill="#000" fill-rule="nonzero" d="M8.3 12a5 5 0 114.2-8.5 7 7 0 00-1.8 1A3 3 0 108 9.8a7.1 7.1 0 00.3 2.1zm.4 1H5c-2.1 0-3.6 1-4.4 2.6-.5.9-.6 1.8-.6 2.4a1 1 0 002 0v-.5l.4-1c.5-1 1.2-1.5 2.6-1.5h5.1a7 7 0 01-1.4-2z"/>
6 <circle cx="15" cy="10" r="4" stroke="#000" stroke-width="2"/>
7 </g>
8</svg>
diff --git a/client/src/assets/images/global/validate.svg b/client/src/assets/images/global/validate.svg
deleted file mode 100644
index 5121a674f..000000000
--- a/client/src/assets/images/global/validate.svg
+++ /dev/null
@@ -1,7 +0,0 @@
1<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
2 <defs/>
3 <g fill="none" fill-rule="evenodd" stroke="#000" stroke-width="2">
4 <circle cx="12" cy="12" r="10"/>
5 <path stroke-linecap="round" stroke-linejoin="round" d="M8.5 12.5l2 2 5-5"/>
6 </g>
7</svg>
diff --git a/client/src/assets/images/global/videos.svg b/client/src/assets/images/global/videos.svg
deleted file mode 100644
index 29ec768a0..000000000
--- a/client/src/assets/images/global/videos.svg
+++ /dev/null
@@ -1,9 +0,0 @@
1<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
2 <defs/>
3 <g fill="none" fill-rule="evenodd">
4 <rect width="18" height="16" x="3" y="6" stroke="#000" stroke-width="2" rx="1"/>
5 <path fill="#000" d="M10 17.5v-7.1l5.5 3.5z"/>
6 <rect width="16" height="1" x="4" y="3" fill="#000" rx=".5"/>
7 <rect width="14" height="1" x="5" y="1" fill="#000" rx=".5"/>
8 </g>
9</svg>
diff --git a/client/src/assets/images/header/search.svg b/client/src/assets/images/header/search.svg
deleted file mode 100644
index 55c851014..000000000
--- a/client/src/assets/images/header/search.svg
+++ /dev/null
@@ -1,7 +0,0 @@
1<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
2 <defs/>
3 <g fill="none" fill-rule="evenodd" stroke="#000" stroke-width="2">
4 <circle cx="10" cy="10" r="7"/>
5 <path stroke-linecap="round" stroke-linejoin="round" d="M15 15l6 6"/>
6 </g>
7</svg>
diff --git a/client/src/assets/images/menu/eye-closed.svg b/client/src/assets/images/menu/eye-closed.svg
deleted file mode 100644
index 1ec9b3090..000000000
--- a/client/src/assets/images/menu/eye-closed.svg
+++ /dev/null
@@ -1,7 +0,0 @@
1<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
2 <defs/>
3 <g fill="none" fill-rule="evenodd" stroke="#000" stroke-linecap="round" stroke-width="2">
4 <path stroke-linejoin="round" d="M2 10s3 7 10 7 10-7 10-7"/>
5 <path d="M12 17v2M18 15.5l1 1.5M21 12l1.5 1M1.5 13L3 12M6 15.5L5 17"/>
6 </g>
7</svg>
diff --git a/client/src/assets/images/menu/eye.svg b/client/src/assets/images/menu/eye.svg
deleted file mode 100644
index 4bacaffd7..000000000
--- a/client/src/assets/images/menu/eye.svg
+++ /dev/null
@@ -1,8 +0,0 @@
1<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
2 <defs/>
3 <g fill="none" fill-rule="evenodd" stroke="#000" stroke-width="2">
4 <path stroke-linejoin="round" d="M2 12s3-7 10-7 10 7 10 7-3 7-10 7-10-7-10-7z"/>
5 <circle cx="12" cy="12" r="3"/>
6 <path stroke-linecap="round" d="M12 5V3M18 6.5L19 5M21 10l1.5-1M1.5 9L3 10M6 6.5L5 5"/>
7 </g>
8</svg>
diff --git a/client/src/assets/images/menu/globe.svg b/client/src/assets/images/menu/globe.svg
deleted file mode 100644
index d62ab0439..000000000
--- a/client/src/assets/images/menu/globe.svg
+++ /dev/null
@@ -1,7 +0,0 @@
1<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
2 <defs/>
3 <g fill="none" fill-rule="evenodd" stroke="#000" stroke-width="2">
4 <circle cx="12" cy="12" r="10"/>
5 <path d="M12 2v20M12 2s5 2 5 10-5 10-5 10M12 2S7 4 7 12s5 10 5 10M2 12h20"/>
6 </g>
7</svg>
diff --git a/client/src/assets/images/menu/go.svg b/client/src/assets/images/menu/go.svg
deleted file mode 100644
index 1ae945b61..000000000
--- a/client/src/assets/images/menu/go.svg
+++ /dev/null
@@ -1,7 +0,0 @@
1<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
2 <defs/>
3 <g fill="none" fill-rule="evenodd" stroke="#000" stroke-linecap="round" stroke-width="2">
4 <path d="M18 6L5 19"/>
5 <path stroke-linejoin="round" d="M19 17V5H7"/>
6 </g>
7</svg>
diff --git a/client/src/assets/images/menu/home.svg b/client/src/assets/images/menu/home.svg
deleted file mode 100644
index 4e5a5caf9..000000000
--- a/client/src/assets/images/menu/home.svg
+++ /dev/null
@@ -1,7 +0,0 @@
1<svg xmlns="http://www.w3.org/2000/svg" height="24px" width="24px" viewBox="0 0 24 24">
2 <defs/>
3 <g fill="none" fill-rule="evenodd" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="2">
4 <path d="M1 11l11-9 11 9"/>
5 <path d="M3 10v10c0 .6.4 1 1 1h5c.6 0 1-.4 1-1v-5c0-.6.4-1 1-1h2c.5 0 1 .4 1 1v5c0 .6.4 1 1 1h5c.6 0 1-.4 1-1V10"/>
6 </g>
7</svg>
diff --git a/client/src/assets/images/menu/p2p.svg b/client/src/assets/images/menu/p2p.svg
deleted file mode 100644
index b570b8500..000000000
--- a/client/src/assets/images/menu/p2p.svg
+++ /dev/null
@@ -1,7 +0,0 @@
1<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
2 <defs/>
3 <g fill="#000" fill-rule="evenodd">
4 <path fill-rule="nonzero" d="M19.2 18a3 3 0 002.8-3V7a3 3 0 00-3-3H5a3 3 0 00-3 3v8a3 3 0 002.8 3l1.7-2H5a1 1 0 01-1-1V7c0-.6.4-1 1-1h14c.6 0 1 .5 1 1v8c0 .6-.4 1-1 1h-1.5l1.7 2z"/>
5 <path stroke="#000" stroke-linejoin="round" stroke-width="2" d="M12 14l5 6H7z"/>
6 </g>
7</svg>
diff --git a/client/src/assets/images/menu/recently-added.svg b/client/src/assets/images/menu/recently-added.svg
deleted file mode 100644
index 4e6955192..000000000
--- a/client/src/assets/images/menu/recently-added.svg
+++ /dev/null
@@ -1,8 +0,0 @@
1<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
2 <defs/>
3 <g fill="none" fill-rule="evenodd">
4 <circle cx="12" cy="12" r="10" stroke="#000" stroke-width="2"/>
5 <rect width="2" height="10" x="11" y="7" fill="#000" rx="1"/>
6 <rect width="10" height="2" x="7" y="11" fill="#000" rx="1"/>
7 </g>
8</svg>
diff --git a/client/src/assets/images/menu/trending.svg b/client/src/assets/images/menu/trending.svg
deleted file mode 100644
index 8f821f3d7..000000000
--- a/client/src/assets/images/menu/trending.svg
+++ /dev/null
@@ -1,8 +0,0 @@
1<svg xmlns="http://www.w3.org/2000/svg" height="24px" width="24px" viewBox="0 0 24 24">
2 <defs/>
3 <g fill="none" fill-rule="evenodd" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="2">
4 <path d="M3 3v18h18"/>
5 <path d="M6 18l5-6 3 1 5-6"/>
6 <path d="M20 9V6h-3z"/>
7 </g>
8</svg>
diff --git a/client/src/assets/images/misc/history.svg b/client/src/assets/images/misc/history.svg
new file mode 100644
index 000000000..0386fae1c
--- /dev/null
+++ b/client/src/assets/images/misc/history.svg
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" class="material" width="24px" height="24px"><path d="M0 0h24v24H0z" fill="none"/><path d="M13 3c-4.97 0-9 4.03-9 9H1l3.89 3.89.07.14L9 12H6c0-3.87 3.13-7 7-7s7 3.13 7 7-3.13 7-7 7c-1.93 0-3.68-.79-4.94-2.06l-1.42 1.42C8.27 19.99 10.51 21 13 21c4.97 0 9-4.03 9-9s-4.03-9-9-9zm-1 5v5l4.28 2.54.72-1.21-3.5-2.08V8H12z"/></svg> \ No newline at end of file
diff --git a/client/src/assets/images/menu/keyboard.png b/client/src/assets/images/misc/keyboard.png
index ef9de868c..ef9de868c 100644
--- a/client/src/assets/images/menu/keyboard.png
+++ b/client/src/assets/images/misc/keyboard.png
Binary files differ
diff --git a/client/src/assets/images/menu/language.svg b/client/src/assets/images/misc/language.svg
index 8fd1d0ba8..8fd1d0ba8 100644
--- a/client/src/assets/images/menu/language.svg
+++ b/client/src/assets/images/misc/language.svg
diff --git a/client/src/assets/images/header/menu.svg b/client/src/assets/images/misc/menu.svg
index b8bb1b128..b8bb1b128 100644
--- a/client/src/assets/images/header/menu.svg
+++ b/client/src/assets/images/misc/menu.svg
diff --git a/client/src/assets/images/misc/miscellaneous_services.svg b/client/src/assets/images/misc/miscellaneous_services.svg
new file mode 100644
index 000000000..0b7487026
--- /dev/null
+++ b/client/src/assets/images/misc/miscellaneous_services.svg
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" enable-background="new 0 0 24 24" viewBox="0 0 24 24" fill="currentColor" class="material" width="24px" height="24px"><g><rect fill="none" height="24" width="24"/></g><g><g><path d="M14.17,13.71l1.4-2.42c0.09-0.15,0.05-0.34-0.08-0.45l-1.48-1.16c0.03-0.22,0.05-0.45,0.05-0.68s-0.02-0.46-0.05-0.69 l1.48-1.16c0.13-0.11,0.17-0.3,0.08-0.45l-1.4-2.42c-0.09-0.15-0.27-0.21-0.43-0.15L12,4.83c-0.36-0.28-0.75-0.51-1.18-0.69 l-0.26-1.85C10.53,2.13,10.38,2,10.21,2h-2.8C7.24,2,7.09,2.13,7.06,2.3L6.8,4.15C6.38,4.33,5.98,4.56,5.62,4.84l-1.74-0.7 c-0.16-0.06-0.34,0-0.43,0.15l-1.4,2.42C1.96,6.86,2,7.05,2.13,7.16l1.48,1.16C3.58,8.54,3.56,8.77,3.56,9s0.02,0.46,0.05,0.69 l-1.48,1.16C2,10.96,1.96,11.15,2.05,11.3l1.4,2.42c0.09,0.15,0.27,0.21,0.43,0.15l1.74-0.7c0.36,0.28,0.75,0.51,1.18,0.69 l0.26,1.85C7.09,15.87,7.24,16,7.41,16h2.8c0.17,0,0.32-0.13,0.35-0.3l0.26-1.85c0.42-0.18,0.82-0.41,1.18-0.69l1.74,0.7 C13.9,13.92,14.08,13.86,14.17,13.71z M8.81,11c-1.1,0-2-0.9-2-2c0-1.1,0.9-2,2-2s2,0.9,2,2C10.81,10.1,9.91,11,8.81,11z"/><path d="M21.92,18.67l-0.96-0.74c0.02-0.14,0.04-0.29,0.04-0.44c0-0.15-0.01-0.3-0.04-0.44l0.95-0.74 c0.08-0.07,0.11-0.19,0.05-0.29l-0.9-1.55c-0.05-0.1-0.17-0.13-0.28-0.1l-1.11,0.45c-0.23-0.18-0.48-0.33-0.76-0.44l-0.17-1.18 C18.73,13.08,18.63,13,18.53,13h-1.79c-0.11,0-0.21,0.08-0.22,0.19l-0.17,1.18c-0.27,0.12-0.53,0.26-0.76,0.44l-1.11-0.45 c-0.1-0.04-0.22,0-0.28,0.1l-0.9,1.55c-0.05,0.1-0.04,0.22,0.05,0.29l0.95,0.74c-0.02,0.14-0.03,0.29-0.03,0.44 c0,0.15,0.01,0.3,0.03,0.44l-0.95,0.74c-0.08,0.07-0.11,0.19-0.05,0.29l0.9,1.55c0.05,0.1,0.17,0.13,0.28,0.1l1.11-0.45 c0.23,0.18,0.48,0.33,0.76,0.44l0.17,1.18c0.02,0.11,0.11,0.19,0.22,0.19h1.79c0.11,0,0.21-0.08,0.22-0.19l0.17-1.18 c0.27-0.12,0.53-0.26,0.75-0.44l1.12,0.45c0.1,0.04,0.22,0,0.28-0.1l0.9-1.55C22.03,18.86,22,18.74,21.92,18.67z M17.63,18.83 c-0.74,0-1.35-0.6-1.35-1.35s0.6-1.35,1.35-1.35s1.35,0.6,1.35,1.35S18.37,18.83,17.63,18.83z"/></g></g></svg>
diff --git a/client/src/assets/images/global/npm.svg b/client/src/assets/images/misc/npm.svg
index 1d1d82784..1d1d82784 100644
--- a/client/src/assets/images/global/npm.svg
+++ b/client/src/assets/images/misc/npm.svg
diff --git a/client/src/assets/images/video/playlist-add.svg b/client/src/assets/images/misc/playlist-add.svg
index 7ec77b851..7ec77b851 100644
--- a/client/src/assets/images/video/playlist-add.svg
+++ b/client/src/assets/images/misc/playlist-add.svg
diff --git a/client/src/assets/images/misc/subscriptions.svg b/client/src/assets/images/misc/subscriptions.svg
new file mode 100644
index 000000000..3a37266be
--- /dev/null
+++ b/client/src/assets/images/misc/subscriptions.svg
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" class="material" width="24px" height="24px"><path d="M20 8H4V6h16v2zm-2-6H6v2h12V2zm4 10v8c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2v-8c0-1.1.9-2 2-2h16c1.1 0 2 .9 2 2zm-6 4l-6-3.27v6.53L16 16z"/><path d="M0 0h24v24H0z" fill="none"/></svg> \ No newline at end of file
diff --git a/client/src/assets/images/video/support.svg b/client/src/assets/images/misc/support.svg
index 66280e18d..66280e18d 100644
--- a/client/src/assets/images/video/support.svg
+++ b/client/src/assets/images/misc/support.svg
diff --git a/client/src/assets/images/global/video-lang.svg b/client/src/assets/images/misc/video-lang.svg
index 5ffed18da..5ffed18da 100644
--- a/client/src/assets/images/global/video-lang.svg
+++ b/client/src/assets/images/misc/video-lang.svg
diff --git a/client/src/assets/images/misc/video_library.svg b/client/src/assets/images/misc/video_library.svg
new file mode 100644
index 000000000..f5f623a44
--- /dev/null
+++ b/client/src/assets/images/misc/video_library.svg
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" class="material" width="24px" height="24px"><path d="M0 0h24v24H0z" fill="none"/><path d="M4 6H2v14c0 1.1.9 2 2 2h14v-2H4V6zm16-4H8c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-8 12.5v-9l6 4.5-6 4.5z"/></svg> \ No newline at end of file
diff --git a/client/src/assets/images/search/filter.svg b/client/src/assets/images/search/filter.svg
deleted file mode 100644
index 7de5b8b9a..000000000
--- a/client/src/assets/images/search/filter.svg
+++ /dev/null
@@ -1,9 +0,0 @@
1<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
2 <defs/>
3 <g fill="none" fill-rule="evenodd">
4 <circle cx="12" cy="12" r="10" stroke="#333" stroke-width="2"/>
5 <rect width="12" height="2" x="6" y="8" fill="#333" rx="1"/>
6 <rect width="8" height="2" x="8" y="12" fill="#333" rx="1"/>
7 <rect width="4" height="2" x="10" y="16" fill="#333" rx="1"/>
8 </g>
9</svg>
diff --git a/client/src/assets/images/video/dislike.svg b/client/src/assets/images/video/dislike.svg
deleted file mode 100644
index b192cd05a..000000000
--- a/client/src/assets/images/video/dislike.svg
+++ /dev/null
@@ -1,7 +0,0 @@
1<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
2 <defs/>
3 <g fill="none" fill-rule="evenodd" stroke="#000" stroke-linecap="round" stroke-width="2">
4 <path stroke-linejoin="round" d="M6 10c0-2.5.5-5 2-5h9c.5 0 1.2.4 1.4 1l2.5 5.3c.9 2-.2 3.7-2.4 3.7h-3s3 6-.5 6c-2.5 0-3.5-6-7-6-1.5 0-2-2.5-2-5z"/>
5 <path d="M4 15.5S3 13 3 10s1-5.5 1-5.5"/>
6 </g>
7</svg>
diff --git a/client/src/assets/images/video/like.svg b/client/src/assets/images/video/like.svg
deleted file mode 100644
index bacd6272c..000000000
--- a/client/src/assets/images/video/like.svg
+++ /dev/null
@@ -1,7 +0,0 @@
1<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
2 <defs/>
3 <g fill="none" fill-rule="evenodd" stroke="#000" stroke-linecap="round" stroke-width="2">
4 <path stroke-linejoin="round" d="M6 14c0 2.5.5 5 2 5h9c.5 0 1.2-.4 1.4-1l2.5-5.3c.9-2-.2-3.7-2.4-3.7h-3s3-6-.5-6c-2.5 0-3.5 6-7 6-1.5 0-2 2.5-2 5z"/>
5 <path d="M4 8.5S3 11 3 14s1 5.5 1 5.5"/>
6 </g>
7</svg>
diff --git a/client/src/assets/images/video/share.svg b/client/src/assets/images/video/share.svg
deleted file mode 100644
index 092c02a1f..000000000
--- a/client/src/assets/images/video/share.svg
+++ /dev/null
@@ -1,7 +0,0 @@
1<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
2 <defs/>
3 <g fill="none" fill-rule="evenodd" stroke="#000" stroke-linecap="round" stroke-width="2">
4 <path d="M20 15v3a2 2 0 01-2 2H6a2 2 0 01-2-2V6c0-1.1.9-2 2-2h3"/>
5 <path stroke-linejoin="round" d="M13 4h7v7M19 5l-7 7"/>
6 </g>
7</svg>
diff --git a/client/src/assets/images/video/upload.svg b/client/src/assets/images/video/upload.svg
deleted file mode 100644
index 7ab533c9f..000000000
--- a/client/src/assets/images/video/upload.svg
+++ /dev/null
@@ -1,8 +0,0 @@
1<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
2 <defs/>
3 <g fill="none" fill-rule="evenodd" stroke="#000" stroke-linecap="round" stroke-width="2">
4 <path stroke-linejoin="round" d="M8 18H5h0a4 4 0 111-7.9v-.6a5.5 5.5 0 0110.8-1.4A5 5 0 0123 13a5 5 0 01-5 5h-2"/>
5 <path d="M12 13v8"/>
6 <path stroke-linejoin="round" d="M15 14l-3-3-3 3"/>
7 </g>
8</svg>
diff --git a/client/src/sass/include/_mixins.scss b/client/src/sass/include/_mixins.scss
index 6a1deac76..ab9f982a2 100644
--- a/client/src/sass/include/_mixins.scss
+++ b/client/src/sass/include/_mixins.scss
@@ -48,6 +48,11 @@
48} 48}
49 49
50@mixin apply-svg-color ($color) { 50@mixin apply-svg-color ($color) {
51 ::ng-deep .feather,
52 ::ng-deep .material {
53 color: $color;
54 }
55
51 ::ng-deep svg { 56 ::ng-deep svg {
52 path[fill="#000"], 57 path[fill="#000"],
53 g[fill="#000"], 58 g[fill="#000"],