nodebb-theme-harmony 1.0.0-beta.82 → 1.0.0-beta.84

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 (53) hide show
  1. package/package.json +1 -1
  2. package/scss/common.scss +12 -4
  3. package/scss/modules/topics-list.scss +3 -3
  4. package/scss/modules/user-menu.scss +6 -0
  5. package/scss/sidebar.scss +6 -0
  6. package/templates/account/blocks.tpl +1 -1
  7. package/templates/account/categories.tpl +25 -4
  8. package/templates/account/followers.tpl +1 -1
  9. package/templates/account/following.tpl +1 -1
  10. package/templates/account/topics.tpl +5 -2
  11. package/templates/categories.tpl +1 -1
  12. package/templates/category.tpl +1 -1
  13. package/templates/chats.tpl +1 -1
  14. package/templates/flags/detail.tpl +10 -10
  15. package/templates/footer.tpl +1 -1
  16. package/templates/header.tpl +1 -1
  17. package/templates/partials/account/admin-menu.tpl +9 -9
  18. package/templates/partials/account/category-item.tpl +14 -17
  19. package/templates/partials/account/header.tpl +2 -2
  20. package/templates/partials/buttons/newTopic.tpl +1 -1
  21. package/templates/partials/categories/item.tpl +6 -6
  22. package/templates/partials/category/filter-dropdown-content.tpl +11 -6
  23. package/templates/partials/category/selector-dropdown-content.tpl +5 -5
  24. package/templates/partials/category/sort.tpl +7 -7
  25. package/templates/partials/category/tools.tpl +25 -25
  26. package/templates/partials/category/watch.tpl +17 -17
  27. package/templates/partials/chats/dropdown.tpl +4 -1
  28. package/templates/partials/chats/options.tpl +14 -6
  29. package/templates/partials/flags/filters.tpl +59 -25
  30. package/templates/partials/header/brand.tpl +1 -1
  31. package/templates/partials/notifications_list.tpl +4 -1
  32. package/templates/partials/post_bar.tpl +1 -1
  33. package/templates/partials/search-filters.tpl +7 -7
  34. package/templates/partials/sidebar/drafts.tpl +4 -1
  35. package/templates/partials/sidebar/user-menu.tpl +27 -23
  36. package/templates/partials/sidebar-left.tpl +2 -2
  37. package/templates/partials/sidebar-right.tpl +1 -1
  38. package/templates/partials/skin-switcher.tpl +1 -1
  39. package/templates/partials/tags/filter-dropdown-content.tpl +7 -7
  40. package/templates/partials/topic/post-menu-list.tpl +31 -31
  41. package/templates/partials/topic/post-menu.tpl +1 -1
  42. package/templates/partials/topic/reply-button.tpl +2 -2
  43. package/templates/partials/topic/sort.tpl +17 -5
  44. package/templates/partials/topic/tools.tpl +2 -2
  45. package/templates/partials/topic/topic-menu-list.tpl +14 -14
  46. package/templates/partials/topic/watch.tpl +17 -17
  47. package/templates/partials/topic-filters.tpl +6 -3
  48. package/templates/partials/topic-list-bar.tpl +4 -3
  49. package/templates/partials/topic-terms.tpl +6 -3
  50. package/templates/partials/topics_list.tpl +14 -11
  51. package/templates/partials/users/filter-dropdown-content.tpl +7 -4
  52. package/templates/post-queue.tpl +55 -33
  53. package/templates/topic.tpl +1 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "nodebb-theme-harmony",
3
- "version": "1.0.0-beta.82",
3
+ "version": "1.0.0-beta.84",
4
4
  "nbbpm": {
5
5
  "compatibility": "^3.0.0"
6
6
  },
package/scss/common.scss CHANGED
@@ -1,14 +1,17 @@
1
1
 
2
2
  body {
3
3
  overflow-y: scroll;
4
+ -webkit-font-smoothing: antialiased;
5
+ -moz-osx-font-smoothing: grayscale;
6
+ text-rendering: optimizeLegibility;
4
7
  }
5
8
 
6
9
  // fixes chrome font boosting :/ https://stackoverflow.com/questions/13430897/how-to-override-font-boosting-in-mobile-chrome
7
10
  body * {
8
- max-height:1000000px;
9
- text-size-adjust: none;
10
- -webkit-text-size-adjust: none;
11
- -moz-text-size-adjust: none;
11
+ max-height:1000000px;
12
+ text-size-adjust: none;
13
+ -webkit-text-size-adjust: none;
14
+ -moz-text-size-adjust: none;
12
15
  }
13
16
 
14
17
  .ff-base {
@@ -32,6 +35,11 @@ body * {
32
35
  opacity: 0.5;
33
36
  }
34
37
 
38
+ .bg-card-cap {
39
+ --bs-bg-opacity: 1;
40
+ background-color: $card-cap-bg!important;
41
+ }
42
+
35
43
  blockquote {
36
44
  background-color: $light;
37
45
  font-style: normal;
@@ -17,9 +17,9 @@
17
17
  p { margin-bottom: 0; }
18
18
  }
19
19
 
20
- &.unread .title {
21
- color: $link-color;
22
- }
20
+ // &.unread .title {
21
+ // color: $link-color;
22
+ // }
23
23
 
24
24
  .ui-sortable-handle {
25
25
  cursor: move;
@@ -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
  }
package/scss/sidebar.scss CHANGED
@@ -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
  }
