nodebb-theme-harmony 0.0.10 → 0.0.11

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 (64) hide show
  1. package/package.json +1 -1
  2. package/scss/account.scss +0 -3
  3. package/scss/common.scss +6 -0
  4. package/scss/modules/bottom-sheet.scss +1 -1
  5. package/scss/modules/topic-navigator.scss +0 -6
  6. package/scss/sidebar.scss +18 -16
  7. package/templates/account/blocks.tpl +2 -2
  8. package/templates/account/categories.tpl +27 -21
  9. package/templates/account/consent.tpl +10 -64
  10. package/templates/account/edit/password.tpl +29 -24
  11. package/templates/account/edit/username.tpl +25 -20
  12. package/templates/account/edit.tpl +48 -58
  13. package/templates/account/followers.tpl +2 -3
  14. package/templates/account/following.tpl +2 -3
  15. package/templates/account/groups.tpl +2 -3
  16. package/templates/account/info.tpl +4 -5
  17. package/templates/account/posts.tpl +4 -4
  18. package/templates/account/profile.tpl +9 -9
  19. package/templates/account/sessions.tpl +2 -3
  20. package/templates/account/settings.tpl +119 -136
  21. package/templates/account/theme.tpl +7 -4
  22. package/templates/account/topics.tpl +17 -16
  23. package/templates/account/uploads.tpl +4 -8
  24. package/templates/groups/details.tpl +3 -20
  25. package/templates/groups/list.tpl +10 -9
  26. package/templates/header.tpl +3 -21
  27. package/templates/login.tpl +1 -1
  28. package/templates/notifications.tpl +4 -4
  29. package/templates/partials/account/header.tpl +58 -47
  30. package/templates/partials/account/sidebar-left.tpl +5 -5
  31. package/templates/partials/buttons/newTopic.tpl +1 -3
  32. package/templates/partials/categories/item.tpl +1 -8
  33. package/templates/partials/category/sort.tpl +3 -3
  34. package/templates/partials/category/subcategory.tpl +1 -1
  35. package/templates/partials/category/tools.tpl +3 -3
  36. package/templates/partials/category/watch.tpl +7 -7
  37. package/templates/partials/category-filter-content.tpl +4 -4
  38. package/templates/partials/category-selector-content.tpl +10 -9
  39. package/templates/partials/chats/message-window.tpl +9 -7
  40. package/templates/partials/groups/sidebar-left.tpl +1 -1
  41. package/templates/partials/header/brand.tpl +19 -0
  42. package/templates/partials/notifications_list.tpl +5 -5
  43. package/templates/partials/post_bar.tpl +4 -4
  44. package/templates/partials/sidebar/logged-in-menu.tpl +23 -0
  45. package/templates/partials/sidebar/user-menu.tpl +1 -1
  46. package/templates/partials/sidebar-left.tpl +1 -1
  47. package/templates/partials/sidebar-right.tpl +1 -23
  48. package/templates/partials/tags_list.tpl +3 -2
  49. package/templates/partials/topic/navigator.tpl +2 -2
  50. package/templates/partials/topic/post-menu.tpl +2 -4
  51. package/templates/partials/topic/post.tpl +13 -13
  52. package/templates/partials/topic/reply-button.tpl +3 -3
  53. package/templates/partials/topic/sort.tpl +3 -3
  54. package/templates/partials/topic/tools.tpl +3 -3
  55. package/templates/partials/topic/watch.tpl +17 -16
  56. package/templates/partials/topic-filters.tpl +3 -3
  57. package/templates/partials/topic-list-bar.tpl +7 -11
  58. package/templates/partials/topic-terms.tpl +3 -3
  59. package/templates/partials/topics_list.tpl +4 -4
  60. package/templates/partials/users/item.tpl +27 -25
  61. package/templates/partials/users_list_menu.tpl +1 -1
  62. package/templates/tags.tpl +12 -8
  63. package/templates/topic.tpl +1 -3
  64. package/templates/users.tpl +4 -5
@@ -1,5 +1,6 @@
1
1
  {{{each tags}}}
