aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--client/src/app/+about/about-follows/about-follows.component.html5
-rw-r--r--client/src/app/+about/about-instance/about-instance.component.html41
-rw-r--r--client/src/app/+about/about-instance/contact-admin-modal.component.html4
-rw-r--r--client/src/app/+about/about-peertube/about-peertube.component.html24
-rw-r--r--client/src/app/+about/about-peertube/about-peertube.component.scss8
-rw-r--r--client/src/app/+accounts/account-about/account-about.component.html5
-rw-r--r--client/src/app/+accounts/account-video-channels/account-video-channels.component.html3
-rw-r--r--client/src/app/+admin/config/edit-custom-config/edit-custom-config.component.html1
-rw-r--r--client/src/app/+admin/follows/follows.component.html2
-rw-r--r--client/src/app/+admin/moderation/moderation.component.html2
-rw-r--r--client/src/app/+admin/plugins/plugins.component.html2
-rw-r--r--client/src/app/+admin/system/system.component.html2
-rw-r--r--client/src/app/+admin/users/user-list/user-list.component.html2
-rw-r--r--client/src/app/+my-account/my-account-blocklist/my-account-blocklist.component.html2
-rw-r--r--client/src/app/+my-account/my-account-blocklist/my-account-server-blocklist.component.html2
-rw-r--r--client/src/app/+my-account/my-account-history/my-account-history.component.html1
-rw-r--r--client/src/app/+my-account/my-account-notifications/my-account-notifications.component.html1
-rw-r--r--client/src/app/+my-account/my-account-ownership/my-account-accept-ownership/my-account-accept-ownership.component.html2
-rw-r--r--client/src/app/+my-account/my-account-ownership/my-account-ownership.component.html1
-rw-r--r--client/src/app/+my-account/my-account-settings/my-account-settings.component.html15
-rw-r--r--client/src/app/+my-account/my-account-subscriptions/my-account-subscriptions.component.html1
-rw-r--r--client/src/app/+my-account/my-account-video-channels/my-account-video-channels.component.html1
-rw-r--r--client/src/app/+my-account/my-account-video-imports/my-account-video-imports.component.html1
-rw-r--r--client/src/app/+my-account/my-account-video-playlists/my-account-video-playlists.component.html2
-rw-r--r--client/src/app/+my-account/my-account-video-playlists/my-account-video-playlists.component.scss4
-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-videos/my-account-videos.component.scss3
-rw-r--r--client/src/app/+my-account/shared/actor-avatar-info.component.html1
-rw-r--r--client/src/app/shared/instance/instance-statistics.component.html4
-rw-r--r--client/src/app/shared/instance/instance-statistics.component.scss5
-rw-r--r--client/src/app/shared/video/abstract-video-list.html8
-rw-r--r--client/src/app/videos/+video-watch/comment/video-comments.component.html4
-rw-r--r--client/src/app/videos/recommendations/recommended-videos.component.html4
-rw-r--r--client/src/app/videos/video-list/video-overview.component.html11
-rw-r--r--client/src/sass/include/_miniature.scss5
35 files changed, 108 insertions, 73 deletions
diff --git a/client/src/app/+about/about-follows/about-follows.component.html b/client/src/app/+about/about-follows/about-follows.component.html
index ebe03bd94..dd50cda74 100644
--- a/client/src/app/+about/about-follows/about-follows.component.html
+++ b/client/src/app/+about/about-follows/about-follows.component.html
@@ -1,6 +1,7 @@
1<div class="row" myInfiniteScroller [autoInit]="true" (nearOfBottom)="onNearOfBottom()" [dataObservable]="onDataSubject.asObservable()"> 1<div class="row" myInfiniteScroller [autoInit]="true" (nearOfBottom)="onNearOfBottom()" [dataObservable]="onDataSubject.asObservable()">
2 <h1 class="sr-only" i18n>Follows</h1>
2 <div class="col-xl-6 col-md-12"> 3 <div class="col-xl-6 col-md-12">
3 <div i18n class="subtitle">Followers instances</div> 4 <h2 i18n class="subtitle">Followers instances</h2>
4 5
5 <div i18n class="no-results" *ngIf="followersPagination.totalItems === 0">This instance does not have instances followers.</div> 6 <div i18n class="no-results" *ngIf="followersPagination.totalItems === 0">This instance does not have instances followers.</div>
6 7
@@ -10,7 +11,7 @@
10 </div> 11 </div>
11 12
12 <div class="col-xl-6 col-md-12"> 13 <div class="col-xl-6 col-md-12">
13 <div i18n class="subtitle">Followings instances</div> 14 <h2 i18n class="subtitle">Followings instances</h2>
14 15
15 <div i18n class="no-results" *ngIf="followingsPagination.totalItems === 0">This instance does not have instances followings.</div> 16 <div i18n class="no-results" *ngIf="followingsPagination.totalItems === 0">This instance does not have instances followings.</div>
16 17
diff --git a/client/src/app/+about/about-instance/about-instance.component.html b/client/src/app/+about/about-instance/about-instance.component.html
index 7ba2d9ac8..3bc63b7d1 100644
--- a/client/src/app/+about/about-instance/about-instance.component.html
+++ b/client/src/app/+about/about-instance/about-instance.component.html
@@ -2,9 +2,9 @@
2 <div class="col-md-12 col-xl-6"> 2 <div class="col-md-12 col-xl-6">
3 3
4 <div class="about-instance-title"> 4 <div class="about-instance-title">
5 <div i18n class="title">About {{ instanceName }}</div> 5 <h1 i18n class="title">About {{ instanceName }}</h1>
6 6
7 <div i18n *ngIf="isContactFormEnabled" (click)="openContactModal()" role="button" class="contact-admin">Contact administrator</div> 7 <button i18n *ngIf="isContactFormEnabled" (click)="openContactModal()" (keydown.enter)="openContactModal()" class="contact-admin">Contact administrator</button>
8 </div> 8 </div>
9 9
10 <div class="block instance-badges"> 10 <div class="block instance-badges">
@@ -19,84 +19,85 @@
19 <div i18n *ngIf="isNSFW" class="block dedicated-to-nsfw">This instance is dedicated to sensitive/NSFW content.</div> 19 <div i18n *ngIf="isNSFW" class="block dedicated-to-nsfw">This instance is dedicated to sensitive/NSFW content.</div>
20 </div> 20 </div>
21 21
22 <div i18n class="middle-title" *ngIf="html.administrator || maintenanceLifetime || businessModel"> 22 <h2 i18n class="middle-title" *ngIf="html.administrator || maintenanceLifetime || businessModel">
23 ADMINISTRATORS & SUSTAINABILITY 23 ADMINISTRATORS & SUSTAINABILITY
24 </div> 24 </h2>
25 25
26 <div class="block administrator" *ngIf="html.administrator"> 26 <div class="block administrator" *ngIf="html.administrator">
27 <div i18n class="section-title">Who we are</div> 27 <h3 i18n class="section-title">Who we are</h3>
28 28
29 <div [innerHTML]="html.administrator"></div> 29 <div [innerHTML]="html.administrator"></div>
30 </div> 30 </div>
31 31
32 <div class="block creation-reason" *ngIf="creationReason"> 32 <div class="block creation-reason" *ngIf="creationReason">
33 <div i18n class="section-title">Why we created this instance</div> 33 <h3 i18n class="section-title">Why we created this instance</h3>
34 34
35 <p>{{ creationReason }}</p> 35 <p>{{ creationReason }}</p>
36 </div> 36 </div>
37 37
38 <div class="block maintenance-lifetime" *ngIf="maintenanceLifetime"> 38 <div class="block maintenance-lifetime" *ngIf="maintenanceLifetime">
39 <div i18n class="section-title">How long we plan to maintain this instance</div> 39 <h3 i18n class="section-title">How long we plan to maintain this instance</h3>
40 40
41 <p>{{ maintenanceLifetime }}</p> 41 <p>{{ maintenanceLifetime }}</p>
42 </div> 42 </div>
43 43
44 <div class="block business-model" *ngIf="businessModel"> 44 <div class="block business-model" *ngIf="businessModel">
45 <div i18n class="section-title">How we will pay for this instance</div> 45 <h3 i18n class="section-title">How we will pay for this instance</h3>
46 46
47 <p>{{ businessModel }}</p> 47 <p>{{ businessModel }}</p>
48 </div> 48 </div>
49 49
50 <div i18n class="middle-title" *ngIf="html.description"> 50 <h2 i18n class="middle-title" *ngIf="html.description">
51 INFORMATION 51 INFORMATION
52 </div> 52 </h2>
53 53
54 <div class="block description"> 54 <div class="block description">
55 <div i18n class="section-title">Description</div> 55 <h3 i18n class="section-title">Description</h3>
56 56
57 <div [innerHTML]="html.description"></div> 57 <div [innerHTML]="html.description"></div>
58 </div> 58 </div>
59 59
60 <div i18n class="middle-title" *ngIf="html.moderationInformation || html.codeOfConduct || html.terms"> 60 <h2 i18n class="middle-title" *ngIf="html.moderationInformation || html.codeOfConduct || html.terms">
61 MODERATION 61 MODERATION
62 </div> 62 </h2>
63 63
64 <div class="block moderation-information" *ngIf="html.moderationInformation"> 64 <div class="block moderation-information" *ngIf="html.moderationInformation">
65 <div i18n class="section-title">Moderation information</div> 65 <h3 i18n class="section-title">Moderation information</h3>
66 66
67 <div [innerHTML]="html.moderationInformation"></div> 67 <div [innerHTML]="html.moderationInformation"></div>
68 </div> 68 </div>
69 69
70 <div class="block code-of-conduct" *ngIf="html.codeOfConduct"> 70 <div class="block code-of-conduct" *ngIf="html.codeOfConduct">
71 <div i18n class="section-title">Code of conduct</div> 71 <h3 i18n class="section-title">Code of conduct</h3>
72 72
73 <div [innerHTML]="html.codeOfConduct"></div> 73 <div [innerHTML]="html.codeOfConduct"></div>
74 </div> 74 </div>
75 75
76 <div class="block terms"> 76 <div class="block terms">
77 <div i18n class="section-title">Terms</div> 77 <h3 i18n class="section-title">Terms</h3>
78 78
79 <div [innerHTML]="html.terms"></div> 79 <div [innerHTML]="html.terms"></div>
80 </div> 80 </div>
81 81
82 <div i18n class="middle-title" *ngIf="html.hardwareInformation"> 82 <h2 i18n class="middle-title" *ngIf="html.hardwareInformation">
83 OTHER INFORMATION 83 OTHER INFORMATION
84 </div> 84 </h2>
85 85
86 <div class="block hardware-information" *ngIf="html.hardwareInformation"> 86 <div class="block hardware-information" *ngIf="html.hardwareInformation">
87 <div i18n class="section-title">Hardware information</div> 87 <h3 i18n class="section-title">Hardware information</h3>
88 88
89 <div [innerHTML]="html.hardwareInformation"></div> 89 <div [innerHTML]="html.hardwareInformation"></div>
90 </div> 90 </div>
91 </div> 91 </div>
92 92
93 <div class="col-md-12 col-xl-6"> 93 <div class="col-md-12 col-xl-6">
94 <h2 class="sr-only" i18n>FEATURES</h2>
94 <my-instance-features-table></my-instance-features-table> 95 <my-instance-features-table></my-instance-features-table>
95 </div> 96 </div>
96 97
97 <div class="col"> 98 <div class="col">
98 <div class="anchor" id="statistics"></div> 99 <div class="anchor" id="statistics"></div>
99 <div i18n class="middle-title">STATISTICS</div> 100 <h2 i18n class="middle-title">STATISTICS</h2>
100 <my-instance-statistics></my-instance-statistics> 101 <my-instance-statistics></my-instance-statistics>
101 </div> 102 </div>
102</div> 103</div>
diff --git a/client/src/app/+about/about-instance/contact-admin-modal.component.html b/client/src/app/+about/about-instance/contact-admin-modal.component.html
index 7d93796ec..81e59d46a 100644
--- a/client/src/app/+about/about-instance/contact-admin-modal.component.html
+++ b/client/src/app/+about/about-instance/contact-admin-modal.component.html
@@ -1,7 +1,7 @@
1<ng-template #modal> 1<ng-template #modal>
2 <div class="modal-header"> 2 <div class="modal-header">
3 <h4 i18n class="modal-title">Contact {{ instanceName }} administrator</h4> 3 <h1 i18n class="modal-title">Contact {{ instanceName }} administrator</h1>
4 <my-global-icon iconName="cross" aria-label="Close" role="button" (click)="hide()"></my-global-icon> 4 <my-global-icon iconName="cross" aria-label="Close" tabindex="0" role="button" (click)="hide()" (keydown.enter)="hide()"></my-global-icon>
5 </div> 5 </div>
6 6
7 <div class="modal-body"> 7 <div class="modal-body">
diff --git a/client/src/app/+about/about-peertube/about-peertube.component.html b/client/src/app/+about/about-peertube/about-peertube.component.html
index 1dbad3096..93670fe4e 100644
--- a/client/src/app/+about/about-peertube/about-peertube.component.html
+++ b/client/src/app/+about/about-peertube/about-peertube.component.html
@@ -24,10 +24,10 @@
24 24
25 <div class="card"> 25 <div class="card">
26 <div class="card-body"> 26 <div class="card-body">
27 <h5 class="card-title"> 27 <div class="card-title">
28 <a i18n target="_blank" rel="noopener noreferrer" href="https://docs.joinpeertube.org/#/use-setup-account">Use PeerTube 28 <a i18n target="_blank" rel="noopener noreferrer" href="https://docs.joinpeertube.org/#/use-setup-account">Use PeerTube
29 documentation</a> 29 documentation</a>
30 </h5> 30 </div>
31 31
32 <div i18n class="card-text"> 32 <div i18n class="card-text">
33 Discover how to setup your account, what is a channel, how to create a playlist and more! 33 Discover how to setup your account, what is a channel, how to create a playlist and more!
@@ -37,10 +37,10 @@
37 37
38 <div class="card"> 38 <div class="card">
39 <div class="card-body"> 39 <div class="card-body">
40 <h5 class="card-title"> 40 <div class="card-title">
41 <a i18n target="_blank" rel="noopener noreferrer" href="https://docs.joinpeertube.org/#/use-third-party-application">PeerTube 41 <a i18n target="_blank" rel="noopener noreferrer" href="https://docs.joinpeertube.org/#/use-third-party-application">PeerTube
42 Applications</a> 42 Applications</a>
43 </h5> 43 </div>
44 44
45 <div i18n class="card-text"> 45 <div i18n class="card-text">
46 Discover unofficial Android applications or browser addons! 46 Discover unofficial Android applications or browser addons!
@@ -50,10 +50,10 @@
50 50
51 <div class="card"> 51 <div class="card">
52 <div class="card-body"> 52 <div class="card-body">
53 <h5 class="card-title"> 53 <div class="card-title">
54 <a i18n target="_blank" rel="noopener noreferrer" href="https://docs.joinpeertube.org/#/contribute-getting-started">Contribute on 54 <a i18n target="_blank" rel="noopener noreferrer" href="https://docs.joinpeertube.org/#/contribute-getting-started">Contribute on
55 PeerTube</a> 55 PeerTube</a>
56 </h5> 56 </div>
57 57
58 <div i18n class="card-text"> 58 <div i18n class="card-text">
59 Want to help to improve PeerTube? You can translate the web interface, give your feedback or directly contribute to the code! 59 Want to help to improve PeerTube? You can translate the web interface, give your feedback or directly contribute to the code!
@@ -66,10 +66,10 @@
66 <my-about-peertube-contributors></my-about-peertube-contributors> 66 <my-about-peertube-contributors></my-about-peertube-contributors>
67 67
68 <div class="p2p-privacy"> 68 <div class="p2p-privacy">
69 <h3 class="section-title"> 69 <h2 class="section-title">
70 <div class="anchor" id="privacy"></div> <!-- privacy anchor --> 70 <div class="anchor" id="privacy"></div> <!-- privacy anchor -->
71 <ng-container i18n>P2P & Privacy</ng-container> 71 <ng-container i18n>P2P & Privacy</ng-container>
72 </h3> 72 </h2>
73 73
74 <p i18n> 74 <p i18n>
75 PeerTube uses the BitTorrent protocol to share bandwidth between users by default to help lower the load on the server, 75 PeerTube uses the BitTorrent protocol to share bandwidth between users by default to help lower the load on the server,
@@ -82,7 +82,7 @@
82 tracker as long as you download or watch the video. 82 tracker as long as you download or watch the video.
83 </p> 83 </p>
84 84
85 <h6 i18n class="p2p-privacy-title">What are the consequences?</h6> 85 <h3 i18n class="p2p-privacy-title">What are the consequences?</h3>
86 86
87 <p i18n> 87 <p i18n>
88 In theory, someone with enough technical skills could create a script that tracks which IP is downloading which video. 88 In theory, someone with enough technical skills could create a script that tracks which IP is downloading which video.
@@ -128,7 +128,7 @@
128 There are much more effective ways to get that kind of information. 128 There are much more effective ways to get that kind of information.
129 </p> 129 </p>
130 130
131 <h6 i18n class="p2p-privacy-title">How does PeerTube compare with YouTube?</h6> 131 <h3 i18n class="p2p-privacy-title">How does PeerTube compare with YouTube?</h3>
132 132
133 <p i18n> 133 <p i18n>
134 The threats to privacy with YouTube are different from PeerTube's. 134 The threats to privacy with YouTube are different from PeerTube's.
@@ -136,7 +136,7 @@
136 Moreover, YouTube is owned by Google/Alphabet, a company that tracks you across many websites (via AdSense or Google Analytics). 136 Moreover, YouTube is owned by Google/Alphabet, a company that tracks you across many websites (via AdSense or Google Analytics).
137 </p> 137 </p>
138 138
139 <h6 i18n class="p2p-privacy-title">What can I do to limit the exposure of my IP address?</h6> 139 <h3 i18n class="p2p-privacy-title">What can I do to limit the exposure of my IP address?</h3>
140 140
141 <p i18n> 141 <p i18n>
142 Your IP address is public so every time you consult a website, there is a number of actors (in addition to the final website) seeing 142 Your IP address is public so every time you consult a website, there is a number of actors (in addition to the final website) seeing
@@ -145,7 +145,7 @@
145 Thinking that removing P2P from PeerTube will give you back anonymity doesn't make sense. 145 Thinking that removing P2P from PeerTube will give you back anonymity doesn't make sense.
146 </p> 146 </p>
147 147
148 <h6 i18n class="p2p-privacy-title">What will be done to mitigate this problem?</h6> 148 <h3 i18n class="p2p-privacy-title">What will be done to mitigate this problem?</h3>
149 149
150 <p i18n> 150 <p i18n>
151 PeerTube wants to deliver the best countermeasures possible, to give you more choice 151 PeerTube wants to deliver the best countermeasures possible, to give you more choice
diff --git a/client/src/app/+about/about-peertube/about-peertube.component.scss b/client/src/app/+about/about-peertube/about-peertube.component.scss
index a43eb6fe1..4856d4ae5 100644
--- a/client/src/app/+about/about-peertube/about-peertube.component.scss
+++ b/client/src/app/+about/about-peertube/about-peertube.component.scss
@@ -67,3 +67,11 @@ my-about-peertube-contributors {
67 } 67 }
68 } 68 }
69} 69}
70
71.card-title {
72 font-size: 1.25rem;
73}
74
75.p2p-privacy-title {
76 font-size: 20px;
77}
diff --git a/client/src/app/+accounts/account-about/account-about.component.html b/client/src/app/+accounts/account-about/account-about.component.html
index 1f1987aba..e9e0e4079 100644
--- a/client/src/app/+accounts/account-about/account-about.component.html
+++ b/client/src/app/+accounts/account-about/account-about.component.html
@@ -1,12 +1,13 @@
1<h1 class="sr-only" i18n>About</h1>
1<div class="margin-content"> 2<div class="margin-content">
2 <div *ngIf="account" class="row no-gutters"> 3 <div *ngIf="account" class="row no-gutters">
3 <div class="block col-md-6 col-sm-12 pr-2"> 4 <div class="block col-md-6 col-sm-12 pr-2">
4 <div i18n class="small-title">DESCRIPTION</div> 5 <h2 i18n class="small-title">DESCRIPTION</h2>
5 <div class="content" [innerHtml]="getAccountDescription()"></div> 6 <div class="content" [innerHtml]="getAccountDescription()"></div>
6 </div> 7 </div>
7 8
8 <div class="block col-md-6 col-sm-12"> 9 <div class="block col-md-6 col-sm-12">
9 <div i18n class="small-title">STATS</div> 10 <h2 i18n class="small-title">STATS</h2>
10 11
11 <div i18n class="content">Joined {{ account.createdAt | date }}</div> 12 <div i18n class="content">Joined {{ account.createdAt | date }}</div>
12 </div> 13 </div>
diff --git a/client/src/app/+accounts/account-video-channels/account-video-channels.component.html b/client/src/app/+accounts/account-video-channels/account-video-channels.component.html
index 8f1ff21a5..73bac5f1d 100644
--- a/client/src/app/+accounts/account-video-channels/account-video-channels.component.html
+++ b/client/src/app/+accounts/account-video-channels/account-video-channels.component.html
@@ -1,3 +1,4 @@
1<h1 class="sr-only" i18n>Video channels</h1>
1<div class="margin-content"> 2<div class="margin-content">
2 3
3 <div class="no-results" i18n *ngIf="channelPagination.totalItems === 0">This account does not have channels.</div> 4 <div class="no-results" i18n *ngIf="channelPagination.totalItems === 0">This account does not have channels.</div>
@@ -8,7 +9,7 @@
8 <a [routerLink]="getVideoChannelLink(videoChannel)" i18n-title title="See this video channel"> 9 <a [routerLink]="getVideoChannelLink(videoChannel)" i18n-title title="See this video channel">
9 <img [src]="videoChannel.avatarUrl" alt="Avatar" /> 10 <img [src]="videoChannel.avatarUrl" alt="Avatar" />
10 11
11 <div>{{ videoChannel.displayName }}</div> 12 <h2 class="section-title">{{ videoChannel.displayName }}</h2>
12 <div class="followers" i18n>{videoChannel.followersCount, plural, =1 {1 subscriber} other {{{ videoChannel.followersCount }} subscribers}}</div> 13 <div class="followers" i18n>{videoChannel.followersCount, plural, =1 {1 subscriber} other {{{ videoChannel.followersCount }} subscribers}}</div>
13 </a> 14 </a>
14 15
diff --git a/client/src/app/+admin/config/edit-custom-config/edit-custom-config.component.html b/client/src/app/+admin/config/edit-custom-config/edit-custom-config.component.html
index 716d12685..44de716a3 100644
--- a/client/src/app/+admin/config/edit-custom-config/edit-custom-config.component.html
+++ b/client/src/app/+admin/config/edit-custom-config/edit-custom-config.component.html
@@ -1,3 +1,4 @@
1<h1 class="sr-only" i18n>Configuration</h1>
1<form role="form" [formGroup]="form"> 2<form role="form" [formGroup]="form">
2 3
3 <div ngbNav #nav="ngbNav" class="nav-tabs"> 4 <div ngbNav #nav="ngbNav" class="nav-tabs">
diff --git a/client/src/app/+admin/follows/follows.component.html b/client/src/app/+admin/follows/follows.component.html
index 7b5bcc2db..8c3129394 100644
--- a/client/src/app/+admin/follows/follows.component.html
+++ b/client/src/app/+admin/follows/follows.component.html
@@ -1,5 +1,5 @@
1<div class="admin-sub-header"> 1<div class="admin-sub-header">
2 <div i18n class="form-sub-title">Follows & redundancies</div> 2 <h1 i18n class="form-sub-title">Follows & redundancies</h1>
3 3
4 <div class="admin-sub-nav"> 4 <div class="admin-sub-nav">
5 <a i18n routerLink="following-list" routerLinkActive="active">Following</a> 5 <a i18n routerLink="following-list" routerLinkActive="active">Following</a>
diff --git a/client/src/app/+admin/moderation/moderation.component.html b/client/src/app/+admin/moderation/moderation.component.html
index 09f149c0e..7bab63c33 100644
--- a/client/src/app/+admin/moderation/moderation.component.html
+++ b/client/src/app/+admin/moderation/moderation.component.html
@@ -1,5 +1,5 @@
1<div class="admin-sub-header"> 1<div class="admin-sub-header">
2 <div i18n class="form-sub-title">Moderation</div> 2 <h1 i18n class="form-sub-title">Moderation</h1>
3 3
4 <div class="admin-sub-nav"> 4 <div class="admin-sub-nav">
5 <a *ngIf="hasVideoAbusesRight()" i18n routerLink="video-abuses/list" routerLinkActive="active">Video reports</a> 5 <a *ngIf="hasVideoAbusesRight()" i18n routerLink="video-abuses/list" routerLinkActive="active">Video reports</a>
diff --git a/client/src/app/+admin/plugins/plugins.component.html b/client/src/app/+admin/plugins/plugins.component.html
index 3dc4939da..e2b927db8 100644
--- a/client/src/app/+admin/plugins/plugins.component.html
+++ b/client/src/app/+admin/plugins/plugins.component.html
@@ -1,5 +1,5 @@
1<div class="admin-sub-header"> 1<div class="admin-sub-header">
2 <div i18n class="form-sub-title">Plugins/Themes</div> 2 <h1 i18n class="form-sub-title">Plugins/Themes</h1>
3 3
4 <div class="admin-sub-nav"> 4 <div class="admin-sub-nav">
5 <a i18n routerLink="list-installed" routerLinkActive="active">Installed</a> 5 <a i18n routerLink="list-installed" routerLinkActive="active">Installed</a>
diff --git a/client/src/app/+admin/system/system.component.html b/client/src/app/+admin/system/system.component.html
index 7c4278d35..4f9521c0c 100644
--- a/client/src/app/+admin/system/system.component.html
+++ b/client/src/app/+admin/system/system.component.html
@@ -1,5 +1,5 @@
1<div class="admin-sub-header"> 1<div class="admin-sub-header">
2 <div i18n class="form-sub-title">System</div> 2 <h1 i18n class="form-sub-title">System</h1>
3 3
4 <div class="admin-sub-nav"> 4 <div class="admin-sub-nav">
5 <a *ngIf="hasJobsRight()" i18n routerLink="jobs" routerLinkActive="active">Jobs</a> 5 <a *ngIf="hasJobsRight()" i18n routerLink="jobs" routerLinkActive="active">Jobs</a>
diff --git a/client/src/app/+admin/users/user-list/user-list.component.html b/client/src/app/+admin/users/user-list/user-list.component.html
index 6c6c64194..e0022d2ba 100644
--- a/client/src/app/+admin/users/user-list/user-list.component.html
+++ b/client/src/app/+admin/users/user-list/user-list.component.html
@@ -1,5 +1,5 @@
1<div class="admin-sub-header"> 1<div class="admin-sub-header">
2 <div i18n class="form-sub-title">Users list</div> 2 <h1 i18n class="form-sub-title">Users list</h1>
3 3
4 <a class="add-button" routerLink="/admin/users/create"> 4 <a class="add-button" routerLink="/admin/users/create">
5 <my-global-icon iconName="add" aria-hidden="true"></my-global-icon> 5 <my-global-icon iconName="add" aria-hidden="true"></my-global-icon>
diff --git a/client/src/app/+my-account/my-account-blocklist/my-account-blocklist.component.html b/client/src/app/+my-account/my-account-blocklist/my-account-blocklist.component.html
index fb9e6546e..90f657521 100644
--- a/client/src/app/+my-account/my-account-blocklist/my-account-blocklist.component.html
+++ b/client/src/app/+my-account/my-account-blocklist/my-account-blocklist.component.html
@@ -1,5 +1,5 @@
1<div class="admin-sub-header"> 1<div class="admin-sub-header">
2 <div i18n class="form-sub-title">Muted accounts</div> 2 <h1 i18n class="form-sub-title">Muted accounts</h1>
3</div> 3</div>
4 4
5<p-table 5<p-table
diff --git a/client/src/app/+my-account/my-account-blocklist/my-account-server-blocklist.component.html b/client/src/app/+my-account/my-account-blocklist/my-account-server-blocklist.component.html
index 6359b4461..c31cff16f 100644
--- a/client/src/app/+my-account/my-account-blocklist/my-account-server-blocklist.component.html
+++ b/client/src/app/+my-account/my-account-blocklist/my-account-server-blocklist.component.html
@@ -1,5 +1,5 @@
1<div class="admin-sub-header"> 1<div class="admin-sub-header">
2 <div i18n class="form-sub-title">Muted instances</div> 2 <h1 i18n class="form-sub-title">Muted instances</h1>
3</div> 3</div>
4 4
5<p-table 5<p-table
diff --git a/client/src/app/+my-account/my-account-history/my-account-history.component.html b/client/src/app/+my-account/my-account-history/my-account-history.component.html
index 817b929fe..6b94d5477 100644
--- a/client/src/app/+my-account/my-account-history/my-account-history.component.html
+++ b/client/src/app/+my-account/my-account-history/my-account-history.component.html
@@ -1,3 +1,4 @@
1<h1 class="sr-only" i18n>History</h1>
1<div class="top-buttons"> 2<div class="top-buttons">
2 <div class="history-switch"> 3 <div class="history-switch">
3 <p-inputSwitch [(ngModel)]="videosHistoryEnabled" (ngModelChange)="onVideosHistoryChange()"></p-inputSwitch> 4 <p-inputSwitch [(ngModel)]="videosHistoryEnabled" (ngModelChange)="onVideosHistoryChange()"></p-inputSwitch>
diff --git a/client/src/app/+my-account/my-account-notifications/my-account-notifications.component.html b/client/src/app/+my-account/my-account-notifications/my-account-notifications.component.html
index 429943f71..8e4480ca6 100644
--- a/client/src/app/+my-account/my-account-notifications/my-account-notifications.component.html
+++ b/client/src/app/+my-account/my-account-notifications/my-account-notifications.component.html
@@ -1,3 +1,4 @@
1<h1 class="sr-only" i18n>Notifications</h1>
1<div class="header"> 2<div class="header">
2 <a routerLink="/my-account/settings" fragment="notifications" i18n> 3 <a routerLink="/my-account/settings" fragment="notifications" i18n>
3 <my-global-icon iconName="cog" aria-hidden="true"></my-global-icon> 4 <my-global-icon iconName="cog" aria-hidden="true"></my-global-icon>
diff --git a/client/src/app/+my-account/my-account-ownership/my-account-accept-ownership/my-account-accept-ownership.component.html b/client/src/app/+my-account/my-account-ownership/my-account-accept-ownership/my-account-accept-ownership.component.html
index a155d90e0..222da9542 100644
--- a/client/src/app/+my-account/my-account-ownership/my-account-accept-ownership/my-account-accept-ownership.component.html
+++ b/client/src/app/+my-account/my-account-ownership/my-account-accept-ownership/my-account-accept-ownership.component.html
@@ -1,6 +1,6 @@
1<ng-template #modal let-close="close" let-dismiss="dismiss"> 1<ng-template #modal let-close="close" let-dismiss="dismiss">
2 <div class="modal-header"> 2 <div class="modal-header">
3 <h4 i18n class="modal-title">Accept ownership</h4> 3 <h1 i18n class="modal-title">Accept ownership</h1>
4 4
5 <my-global-icon iconName="cross" aria-label="Close" role="button" (click)="dismiss()"></my-global-icon> 5 <my-global-icon iconName="cross" aria-label="Close" role="button" (click)="dismiss()"></my-global-icon>
6 </div> 6 </div>
diff --git a/client/src/app/+my-account/my-account-ownership/my-account-ownership.component.html b/client/src/app/+my-account/my-account-ownership/my-account-ownership.component.html
index 354176a11..a50acfdf8 100644
--- a/client/src/app/+my-account/my-account-ownership/my-account-ownership.component.html
+++ b/client/src/app/+my-account/my-account-ownership/my-account-ownership.component.html
@@ -1,3 +1,4 @@
1<h1 class="sr-only" i18n>Ownership changes</h1>
1<p-table 2<p-table
2 [value]="videoChangeOwnerships" 3 [value]="videoChangeOwnerships"
3 [lazy]="true" 4 [lazy]="true"
diff --git a/client/src/app/+my-account/my-account-settings/my-account-settings.component.html b/client/src/app/+my-account/my-account-settings/my-account-settings.component.html
index b4e4d29f0..040b2130f 100644
--- a/client/src/app/+my-account/my-account-settings/my-account-settings.component.html
+++ b/client/src/app/+my-account/my-account-settings/my-account-settings.component.html
@@ -1,6 +1,7 @@
1<h1 class="sr-only" i18n>Settings</h1>
1<div class="form-row"> <!-- profile grid --> 2<div class="form-row"> <!-- profile grid -->
2 <div class="form-group col-12 col-lg-4 col-xl-3"> 3 <div class="form-group col-12 col-lg-4 col-xl-3">
3 <div i18n class="account-title">PROFILE</div> 4 <h2 i18n class="account-title">PROFILE</h2>
4 </div> 5 </div>
5 6
6 <div class="form-group form-group-right col-12 col-lg-8 col-xl-9"> 7 <div class="form-group form-group-right col-12 col-lg-8 col-xl-9">
@@ -29,7 +30,7 @@
29<div class="form-row mt-5"> <!-- video settings grid --> 30<div class="form-row mt-5"> <!-- video settings grid -->
30 <div class="form-group col-12 col-lg-4 col-xl-3"> 31 <div class="form-group col-12 col-lg-4 col-xl-3">
31 <div class="anchor" id="video-settings"></div> <!-- video settings anchor --> 32 <div class="anchor" id="video-settings"></div> <!-- video settings anchor -->
32 <div i18n class="account-title">VIDEO SETTINGS</div> 33 <h2 i18n class="account-title">VIDEO SETTINGS</h2>
33 </div> 34 </div>
34 35
35 <div class="form-group form-group-right col-12 col-lg-8 col-xl-9"> 36 <div class="form-group form-group-right col-12 col-lg-8 col-xl-9">
@@ -40,7 +41,7 @@
40<div class="form-row mt-5"> <!-- notifications grid --> 41<div class="form-row mt-5"> <!-- notifications grid -->
41 <div class="form-group col-12 col-lg-4 col-xl-3"> 42 <div class="form-group col-12 col-lg-4 col-xl-3">
42 <div class="anchor" id="notifications"></div> <!-- notifications anchor --> 43 <div class="anchor" id="notifications"></div> <!-- notifications anchor -->
43 <div i18n class="account-title">NOTIFICATIONS</div> 44 <h2 i18n class="account-title">NOTIFICATIONS</h2>
44 </div> 45 </div>
45 46
46 <div class="form-group form-group-right col-12 col-lg-8 col-xl-9"> 47 <div class="form-group form-group-right col-12 col-lg-8 col-xl-9">
@@ -50,7 +51,7 @@
50 51
51<div class="form-row mt-5"> <!-- interface grid --> 52<div class="form-row mt-5"> <!-- interface grid -->
52 <div class="form-group col-12 col-lg-4 col-xl-3"> 53 <div class="form-group col-12 col-lg-4 col-xl-3">
53 <div i18n class="account-title">INTERFACE</div> 54 <h2 i18n class="account-title">INTERFACE</h2>
54 </div> 55 </div>
55 56
56 <div class="form-group form-group-right col-12 col-lg-8 col-xl-9"> 57 <div class="form-group form-group-right col-12 col-lg-8 col-xl-9">
@@ -60,7 +61,7 @@
60 61
61<div class="form-row mt-5" *ngIf="user.pluginAuth === null"> <!-- password grid --> 62<div class="form-row mt-5" *ngIf="user.pluginAuth === null"> <!-- password grid -->
62 <div class="form-group col-12 col-lg-4 col-xl-3"> 63 <div class="form-group col-12 col-lg-4 col-xl-3">
63 <div i18n class="account-title">PASSWORD</div> 64 <h2 i18n class="account-title">PASSWORD</h2>
64 </div> 65 </div>
65 66
66 <div class="form-group form-group-right col-12 col-lg-8 col-xl-9"> 67 <div class="form-group form-group-right col-12 col-lg-8 col-xl-9">
@@ -70,7 +71,7 @@
70 71
71<div class="form-row mt-5"> <!-- email grid --> 72<div class="form-row mt-5"> <!-- email grid -->
72 <div class="form-group col-12 col-lg-4 col-xl-3"> 73 <div class="form-group col-12 col-lg-4 col-xl-3">
73 <div i18n class="account-title">EMAIL</div> 74 <h2 i18n class="account-title">EMAIL</h2>
74 </div> 75 </div>
75 76
76 <div class="form-group form-group-right col-12 col-lg-8 col-xl-9"> 77 <div class="form-group form-group-right col-12 col-lg-8 col-xl-9">
@@ -80,7 +81,7 @@
80 81
81<div class="form-row mt-5"> <!-- danger zone grid --> 82<div class="form-row mt-5"> <!-- danger zone grid -->
82 <div class="form-group col-12 col-lg-4 col-xl-3"> 83 <div class="form-group col-12 col-lg-4 col-xl-3">
83 <div i18n class="account-title">DANGER ZONE</div> 84 <h2 i18n class="account-title">DANGER ZONE</h2>
84 </div> 85 </div>
85 86
86 <div class="form-group form-group-right col-12 col-lg-8 col-xl-9"> 87 <div class="form-group form-group-right col-12 col-lg-8 col-xl-9">
diff --git a/client/src/app/+my-account/my-account-subscriptions/my-account-subscriptions.component.html b/client/src/app/+my-account/my-account-subscriptions/my-account-subscriptions.component.html
index b87a4c00c..23dfdc8f5 100644
--- a/client/src/app/+my-account/my-account-subscriptions/my-account-subscriptions.component.html
+++ b/client/src/app/+my-account/my-account-subscriptions/my-account-subscriptions.component.html
@@ -1,3 +1,4 @@
1<h1 class="sr-only" i18n>Subscriptions</h1>
1<div class="no-results" i18n *ngIf="pagination.totalItems === 0">You don't have any subscriptions yet.</div> 2<div class="no-results" i18n *ngIf="pagination.totalItems === 0">You don't have any subscriptions yet.</div>
2 3
3<div class="video-channels" myInfiniteScroller [autoInit]="true" (nearOfBottom)="onNearOfBottom()" [dataObservable]="onDataSubject.asObservable()"> 4<div class="video-channels" myInfiniteScroller [autoInit]="true" (nearOfBottom)="onNearOfBottom()" [dataObservable]="onDataSubject.asObservable()">
diff --git a/client/src/app/+my-account/my-account-video-channels/my-account-video-channels.component.html b/client/src/app/+my-account/my-account-video-channels/my-account-video-channels.component.html
index 6fd94474d..2499b6ed5 100644
--- a/client/src/app/+my-account/my-account-video-channels/my-account-video-channels.component.html
+++ b/client/src/app/+my-account/my-account-video-channels/my-account-video-channels.component.html
@@ -1,3 +1,4 @@
1<h1 class="sr-only" i18n>My channels</h1>
1<div class="video-channels-header"> 2<div class="video-channels-header">
2 <a class="create-button" routerLink="create"> 3 <a class="create-button" routerLink="create">
3 <my-global-icon iconName="add" aria-hidden="true"></my-global-icon> 4 <my-global-icon iconName="add" aria-hidden="true"></my-global-icon>
diff --git a/client/src/app/+my-account/my-account-video-imports/my-account-video-imports.component.html b/client/src/app/+my-account/my-account-video-imports/my-account-video-imports.component.html
index 37c6ad6b4..8f0786bd0 100644
--- a/client/src/app/+my-account/my-account-video-imports/my-account-video-imports.component.html
+++ b/client/src/app/+my-account/my-account-video-imports/my-account-video-imports.component.html
@@ -1,3 +1,4 @@
1<h1 class="sr-only" i18n>Imports</h1>
1<p-table 2<p-table
2 [value]="videoImports" [lazy]="true" [paginator]="totalRecords > 0" [totalRecords]="totalRecords" [rows]="rowsPerPage" 3 [value]="videoImports" [lazy]="true" [paginator]="totalRecords > 0" [totalRecords]="totalRecords" [rows]="rowsPerPage"
3 [sortField]="sort.field" [sortOrder]="sort.order" (onLazyLoad)="loadLazy($event)" dataKey="id" 4 [sortField]="sort.field" [sortOrder]="sort.order" (onLazyLoad)="loadLazy($event)" dataKey="id"
diff --git a/client/src/app/+my-account/my-account-video-playlists/my-account-video-playlists.component.html b/client/src/app/+my-account/my-account-video-playlists/my-account-video-playlists.component.html
index 7bd2fa19f..1ba2c35ef 100644
--- a/client/src/app/+my-account/my-account-video-playlists/my-account-video-playlists.component.html
+++ b/client/src/app/+my-account/my-account-video-playlists/my-account-video-playlists.component.html
@@ -1,5 +1,5 @@
1<div class="video-playlists-header"> 1<div class="video-playlists-header">
2 <h4 i18n>Playlists <span class="badge badge-secondary">{{ pagination.totalItems }}</span></h4> 2 <h1 i18n>Playlists <span class="badge badge-secondary">{{ pagination.totalItems }}</span></h1>
3 3
4 <input type="text" placeholder="Search your playlists" i18n-placeholder [(ngModel)]="videoPlaylistsSearch" (ngModelChange)="onVideoPlaylistSearchChanged()" /> 4 <input type="text" placeholder="Search your playlists" i18n-placeholder [(ngModel)]="videoPlaylistsSearch" (ngModelChange)="onVideoPlaylistSearchChanged()" />
5 5
diff --git a/client/src/app/+my-account/my-account-video-playlists/my-account-video-playlists.component.scss b/client/src/app/+my-account/my-account-video-playlists/my-account-video-playlists.component.scss
index 4381d74b0..41e7851fd 100644
--- a/client/src/app/+my-account/my-account-video-playlists/my-account-video-playlists.component.scss
+++ b/client/src/app/+my-account/my-account-video-playlists/my-account-video-playlists.component.scss
@@ -41,6 +41,10 @@
41 input[type=text] { 41 input[type=text] {
42 @include peertube-input-text(300px); 42 @include peertube-input-text(300px);
43 } 43 }
44
45 h1 {
46 font-size: 1.5rem;
47 }
44} 48}
45 49
46@media screen and (max-width: $small-view) { 50@media screen and (max-width: $small-view) {
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 9192aec6d..825bddf5e 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
@@ -1,5 +1,5 @@
1<div class="videos-header"> 1<div class="videos-header">
2 <h4 i18n>Videos <span class="badge badge-secondary">{{ pagination.totalItems }}</span></h4> 2 <h1 i18n>Videos <span class="badge badge-secondary">{{ pagination.totalItems }}</span></h1>
3 3
4 <input type="text" placeholder="Search your videos" i18n-placeholder [(ngModel)]="videosSearch" (ngModelChange)="onVideosSearchChanged()" /> 4 <input type="text" placeholder="Search your videos" i18n-placeholder [(ngModel)]="videosSearch" (ngModelChange)="onVideosSearchChanged()" />
5 5
diff --git a/client/src/app/+my-account/my-account-videos/my-account-videos.component.scss b/client/src/app/+my-account/my-account-videos/my-account-videos.component.scss
index 67a58d8d5..18c1ae288 100644
--- a/client/src/app/+my-account/my-account-videos/my-account-videos.component.scss
+++ b/client/src/app/+my-account/my-account-videos/my-account-videos.component.scss
@@ -6,9 +6,10 @@
6 justify-content: space-between; 6 justify-content: space-between;
7 margin: 20px 0 50px; 7 margin: 20px 0 50px;
8 8
9 h4, 9 h1,
10 .fake-element { 10 .fake-element {
11 flex: 1; 11 flex: 1;
12 font-size: 1.5rem;
12 } 13 }
13 14
14 input[type=text] { 15 input[type=text] {
diff --git a/client/src/app/+my-account/shared/actor-avatar-info.component.html b/client/src/app/+my-account/shared/actor-avatar-info.component.html
index 82f5123de..d01b9ac7f 100644
--- a/client/src/app/+my-account/shared/actor-avatar-info.component.html
+++ b/client/src/app/+my-account/shared/actor-avatar-info.component.html
@@ -6,6 +6,7 @@
6 <div class="actor-img-edit-container"> 6 <div class="actor-img-edit-container">
7 <div class="actor-img-edit-button" [ngbTooltip]="'(extensions: '+ avatarExtensions +', '+ maxSizeText +': '+ maxAvatarSizeInBytes +')'" placement="right" container="body"> 7 <div class="actor-img-edit-button" [ngbTooltip]="'(extensions: '+ avatarExtensions +', '+ maxSizeText +': '+ maxAvatarSizeInBytes +')'" placement="right" container="body">
8 <my-global-icon iconName="edit"></my-global-icon> 8 <my-global-icon iconName="edit"></my-global-icon>
9 <label for="avatarfile" i18n>Change your avatar</label>
9 <input #avatarfileInput type="file" title=" " name="avatarfile" id="avatarfile" [accept]="avatarExtensions" (change)="onAvatarChange()"/> 10 <input #avatarfileInput type="file" title=" " name="avatarfile" id="avatarfile" [accept]="avatarExtensions" (change)="onAvatarChange()"/>
10 </div> 11 </div>
11 </div> 12 </div>
diff --git a/client/src/app/shared/instance/instance-statistics.component.html b/client/src/app/shared/instance/instance-statistics.component.html
index bcb2308fe..399cf10fe 100644
--- a/client/src/app/shared/instance/instance-statistics.component.html
+++ b/client/src/app/shared/instance/instance-statistics.component.html
@@ -1,7 +1,7 @@
1<p i18n *ngIf="null === serverStats">Loading instance statistics...</p> 1<p i18n *ngIf="null === serverStats">Loading instance statistics...</p>
2 2
3<section *ngIf="null !== serverStats"> 3<section *ngIf="null !== serverStats">
4 <h5 i18n>Local</h5> 4 <h3 i18n>Local</h3>
5 5
6 <div class="row"> 6 <div class="row">
7 <div class="col-6 col-lg-4 col-xl-3"> 7 <div class="col-6 col-lg-4 col-xl-3">
@@ -55,7 +55,7 @@
55 </div> 55 </div>
56 </div> 56 </div>
57 57
58 <h5 i18n>Federation</h5> 58 <h3 i18n>Federation</h3>
59 59
60 <div class="row"> 60 <div class="row">
61 <div class="col-6 col-lg-4 col-xl-3"> 61 <div class="col-6 col-lg-4 col-xl-3">
diff --git a/client/src/app/shared/instance/instance-statistics.component.scss b/client/src/app/shared/instance/instance-statistics.component.scss
index 63f8911f6..5286ab03a 100644
--- a/client/src/app/shared/instance/instance-statistics.component.scss
+++ b/client/src/app/shared/instance/instance-statistics.component.scss
@@ -1,3 +1,8 @@
1
2h3 {
3 font-size: 1.25rem;
4}
5
1.stat { 6.stat {
2 text-align: center; 7 text-align: center;
3 margin-bottom: 1em; 8 margin-bottom: 1em;
diff --git a/client/src/app/shared/video/abstract-video-list.html b/client/src/app/shared/video/abstract-video-list.html
index 54557df6b..548370843 100644
--- a/client/src/app/shared/video/abstract-video-list.html
+++ b/client/src/app/shared/video/abstract-video-list.html
@@ -1,11 +1,11 @@
1<div class="margin-content"> 1<div class="margin-content">
2 <div class="videos-header"> 2 <div class="videos-header">
3 <div *ngIf="titlePage" class="title-page title-page-single"> 3 <h1 *ngIf="titlePage" class="title-page title-page-single">
4 <div placement="bottom" [ngbTooltip]="titleTooltip" container="body"> 4 <div placement="bottom" [ngbTooltip]="titleTooltip" container="body">
5 {{ titlePage }} 5 {{ titlePage }}
6 </div> 6 </div>
7 <my-feed *ngIf="titlePage" [syndicationItems]="syndicationItems"></my-feed> 7 <my-feed *ngIf="titlePage" [syndicationItems]="syndicationItems"></my-feed>
8 </div> 8 </h1>
9 9
10 <div class="action-block" *ngIf="actions.length > 0"> 10 <div class="action-block" *ngIf="actions.length > 0">
11 <a [routerLink]="action.routerLink" routerLinkActive="active" *ngFor="let action of actions"> 11 <a [routerLink]="action.routerLink" routerLinkActive="active" *ngFor="let action of actions">
@@ -31,9 +31,9 @@
31 class="videos" 31 class="videos"
32 > 32 >
33 <ng-container *ngFor="let video of videos; trackBy: videoById;"> 33 <ng-container *ngFor="let video of videos; trackBy: videoById;">
34 <div class="date-title" *ngIf="getCurrentGroupedDateLabel(video)"> 34 <h2 class="date-title" *ngIf="getCurrentGroupedDateLabel(video)">
35 {{ getCurrentGroupedDateLabel(video) }} 35 {{ getCurrentGroupedDateLabel(video) }}
36 </div> 36 </h2>
37 37
38 <div class="video-wrapper"> 38 <div class="video-wrapper">
39 <my-video-miniature 39 <my-video-miniature
diff --git a/client/src/app/videos/+video-watch/comment/video-comments.component.html b/client/src/app/videos/+video-watch/comment/video-comments.component.html
index affbd4793..dd1d43560 100644
--- a/client/src/app/videos/+video-watch/comment/video-comments.component.html
+++ b/client/src/app/videos/+video-watch/comment/video-comments.component.html
@@ -1,13 +1,13 @@
1<div> 1<div>
2 <div class="title-block"> 2 <div class="title-block">
3 <div class="title-page title-page-single"> 3 <h2 class="title-page title-page-single">
4 <ng-container *ngIf="componentPagination.totalItems > 0; then hasComments; else noComments"></ng-container> 4 <ng-container *ngIf="componentPagination.totalItems > 0; then hasComments; else noComments"></ng-container>
5 <ng-template #hasComments> 5 <ng-template #hasComments>
6 <ng-container i18n *ngIf="componentPagination.totalItems === 1; else manyComments">1 Comment</ng-container> 6 <ng-container i18n *ngIf="componentPagination.totalItems === 1; else manyComments">1 Comment</ng-container>
7 <ng-template i18n #manyComments>{{ componentPagination.totalItems }} Comments</ng-template> 7 <ng-template i18n #manyComments>{{ componentPagination.totalItems }} Comments</ng-template>
8 </ng-template> 8 </ng-template>
9 <ng-template i18n #noComments>Comments</ng-template> 9 <ng-template i18n #noComments>Comments</ng-template>
10 </div> 10 </h2>
11 11
12 <my-feed [syndicationItems]="syndicationItems"></my-feed> 12 <my-feed [syndicationItems]="syndicationItems"></my-feed>
13 13
diff --git a/client/src/app/videos/recommendations/recommended-videos.component.html b/client/src/app/videos/recommendations/recommended-videos.component.html
index a40266028..17e19c083 100644
--- a/client/src/app/videos/recommendations/recommended-videos.component.html
+++ b/client/src/app/videos/recommendations/recommended-videos.component.html
@@ -1,9 +1,9 @@
1<div class="other-videos"> 1<div class="other-videos">
2 <ng-container *ngIf="hasVideos$ | async"> 2 <ng-container *ngIf="hasVideos$ | async">
3 <div class="title-page-container"> 3 <div class="title-page-container">
4 <div i18n class="title-page title-page-single"> 4 <h2 i18n class="title-page title-page-single">
5 Other videos 5 Other videos
6 </div> 6 </h2>
7 <div *ngIf="!playlist" class="title-page-autoplay" 7 <div *ngIf="!playlist" class="title-page-autoplay"
8 [ngbTooltip]="autoPlayNextVideoTooltip" placement="bottom-right auto" 8 [ngbTooltip]="autoPlayNextVideoTooltip" placement="bottom-right auto"
9 > 9 >
diff --git a/client/src/app/videos/video-list/video-overview.component.html b/client/src/app/videos/video-list/video-overview.component.html
index 999628de4..19d03b5c5 100644
--- a/client/src/app/videos/video-list/video-overview.component.html
+++ b/client/src/app/videos/video-list/video-overview.component.html
@@ -1,3 +1,4 @@
1<h1 class="sr-only" i18n>Discover</h1>
1<div class="margin-content"> 2<div class="margin-content">
2 3
3 <div class="no-results" i18n *ngIf="notResults">No results.</div> 4 <div class="no-results" i18n *ngIf="notResults">No results.</div>
@@ -8,9 +9,9 @@
8 <ng-container *ngFor="let overview of overviews"> 9 <ng-container *ngFor="let overview of overviews">
9 10
10 <div class="section videos" *ngFor="let object of overview.categories"> 11 <div class="section videos" *ngFor="let object of overview.categories">
11 <div class="section-title"> 12 <h1 class="section-title">
12 <a routerLink="/search" [queryParams]="{ categoryOneOf: [ object.category.id ] }">{{ object.category.label }}</a> 13 <a routerLink="/search" [queryParams]="{ categoryOneOf: [ object.category.id ] }">{{ object.category.label }}</a>
13 </div> 14 </h1>
14 15
15 <div class="video-wrapper" *ngFor="let video of buildVideos(object.videos)"> 16 <div class="video-wrapper" *ngFor="let video of buildVideos(object.videos)">
16 <my-video-miniature [video]="video" [fitWidth]="true" [user]="user" [displayVideoActions]="false"> 17 <my-video-miniature [video]="video" [fitWidth]="true" [user]="user" [displayVideoActions]="false">
@@ -19,9 +20,9 @@
19 </div> 20 </div>
20 21
21 <div class="section videos" *ngFor="let object of overview.tags"> 22 <div class="section videos" *ngFor="let object of overview.tags">
22 <div class="section-title"> 23 <h2 class="section-title">
23 <a routerLink="/search" [queryParams]="{ tagsOneOf: [ object.tag ] }">#{{ object.tag }}</a> 24 <a routerLink="/search" [queryParams]="{ tagsOneOf: [ object.tag ] }">#{{ object.tag }}</a>
24 </div> 25 </h2>
25 26
26 <div class="video-wrapper" *ngFor="let video of buildVideos(object.videos)"> 27 <div class="video-wrapper" *ngFor="let video of buildVideos(object.videos)">
27 <my-video-miniature [video]="video" [fitWidth]="true" [user]="user" [displayVideoActions]="false"> 28 <my-video-miniature [video]="video" [fitWidth]="true" [user]="user" [displayVideoActions]="false">
@@ -34,7 +35,7 @@
34 <a [routerLink]="[ '/video-channels', buildVideoChannelBy(object) ]"> 35 <a [routerLink]="[ '/video-channels', buildVideoChannelBy(object) ]">
35 <img [src]="buildVideoChannelAvatarUrl(object)" alt="Avatar" /> 36 <img [src]="buildVideoChannelAvatarUrl(object)" alt="Avatar" />
36 37
37 <div>{{ object.channel.displayName }}</div> 38 <h2 class="section-title">{{ object.channel.displayName }}</h2>
38 </a> 39 </a>
39 </div> 40 </div>
40 41
diff --git a/client/src/sass/include/_miniature.scss b/client/src/sass/include/_miniature.scss
index d82d78d58..976bbf4d6 100644
--- a/client/src/sass/include/_miniature.scss
+++ b/client/src/sass/include/_miniature.scss
@@ -124,7 +124,10 @@ $play-overlay-width: 18px;
124 margin-bottom: 15px; 124 margin-bottom: 15px;
125 display: flex; 125 display: flex;
126 justify-content: space-between; 126 justify-content: space-between;
127 border-top: 1px solid $separator-border-color; 127
128 &:not(h2) {
129 border-top: 1px solid $separator-border-color;
130 }
128 131
129 a { 132 a {
130 &:hover, &:focus:not(.focus-visible), &:active { 133 &:hover, &:focus:not(.focus-visible), &:active {