@@ -6,7 +6,7 @@
6
6
  <div class="input-group">
7
7
  <input class="form-control form-control-sm" type="text" id="user-search" placeholder="[[users:enter_username]]" data-bs-toggle="dropdown" autocomplete="off"/>
8
8
 
9
- <ul component="blocks/search/list" class="dropdown-menu dropdown-menu-end block-edit overflow-auto" style="max-height:300px;">
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
10
  <li><a href="#" class="dropdown-item">[[admin/menu:search.start-typing]]</a></li>
11
11
  {{{ each edit }}}
12
12
  <li class="">
@@ -10,10 +10,31 @@
10
10
  <button class="btn-ghost-sm fw-semibold dropdown-toggle" data-bs-toggle="dropdown" type="button">
11
11
  <span>[[user:change_all]]</span>
12
12
  </button>
13
- <ul class="dropdown-menu dropdown-menu-end">
14
- <li><a class="dropdown-item" href="#" component="category/watching" data-state="watching"><i class="fa fa-fw fa-inbox"></i> [[category:watching]]<p class="help-text"><small>[[category:watching.description]]</small></p></a></li>
15
- <li><a class="dropdown-item" href="#" component="category/notwatching" data-state="notwatching"><i class="fa fa-fw fa-clock-o"></i> [[category:not-watching]]<p class="help-text"><small>[[category:not-watching.description]]</small></p></a></li>
16
- <li><a class="dropdown-item" href="#" component="category/ignoring" data-state="ignoring"><i class="fa fa-fw fa-eye-slash"></i> [[category:ignoring]]<p class="help-text"><small>[[category:ignoring.description]]</small></p></a></li>
13
+ <ul class="dropdown-menu p-1 text-sm dropdown-menu-end">
14
+ <li><a class="dropdown-item rounded-1 d-flex flex-column p-2" href="#" component="category/watching" data-state="watching">
15
+ <div class="d-flex align-items-center gap-2">
16
+ <i class="fa fa-fw fa-inbox"></i>
17
+ <span class="flex-1 fw-semibold">[[category:watching]]</span>
18
+ </div>
19
+ <div class="help-text text-muted text-xs">[[category:watching.description]]</div>
20
+ </a>
21
+ </li>
22
+ <li><a class="dropdown-item rounded-1 d-flex flex-column p-2" href="#" component="category/notwatching" data-state="notwatching">
23
+ <div class="d-flex align-items-center gap-2">
24
+ <i class="fa fa-fw fa-clock-o"></i>
25
+ <span class="flex-1 fw-semibold">[[category:not-watching]]</span>
26
+ </div>
27
+ <div class="help-text text-muted text-xs">[[category:not-watching.description]]</div>
28
+ </a>
29
+ </li>
30
+ <li><a class="dropdown-item rounded-1 d-flex flex-column p-2" href="#" component="category/ignoring" data-state="ignoring">
31
+ <div class="d-flex align-items-center gap-2">
32
+ <i class="fa fa-fw fa-eye-slash"></i>
33
+ <span class="flex-1 fw-semibold">[[category:ignoring]]</span>
34
+ </div>
35
+ <div class="help-text text-muted text-xs">[[category:ignoring.description]]</div>
36
+ </a>
37
+ </li>
17
38
  </ul>
18
39
  </div>
19
40
  </div>
@@ -5,7 +5,7 @@
5
5
  <div class="alert alert-warning text-center">[[user:has_no_follower]]</div>
6
6
  {{{ end }}}
7
7
 
8
- <div class="row row-cols-2 row-cols-lg-3 row-cols-xl-4 g-2">
8
+ <div class="row row-cols-2 row-cols-lg-3 row-cols-xl-4 g-4">
9
9
  {{{ each users }}}
10
10
  <!-- IMPORT partials/users/item.tpl -->
11
11
  {{{end}}}
@@ -6,7 +6,7 @@
6
6
  <div class="alert alert-warning text-center">[[user:follows_no_one]]</div>
7
7
  {{{ end }}}
8
8
 
9
- <div class="row row-cols-2 row-cols-lg-3 row-cols-xl-4 g-2">
9
+ <div class="row row-cols-2 row-cols-lg-3 row-cols-xl-4 g-4">
10
10
  {{{ each users }}}
11
11
  <!-- IMPORT partials/users/item.tpl -->
12
12
  {{{end}}}
@@ -6,9 +6,12 @@
6
6
  {{{ if showSort }}}
7
7
  <div class="btn-group bottom-sheet" component="thread/sort">
8
8
  <button title="[[global:sort]]" class="btn-ghost-sm dropdown-toggle" data-bs-toggle="dropdown" type="button"><i class="fa-solid fa-arrow-up-wide-short"></i></button>
9
- <ul class="dropdown-menu">
9
+ <ul class="dropdown-menu p-1 text-sm">
10
10
  {{{each sortOptions }}}