2
- <h5 class="float-start tag-container me-4 mb-4 fw-bold">
3
- <a href="{config.relative_path}/tags/{tags.valueEncoded}" data-tag="{tags.valueEscaped}"><span class="tag-item text-muted text-uppercase text-nowrap tag-class-{tags.class} me-2" data-tag="{tags.valueEscaped}">{tags.valueEscaped}</span><span class="tag-topic-count text-primary text-nowrap human-readable-number" title="{tags.score}">{tags.score}</span></a>
2
+ <h5 class="tag-container fw-bold d-flex">
3
+ <a class="text-truncate" href="{config.relative_path}/tags/{tags.valueEncoded}" data-tag="{tags.valueEscaped}"><span class="tag-item text-muted text-uppercase text-nowrap tag-class-{tags.class} me-2" data-tag="{tags.valueEscaped}">{tags.valueEscaped}</span></a>
4
+ <span class="tag-topic-count text-primary text-nowrap human-readable-number" title="{tags.score}">{tags.score}</span>
4
5
  </h5>
5
6
  {{{end}}}
@@ -3,13 +3,13 @@
3
3
  <a href="#" class="nav-link border-0 p-2" data-action="scrollUp"><i class="fa fa-fw fa-angle-up"></i></a>
4
4
  <div class="track d-inline-block flex-grow-1 position-relative">
5
5
  <div class="unread d-inline-block position-absolute">
6
- <div class="meta small position-absolute top-50 translate-middle-y text-nowrap fw-semibold">
6
+ <div class="visible-open meta small position-absolute top-50 translate-middle-y text-nowrap fw-semibold">
7
7
  <a href="{url}"></a>
8
8
  </div>
9
9
  </div>
10
10
  <div class="handle d-inline-block position-absolute">
11
11
  <div class="knob d-inline-block rounded-circle translate-middle"></div>
12
- <div class="meta small position-absolute text-nowrap fw-semibold">
12
+ <div class="visible-open meta small position-absolute text-nowrap fw-semibold">
13
13
  <p class="index text-body mb-0"></p>
14
14
  <p class="timestamp text-secondary timeago mb-0"></p>
15
15
  </div>
@@ -1,7 +1,5 @@
1
- <!-- THIS FILE IS STILL PERSONA -->
2
-
3
- <span component="post/tools" class="dropdown moderator-tools bottom-sheet d-inline-block<!-- IF !posts.display_post_menu -->hidden<!-- ENDIF !posts.display_post_menu -->">
4
- <a class="btn btn-link dropdown-toggle d-block" href="#" data-bs-toggle="dropdown"><i class="fa fa-fw fa-ellipsis-v"></i></a>
1
+ <span component="post/tools" class="dropdown moderator-tools bottom-sheet d-inline-block {{{ if !./display_post_menu }}}hidden{{{ end }}}">
2
+ <a class="btn-ghost-sm dropdown-toggle d-block" href="#" data-bs-toggle="dropdown"><i class="fa fa-fw fa-ellipsis-v text-primary"></i></a>
5
3
  <ul class="dropdown-menu dropdown-menu-end" role="menu">
6
4
  <li class="dropdown-item placeholder-wave">
7
5
  <div class="placeholder" style="width: 20px;">&nbsp;</div>
@@ -93,26 +93,26 @@
93
93
 
94
94
  <div component="post/replies/container" class="mt-2 col-11 border rounded-1 p-3"></div>
95
95
 
96
- <div component="post/actions" class="d-flex justify-content-end post-tools">
96
+ <div component="post/actions" class="d-flex justify-content-end gap-1 post-tools">
97
97
  <!-- IMPORT partials/topic/reactions.tpl -->
98
- <a component="post/reply" href="#" class="btn btn-link user-select-none <!-- IF !privileges.topics:reply -->hidden<!-- ENDIF !privileges.topics:reply -->" title="[[topic:reply]]"><i class="fa fa-reply"></i></a>
99
- <a component="post/quote" href="#" class="btn btn-link user-select-none <!-- IF !privileges.topics:reply -->hidden<!-- ENDIF !privileges.topics:reply -->" title="[[topic:quote]]"><i class="fa fa-quote-right"></i></a>
98
+ <a component="post/reply" href="#" class="btn-ghost-sm user-select-none {{{ if !privileges.topics:reply }}}hidden{{{ end }}}" title="[[topic:reply]]"><i class="fa fa-reply text-primary"></i></a>
99
+ <a component="post/quote" href="#" class="btn-ghost-sm user-select-none {{{ if !privileges.topics:reply }}}hidden{{{ end }}}" title="[[topic:quote]]"><i class="fa fa-quote-right text-primary"></i></a>
100
100
 
