nodebb-theme-harmony 1.0.0-beta.1 → 1.0.0-beta.100

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.
Files changed (154) hide show
  1. package/README.md +12 -1
  2. package/languages/en-GB/harmony.json +5 -1
  3. package/library.js +25 -25
  4. package/package.json +1 -1
  5. package/plugin.json +0 -1
  6. package/public/harmony.js +163 -29
  7. package/public/settings.js +1 -0
  8. package/screenshots/categories.png +0 -0
  9. package/screenshots/recent.png +0 -0
  10. package/screenshots/topic.png +0 -0
  11. package/scss/account.scss +1 -1
  12. package/scss/chats.scss +59 -26
  13. package/scss/common.scss +84 -10
  14. package/scss/flags.scss +5 -0
  15. package/scss/groups.scss +2 -2
  16. package/scss/harmony.scss +4 -0
  17. package/scss/mixins.scss +7 -3
  18. package/scss/modals.scss +6 -1
  19. package/scss/modules/bottom-sheet.scss +2 -2
  20. package/scss/modules/composer.scss +0 -4
  21. package/scss/modules/cover.scss +1 -11
  22. package/scss/modules/filters.scss +8 -0
  23. package/scss/modules/nprogress.scss +80 -0
  24. package/scss/modules/paginator.scss +24 -0
  25. package/scss/modules/topic-navigator.scss +16 -42
  26. package/scss/modules/topics-list.scss +32 -17
  27. package/scss/modules/user-menu.scss +6 -0
  28. package/scss/overrides.scss +4 -1
  29. package/scss/sidebar.scss +61 -8
  30. package/scss/topic.scss +30 -13
  31. package/templates/account/blocks.tpl +35 -40
  32. package/templates/account/categories.tpl +47 -29
  33. package/templates/account/consent.tpl +66 -10
  34. package/templates/account/edit/password.tpl +25 -30
  35. package/templates/account/edit/username.tpl +21 -26
  36. package/templates/account/edit.tpl +105 -116
  37. package/templates/account/followers.tpl +12 -19
  38. package/templates/account/following.tpl +12 -18
  39. package/templates/account/groups.tpl +12 -17
  40. package/templates/account/info.tpl +178 -206
  41. package/templates/account/posts.tpl +31 -36
  42. package/templates/account/profile.tpl +66 -73
  43. package/templates/account/sessions.tpl +8 -30
  44. package/templates/account/settings.tpl +222 -203
  45. package/templates/account/theme.tpl +35 -26
  46. package/templates/account/topics.tpl +36 -38
  47. package/templates/account/uploads.tpl +33 -40
  48. package/templates/admin/plugins/harmony.tpl +17 -3
  49. package/templates/categories.tpl +3 -6
  50. package/templates/category.tpl +13 -14
  51. package/templates/chats.tpl +9 -10
  52. package/templates/flags/detail.tpl +160 -193
  53. package/templates/flags/list.tpl +4 -70
  54. package/templates/footer.tpl +2 -2
  55. package/templates/groups/details.tpl +22 -19
  56. package/templates/groups/list.tpl +1 -1
  57. package/templates/groups/members.tpl +0 -2
  58. package/templates/header.tpl +2 -2
  59. package/templates/login.tpl +4 -4
  60. package/templates/notifications.tpl +5 -5
  61. package/templates/partials/account/admin-menu.tpl +9 -9
  62. package/templates/partials/account/category-item.tpl +14 -17
  63. package/templates/partials/account/footer.tpl +3 -0
  64. package/templates/partials/account/header.tpl +78 -81
  65. package/templates/partials/account/session-list.tpl +18 -0
  66. package/templates/partials/account/sidebar-left.tpl +31 -25
  67. package/templates/partials/breadcrumbs.tpl +6 -6
  68. package/templates/partials/buttons/newTopic.tpl +1 -1
  69. package/templates/partials/categories/item.tpl +32 -28
  70. package/templates/partials/categories/lastpost.tpl +7 -7
  71. package/templates/partials/category/filter-dropdown-content.tpl +37 -0
  72. package/templates/partials/{category-selector-content.tpl → category/selector-dropdown-content.tpl} +7 -7
  73. package/templates/partials/category/sort.tpl +22 -7
  74. package/templates/partials/category/subcategory.tpl +2 -3
  75. package/templates/partials/category/tags.tpl +0 -2
  76. package/templates/partials/category/tools.tpl +28 -25
  77. package/templates/partials/category/watch.tpl +39 -6
  78. package/templates/partials/chats/dropdown.tpl +4 -1
  79. package/templates/partials/chats/message-window.tpl +10 -8
  80. package/templates/partials/chats/message.tpl +5 -7
  81. package/templates/partials/chats/options.tpl +14 -6
  82. package/templates/partials/chats/recent_room.tpl +41 -32
  83. package/templates/partials/cookie-consent.tpl +5 -5
  84. package/templates/partials/flags/bulk-actions.tpl +9 -0
  85. package/templates/partials/flags/filters.tpl +163 -78
  86. package/templates/partials/flags/results.tpl +38 -0
  87. package/templates/partials/groups/admin.tpl +4 -4
  88. package/templates/partials/groups/badge.tpl +1 -1
  89. package/templates/partials/groups/list.tpl +2 -2
  90. package/templates/partials/groups/memberlist.tpl +1 -1
  91. package/templates/partials/groups/sidebar-left.tpl +10 -10
  92. package/templates/partials/header/brand.tpl +9 -2
  93. package/templates/partials/mobile-footer.tpl +69 -61
  94. package/templates/partials/notifications_list.tpl +11 -8
  95. package/templates/partials/paginator.tpl +11 -9
  96. package/templates/partials/post_bar.tpl +26 -24
  97. package/templates/partials/posts_list_item.tpl +5 -5
  98. package/templates/partials/quick-search-results.tpl +3 -3
  99. package/templates/partials/search-filters.tpl +184 -0
  100. package/templates/partials/search-results.tpl +28 -35
  101. package/templates/partials/sidebar/chats.tpl +28 -36
  102. package/templates/partials/sidebar/drafts.tpl +45 -34
  103. package/templates/partials/sidebar/logged-in-menu.tpl +5 -5
  104. package/templates/partials/sidebar/logged-out-menu.tpl +1 -1
  105. package/templates/partials/sidebar/notifications.tpl +33 -12
  106. package/templates/partials/sidebar/search-mobile.tpl +1 -1
  107. package/templates/partials/sidebar/search.tpl +1 -1
  108. package/templates/partials/sidebar/user-menu.tpl +38 -29
  109. package/templates/partials/sidebar-left.tpl +14 -11
  110. package/templates/partials/sidebar-right.tpl +1 -3
  111. package/templates/partials/skin-switcher.tpl +3 -3
  112. package/templates/partials/tags/filter-dropdown-content.tpl +34 -0
  113. package/templates/partials/tags_list.tpl +4 -4
  114. package/templates/partials/topic/browsing-users.tpl +0 -2
  115. package/templates/partials/topic/event.tpl +1 -1
  116. package/templates/partials/topic/navigation-post.tpl +5 -9
  117. package/templates/partials/topic/navigator-mobile.tpl +62 -0
  118. package/templates/partials/topic/navigator.tpl +21 -17
  119. package/templates/partials/topic/post-editor.tpl +0 -2
  120. package/templates/partials/topic/post-menu-list.tpl +60 -62
  121. package/templates/partials/topic/post-menu.tpl +16 -11
  122. package/templates/partials/topic/post.tpl +43 -25
  123. package/templates/partials/topic/quickreply.tpl +7 -7
  124. package/templates/partials/topic/reply-button.tpl +3 -3
  125. package/templates/partials/topic/sort.tpl +17 -5
  126. package/templates/partials/topic/tools.tpl +2 -2
  127. package/templates/partials/topic/topic-menu-list.tpl +22 -24
  128. package/templates/partials/topic/watch.tpl +42 -9
  129. package/templates/partials/topic-filters.tpl +6 -3
  130. package/templates/partials/topic-list-bar.tpl +50 -46
  131. package/templates/partials/topic-terms.tpl +6 -3
  132. package/templates/partials/topics_list.tpl +85 -93
  133. package/templates/partials/userFilter-placeholders.tpl +5 -0
  134. package/templates/partials/users/filter-dropdown-content.tpl +23 -0
  135. package/templates/partials/users/item.tpl +25 -27
  136. package/templates/partials/users_list.tpl +1 -1
  137. package/templates/popular.tpl +3 -1
  138. package/templates/post-queue.tpl +166 -0
  139. package/templates/recent.tpl +3 -2
  140. package/templates/register.tpl +4 -4
  141. package/templates/search.tpl +39 -177
  142. package/templates/tags.tpl +3 -3
  143. package/templates/top.tpl +3 -1
  144. package/templates/topic.tpl +74 -68
  145. package/templates/unread.tpl +3 -1
  146. package/templates/users.tpl +7 -3
  147. package/templates/modules/usercard.tpl +0 -39
  148. package/templates/partials/acceptTos.tpl +0 -11
  149. package/templates/partials/category-filter-content.tpl +0 -30
  150. package/templates/partials/category-filter-right.tpl +0 -5
  151. package/templates/partials/category-filter.tpl +0 -3
  152. package/templates/partials/category-selector-right.tpl +0 -5
  153. package/templates/partials/category-selector.tpl +0 -3
  154. package/templates/partials/slideout-menu.tpl +0 -6