11
- <li><a class="dropdown-item" href="{config.relative_path}{./url}"><i class="fa fa-fw {{{if ./selected}}}fa-check{{{end}}}"></i>{./name}</a></li>
11
+ <li><a class="dropdown-item rounded-1 d-flex align-items-center gap-2" href="{config.relative_path}{./url}">
12
+ <div class="flex-1">{./name}</div>
13
+ <i class="fa fa-fw {{{if ./selected}}}fa-check{{{end}}}"></i>
14
+ </a></li>
12
15
  {{{end}}}
13
16
  </ul>
14
17
  </div>
@@ -3,7 +3,7 @@
3
3
  {{widgets.header.html}}
4
4
  {{{ end }}}
5
5
  </div>
6
- <div class="row">
6
+ <div class="row py-2">
7
7
  <div class="{{{ if widgets.sidebar.length }}}col-lg-9 col-sm-12{{{ else }}}col-lg-12{{{ end }}}">
8
8
  {{{ if pagination.pages.length }}}
9
9
  <div><!-- IMPORT partials/category/selector-dropdown-left.tpl --></div>
@@ -2,7 +2,7 @@
2
2
  <div class="d-flex flex-column gap-2">
3
3
  <div class="d-flex gap-2 align-items-center mb-1 {{{ if config.theme.centerHeaderElements }}}justify-content-center{{{ end }}}">
4
4
  {buildCategoryIcon(@value, "40px", "rounded-1 flex-shrink-0")}
5
- <h2 class="fs-2 fw-semibold mb-0 text-center">{./name}</h2>
5
+ <h2 class="tracking-tight fs-2 fw-semibold mb-0 text-center">{./name}</h2>
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">
@@ -6,7 +6,7 @@
6
6
  <div class="input-group">
7
7
  <input class="form-control" type="text" component="chat/search" data-bs-toggle="dropdown" />
8
8
  <ul component="chat/search/list" class="dropdown-menu">
9
- <li><a href="#" class="dropdown-item">[[admin/menu:search.start-typing]]</a></li>
9
+ <li><a href="#" class="dropdown-item rounded-1">[[admin/menu:search.start-typing]]</a></li>
10
10
  </ul>
11
11
  <button class="btn btn-primary" type="button">
12
12
  <i class="fa fa-search"></i>
@@ -14,24 +14,24 @@
14
14
  <i class="fa fa-fw fa-street-view text-primary"></i>
15
15
  [[flags:flagged-user]]
16
16
  </button>
17
- <ul class="dropdown-menu">
18
- <li><a class="dropdown-item" href="{config.relative_path}/uid/{target.uid}">[[flags:view-profile]]</a></li>
17
+ <ul class="dropdown-menu p-1 text-sm">
18
+ <li><a class="dropdown-item rounded-1" href="{config.relative_path}/uid/{target.uid}">[[flags:view-profile]]</a></li>
19
19
  {{{ if !config.disableChat }}}
20
- <li><a class="dropdown-item" href="#" data-action="chat">[[flags:start-new-chat]]</a></li>
20
+ <li><a class="dropdown-item rounded-1" href="#" data-action="chat">[[flags:start-new-chat]]</a></li>
21
21
  {{{ end }}}
22
22
  <li class="dropdown-divider"></li>
23
23
  {{{ if privileges.ban }}}
24
- <li class="{{{ if target.user.banned }}}hidden{{{ end }}}"><a class="dropdown-item" href="#" data-action="ban">[[user:ban_account]]</a></li>
25
- <li class="{{{ if !target.user.banned }}}hidden{{{ end }}}"><a class="dropdown-item" href="#" data-action="unban">[[user:unban_account]]</a></li>
24
+ <li class="{{{ if target.user.banned }}}hidden{{{ end }}}"><a class="dropdown-item rounded-1" href="#" data-action="ban">[[user:ban_account]]</a></li>
25
+ <li class="{{{ if !target.user.banned }}}hidden{{{ end }}}"><a class="dropdown-item rounded-1" href="#" data-action="unban">[[user:unban_account]]</a></li>
26
26
  {{{ end }}}
27
27
  {{{ if privileges.mute}}}
28
- <li class="{{{ if target.user.muted }}}hidden{{{ end }}}"><a class="dropdown-item" href="#" data-action="mute">[[user:mute_account]]</a></li>
29
- <li class="{{{ if !target.user.muted }}}hidden{{{ end }}}"><a class="dropdown-item" href="#" data-action="unmute">[[user:unmute_account]]</a></li>
28
+ <li class="{{{ if target.user.muted }}}hidden{{{ end }}}"><a class="dropdown-item rounded-1" href="#" data-action="mute">[[user:mute_account]]</a></li>
29
+ <li class="{{{ if !target.user.muted }}}hidden{{{ end }}}"><a class="dropdown-item rounded-1" href="#" data-action="unmute">[[user:unmute_account]]</a></li>
30
30
  {{{ end }}}
31
31
  {{{ if privileges.admin:users }}}
32
- <li><a class="dropdown-item" href="#" data-action="delete-account">[[user:delete_account_as_admin]]</a></li>
33
- <li><a class="dropdown-item" href="#" data-action="delete-content">[[user:delete_content]]</a></li>
34
- <li><a class="dropdown-item" href="#" data-action="delete-all">[[user:delete_all]]</a></li>
32
+ <li><a class="dropdown-item rounded-1" href="#" data-action="delete-account">[[user:delete_account_as_admin]]</a></li>
33
+ <li><a class="dropdown-item rounded-1" href="#" data-action="delete-content">[[user:delete_content]]</a></li>
34
+ <li><a class="dropdown-item rounded-1" href="#" data-action="delete-all">[[user:delete_all]]</a></li>
35
35
  {{{ end }}}