101
- <!-- IF !reputation:disabled -->
102
- <div class="d-flex votes align-items-center">
103
- <a component="post/upvote" href="#" class="btn btn-link text-secondary <!-- IF posts.upvoted -->upvoted<!-- ENDIF posts.upvoted -->">
104
- <i class="fa fa-chevron-up"></i>
101
+ {{{ if !reputation:disabled }}}
102
+ <div class="d-flex votes align-items-stretch">
103
+ <a component="post/upvote" href="#" class="btn-ghost-sm {{{ if posts.upvoted }}}upvoted{{{ end }}}">
104
+ <i class="fa fa-chevron-up text-primary"></i>
105
105
  </a>
106
106
 
107
- <div class="d-inline-block px-3" component="post/vote-count" data-votes="{posts.votes}">{posts.votes}</div>
107
+ <div class="d-inline-block px-3 btn-ghost-sm" component="post/vote-count" data-votes="{posts.votes}">{posts.votes}</div>
108
108
 
109
- <!-- IF !downvote:disabled -->
110
- <a component="post/downvote" href="#" class="btn btn-link text-secondary <!-- IF posts.downvoted -->downvoted<!-- ENDIF posts.downvoted -->">
111
- <i class="fa fa-chevron-down"></i>
109
+ {{{ if !downvote:disabled }}}
110
+ <a component="post/downvote" href="#" class="btn-ghost-sm {{{ if posts.downvoted }}}downvoted{{{ end }}}">
111
+ <i class="fa fa-chevron-down text-primary"></i>
112
112
  </a>
113
- <!-- ENDIF !downvote:disabled -->
113
+ {{{ end }}}
114
114
  </div>
115
- <!-- ENDIF !reputation:disabled -->
115
+ {{{ end }}}
116
116
 
117
117
  <!-- IMPORT partials/topic/post-menu.tpl -->
118
118
  </div>
@@ -1,6 +1,6 @@
1
- <div component="topic/reply/container" class="btn-group action-bar bottom-sheet <!-- IF !privileges.topics:reply -->hidden<!-- ENDIF !privileges.topics:reply -->">
2
- <a href="{config.relative_path}/compose?tid={tid}&title={title}" class="d-flex align-items-center btn btn-primary px-3 py-2 fw-semibold border border-0 " component="topic/reply" data-ajaxify="false" role="button"><i class="fa fa-reply visible-xs-inline"></i><span class="visible-md-inline visible-lg-inline"> [[topic:reply]]</span></a>
3
- <button type="button" class="btn btn-sm btn-primary dropdown-toggle border border-0 border-start border-primary" data-bs-toggle="dropdown">
1
+ <div component="topic/reply/container" class="btn-group action-bar bottom-sheet {{{ if !privileges.topics:reply }}}hidden{{{ end }}}">
2
+ <a href="{config.relative_path}/compose?tid={tid}&title={title}" class="d-flex align-items-center btn btn-sm btn-primary px-3 fw-semibold " component="topic/reply" data-ajaxify="false" role="button"><i class="fa fa-reply visible-xs-inline"></i><span class="visible-md-inline visible-lg-inline"> [[topic:reply]]</span></a>
3
+ <button type="button" class="btn btn-sm btn-primary dropdown-toggle" data-bs-toggle="dropdown">
4
4
  <span class="caret"></span>
5
5
  </button>
6
6
  <ul class="dropdown-menu dropdown-menu-end" role="menu">
@@ -1,8 +1,8 @@
1
1
  <div class="btn-group bottom-sheet" component="thread/sort">
2
- <button class="btn btn-link d-flex gap-2 align-items-baseline dropdown-toggle" data-bs-toggle="dropdown" type="button">
2
+ <button class="btn-ghost-sm d-flex gap-2 align-items-baseline dropdown-toggle" data-bs-toggle="dropdown" type="button">
3
3
  <span class="d-flex gap-2 align-items-center">