package/scss/harmony.scss CHANGED
@@ -9,6 +9,7 @@
9
9
  @import "status";
10
10
  @import "account";
11
11
  @import "groups";
12
+ @import "flags";
12
13
  @import "modals";
13
14
 
14
15
  @import "modules/breadcrumbs";
@@ -19,5 +20,8 @@
19
20
  @import "modules/composer";
20
21
  @import "modules/topics-list";
21
22
  @import "modules/cover";
23
+ @import "modules/nprogress";
24
+ @import "modules/paginator";
25
+ @import "modules/filters";
22
26
 
23
27
  @import "skins";
package/scss/mixins.scss CHANGED
@@ -124,9 +124,13 @@
124
124
  display: none;
125
125
  }
126
126
 
127
- .timeline-event {
128
- .timeline-text.timeago {
129
- display: none;
127
+
128
+ [component="topic/event"], [component="topic/necro-post"] {
129
+ &.timeline-event {
130
+ .timeline-text {
131
+ line-height: 16px;
132
+ font-size: 0.75rem;
133
+ }
130
134
  }
131
135
  }
132
136
  }
package/scss/modals.scss CHANGED
@@ -1,4 +1,9 @@
1
1
  .tool-modal {
2
2
  bottom: $spacer * 3;
3
3
  right: $spacer * 4;
4
- }
4
+
5
+ @include media-breakpoint-down(md) {
6
+ right: $spacer;
7
+ left: $spacer;
8
+ }
9
+ }
@@ -1,5 +1,5 @@
1
1
  .bottom-sheet {
2
- @include media-breakpoint-down(sm) {
2
+ @include media-breakpoint-down(md) {
3
3
  .dropdown-menu {
4
4
  display: block;
5
5
  visibility: hidden;
@@ -8,7 +8,7 @@
8
8
  inset: auto 0 0 0!important;
9
9
 
10
10
  margin: 0 -1px -1px -1px;
11
- padding: 0 5px 4rem 5px!important;
11
+ padding: $spacer * 0.25 !important;
12
12
  max-height: 60%;
13
13
 
14
14
  box-shadow: 0 2px 6px rgba(0,0,0,0.35);
@@ -6,10 +6,6 @@ $composer-bg: $body-bg !default;
6
6
  background-color: $bg !important;
7
7
  }
8
8
 
9
- .composer {
10
- z-index: 3 !important;
11
- }
12
-
13
9
  .skin-noskin {
14
10
  // only using colors when there is no bootswatch skin applied
15
11
  $composer-color: $secondary;
@@ -12,12 +12,11 @@
12
12
 
13
13
  &:hover {
14
14
  .controls {
15
- opacity: 0.8;
15
+ opacity: 1;
16
16
  }
17
17
  }
18
18
 
19
19
  .controls {
20
- text-align: center;
21
20
  height: 200px;
22
21
  line-height: 200px;
23
22
  opacity: 0;
@@ -28,15 +27,6 @@
28
27
  > * {
29
28
  pointer-events: all;
30
29
  }
31
-
32
- .fa {
33
- color: white;
34
- background-color: #333;
35
- opacity: 1;
36
- margin: 15px;
37
- padding: 5px;
38
- border-radius: 4px;
39
- }
40
30
  }
41
31
 
42
32
  &.active {
@@ -0,0 +1,8 @@
1
+ [component="search/filters"], [component="flags/filters"] {
2
+ .filter-btn {
3
+ border-color: $gray-300!important;
4
+ &.active-filter {
5
+ border-color: $primary!important;
6
+ }
7
+ }
8
+ }
@@ -0,0 +1,80 @@
1
+ #nprogress {
2
+ pointer-events: none;
3
+ }
4
+
5
+ $nprogress-color: $primary;
6
+
7
+ #nprogress .bar {
8
+ background: $nprogress-color;
9
+ position: fixed;
10
+ z-index: 1031;
11
+ top: 0;
12
+ left: 0;
13
+ width: 100%;
14
+ height: 2px;
15
+ }
16
+
17
+ #nprogress .peg {
18
+ display: block;
19
+ position: absolute;
20
+ right: 0px;
21
+ width: 100px;
22
+ height: 100%;
23
+ box-shadow: 0 0 10px $nprogress-color, 0 0 5px $nprogress-color;
24
+ opacity: 1.0;
25
+
26
+ -webkit-transform: rotate(3deg) translate(0px, -4px);
27
+ -ms-transform: rotate(3deg) translate(0px, -4px);
28
+ transform: rotate(3deg) translate(0px, -4px);
29
+ }
30
+
31
+ #nprogress .spinner {
32
+ display: none;
33
+ position: fixed;
34
+ z-index: 1031;
35
+ top: 15px;
36
+ right: 15px;
37
+ }
38
+
39
+ @include media-breakpoint-down(sm) {
40
+ #nprogress .spinner {
41
+ bottom: 15px;
42
+ right: 15px;
43
+ top: initial;
44
+ }
45
+ }
46
+
47
+
48
+ #nprogress .spinner-icon {
49
+ width: 18px;
50
+ height: 18px;
51
+ box-sizing: border-box;
52
+
53
+ border: solid 2px transparent;
54
+ border-top-color: $nprogress-color;
55
+ border-left-color: $nprogress-color;
56
+ border-radius: 50%;
57
+
58
+ -webkit-animation: nprogress-spinner 400ms linear infinite;
59
+ animation: nprogress-spinner 400ms linear infinite;
60
+ }
61
+
62
+ .nprogress-custom-parent {
63
+ overflow: hidden;
64
+ position: relative;
65
+ }
66
+
67
+ .nprogress-custom-parent #nprogress .spinner,
68
+ .nprogress-custom-parent #nprogress .bar {
69
+ position: absolute;
70
+ }
71
+
72
+ @-webkit-keyframes nprogress-spinner {
73
+ 0% { -webkit-transform: rotate(0deg); }
74
+ 100% { -webkit-transform: rotate(360deg); }
75
+ }
76
+ @keyframes nprogress-spinner {
77
+ 0% { transform: rotate(0deg); }
78
+ 100% { transform: rotate(360deg); }
79
+ }
80
+
@@ -0,0 +1,24 @@
1
+ .skin-noskin [component="pagination"] {
2
+ .page-item.active:not(.disabled) .page-link {
3
+ color: $body-color;
4
+ background-color: $gray-300;
5
+ border-color: $gray-300;
6
+ }
7
+
8
+ .page-item:not(.disabled):hover .page-link {
9
+ color: $body-color;
10
+ }
11
+ }
12
+
13
+ [component="pagination"] {
14
+ .page-item.active:not(.disabled) .page-link {
15
+ color: $pagination-active-color;
16
+ }
17
+ .page-item:not(.disabled):hover .page-link {
18
+ color: $pagination-hover-color;
19
+ background-color: $pagination-hover-bg;
20
+ }
21
+ .page-item:not(.disabled) .page-link {
22
+ color: $body-color;
23
+ }
24
+ }
@@ -1,59 +1,33 @@
1
- body:not(.page-topic) [component="topic/navigator"] {
2
- display: none!important;
3
- }
4
-
5
- [component="topic/navigator"] {
6
- max-height: calc(200px + (2rem * 4));
7
- user-select: none;
8
-
9
- .track {
10
- width: 2px;
11
- background-color: mix($dark, $light, 10%);
12
-
13
- .handle {
1
+ .topic .pagination-block {
2
+ min-width: 150px;
3
+ .scroller-container {
4
+ left: 10px;
5
+ height: 300px;
6
+ border-left: 2px solid $border-color;
7
+
8
+ .scroller-thumb {
9
+ left: -5px;
10
+ &:not(.active) {
11
+ transition: top 100ms linear;
12
+ }
14
13
  cursor: grab;
15
- transition: $transition-base;
16
-
17
- &:active {
18
- transition: none;
14
+ &.active {
19
15
  cursor: grabbing;
20
16
  }
21
-
22
- .meta {
23
- top: -8px;
24
- left: calc($spacer + 8px);
25
- font-size: 13px;
26
- }
27
- }
28
-
29
- .knob {
30
- width: 16px;
31
- height: 16px;
32
- background-color: $link-color;
33
- margin-left: 1px;
34
17
  }
35
18
 
36
19
  .unread {
37
- width: 2px;
20
+ width: 1px;
38
21
  height: 0; // initial
39
22
  bottom: 0;
40
23
  background: $primary;
41
24
  transition: $transition-base;
25
+ left: -1px;
42
26
 
43
27
  .meta {
44
- left: calc($spacer + 8px);
28
+ left: 5px;
45
29
  font-size: 13px;
46
30
  }
47
31
  }
48
32
  }
49
- }
50
-
51
- .sidebar.open {
52
- [component="topic/navigator"] {
53
- align-self: flex-start;
54
- }
55
-
56
- [component="topic/navigator"].d-sm-flex.mt-auto + .mt-auto {
57
- margin-top: 0 !important;
58
- }
59
33
  }
@@ -1,20 +1,35 @@
1
- .topic-list {
2
- overflow-x: hidden!important;
3
- }
4
- [component="category/topic"] {
5
- &.selected {
6
- [component="topic/select"] {
7
- color: $success!important;
1
+ ul.topics-list, ul.categories-list {
2
+ li {
3
+ &.deleted {
4
+ opacity: 0.6;
5
+ .meta { display: none!important; }
8
6
  }
9
- }
10
- .lastpost .post-content {
11
- p { margin-bottom: 0; }
12
- }
13
7
 
14
- &.unread .title {
15
- color: $link-color;
16
- }
17
- .ui-sortable-handle {
18
- cursor: move;
8
+ &.selected {
9
+ background-color: mix($body-bg, $body-color, 90%);
10
+ [component="topic/select"] {
11
+ color: $success!important;
12
+ }
13
+ }
14
+ p {
15
+ margin: 0 !important;
16
+ }
17
+
18
+ // all other skins use link-color for unread titles
19
+ &.unread .title {
20
+ color: $link-color;
21
+ }
22
+
23
+ .ui-sortable-handle {
24
+ cursor: move;
25
+ }
26
+
27
+ // if only one thumb don't display
28
+ [data-numthumbs="1"] { display: none; }
19
29
  }
20
- }
30
+ }
31
+
32
+ // on default skin use primary color for unread titles
33
+ .skin-noskin ul.topics-list li.unread .title {
34
+ color: $primary;
35
+ }
@@ -2,4 +2,10 @@
2
2
  [component="header/profilelink"] > div, .user-status > div {
3
3
  min-width: 1.25em; // match fontawesome fixed width
4
4
  }
5
+ .user-status i.fa-check {
6
+ display: none;
7
+ }
8
+ .user-status.selected i.fa-check {
9
+ display: block;
10
+ }
5
11
  }
@@ -39,6 +39,8 @@ $text-muted: $gray-600 !default;
39
39
  $border-color: $gray-200 !default;
40
40
  $link-color: shade-color($blue, 20%) !default;
41
41
 
42
+ $btn-ghost-hover-color: mix($light, $dark, 90%);
43
+
42
44
  // no caret on dropdown-toggle
43
45
  $enable-caret: false;
44
46
 
@@ -53,8 +55,9 @@ $link-hover-decoration: underline;
53
55
 
54
56
  // Custom fonts
55
57
  $font-family-sans-serif: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", "Liberation Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
56
- $font-family-secondary: "Poppins" !default;
58
+ $font-family-secondary: "Poppins", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", "Liberation Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji" !default;
57
59
  $font-weight-semibold: 500 !default;
60
+ $small-font-size: 0.875rem !default;
58
61
 
59
62
  $breadcrumb-divider: quote("→");
60
63
  $breadcrumb-divider-color: $gray-500 !default;
package/scss/sidebar.scss CHANGED
@@ -1,10 +1,10 @@
1
1
  .skin-noskin {
2
2
  // only using colors when there is no bootswatch skin applied
3
- nav.sidebar, .bottombar {
3
+ nav.sidebar, .bottombar-nav {
4
4
  color: $secondary !important;
5
5
  background-color: $light !important;
6
6
  }
7
- .bottombar {
7
+ .bottombar-nav {
8
8
  .dropdown-menu {
9
9
  color: $secondary !important;
10
10
  background-color: $light !important;
@@ -13,7 +13,7 @@
13
13
  }
14
14
 
15
15
  .sidebar {
16
- $hover-color: mix($light, $dark, 90);
16
+ $hover-color: mix($light, $dark, 90%);
17
17
 
18
18
  @include media-breakpoint-up(lg) {
19
19
  &.open {
@@ -45,11 +45,17 @@
45
45
  }
46
46
 
47
47
  .nav-link {
48
+ @extend .ff-secondary;
48
49
  padding: 0;
49
50
  &.active {
50
51
  background-color: $hover-color;
51
52
  }
52
53
  }
54
+ .nav-item {
55
+ .dropdown-menu .dropdown-item {
56
+ @extend .rounded-1;
57
+ }
58
+ }
53
59
  #user_dropdown .avatar {
54
60
  margin: 2px 0; // fixes the avatar so its height is same as the icons on right sidebar
55
61
  }
@@ -76,7 +82,7 @@
76
82
  .chats-dropdown, .notifications-dropdown, .drafts-dropdown {
77
83
  min-width: 300px;
78
84
  width: 300px;
79
- ul {
85
+ .list-container {
80
86
  max-height: 400px;
81
87
  overflow-y: auto;
82
88
  }
@@ -87,7 +93,8 @@
87
93
  line-height: 12px;
88
94
  &.visible-open {
89
95
  font-size:12px;
90
- line-height: 16px;
96
+ line-height: 12px;
97
+ font-weight: normal;
91
98
  }
92
99
  }
93
100
 
@@ -97,7 +104,22 @@
97
104
  }
98
105
 
99
106
  .bottombar {
100
- z-index: $zindex-dropdown;
107
+ transition: bottom 150ms linear;
108
+
109
+ .pagination-block {
110
+ .scroller-container {
111
+ border-right: 3px solid;
112
+ margin-right: 5.5px;
113
+ .scroller-thumb {
114
+ right: -6px;
115
+ padding-right: 15px;
116
+ margin-right: -15px;
117
+ }
118
+ }
119
+ }
120
+ }
121
+
122
+ .bottombar-nav {
101
123
  .nav-text {
102
124
  font-size: 1rem;
103
125
  color: $body-color;
@@ -113,7 +135,38 @@
113
135
  font-size: 9px;
114
136
  line-height: 12px;
115
137
  }
116
- .search.bottom-sheet .dropdown-menu {
117
- max-height: 100%;
138
+
139
+ .navigation-dropdown, .user-dropdown {
140
+ > li {
141
+ > a, .dropdown-item {
142
+ padding: 10px 20px!important;
143
+ }
144
+ }
145
+ left: 0!important;
146
+ right: 0!important;
147
+ bottom: $spacer!important;
148
+ box-shadow: none!important;
149
+ max-height: 60vh!important;
150
+ overflow: auto!important;
151
+ }
152
+ .search-dropdown .quick-search-results {
153
+ max-height: 225px!important;
154
+ overflow-y: auto!important;
155
+ }
156
+ .search-dropdown, .chats-dropdown, .notifications-dropdown, .drafts-dropdown {
157
+ left: 0 !important;
158
+ right: 0 !important;
159
+ bottom: $spacer * 0.7 !important;
160
+ box-shadow: none!important;
161
+
162
+ border-left: 0;
163
+ border-right: 0;
164
+ border-bottom: 0;
165
+ border-radius: 0;
166
+
167
+ .list-container {
168
+ max-height: 60vh!important;
169
+ overflow-y: auto!important;
170
+ }
118
171
  }
119
172
  }
package/scss/topic.scss CHANGED
@@ -1,3 +1,5 @@
1
+ .pagination-block { display: none; }
2
+
1
3
  .page-topic {
2
4
  [component="topic/title"] {
3
5
  font-size: 28px;
@@ -14,21 +16,10 @@
14
16
  line-height: 20px;
15
17
  }
16
18
 
17
- .action-bar {
18
- .dropdown-toggle::after {
19
- border: none;
20
- font-family: "FontAwesome";
21
- content: "\f078";
22
- color: tint-color($primary, 40%);
23
-
24
- position: relative;
25
- top: 2px;
26
- }
27
- }
28
-
29
19
  .topic {
30
20
  .posts {
31
21
  max-width: 960px;
22
+ width: 960px;
32
23
  // fixes code blocks pushing content out on mobile
33
24
  @include media-breakpoint-down(md) {
34
25
  max-width: calc(100vw - $grid-gutter-width);
@@ -49,11 +40,13 @@
49
40
  }
50
41
 
51
42
  [component="post"] {
52
- &.deleted {
43
+ &.deleted .post-container {
53
44
  opacity: .5;
54
45
  }
55
46
 
56
47
  [component="post/content"] {
48
+ @include fix-lists();
49
+
57
50
  pre {
58
51
  max-height: calc($font-size-base * 24);
59
52
  }
@@ -67,6 +60,17 @@
67
60
  [component="post/reply-count"] {
68
61
  font-size: $font-size-base * .75;
69
62
  }
63
+
64
+ [component="post/upvote"], [component="post/downvote"] {
65
+ &.upvoted, &.downvoted {
66
+ background-color: lighten($btn-ghost-hover-color, 5%);
67
+
68
+ &:hover {
69
+ background-color: $btn-ghost-hover-color;
70
+
71
+ }
72
+ }
73
+ }
70
74
  }
71
75
  }
72
76
 
@@ -106,6 +110,15 @@
106
110
  }
107
111
  }
108
112
  }
113
+
114
+ .pagination-block {
115
+ display: block;
116
+ transition: opacity 250ms ease-in;
117
+ opacity: 0;
118
+ &.ready {
119
+ opacity: 1;
120
+ }
121
+ }
109
122
  }
110
123
 
111
124
  @include media-breakpoint-up(sm) {
@@ -115,6 +128,10 @@
115
128
  [component="post/actions"] {
116
129
  opacity: 0;
117
130
  transition: $transition-fade;
131
+
132
+ &:has([aria-expanded="true"]) {
133
+ opacity: 1;
134
+ }
118
135
  }
119
136
 
120
137
  &:hover {
@@ -1,45 +1,40 @@
1
- <div class="account">
2
- <!-- IMPORT partials/account/header.tpl -->
3
- <div class="d-flex flex-column flex-md-row">
4
- <!-- IMPORT partials/account/sidebar-left.tpl -->
5
- <div class="flex-1 ps-md-2 ps-lg-5" style="min-width: 0;">
6
- <div class="d-flex justify-content-between mb-3">
7
- <h3 class="fw-semibold fs-5">[[pages:account/blocks, {username}]]</h3>
8
- <div class="justify-content-end">
9
- <div class="dropdown">
10
- <div class="input-group">
11
- <input class="form-control form-control-sm" type="text" id="user-search" placeholder="[[users:enter_username]]" data-bs-toggle="dropdown" autocomplete="off"/>
12
- <button class="btn btn-primary btn-sm" type="button">
13
- <i class="fa fa-search"></i>
14
- </button>
15
- </div>
1
+ <!-- IMPORT partials/account/header.tpl -->
2
+ <div class="d-flex justify-content-between mb-3">
3
+ <h3 class="fw-semibold fs-5">[[pages:account/blocks, {username}]]</h3>
4
+ <div class="justify-content-end">
5
+ <div class="dropdown">
6
+ <div class="input-group">
7
+ <input class="form-control form-control-sm" type="text" id="user-search" placeholder="[[users:enter_username]]" data-bs-toggle="dropdown" autocomplete="off"/>
16
8
 
17
- <ul component="blocks/search/list" class="dropdown-menu dropdown-menu-end block-edit overflow-auto" style="max-height:300px;">
18
- <li><a href="#" class="dropdown-item">[[admin/menu:search.start-typing]]</a></li>
19
- {{{ each edit }}}
20
- <li class="">
21
- <div class="dropdown-item d-flex flex-nowrap gap-2 justify-content-between">
22
- <div class="text-truncate">
23
- <a href="{config.relative_path}/uid/{./uid}" class="text-decoration-none">{buildAvatar(edit, "24px", true)} {./username}</a>
24
- </div>
25
- <button class="btn btn-sm btn-primary text-nowrap" data-uid="{./uid}" data-action="toggle">[[user:block_toggle]]</button>
26
- </div>
27
- </li>
28
- {{{ end }}}
29
- </ul>
30
- </div>
31
- </div>
32
- </div>
33
- <div class="users">
34
- <div id="users-container" class="row row-cols-2 row-cols-lg-3 row-cols-xl-4 g-2">
35
- {{{ each users }}}
36
- <!-- IMPORT partials/users/item.tpl -->
9
+ <ul component="blocks/search/list" class="dropdown-menu dropdown-menu-end p-1 text-sm block-edit overflow-auto" style="max-height:300px;">
10
+ <li><a href="#" class="dropdown-item">[[admin/menu:search.start-typing]]</a></li>
11
+ {{{ each edit }}}
12
+ <li class="">
13
+ <div class="dropdown-item d-flex flex-nowrap gap-2 justify-content-between">
14
+ <div class="text-truncate">
15
+ <a href="{config.relative_path}/uid/{./uid}" class="text-decoration-none">{buildAvatar(edit, "24px", true)} {./username}</a>
16
+ </div>
17
+ <button class="btn btn-sm btn-primary text-nowrap" data-uid="{./uid}" data-action="toggle">[[user:block_toggle]]</button>
18
+ </div>
19
+ </li>
37
20
  {{{ end }}}
38
- </div>
39
- <div class="alert alert-warning text-center"{{{ if users.length }}} style="display: none;"{{{ end }}}>[[user:has_no_blocks]]</div>
40
- <!-- IMPORT partials/paginator.tpl -->
21
+ </ul>
22
+
23
+ <button class="btn btn-primary btn-sm" type="button">
24
+ <i class="fa fa-search"></i>
25
+ </button>
41
26
  </div>
42
27
  </div>
43
-
44
28
  </div>
45
- </div>
29
+ </div>
30
+ <div class="users">
31
+ <div id="users-container" class="row row-cols-2 row-cols-lg-3 row-cols-xl-4 g-2">
32
+ {{{ each users }}}
33
+ <!-- IMPORT partials/users/item.tpl -->
34
+ {{{ end }}}
35
+ </div>
36
+ <div class="alert alert-warning text-center"{{{ if users.length }}} style="display: none;"{{{ end }}}>[[user:has_no_blocks]]</div>
37
+ <!-- IMPORT partials/paginator.tpl -->
38
+ </div>
39
+
40
+ <!-- IMPORT partials/account/footer.tpl -->