36
36
  </ul>
37
37
  </div>
@@ -6,7 +6,7 @@
6
6
  <!-- IMPORT partials/mobile-footer.tpl -->
7
7
  {{{ if !isSpider }}}
8
8
  <div class="">
9
- <div component="toaster/tray" class="alert-window fixed-bottom mb-5 mb-md-2 me-2 me-md-5 ms-auto" style="width:300px;">
9
+ <div component="toaster/tray" class="alert-window fixed-bottom mb-5 mb-md-2 me-2 me-md-5 ms-auto" style="width:300px; z-index: 1090;">
10
10
  <div id="reconnect-alert" class="alert alert-dismissible alert-warning clearfix hide" component="toaster/toast">
11
11
  <button type="button" class="btn-close float-end" data-bs-dismiss="alert" aria-hidden="true"></button>
12
12
  <p>[[global:reconnecting-message, {config.siteTitle}]]</p>
@@ -39,6 +39,6 @@
39
39
  document.documentElement.style.setProperty('--panel-offset', `0px`);
40
40
  }
41
41
  </script>
42
- <div class="container d-flex flex-column gap-3" id="content">
42
+ <div class="container px-md-4 d-flex flex-column gap-3" id="content">
43
43
  <!-- IMPORT partials/noscript/warning.tpl -->
44
44
  <!-- IMPORT partials/noscript/message.tpl -->
@@ -2,34 +2,34 @@
2
2
  <button type="button" class="btn btn-light dropdown-toggle" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
3
3
  <i class="fa fa-gear fa-fw"></i>
4
4
  </button>
5
- <ul class="dropdown-menu dropdown-menu-end account-sub-links">
5
+ <ul class="dropdown-menu dropdown-menu-end p-1 text-sm account-sub-links">
6
6
  <li>
7
- <a class="dropdown-item" href="{config.relative_path}/user/{userslug}/info">[[user:account_info]]</a>
7
+ <a class="dropdown-item rounded-1" href="{config.relative_path}/user/{userslug}/info">[[user:account_info]]</a>
8
8
  </li>
9
9
  {{{ if (canBan || canMute) }}}
10
10
  <li role="separator" class="dropdown-divider"></li>
11
11
  {{{ end }}}
12
12
  {{{ if canBan }}}
13
13
  <li class="{{{ if banned }}}hide{{{ end }}}">
14
- <a class="dropdown-item" component="account/ban" href="#">[[user:ban_account]]</a>
14
+ <a class="dropdown-item rounded-1" component="account/ban" href="#">[[user:ban_account]]</a>
15
15
  </li>
16
16
  <li class="{{{ if !banned }}}hide{{{ end }}}">
17
- <a class="dropdown-item" component="account/unban" href="#">[[user:unban_account]]</a>
17
+ <a class="dropdown-item rounded-1" component="account/unban" href="#">[[user:unban_account]]</a>
18
18
  </li>
19
19
  {{{ end }}}
20
20
  {{{ if canMute }}}
21
21
  <li class="{{{ if muted }}}hide{{{ end }}}">
22
- <a class="dropdown-item" component="account/mute" href="#">[[user:mute_account]]</a>
22
+ <a class="dropdown-item rounded-1" component="account/mute" href="#">[[user:mute_account]]</a>
23
23
  </li>
24
24
  <li class="{{{ if !muted }}}hide{{{ end }}}">
25
- <a class="dropdown-item" component="account/unmute" href="#">[[user:unmute_account]]</a>
25
+ <a class="dropdown-item rounded-1" component="account/unmute" href="#">[[user:unmute_account]]</a>
26
26
  </li>
27
27
  {{{ end }}}
28
28
  {{{ if isAdmin }}}
29
29
  <li>
30
- <a component="account/delete-account" href="#" class="dropdown-item">[[user:delete_account_as_admin]]</a>
31
- <a component="account/delete-content" href="#" class="dropdown-item">[[user:delete_content]]</a>
32
- <a component="account/delete-all" href="#" class="dropdown-item">[[user:delete_all]]</a>
30
+ <a component="account/delete-account" href="#" class="dropdown-item rounded-1">[[user:delete_account_as_admin]]</a>
31
+ <a component="account/delete-content" href="#" class="dropdown-item rounded-1">[[user:delete_content]]</a>
32
+ <a component="account/delete-all" href="#" class="dropdown-item rounded-1">[[user:delete_all]]</a>
33
33
  </li>
34
34
  {{{ end }}}
35
35
  </ul>
@@ -1,25 +1,22 @@
1
- <li component="categories/category" data-cid="{./cid}" data-parent-cid="{../parentCid}" class="row category-{./cid} mb-4">
1
+ <li component="categories/category" data-cid="{./cid}" data-parent-cid="{../parentCid}" class="category-{./cid}">
2
2
  <meta itemprop="name" content="{./name}">