4
- <i class="fa fa-fw fa-arrow-down-wide-short small link-primary"></i>
5
- <span class="d-none d-md-inline small">[[topic:sort_by]]</span>
4
+ <i class="fa fa-fw fa-arrow-down-wide-short text-primary"></i>
5
+ <span class="d-none d-md-inline fw-semibold">[[topic:sort_by]]</span>
6
6
  </span>
7
7
  </button>
8
8
  <ul class="dropdown-menu">
@@ -1,8 +1,8 @@
1
1
  {{{ if privileges.view_thread_tools }}}
2
2
  <div class="btn-group thread-tools bottom-sheet">
3
- <button class="btn btn-link d-flex gap-2 align-items-baseline dropdown-toggle" data-bs-toggle="dropdown" type="button">
4
- <i class="fa fa-fw fa-gear small link-primary"></i>
5
- <span class="d-none d-md-inline small">[[topic:thread_tools.title]]</span>
3
+ <button class="btn-ghost-sm d-flex gap-2 align-items-baseline dropdown-toggle" data-bs-toggle="dropdown" type="button">
4
+ <i class="fa fa-fw fa-gear link-primary"></i>
5
+ <span class="d-none d-md-inline fw-semibold">[[topic:thread_tools.title]]</span>
6
6
  </button>
7
7
  <ul class="dropdown-menu">
8
8
  <li class="placeholder-wave"><a class="dropdown-item d-flex gap-2" href="#"><div class="placeholder bg-secondary rounded-1" style="width: 1em;"></div><div class="placeholder bg-secondary rounded-1 col-8"></div></a></li>
@@ -1,26 +1,27 @@
1
- <!-- IF config.loggedIn -->
1
+ {{{ if config.loggedIn }}}
2
2
  <div class="btn-group topic-watch-dropdown bottom-sheet" component="topic/watch">
3
- <button class="btn btn-link d-flex gap-2 align-items-baseline dropdown-toggle" data-bs-toggle="dropdown" type="button">
4
- <span component="topic/following/menu" class="d-flex gap-2 align-items-center<!-- IF !isFollowing --> hidden<!-- ENDIF !isFollowing -->">
5
- <i class="fa fa-fw fa-bell-o small link-primary"></i>
6
- <span class="d-none d-md-inline small">[[topic:watching]]</span>
3
+ <button class="btn-ghost-sm d-flex gap-2 align-items-baseline dropdown-toggle" data-bs-toggle="dropdown" type="button">
4
+ <span component="topic/following/menu" class="d-flex gap-2 align-items-center{{{ if !isFollowing }}} hidden{{{ end }}}">
5
+ <i class="fa fa-fw fa-bell-o link-primary"></i>
6
+ <span class="d-none d-md-inline fw-semibold">[[topic:watching]]</span>
7
7
  </span>
8
8
 
9
- <span component="topic/not-following/menu" class="d-flex gap-2 align-items-center<!-- IF !isNotFollowing --> hidden<!-- ENDIF !isNotFollowing -->">
10
- <i class="fa fa-fw fa-bell-slash-o small link-primary"></i>
11
- <span class="d-none d-md-inline small">[[topic:not-watching]]</span>
9
+ <span component="topic/not-following/menu" class="d-flex gap-2 align-items-center{{{ if !isNotFollowing}}} hidden{{{ end }}}">
10
+ <i class="fa fa-fw fa-bell-slash-o link-primary"></i>
11
+ <span class="d-none d-md-inline fw-semibold">[[topic:not-watching]]</span>
12
12
  </span>
13
13
 
14
- <span component="topic/ignoring/menu" class="d-flex gap-2 align-items-center<!-- IF !isIgnoring --> hidden<!-- ENDIF !isIgnoring -->">
15
- <i class="fa fa-fw fa-eye-slash small link-primary"></i>
16
- <span class="d-none d-md-inline small">[[topic:ignoring]]</span>
14
+ <span component="topic/ignoring/menu" class="d-flex gap-2 align-items-center{{{ if !isIgnoring }}} hidden{{{ end }}}">
15
+ <i class="fa fa-fw fa-eye-slash link-primary"></i>
16
+ <span class="d-none d-md-inline fw-semibold">[[topic:ignoring]]</span>
17
17
  </span>
18
-
19
18
  </button>
20
19
  <ul class="dropdown-menu">
