nodebb-theme-harmony 1.1.7 → 1.1.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "nodebb-theme-harmony",
3
- "version": "1.1.7",
3
+ "version": "1.1.9",
4
4
  "nbbpm": {
5
5
  "compatibility": "^3.3.0"
6
6
  },
package/scss/account.scss CHANGED
@@ -3,14 +3,6 @@
3
3
  }
4
4
  .account {
5
5
  margin-top: 200px;
6
- width: 100%;
7
- margin-left: auto;
8
- margin-right: auto;
9
-
10
- .avatar-wrapper {
11
- border: 4px solid white;
12
- border-radius: 50%;
13
- }
14
6
 
15
7
  @include media-breakpoint-up(md) {
16
8
  margin-top: 300px;
@@ -18,17 +10,11 @@
18
10
 
19
11
  .categories {
20
12
  [component="categories/category"] {
21
- .depth-1 {
22
- padding-left: 50px;
23
- }
24
- .depth-2 {
25
- padding-left: 100px;
26
- }
27
- .depth-3 {
28
- padding-left: 150px;
29
- }
30
- .depth-4 {
31
- padding-left: 150px;
13
+ $category-pad: 50;
14
+ @for $i from 1 through 6 {
15
+ .depth-#{$i} {
16
+ padding-left: #{$category-pad * $i}px;
17
+ }
32
18
  }
33
19
  }
34
20
  }
package/scss/chats.scss CHANGED
@@ -1,9 +1,5 @@
1
1
  // chats need a bit of css
2
2
 
3
- .page-user-chats #content {
4
- max-width: 100%;
5
- }
6
-
7
3
  .stacked-avatars {
8
4
  width: 32px;
9
5
  height: 32px;
@@ -18,6 +14,9 @@
18
14
  }
19
15
 
20
16
  body.page-user-chats {
17
+ #content {
18
+ max-width: 100%;
19
+ }
21
20
  overflow: hidden;
22
21
  [data-widget-area="footer"] {
23
22
  display: none;
package/scss/common.scss CHANGED
@@ -93,12 +93,6 @@ body:not(.page-user) {
93
93
  background-color: initial;
94
94
  }
95
95
 
96
- .skin-noskin {
97
- .sticky-tools .btn-link {
98
- color: $dark;
99
- }
100
- }
101
-
102
96
  .btn-link {
103
97
  &:hover, &.active {
104
98
  background-color: $btn-ghost-hover-color;
package/scss/harmony.scss CHANGED
@@ -9,7 +9,6 @@
9
9
  @import "status";
10
10
  @import "account";
11
11
  @import "groups";
12
- @import "flags";
13
12
  @import "modals";
14
13
 
15
14
  @import "modules/breadcrumbs";
package/scss/mixins.scss CHANGED
@@ -136,16 +136,6 @@
136
136
  }
137
137
 
138
138
  @include media-breakpoint-up(sm) {
139
- &.minimal {
140
- .post-footer, .timeline-event, [component="topic/quickreply/container"], .bookmarked {
141
- display: none !important;
142
- }
143
-
144
- [component="post/content"] {
145
- @include line-clamp(1);
146
- }
147
- }
148
-
149
139
  > [component="post"], .timeline-event, > [component="post/placeholder"] {
150
140
  border-left: 2px solid $border-color;
151
141
 
@@ -14,14 +14,9 @@ $gray-900: #212529 !default;
14
14
  $black: #000 !default;
15
15
 
16
16
  $blue: #0d6efd !default;
17
- // $indigo: #6610f2 !default;
18
- // $purple: #6f42c1 !default;
19
- // $pink: #d63384 !default;
20
17
  $red: #dc3545 !default;
21
- // $orange: #fd7e14 !default;
22
18
  $yellow: #ffc107 !default;
23
19
  $green: #198754 !default;
24
- // $teal: #20c997 !default;
25
20
  $cyan: #0dcaf0 !default;
26
21
 
27
22
  $primary: $blue !default;
@@ -47,7 +42,6 @@ $enable-caret: false;
47
42
  // disable smooth scroll, this makes window.scrollTo(0,0) in ajaxify.js take x milliseconds
48
43
  $enable-smooth-scroll: false;
49
44
 
50
- // used in site title
51
45
  $enable-shadows: true;
52
46
 
53
47
  $link-decoration: none;
package/scss/topic.scss CHANGED
@@ -1,9 +1,4 @@
1
1
  .page-topic {
2
- [component="topic/reply"], [component="topic/reply/locked"], [component="topic/reply/guest"] {
3
- font-size: 14px;
4
- line-height: 20px;
5
- }
6
-
7
2
  .topic {
8
3
  .posts-container {
9
4
  max-width: 960px;
@@ -28,15 +28,15 @@
28
28
  <div class="stat">
29
29
  <div class="align-items-center justify-content-center card card-header px-0 py-3 border-0 rounded-1 h-100">
30
30
  <span class="stat-label text-xs fw-semibold">[[global:reputation]]</span>
31
- <span class="human-readable-number fs-2 ff-secondary" title="{reputation}">{reputation}</span>
31
+ <span class="fs-2 ff-secondary" title="{reputation}">{humanReadableNumber(reputation)}</span>
32
32
  </div>
33
33
  </div>
34
34
  {{{ end }}}
35
35
  <div class="stat">
36
36
  <div class="align-items-center justify-content-center card card-header px-0 py-3 border-0 rounded-1 h-100">
37
37
  <span class="stat-label text-xs fw-semibold">[[user:profile_views]]</span>
38
- <span class="human-readable-number fs-2 ff-secondary" title="
39
- {profileviews}">{profileviews}</span>
38
+ <span class="fs-2 ff-secondary" title="
39
+ {profileviews}">{humanReadableNumber(profileviews)}</span>
40
40
  </div>
41
41
  </div>
42
42
 
@@ -6,11 +6,11 @@
6
6
  </div>
7
7
  <div class="d-flex flex-wrap gap-2 {{{ if config.theme.centerHeaderElements }}}justify-content-center{{{ end }}}">
8
8
  <span class="badge text-body border border-gray-300 stats text-xs">
9
- <span title="{totalTopicCount}" class="human-readable-number fw-bold">{totalTopicCount}</span>
9
+ <span title="{totalTopicCount}" class="fw-bold">{humanReadableNumber(totalTopicCount)}</span>
10
10
  <span class="text-lowercase fw-normal">[[global:topics]]</span>
11
11
  </span>
12
12
  <span class="badge text-body border border-gray-300 stats text-xs">
13
- <span title="{totalPostCount}" class="human-readable-number fw-bold">{totalPostCount}</span>
13
+ <span title="{totalPostCount}" class="fw-bold">{humanReadableNumber(totalPostCount)}</span>
14
14
  <span class="text-lowercase fw-normal">[[global:posts]]</span>
15
15
  </span>
16
16
  </div>
@@ -76,7 +76,7 @@
76
76
  </div>
77
77
  </form>
78
78
 
79
- <div class="overflow-auto" component="flag/history">
79
+ <div class="overflow-auto" component="flag/history" style="max-height: 30rem;">
80
80
  <h2 class="h6 fw-bold">[[flags:history]]</h2>
81
81
  {{{ if !history.length }}}
82
82
  <div class="alert alert-success text-center">[[flags:no-history]]</div>
@@ -14,7 +14,7 @@
14
14
  {{{ else }}}
15
15
  <a class="btn-ghost fw-semibold {{{ if ./selected }}}active{{{ end }}}" href="{config.relative_path}/notifications?filter={./filter}">
16
16
  <div class="flex-grow-1">{filters.name}</div>
17
- <span class="flex-shrink-0 text-xs human-readable-number" title="{./count}">{./count}</span>
17
+ <span class="flex-shrink-0 text-xs" title="{./count}">{humanReadableNumber(./count)}</span>
18
18
  </a>
19
19
  {{{ end }}}
20
20
  {{{ end }}}
@@ -1,4 +1,4 @@
1
- <div class="account">
1
+ <div class="account w-100 mx-auto">
2
2
  <div data-widget-area="header">
3
3
  {{{each widgets.header}}}
4
4
  {{widgets.header.html}}
@@ -22,7 +22,7 @@
22
22
  </div>
23
23
 
24
24
  <div class="d-flex flex-column flex-md-row gap-2 w-100 pb-4 mb-4 mt-2 border-bottom">
25
- <div {{{ if (allowProfilePicture && isSelfOrAdminOrGlobalModerator)}}}component="profile/change/picture"{{{ end }}} class="avatar-wrapper border-4 position-relative align-self-center align-self-md-start hover-parent" style="margin-top: -75px;">
25
+ <div {{{ if (allowProfilePicture && isSelfOrAdminOrGlobalModerator)}}}component="profile/change/picture"{{{ end }}} class="avatar-wrapper border border-white border-4 rounded-circle position-relative align-self-center align-self-md-start hover-parent" style="margin-top: -75px;">
26
26
  {buildAvatar(@value, "142px", true)}
27
27
  {{{ if (allowProfilePicture && isSelfOrAdminOrGlobalModerator)}}}
28
28
  <div component="profile/change/picture" class="d-none d-md-block pointer p-2 rounded-1 opacity-75 text-bg-light position-absolute top-50 start-50 translate-middle hover-visible">
@@ -11,50 +11,50 @@
11
11
  {{{ if template.account/downvoted }}}active{{{ end }}}
12
12
  {{{ if template.account/bookmarks }}}active{{{ end }}}">
13
13
  <div class="flex-grow-1">[[global:posts]]</div>
14
- <span class="flex-shrink-0 text-xs human-readable-number" title="{counts.posts}">{counts.posts}</span>
14
+ <span class="flex-shrink-0 text-xs" title="{counts.posts}">{humanReadableNumber(counts.posts)}</span>
15
15
  </a>
16
16
  <a href="{config.relative_path}/user/{userslug}/topics" class="btn-ghost fw-semibold
17
17
  {{{ if template.account/topics }}}active{{{ end }}}
18
18
  {{{ if template.account/watched }}}active{{{ end }}}
19
19
  {{{ if template.account/ignored }}}active{{{ end }}}">
20
20
  <div class="flex-grow-1">[[global:topics]]</div>
21
- <span class="flex-shrink-0 text-xs human-readable-number" title="{counts.topics}">{counts.topics}</span>
21
+ <span class="flex-shrink-0 text-xs" title="{counts.topics}">{humanReadableNumber(counts.topics)}</span>
22
22
  </a>
23
23
  <a href="{config.relative_path}/user/{userslug}/groups" class="btn-ghost fw-semibold
24
24
  {{{ if template.account/groups }}}active{{{ end }}}">
25
25
  <div class="flex-grow-1">[[global:header.groups]]</div>
26
- <span class="flex-shrink-0 text-xs human-readable-number" title="{counts.groups}">{counts.groups}</span>
26
+ <span class="flex-shrink-0 text-xs" title="{counts.groups}">{humanReadableNumber(counts.groups)}</span>
27
27
  </a>
28
28
 
29
29
  <a href="{config.relative_path}/user/{userslug}/followers" class="btn-ghost fw-semibold
30
30
  {{{ if template.account/followers }}}active{{{ end }}}">
31
31
  <div class="flex-grow-1">[[user:followers]]</div>
32
- <span class="flex-shrink-0 text-xs human-readable-number" title="{counts.followers}">{counts.followers}</span>
32
+ <span class="flex-shrink-0 text-xs" title="{counts.followers}">{humanReadableNumber(counts.followers)}</span>
33
33
  </a>
34
34
 
35
35
  <a href="{config.relative_path}/user/{userslug}/following" class="btn-ghost fw-semibold
36
36
  {{{ if template.account/following }}}active{{{ end }}}">
37
37
  <div class="flex-grow-1">[[user:following]]</div>
38
- <span class="flex-shrink-0 text-xs human-readable-number" title="{counts.following}">{counts.following}</span>
38
+ <span class="flex-shrink-0 text-xs" title="{counts.following}">{humanReadableNumber(counts.following)}</span>
39
39
  </a>
40
40
 
41
41
  {{{ if canEdit }}}
42
42
  <a href="{config.relative_path}/user/{userslug}/categories" class="btn-ghost fw-semibold
43
43
  {{{ if template.account/categories }}}active{{{ end }}}">
44
44
  <div class="flex-grow-1">[[user:watched_categories]]</div>
45
- <span class="flex-shrink-0 text-xs human-readable-number" title="{counts.categoriesWatched}">{counts.categoriesWatched}</span>
45
+ <span class="flex-shrink-0 text-xs" title="{counts.categoriesWatched}">{counts.categoriesWatched}</span>
46
46
  </a>
47
47
 
48
48
  <a href="{config.relative_path}/user/{userslug}/blocks" class="btn-ghost fw-semibold
49
49
  {{{ if template.account/blocks }}}active{{{ end }}}">
50
50
  <div class="flex-grow-1">[[user:blocked-users]]</div>
51
- <span class="flex-shrink-0 text-xs human-readable-number" title="{counts.blocks}">{counts.blocks}</span>
51
+ <span class="flex-shrink-0 text-xs" title="{counts.blocks}">{humanReadableNumber(counts.blocks)}</span>
52
52
  </a>
53
53
 
54
54
  <a href="{config.relative_path}/user/{userslug}/uploads" class="btn-ghost fw-semibold
55
55
  {{{ if template.account/uploads }}}active{{{ end }}}">
56
56
  <div class="flex-grow-1">[[global:uploads]]</div>
57
- <span class="flex-shrink-0 text-xs human-readable-number" title="{counts.uploaded}">{counts.uploaded}</span>
57
+ <span class="flex-shrink-0 text-xs" title="{counts.uploaded}">{humanReadableNumber(counts.uploaded)}</span>
58
58
  </a>
59
59
  {{{ end }}}
60
60
 
@@ -43,12 +43,12 @@
43
43
  <div class="d-flex col-lg-5 align-content-stretch">
44
44
  <div class="meta stats d-none d-lg-grid col-6 gap-1 pe-2 text-muted" style="grid-template-columns: 1fr 1fr;">
45
45
  <div class="card card-header border-0 p-2 overflow-hidden rounded-1 d-flex flex-column align-items-center">
46
- <span class="human-readable-number fs-5 ff-secondary lh-1" title="{./totalTopicCount}" data-toFixed="0">{./totalTopicCount}</span>
46
+ <span class="fs-5 ff-secondary lh-1" title="{./totalTopicCount}">{humanReadableNumber(./totalTopicCount, 0)}</span>
47
47
  <span class="d-none d-xl-flex text-lowercase text-xs">[[global:topics]]</span>
48
48
  <i class="d-xl-none fa fa-fw text-xs text-muted opacity-75 fa-list"></i>
49
49
  </div>
50
50
  <div class="card card-header border-0 p-2 overflow-hidden rounded-1 d-flex flex-column align-items-center">
51
- <span class="human-readable-number fs-5 ff-secondary lh-1" title="{./totalPostCount}" data-toFixed="0">{./totalPostCount}</span>
51
+ <span class="fs-5 ff-secondary lh-1" title="{./totalPostCount}">{humanReadableNumber(./totalPostCount, 0)}</span>
52
52
  <span class="d-none d-xl-flex text-lowercase text-xs">[[global:posts]]</span>
53
53
  <i class="d-xl-none fa fa-fw text-xs text-muted opacity-75 fa-message"></i>
54
54
  </div>
@@ -5,18 +5,18 @@
5
5
  </button>
6
6
  <button data-bs-toggle="tab" data-bs-target="#groups-members" class="btn-ghost fw-semibold">
7
7
  <div class="flex-grow-1">[[groups:members]]</div>
8
- <span class="flex-shrink-0 text-xs human-readable-number" title="{group.memberCount}">{group.memberCount}</span>
8
+ <span class="flex-shrink-0 text-xs" title="{group.memberCount}">{humanReadableNumber(group.memberCount)}</span>
9
9
  </button>
10
10
 
11
11
  {{{ if group.isOwner }}}
12
12
  <button data-bs-toggle="tab" data-bs-target="#groups-pending" class="btn-ghost fw-semibold">
13
13
  <div class="flex-grow-1">[[groups:details.pending]]</div>
14
- <span class="flex-shrink-0 text-xs human-readable-number" title="{group.pending.length}">{group.group.pending.length}</span>
14
+ <span class="flex-shrink-0 text-xs" title="{group.pending.length}">{humanReadableNumber(group.group.pending.length)}</span>
15
15
  </button>
16
16
 
17
17
  <button data-bs-toggle="tab" data-bs-target="#groups-invited" class="btn-ghost fw-semibold">
18
18
  <div class="flex-grow-1">[[groups:details.invited]]</div>
19
- <span class="flex-shrink-0 text-xs human-readable-number" title="{group.invited.length}">{group.group.invited.length}</span>
19
+ <span class="flex-shrink-0 text-xs" title="{group.invited.length}">{humanReadableNumber(group.group.invited.length)}</span>
20
20
  </button>
21
21
 
22
22
  <button data-bs-toggle="tab" data-bs-target="#groups-admin" class="btn-ghost fw-semibold">
@@ -1,6 +1,6 @@
1
1
  {{{each tags}}}
2
2
  <a href="{config.relative_path}/tags/{./valueEncoded}" data-tag="{./valueEscaped}" class="btn-ghost flex-column gap-0 align-items-start justify-content-start text-truncate p-2 ff-base">
3
3
  <div class="fw-semibold text-nowrap tag-item w-100 text-truncate">{./valueEscaped}</div>
4
- <div class="text-xs text-muted text-nowrap tag-topic-count">[[global:x-topics, {./score}]]</div>
4
+ <div class="text-xs text-muted text-nowrap tag-topic-count">[[global:x-topics, {formattedNumber(./score)}]]</div>
5
5
  </a>
6
6
  {{{end}}}
@@ -1,15 +1,15 @@
1
1
  <span class="badge text-body border border-gray-300 stats text-xs">
2
2
  <i class="fa fa-fw fa-pencil visible-xs-inline" title="[[global:posts]]"></i>
3
- <span component="topic/post-count" title="{postcount}" class="human-readable-number fw-bold">{postcount}</span>
3
+ <span component="topic/post-count" title="{postcount}" class="fw-bold">{humanReadableNumber(postcount)}</span>
4
4
  <span class="hidden-xs text-lowercase fw-normal">[[global:posts]]</span>
5
5
  </span>
6
6
  <span class="badge text-body border border-gray-300 stats text-xs">
7
7
  <i class="fa fa-fw fa-user visible-xs-inline" title="[[global:posters]]"></i>
8
- <span title="{postercount}" class="human-readable-number fw-bold">{postercount}</span>
8
+ <span title="{postercount}" class="fw-bold">{humanReadableNumber(postercount)}</span>
9
9
  <span class="hidden-xs text-lowercase fw-normal">[[global:posters]]</span>
10
10
  </span>
11
11
  <span class="badge text-body border border-gray-300 stats text-xs">
12
12
  <i class="fa fa-fw fa-eye visible-xs-inline" title="[[global:views]]"></i>
13
- <span class="human-readable-number fw-bold" title="{viewcount}">{viewcount}</span>
13
+ <span class="fw-bold" title="{viewcount}">{humanReadableNumber(viewcount)}</span>
14
14
  <span class="hidden-xs text-lowercase fw-normal">[[global:views]]</span>
15
15
  </span>
@@ -78,18 +78,18 @@
78
78
  <div class="meta stats d-none d-lg-grid col-6 gap-1 pe-2 text-muted" style="grid-template-columns: 1fr 1fr 1fr;">
79
79
  {{{ if !reputation:disabled }}}
80
80
  <div class="stats-votes card card-header border-0 p-2 overflow-hidden rounded-1 d-flex flex-column align-items-center">
81
- <span class="human-readable-number fs-5 ff-secondary lh-1" title="{./votes}" data-toFixed="0">{./votes}</span>
81
+ <span class="fs-5 ff-secondary lh-1" title="{./votes}">{humanReadableNumber(./votes, 0)}</span>
82
82
  <span class="d-none d-xl-flex text-lowercase text-xs">[[global:votes]]</span>
83
83
  <i class="d-xl-none fa fa-fw text-xs text-muted opacity-75 fa-chevron-up"></i>
84
84
  </div>
85
85
  {{{ end }}}
86
86
  <div class="stats-postcount card card-header border-0 p-2 overflow-hidden rounded-1 d-flex flex-column align-items-center">
87
- <span class="human-readable-number fs-5 ff-secondary lh-1" title="{./postcount}" data-toFixed="0">{./postcount}</span>
87
+ <span class="fs-5 ff-secondary lh-1" title="{./postcount}">{humanReadableNumber(./postcount, 0)}</span>
88
88
  <span class="d-none d-xl-flex text-lowercase text-xs">[[global:posts]]</span>
89
89
  <i class="d-xl-none fa fa-fw text-xs text-muted opacity-75 fa-message"></i>
90
90
  </div>
91
91
  <div class="stats-viewcount card card-header border-0 p-2 overflow-hidden rounded-1 d-flex flex-column align-items-center">
92
- <span class="human-readable-number fs-5 ff-secondary lh-1" title="{./viewcount}" data-toFixed="0">{./viewcount}</span>
92
+ <span class="fs-5 ff-secondary lh-1" title="{./viewcount}">{humanReadableNumber(./viewcount, 0)}</span>
93
93
  <span class="d-none d-xl-flex text-lowercase text-xs">[[global:views]]</span>
94
94
  <i class="d-xl-none fa fa-fw text-xs text-muted opacity-75 fa-eye"></i>
95
95
  </div>
@@ -18,19 +18,19 @@
18
18
 
19
19
  {{{ if section_sort-reputation }}}
20
20
  <div class="text-xs text-muted text-truncate">
21
- <span class="formatted-number">{./reputation}</span>
21
+ <span>{formattedNumber(./reputation)}</span>
22
22
  </div>
23
23
  {{{ end }}}
24
24
 
25
25
  {{{ if section_sort-posts }}}
26
26
  <div class="text-xs text-muted text-truncate">
27
- <span class="formatted-number">{./postcount}</span>
27
+ <span>{formattedNumber(./postcount)}</span>
28
28
  </div>
29
29
  {{{ end }}}
30
30
 
31
31
  {{{ if section_flagged }}}
32
32
  <div class="text-xs text-muted text-truncate">
33
- <span class="formatted-number">{./flags}</span>
33
+ <span>{formattedNumber(./flags)}</span>
34
34
  </div>
35
35
  {{{ end }}}
36
36
  </div>
@@ -91,11 +91,11 @@
91
91
  </div>
92
92
  <div>
93
93
  <span class="badge text-body border border-gray-300 stats text-xs">
94
- <span title="{posts.user.postcount}" class="human-readable-number fw-bold">{posts.user.postcount}</span>
94
+ <span title="{posts.user.postcount}" class="fw-bold">{humanReadableNumber(posts.user.postcount)}</span>
95
95
  <span class="text-lowercase fw-normal">[[global:posts]]</span>
96
96
  </span>
97
97
  <span class="badge text-body border border-gray-300 stats text-xs">
98
- <span title="{posts.user.reputation}" class="human-readable-number fw-bold">{posts.user.reputation}</span>
98
+ <span title="{posts.user.reputation}" class="fw-bold">{humanReadableNumber(posts.user.reputation)}</span>
99
99
  <span class="text-lowercase fw-normal">[[global:reputation]]</span>
100
100
  </span>
101
101
  <span class="badge text-body border border-gray-300 stats text-xs">
package/scss/flags.scss DELETED
@@ -1,5 +0,0 @@
1
- .page-flags {
2
- [component="flag/history"] {
3
- max-height: 30rem;
4
- }
5
- }