3
- <div class="content col-10 depth-{./depth}">
4
- <div class="d-flex">
5
- <div class="fs-3">
6
- {buildCategoryIcon(@value, "40px", "rounded-1")}
3
+ <div class="content depth-{./depth} d-flex gap-2">
4
+ <div class="flex-1 align-items-start d-flex gap-2">
5
+ <div>
6
+ {buildCategoryIcon(@value, "24px", "rounded-1")}
7
7
  </div>
8
-
9
- <div class="ms-3">
10
- <h3 class="title">
8
+ <div class="d-grid gap-0">
9
+ <div class="title fw-semibold">
11
10
  <!-- IMPORT partials/categories/link.tpl -->
12
- </h3>
13
- <!-- description -->
14
- <div class="mb-2">
15
- {{{ if ./descriptionParsed }}}
16
- <div class="description text-muted">{./descriptionParsed}</div>
17
- {{{ end }}}
18
11
  </div>
12
+ {{{ if ./descriptionParsed }}}
13
+ <div class="description text-muted text-xs">{./descriptionParsed}</div>
14
+ {{{ end }}}
19
15
  </div>
20
16
  </div>
17
+ <div class="flex-grow-0 flex-shrink-0">
18
+ <!-- IMPORT partials/category/watch.tpl -->
19
+ </div>
21
20
  </div>
22
- <div class="col-2">
23
- <!-- IMPORT partials/category/watch.tpl -->
24
- </div>
21
+ <hr class="text-muted opacity-25"/>
25
22
  </li>
@@ -77,8 +77,8 @@
77
77
  <button type="button" class="btn btn-light dropdown-toggle flex-0" data-bs-toggle="dropdown">
78
78
  <i class="fa fa-caret-down"></i>
79
79
  </button>
80
- <ul class="dropdown-menu dropdown-menu-end" role="menu">
81
- <li><a class="dropdown-item" href="#" component="account/new-chat">[[user:new_chat_with, {username}]]</a></li>
80
+ <ul class="dropdown-menu dropdown-menu-end p-1 text-sm" role="menu">
81
+ <li><a class="dropdown-item rounded-1" href="#" component="account/new-chat">[[user:new_chat_with, {username}]]</a></li>
82
82
  </ul>
83
83
  {{{ end }}}
84
84
  </div>
@@ -4,7 +4,7 @@
4
4
  </button>
5
5
  <noscript>
6
6
  <input type="checkbox" class="hidden" id="category-dropdown-check" aria-hidden="true">
7
- <ul component="category/list" class="dropdown-menu category-dropdown-menu" role="menu">
7
+ <ul component="category/list" class="dropdown-menu p-1 text-sm category-dropdown-menu" role="menu">
8
8
  {{{each categories}}}
9
9
  <li role="presentation" class="category {{{if categories.disabledClass}}}disabled{{{end}}}">
10
10
  <a role="menu-item" href="{config.relative_path}/compose?cid={categories.cid}">{categories.level}
@@ -6,11 +6,11 @@
6
6
  {buildCategoryIcon(@value, "40px", "rounded-1")}
7
7
  </div>
8
8
  <div class="d-flex flex-column gap-1 flex-1">
9
- <h2 class="title fw-bold fs-4">
9
+ <h2 class="title fw-semibold fs-4 m-0 tracking-tight">
10
10
  <!-- IMPORT partials/categories/link.tpl -->
11
11
  </h2>
12
12
  {{{ if ./descriptionParsed }}}
13
- <div class="description text-muted small">
13
+ <div class="description text-muted text-xs">
14
14
  {./descriptionParsed}
15
15
  </div>
16
16
  {{{ end }}}
@@ -21,9 +21,9 @@
21
21
  {{{ if !./isSection }}}
22
22
  <span class="category-children-item small">
23
23
  {{{ if ./link }}}
24
- <a href="{./link}">{./name}</a>
24
+ <div class="d-flex align-items-center gap-1"><i class="fa fa-fw fa-caret-right text-primary"></i><a href="{./link}" class="text-reset fw-semibold">{./name}</a></div>
25
25
  {{{ else }}}
26
- <a href="{config.relative_path}/category/{./slug}">{./name}</a>
26
+ <div class="d-flex align-items-center gap-1"><i class="fa fa-fw fa-caret-right text-primary"></i><a href="{config.relative_path}/category/{./slug}" class="text-reset fw-semibold">{./name}</a></div>
27
27
  {{{ end }}}
28
28
  </span>
29
29
  {{{ end }}}
@@ -38,13 +38,13 @@
38
38
  <div class="col-md-5 d-none d-lg-flex stats text-muted gap-2 px-0">
39
39
  <div class="w-50">
40
40
  <div class="card card-header align-items-center px-0 py-2 border-0 rounded-1">
41
- <span class="{./unread-class} human-readable-number fs-5 fw-semibold ff-secondary" title="{./totalTopicCount}">{./totalTopicCount}</span>
41
+ <span class="{./unread-class} human-readable-number fs-5 ff-secondary" title="{./totalTopicCount}">{./totalTopicCount}</span>
42
42
  <span class="text-lowercase text-xs">[[global:topics]]</span>
43
43
  </div>
44
44
  </div>
45
45
  <div class="w-50">