21
- <li><a class="dropdown-item" href="#" component="topic/following"><i component="topic/following/check" class="fa fa-fw <!-- IF isFollowing -->fa-check<!-- ENDIF isFollowing -->"></i><i class="fa fa-fw fa-bell-o"></i> [[topic:watching]]<p class="help-text hidden-xs"><small>[[topic:watching.description]]</small></p></a></li>
22
- <li><a class="dropdown-item" href="#" component="topic/not-following"><i component="topic/not-following/check" class="fa fa-fw <!-- IF isNotFollowing -->fa-check<!-- ENDIF isNotFollowing -->"></i><i class="fa fa-fw fa-bell-slash-o"></i> [[topic:not-watching]]<p class="help-text hidden-xs"><small>[[topic:not-watching.description]]</small></p></a></li>
23
- <li><a class="dropdown-item" href="#" component="topic/ignoring"><i component="topic/ignoring/check" class="fa fa-fw <!-- IF isIgnoring -->fa-check<!-- ENDIF isIgnoring -->"></i><i class="fa fa-fw fa-eye-slash"></i> [[topic:ignoring]]<p class="help-text hidden-xs"><small>[[topic:ignoring.description]]</small></p></a></li>
20
+ <li><a class="dropdown-item" href="#" component="topic/following"><i component="topic/following/check" class="fa fa-fw {{{ if isFollowing }}}fa-check{{{ end }}}"></i><i class="fa fa-fw fa-bell-o"></i> [[topic:watching]]<p class="help-text text-muted"><small>[[topic:watching.description]]</small></p></a></li>
21
+
22
+ <li><a class="dropdown-item" href="#" component="topic/not-following"><i component="topic/not-following/check" class="fa fa-fw {{{ if isNotFollowing }}}fa-check{{{ end }}}"></i><i class="fa fa-fw fa-bell-slash-o"></i> [[topic:not-watching]]<p class="help-text text-muted"><small>[[topic:not-watching.description]]</small></p></a></li>
23
+
24
+ <li><a class="dropdown-item" href="#" component="topic/ignoring"><i component="topic/ignoring/check" class="fa fa-fw {{{ if isIgnoring }}}fa-check{{{ end }}}"></i><i class="fa fa-fw fa-eye-slash"></i> [[topic:ignoring]]<p class="help-text text-muted"><small>[[topic:ignoring.description]]</small></p></a></li>
24
25
  </ul>
25
26
  </div>
26
- <!-- ENDIF config.loggedIn -->
27
+ {{{ end }}}
@@ -1,7 +1,7 @@
1
1
  <div class="btn-group bottom-sheet{{{ if !filters.length }}} hidden{{{ end }}}">
2
- <button type="button" class="btn btn-link d-flex gap-2 align-items-baseline dropdown-toggle" data-bs-toggle="dropdown">
3
- <i class="fa fa-fw fa-filter small link-primary"></i>
4
- <span class="visible-md-inline visible-lg-inline small">{selectedFilter.name}</span>
2
+ <button type="button" class="btn-ghost-sm d-flex gap-2 align-items-baseline dropdown-toggle" data-bs-toggle="dropdown">
3
+ <i class="fa fa-fw fa-filter link-primary"></i>
4
+ <span class="visible-md-inline visible-lg-inline fw-semibold">{selectedFilter.name}</span>
5
5
  </button>
6
6
  <ul class="dropdown-menu" role="menu">
7
7
  {{{each filters}}}
@@ -23,10 +23,10 @@
23
23
  <!-- IMPORT partials/category/tools.tpl -->
24
24
 
25
25
  {{{ if (!feeds:disableRSS && rssFeedUrl) }}}
26
- <a class="btn btn-link link-primary d-none d-lg-block" target="_blank" href="{rssFeedUrl}" itemprop="item"><i class="fa fa-rss"></i></a>
26
+ <a class="btn-ghost-sm d-none d-lg-flex align-self-stretch" target="_blank" href="{rssFeedUrl}" itemprop="item"><i class="fa fa-rss text-primary"></i></a>
27
27
  {{{ end }}}
28
28
 