46
46
  <div class="card card-header align-items-center px-0 py-2 border-0 rounded-1">
47
- <span class="{./unread-class} human-readable-number fs-5 fw-semibold ff-secondary" title="{./totalPostCount}">{./totalPostCount}</span>
47
+ <span class="{./unread-class} human-readable-number fs-5 ff-secondary" title="{./totalPostCount}">{./totalPostCount}</span>
48
48
  <span class="text-lowercase text-xs">[[global:posts]]</span>
49
49
  </div>
50
50
  </div>
@@ -1,4 +1,4 @@
1
- <button type="button" class="btn-ghost-sm d-flex gap-2 align-items-baseline dropdown-toggle" data-bs-toggle="dropdown">
1
+ <button type="button" class="btn-ghost-sm d-flex gap-2 dropdown-toggle" data-bs-toggle="dropdown">
2
2
  {{{ if selectedCategory }}}
3
3
  <span class="category-item d-inline-flex align-items-center gap-1">
4
4
  {buildCategoryIcon(selectedCategory, "18px", "rounded-circle")}
@@ -9,16 +9,20 @@
9
9
  <span class="visible-md-inline visible-lg-inline fw-semibold">[[unread:all_categories]]</span>{{{ end }}}
10
10
  </button>
11
11
  <div component="category-selector-search" class="hidden position-absolute">
12
- <input type="text" class="form-control form-control-sm" autocomplete="off">
12
+ <input type="text" class="form-control form-control-sm" placeholder="[[search:type-to-search]]" autocomplete="off">
13
13
  </div>
14
- <ul component="category/list" class="dropdown-menu category-dropdown-menu" role="menu">
14
+ <ul component="category/list" class="dropdown-menu p-1 text-sm category-dropdown-menu" role="menu">
15
15
  <li role="presentation" class="category" data-cid="all">
16
- <a class="dropdown-item" role="menu-item" href="{{{ if allCategoriesUrl }}}{config.relative_path}/{allCategoriesUrl}{{{ else }}}#{{{ end }}}"><i component="category/select/icon" class="fa fa-fw fa-check {{{if selectedCategory}}}invisible{{{end}}}"></i> [[unread:all_categories]]</a>
16
+ <a class="dropdown-item rounded-1 d-flex align-items-center gap-2" role="menu-item" href="{{{ if allCategoriesUrl }}}{config.relative_path}/{allCategoriesUrl}{{{ else }}}#{{{ end }}}">
17
+ <div class="flex-1">[[unread:all_categories]]</div>
18
+ <i component="category/select/icon" class="fa fa-fw fa-check {{{if selectedCategory}}}invisible{{{end}}}"></i>
19
+ </a>
17
20
  </li>
18
21
  {{{each categoryItems}}}
19
22
  <li role="presentation" class="category {{{ if ../disabledClass }}}disabled{{{ end }}}" data-cid="{../cid}" data-parent-cid="{../parentCid}" data-name="{../name}">
20
- <a class="dropdown-item" role="menu-item" href="#">{../level}<i component="category/select/icon" class="fa fa-fw fa-check {{{ if !../selected }}}invisible{{{ end }}}"></i>
21
- <span component="category-markup" style="{{{ if ../match }}}font-weight: bold;{{{end}}}">
23
+ <a class="dropdown-item rounded-1 d-flex align-items-center gap-2" role="menu-item" href="#">
24
+ {../level}
25
+ <span component="category-markup" class="flex-1" style="{{{ if ../match }}}font-weight: bold;{{{end}}}">
22
26
  <div class="category-item d-inline-flex align-items-center gap-1">
23
27
  {{{ if ./icon }}}
24
28
  {buildCategoryIcon(@value, "24px", "rounded-circle")}
@@ -26,6 +30,7 @@
26
30
  {./name}
27
31
  </div>
28
32
  </span>
33
+ <i component="category/select/icon" class="fa fa-fw fa-check {{{ if !../selected }}}invisible{{{ end }}}"></i>
29
34
  </a>
30
35
  </li>
31
36
  {{{end}}}
@@ -1,4 +1,4 @@
1
- <button type="button" class="btn-ghost-sm d-flex gap-2 align-items-baseline dropdown-toggle" data-bs-toggle="dropdown">
1
+ <button type="button" class="btn-ghost-sm d-flex gap-2 dropdown-toggle" data-bs-toggle="dropdown">
2
2
  <span component="category-selector-selected">
3
3
  {{{ if (selectedCategory && !showCategorySelectLabel) }}}
4
4
  <span class="category-item d-inline-flex align-items-center gap-1">
@@ -12,15 +12,15 @@
12
12
  </span>
13
13
  </button>
14
14
  <div component="category-selector-search" class="hidden position-absolute">
15
- <input type="text" class="form-control form-control-sm" autocomplete="off">
15
+ <input type="text" class="form-control form-control-sm" placeholder="[[search:type-to-search]]" autocomplete="off">
16
16
  </div>
17
- <ul component="category/list" class="dropdown-menu category-dropdown-menu" role="menu">
17
+ <ul component="category/list" class="dropdown-menu p-1 text-sm category-dropdown-menu" role="menu">
18
18
  <li component="category/no-matches" role="presentation" class="category hidden">