29
- <a href="{config.relative_path}{{{ if template.category }}}{url}{{{ else }}}/{selectedFilter.url}{querystring}{{{ end }}}" class="d-inline-block">
29
+ <a href="{config.relative_path}{{{ if template.category }}}{url}{{{ else }}}/{selectedFilter.url}{querystring}{{{ end }}}" class="d-inline-block text-decoration-none">
30
30
  <div class="alert alert-warning h-100 m-0 px-2 py-1 d-flex align-items-center hide" id="new-topics-alert"></div>
31
31
  </a>
32
32
  </ul>
@@ -34,21 +34,17 @@
34
34
  <div class="d-flex gap-1 align-items-stretch">
35
35
  {{{ if template.category }}}
36
36
  {{{ if privileges.topics:create }}}
37
- <a href="{config.relative_path}/compose?cid={cid}" component="category/post" id="new_topic" class="btn btn-primary text-nowrap" data-ajaxify="false" role="button">[[category:new_topic_button]]</a>
38
- {{{ else }}}
39
- {{{ if !loggedIn }}}
40
- <a component="category/post/guest" href="{config.relative_path}/login" class="btn btn-primary">[[category:guest-login-post]]</a>
41
- {{{ end }}}
37
+ <a href="{config.relative_path}/compose?cid={cid}" component="category/post" id="new_topic" class="btn btn-primary btn-sm text-nowrap" data-ajaxify="false" role="button">[[category:new_topic_button]]</a>
42
38
  {{{ end }}}
43
39
  {{{ else }}}
44
40
  {{{ if canPost }}}
45
41
  <!-- IMPORT partials/buttons/newTopic.tpl -->
46
- {{{ else }}}
47
- {{{ if !loggedIn }}}
48
- <a component="category/post/guest" href="{config.relative_path}/login" class="btn btn-primary">[[category:guest-login-post]]</a>
49
- {{{ end }}}
50
42
  {{{ end }}}
51
43
  {{{ end }}}
44
+ <!-- only show login button if not logged in and doesn't have any posting privilege -->
45
+ {{{ if (!loggedIn && (!privileges.topics:create && !canPost))}}}
46
+ <a component="category/post/guest" href="{config.relative_path}/login" class="btn btn-primary">[[category:guest-login-post]]</a>
47
+ {{{ end }}}
52
48
  </div>
53
49
  </div>
54
50
  </nav>
@@ -1,7 +1,7 @@
1
1
  <div class="btn-group bottom-sheet {{{ if !terms.length }}}hidden{{{ end }}}">
2
- <button type="button" class="btn btn-link d-flex gap-2 align-items-baseline dropdown-toggle" data-bs-toggle="dropdown">
3
- <i class="fa fa-fw fa-clock small link-primary"></i>
4
- <span class="visible-md-inline visible-lg-inline small">{selectedTerm.name}</span>
2
+ <button type="button" class="btn-ghost-sm d-flex gap-2 align-items-baseline dropdown-toggle" data-bs-toggle="dropdown">
3
+ <i class="fa fa-fw fa-clock text-primary"></i>
4
+ <span class="visible-md-inline visible-lg-inline fw-semibold">{selectedTerm.name}</span>
5
5
  </button>
6
6
  <ul class="dropdown-menu" role="menu">
7
7
  {{{each terms}}}
@@ -1,4 +1,4 @@
1
- <ul component="category" class="list-unstyled topic-list pt-3 overflow-auto position-relative" itemscope itemtype="http://www.schema.org/ItemList" data-nextstart="{nextStart}" data-set="{set}">
1
+ <ul component="category" class="list-unstyled topic-list pt-4 overflow-auto position-relative" itemscope itemtype="http://www.schema.org/ItemList" data-nextstart="{nextStart}" data-set="{set}">
2
2
 
3
3
  {{{ each topics }}}
4
4
  <li component="category/topic" class="category-item position-relative {function.generateTopicClass}" <!-- IMPORT partials/data/category.tpl -->>
@@ -56,7 +56,7 @@
56
56
  {{{ end }}}
57
57
 
58
58
  {{{ if ./tags.length }}}
59
- <span class="lh-1 tag-list hidden-xs d-flex gap-2 me-2 mb-1">
59
+ <span class="lh-1 tag-list hidden-xs d-flex flex-wrap gap-2 me-2 mb-1 ">
60
60
  {{{ each ./tags }}}