19
- <a class="dropdown-item" role="menu-item">[[search:no-matches]]</a>
19
+ <a class="dropdown-item rounded-1" role="menu-item">[[search:no-matches]]</a>
20
20
  </li>
21
21
  {{{ each categoryItems }}}
22
22
  <li role="presentation" class="category {{{ if ./disabledClass }}}disabled {{{ end }}}" data-cid="{./cid}" data-name="{./name}" data-parent-cid="{./parentCid}">
23
- <a class="dropdown-item" role="menu-item">{./level}
23
+ <a class="dropdown-item rounded-1" role="menu-item">{./level}
24
24
  <span component="category-markup" style="{{{ if ./match }}}font-weight: bold;{{{end}}}">
25
25
  <div class="category-item d-inline-flex align-items-center gap-1">
26
26
  {{{ if ./icon }}}
@@ -1,14 +1,14 @@
1
1
  <div class="btn-group bottom-sheet" component="thread/sort">
2
- <button class="btn-ghost-sm 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 dropdown-toggle" data-bs-toggle="dropdown" type="button">
3
3
  <i class="fa fa-fw fa-arrow-down-wide-short text-primary"></i>
4
4
  <span class="visible-md-inline visible-lg-inline fw-semibold">[[topic:sort_by]]</span>
5
5
  </button>
6
6
 
7
- <ul class="dropdown-menu">
8
- <li><a class="dropdown-item" href="#" class="newest_to_oldest" data-sort="newest_to_oldest"><i class="fa fa-fw"></i> [[topic:newest_to_oldest]]</a></li>
9
- <li><a class="dropdown-item" href="#" class="oldest_to_newest" data-sort="oldest_to_newest"><i class="fa fa-fw"></i> [[topic:oldest_to_newest]]</a></li>
10
- <li><a class="dropdown-item" href="#" class="most_posts" data-sort="most_posts"><i class="fa fa-fw"></i> [[topic:most_posts]]</a></li>
11
- <li><a class="dropdown-item" href="#" class="most_votes" data-sort="most_votes"><i class="fa fa-fw"></i> [[topic:most_votes]]</a></li>
12
- <li><a class="dropdown-item" href="#" class="most_views" data-sort="most_views"><i class="fa fa-fw"></i> [[topic:most_views]]</a></li>
7
+ <ul class="dropdown-menu p-1 text-sm">
8
+ <li><a class="dropdown-item rounded-1 d-flex align-items-center gap-2" href="#" class="newest_to_oldest" data-sort="newest_to_oldest"><span class="flex-1">[[topic:newest_to_oldest]]</span><i class="fa fa-fw text-muted"></i></a></li>
9
+ <li><a class="dropdown-item rounded-1 d-flex align-items-center gap-2" href="#" class="oldest_to_newest" data-sort="oldest_to_newest"><span class="flex-1">[[topic:oldest_to_newest]]</span><i class="fa fa-fw text-muted"></i></a></li>
10
+ <li><a class="dropdown-item rounded-1 d-flex align-items-center gap-2" href="#" class="most_posts" data-sort="most_posts"><span class="flex-1">[[topic:most_posts]]</span><i class="fa fa-fw text-muted"></i></a></li>
11
+ <li><a class="dropdown-item rounded-1 d-flex align-items-center gap-2" href="#" class="most_votes" data-sort="most_votes"><span class="flex-1">[[topic:most_votes]]</span><i class="fa fa-fw text-muted"></i></a></li>
12
+ <li><a class="dropdown-item rounded-1 d-flex align-items-center gap-2" href="#" class="most_views" data-sort="most_views"><span class="flex-1">[[topic:most_views]]</span><i class="fa fa-fw text-muted"></i></a></li>
13
13
  </ul>
14
14
  </div>
@@ -1,78 +1,78 @@
1
1
  {{{ if showTopicTools }}}
2
2
  <div class="btn-group thread-tools bottom-sheet">
3
- <button class="btn-ghost-sm d-flex gap-2 align-items-baseline dropdown-toggle" data-bs-toggle="dropdown" type="button">
3
+ <button class="btn-ghost-sm d-flex gap-2 dropdown-toggle" data-bs-toggle="dropdown" type="button">
4
4
  <i class="fa fa-fw fa-gear text-primary"></i>
5
5
  <span class="visible-md-inline visible-lg-inline fw-semibold">[[topic:thread_tools.title]]</span>
6
6
  </button>
7
- <ul class="dropdown-menu">
7
+ <ul class="dropdown-menu p-1 text-sm">
8
8
  <li>
9
- <a component="topic/mark-unread-for-all" href="#" class="dropdown-item">
10
- <i class="fa fa-fw fa-inbox"></i> [[topic:thread_tools.markAsUnreadForAll]]
9
+ <a component="topic/mark-unread-for-all" href="#" class="dropdown-item rounded-1 d-flex align-items-center gap-2">
10
+ <i class="fa fa-fw text-muted fa-inbox"></i> [[topic:thread_tools.markAsUnreadForAll]]
11
11
  </a>
12
12
  </li>
13
13
  <li>