61
61
  <a href="{config.relative_path}/tags/{./valueEncoded}"><span class="badge border border-gray-300 text-xs fw-normal tag tag-class-{./class}" data-tag="{./value}">{./valueEscaped}</span></a>
62
62
  {{{ end }}}
@@ -70,7 +70,7 @@
70
70
  </div>
71
71
  </div>
72
72
 
73
- <div class="col-md-2 d-none d-md-flex stats text-muted gap-2 px-0">
73
+ <div class="col-md-2 d-none d-lg-flex stats text-muted gap-2 px-0">
74
74
  {{{ if !reputation:disabled }}}
75
75
  <div class="stats-votes flex-1">
76
76
  <div class="align-items-center card card-header px-0 py-2 border-0 rounded-1">
@@ -93,7 +93,7 @@
93
93
  </div>
94
94
  </div>
95
95
 
96
- <div class="col-md-3 col-sm-3 teaser hidden-xs overflow-hidden" component="topic/teaser">
96
+ <div class="col-md-3 col-sm-3 teaser d-none d-md-block overflow-hidden" component="topic/teaser">
97
97
  <div class="lastpost background-link-container border-start border-2 h-100" style="border-color: {./category.bgColor}!important;">
98
98
  <a class="background-link" href="{config.relative_path}/topic/{./slug}/{./teaser.index}"></a>
99
99
  {{{ if ./unreplied }}}
@@ -1,37 +1,39 @@
1
1
  <a href="{config.relative_path}/user/{./userslug}" class="btn-ghost align-items-start justify-content-start">
2
2
  {buildAvatar(@value, "48px", true, "flex-shrink-0")}
3
- <div class="d-flex flex-column text-truncate align-items-start">
3
+ <div class="d-flex flex-column text-truncate">
4
4
  <div class="fw-semibold text-truncate" title="{./displayname}">{./displayname}</div>
5
5
  <div class="text-xs text-muted text-truncate">@{./username}</div>
6
6
 
7
- {{{ if section_online }}}
8
- <div class="card card-header border py-0 px-1 text-xs">
9
- <span class="timeago" title="{./lastonlineISO}"></span>
10
- </div>
11
- {{{ end }}}
7
+ <div class="align-self-start">
8
+ {{{ if section_online }}}
9
+ <div class="card card-header border rounded-1 py-0 px-1 text-xs">
10
+ <span class="timeago" title="{./lastonlineISO}"></span>
11
+ </div>
12
+ {{{ end }}}
12
13
 
13
- {{{ if section_joindate }}}
14
- <div class="card card-header border py-0 px-1 text-xs">
15
- <span class="timeago" title="{./joindateISO}"></span>
16
- </div>
17
- {{{ end }}}
14
+ {{{ if section_joindate }}}
15
+ <div class="card card-header border rounded-1 py-0 px-1 text-xs">
16
+ <span class="timeago" title="{./joindateISO}"></span>
17
+ </div>
18
+ {{{ end }}}
18
19
 
19
- {{{ if section_sort-reputation }}}
20
- <div class="card card-header border py-0 px-1 text-xs">
21
- <span class="formatted-number">{./reputation}</span>
22
- </div>
23
- {{{ end }}}
20
+ {{{ if section_sort-reputation }}}
21
+ <div class="card card-header border rounded-1 py-0 px-1 text-xs">
22
+ <span class="formatted-number">{./reputation}</span>
23
+ </div>
24
+ {{{ end }}}
24
25
 
25
- {{{ if section_sort-posts }}}
26
- <div class="card card-header border py-0 px-1 text-xs">
27
- <span class="formatted-number">{./postcount}</span>
28
- </div>
29
- {{{ end }}}
26
+ {{{ if section_sort-posts }}}
27
+ <div class="card card-header border rounded-1 py-0 px-1 text-xs">
28
+ <span class="formatted-number">{./postcount}</span>
29
+ </div>
30
+ {{{ end }}}
30
31
 
31
- {{{ if section_flagged }}}
32
- <div class="card card-header border py-0 px-1 text-xs">
33
- <span class="formatted-number">{./flags}</span>
32
+ {{{ if section_flagged }}}
33
+ <div class="card card-header border rounded-1 py-0 px-1 text-xs">
34
+ <span class="formatted-number">{./flags}</span>
35
+ </div>
36
+ {{{ end }}}
34
37
  </div>
35
- {{{ end }}}
36
38
  </div>
37
39
  </a>
@@ -1,4 +1,4 @@
1
- <div component="user/list/menu" class="text-sm d-flex align-items-center gap-2">
1
+ <div component="user/list/menu" class="text-sm d-flex flex-wrap align-items-center gap-2">
2
2
  <a class="btn-ghost fw-semibold" href="{config.relative_path}/users?section=online">[[global:online]]</a>
3
3
 
4
4
  <a class="btn-ghost fw-semibold" href="{config.relative_path}/users?section=sort-posts">[[users:top_posters]]</a>
@@ -8,12 +8,16 @@
8
8
  {{{ if displayTagSearch }}}
9
9
  {{{ if tags.length }}}
10
10
  <div class="row justify-content-end mb-3">
11
- <div class="col-lg-3">
12
- <div class="input-group">
13
- <input type="text" class="form-control form-control-sm" placeholder="[[global:search]]" id="tag-search">
14
- <button class="btn btn-primary btn-sm" type="button">
15
- <i class="fa fa-search"></i>
16
- </button>
11
+ <div class="col-lg-6">
12
+ <div class="d-flex justify-content-end">
13
+ <div>
14
+ <div class="input-group">
15
+ <input type="text" class="form-control form-control-sm" placeholder="[[global:search]]" id="tag-search">
16
+ <button class="btn btn-primary btn-sm" type="button">
17
+ <i class="fa fa-search"></i>
18
+ </button>
19
+ </div>
20
+ </div>
17
21
  </div>
18
22
  </div>
19
23
  </div>
@@ -24,8 +28,8 @@
24
28
  <div class="alert alert-warning">[[tags:no_tags]]</div>
25
29
  {{{ end }}}
26
30
 
27
- <div class="category row">
28
- <div class="col-md-12 clearfix tag-list" data-nextstart="{nextStart}">
31
+ <div class="category">
32
+ <div class="tag-list row row-cols-2 row-cols-lg-3 row-cols-xl-4 row-cols-xxl-5 gx-3 gy-2" data-nextstart="{nextStart}">
29
33
  <!-- IMPORT partials/tags_list.tpl -->
30
34
  </div>
31
35
  </div>
@@ -6,9 +6,7 @@
6
6
  </div>
7
7
  {{{ end }}}
8
8
 
9
- <!-- IMPORT partials/breadcrumbs.tpl -->
10
-
11
- <h2 component="post/header" class="fs-2 mb-1 {{{ if config.centerHeaderElements }}}text-center{{{ end }}}" itemprop="name">
9
+ <h2 component="post/header" class="fs-2 mb-0 {{{ if config.centerHeaderElements }}}text-center{{{ end }}}" itemprop="name">
12
10
  <span class="topic-title" component="topic/title">{title}</span>
13
11
  </h2>
14
12
 
@@ -1,4 +1,3 @@
1
- <!-- IMPORT partials/breadcrumbs.tpl -->
2
1
  <div data-widget-area="header">
3
2
  {{{each widgets.header}}}
4
3
  {{widgets.header.html}}
@@ -6,14 +5,14 @@
6
5
  </div>
7
6
  <div class="users">
8
7
  <h2 class="fw-semibold">[[global:users]]</h2>
9
- <div class="row justify-content-between">
10
- <div class="col-lg-6">
8
+ <div class="d-flex flex-wrap justify-content-between">
9
+ <div class="mb-2 mb-md-0">
11
10
  <!-- IMPORT partials/users_list_menu.tpl -->
12
11
  </div>
13
- <div class="col-lg-6 text-end">
12
+ <div class="">
14
13
  <div class="d-flex justify-content-end gap-2">
15
14
  {{{ if showInviteButton }}}
16
- <button component="user/invite" class="btn btn-success btn-sm"><i class="fa fa-users"></i> [[users:invite]]</button>
15
+ <button component="user/invite" class="btn btn-primary btn-sm"><i class="fa fa-user-plus"></i> [[users:invite]]</button>
17
16
  {{{ end }}}
18
17
  {{{ if displayUserSearch }}}
19
18
  <div class="search">