14
- <a component="topic/pin" href="#" class="dropdown-item">
15
- <i class="fa fa-fw fa-thumb-tack"></i> [[topic:thread_tools.pin]]
14
+ <a component="topic/pin" href="#" class="dropdown-item rounded-1 d-flex align-items-center gap-2">
15
+ <i class="fa fa-fw text-muted fa-thumb-tack"></i> [[topic:thread_tools.pin]]
16
16
  </a>
17
17
  </li>
18
18
  <li>
19
- <a component="topic/unpin" href="#" class="hidden dropdown-item">
20
- <i class="fa fa-fw fa-thumb-tack fa-rotate-90"></i> [[topic:thread_tools.unpin]]
19
+ <a component="topic/unpin" href="#" class="hidden dropdown-item rounded-1">
20
+ <i class="fa fa-fw text-muted fa-thumb-tack fa-rotate-90"></i> [[topic:thread_tools.unpin]]
21
21
  </a>
22
22
  </li>
23
23
 
24
24
  <li>
25
- <a component="topic/lock" href="#" class="dropdown-item">
26
- <i class="fa fa-fw fa-lock"></i> [[topic:thread_tools.lock]]
25
+ <a component="topic/lock" href="#" class="dropdown-item rounded-1 d-flex align-items-center gap-2">
26
+ <i class="fa fa-fw text-muted fa-lock"></i> [[topic:thread_tools.lock]]
27
27
  </a>
28
28
  </li>
29
29
  <li>
30
- <a component="topic/unlock" href="#" class="hidden dropdown-item" >
31
- <i class="fa fa-fw fa-unlock"></i> [[topic:thread_tools.unlock]]
30
+ <a component="topic/unlock" href="#" class="hidden dropdown-item rounded-1" >
31
+ <i class="fa fa-fw text-muted fa-unlock"></i> [[topic:thread_tools.unlock]]
32
32
  </a>
33
33
  </li>
34
34
 
35
35
  <li class="dropdown-divider"></li>
36
36
 
37
37
  <li>
38
- <a component="topic/move" href="#" class="dropdown-item">
39
- <i class="fa fa-fw fa-arrows"></i> [[topic:thread_tools.move]]
38
+ <a component="topic/move" href="#" class="dropdown-item rounded-1 d-flex align-items-center gap-2">
39
+ <i class="fa fa-fw text-muted fa-arrows"></i> [[topic:thread_tools.move]]
40
40
  </a>
41
41
  </li>
42
42
  {{{if template.category}}}
43
43
  <li>
44
- <a component="topic/move-all" href="#" class="dropdown-item">
45
- <i class="fa fa-fw fa-arrows"></i> [[topic:thread_tools.move_all]]
44
+ <a component="topic/move-all" href="#" class="dropdown-item rounded-1 d-flex align-items-center gap-2">
45
+ <i class="fa fa-fw text-muted fa-arrows"></i> [[topic:thread_tools.move_all]]
46
46
  </a>
47
47
  </li>
48
48
  {{{end}}}
49
49
  <li>
50
- <a component="topic/merge" href="#" class="dropdown-item">
51
- <i class="fa fa-fw fa-code-fork"></i> [[topic:thread_tools.merge]]
50
+ <a component="topic/merge" href="#" class="dropdown-item rounded-1 d-flex align-items-center gap-2">
51
+ <i class="fa fa-fw text-muted fa-code-fork"></i> [[topic:thread_tools.merge]]
52
52
  </a>
53
53
  </li>
54
54
 
55
55
  <li class="dropdown-divider"></li>
56
56
 
57
57
  <li>
58
- <a component="topic/delete" href="#" class="dropdown-item">
59
- <i class="fa fa-fw fa-trash-o"></i> [[topic:thread_tools.delete]]
58
+ <a component="topic/delete" href="#" class="dropdown-item rounded-1 d-flex align-items-center gap-2">
59
+ <i class="fa fa-fw text-muted fa-trash-o"></i> [[topic:thread_tools.delete]]
60
60
  </a>
61
61
  </li>
62
62
  <li>
63
- <a component="topic/restore" href="#" class="hidden dropdown-item">
64
- <i class="fa fa-fw fa-history"></i> [[topic:thread_tools.restore]]
63
+ <a component="topic/restore" href="#" class="hidden dropdown-item rounded-1">
64
+ <i class="fa fa-fw text-muted fa-history"></i> [[topic:thread_tools.restore]]
65
65
  </a>
66
66
  </li>
67
67
  <li>
68
- <a component="topic/purge" href="#" class="hidden dropdown-item">
69
- <i class="fa fa-fw fa-eraser"></i> [[topic:thread_tools.purge]]
68
+ <a component="topic/purge" href="#" class="hidden dropdown-item rounded-1">
69
+ <i class="fa fa-fw text-muted fa-eraser"></i> [[topic:thread_tools.purge]]
70
70
  </a>
71
71
  </li>
72
72
 
73
73
  {{{each thread_tools}}}
74
74
  <li>
75
- <a href="#" class="dropdown-item {thread_tools.class}"><i class="fa fa-fw {thread_tools.icon}"></i> {thread_tools.title}</a>
75
+ <a href="#" class="dropdown-item rounded-1 d-flex align-items-center gap-2 {thread_tools.class}"><i class="fa fa-fw {thread_tools.icon}"></i> {thread_tools.title}</a>
76
76
  </li>
77
77
  {{{end}}}
78
78
  </ul>