nodebb-theme-persona 12.1.4 → 13.0.0

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 (247) hide show
  1. package/README.md +14 -14
  2. package/package.json +2 -2
  3. package/public/persona.js +11 -23
  4. package/{less/account.less → scss/account.scss} +13 -97
  5. package/{less/categories.less → scss/categories.scss} +10 -40
  6. package/{less/category.less → scss/category.scss} +26 -75
  7. package/{less/chats.less → scss/chats.scss} +35 -88
  8. package/{less/flags.less → scss/flags.scss} +3 -3
  9. package/{less/footer.less → scss/footer.scss} +0 -1
  10. package/{less/groups.less → scss/groups.scss} +14 -38
  11. package/{less/header.less → scss/header.scss} +63 -139
  12. package/{less/helpers.less → scss/helpers.scss} +0 -0
  13. package/{less/keyframes.less → scss/keyframes.scss} +0 -0
  14. package/{less/mixins.less → scss/mixins.scss} +17 -59
  15. package/{less/mobile.less → scss/mobile.scss} +13 -18
  16. package/{less/modules/alerts.less → scss/modules/alerts.scss} +21 -21
  17. package/{less/modules/composer-default.less → scss/modules/composer-default.scss} +2 -2
  18. package/{less/modules/cookie-consent.less → scss/modules/cookie-consent.scss} +1 -1
  19. package/{less/modules/fab.less → scss/modules/fab.scss} +2 -2
  20. package/{less/modules/morph.less → scss/modules/morph.scss} +1 -1
  21. package/{less/modules/necro-post.less → scss/modules/necro-post.scss} +0 -0
  22. package/scss/modules/nprogress.scss +80 -0
  23. package/{less/modules/taskbar.less → scss/modules/taskbar.scss} +11 -10
  24. package/{less/modules/usercard.less → scss/modules/usercard.scss} +0 -0
  25. package/{less/noscript.less → scss/noscript.scss} +5 -7
  26. package/{less/outgoing.less → scss/outgoing.scss} +0 -0
  27. package/scss/overrides.scss +44 -0
  28. package/{less/persona.less → scss/persona.scss} +1 -13
  29. package/{less/posts_list.less → scss/posts_list.scss} +11 -14
  30. package/{less/register.less → scss/register.scss} +2 -7
  31. package/scss/search.scss +39 -0
  32. package/{less/style.less → scss/style.scss} +23 -47
  33. package/scss/tags.scss +11 -0
  34. package/{less/topic.less → scss/topic.scss} +53 -90
  35. package/scss/topics_list.scss +17 -0
  36. package/{less/variables.less → scss/variables.scss} +3 -3
  37. package/templates/account/blocks.tpl +24 -26
  38. package/templates/account/categories.tpl +6 -6
  39. package/templates/account/consent.tpl +10 -10
  40. package/templates/account/edit/password.tpl +8 -10
  41. package/templates/account/edit/username.tpl +6 -10
  42. package/templates/account/edit.tpl +23 -23
  43. package/templates/account/followers.tpl +3 -3
  44. package/templates/account/following.tpl +3 -3
  45. package/templates/account/groups.tpl +2 -2
  46. package/templates/account/info.tpl +67 -72
  47. package/templates/account/posts.tpl +1 -1
  48. package/templates/account/profile.tpl +20 -18
  49. package/templates/account/sessions.tpl +3 -3
  50. package/templates/account/settings.tpl +93 -81
  51. package/templates/account/topics.tpl +5 -5
  52. package/templates/account/uploads.tpl +2 -2
  53. package/templates/admin/plugins/persona.tpl +3 -3
  54. package/templates/category.tpl +15 -14
  55. package/templates/chat.tpl +16 -9
  56. package/templates/chats.tpl +5 -3
  57. package/templates/flags/detail.tpl +86 -80
  58. package/templates/flags/list.tpl +4 -4
  59. package/templates/footer.tpl +1 -1
  60. package/templates/groups/details.tpl +23 -218
  61. package/templates/groups/list.tpl +11 -9
  62. package/templates/groups/members.tpl +1 -4
  63. package/templates/header.tpl +10 -4
  64. package/templates/ip-blacklist.tpl +22 -20
  65. package/templates/login.tpl +17 -14
  66. package/templates/modules/taskbar.tpl +1 -1
  67. package/templates/modules/usercard.tpl +2 -2
  68. package/templates/notifications.tpl +40 -38
  69. package/templates/partials/acceptTos.tpl +8 -8
  70. package/templates/partials/account/category-item.tpl +6 -5
  71. package/templates/partials/account/header.tpl +2 -2
  72. package/templates/partials/account/menu.tpl +37 -37
  73. package/templates/partials/breadcrumbs.tpl +1 -1
  74. package/templates/partials/buttons/newTopic.tpl +10 -3
  75. package/templates/partials/categories/item.tpl +24 -10
  76. package/templates/partials/categories/lastpost.tpl +3 -3
  77. package/templates/partials/categories/link.tpl +10 -10
  78. package/templates/partials/category/sort.tpl +7 -7
  79. package/templates/partials/category/subcategory.tpl +3 -3
  80. package/templates/partials/category/tags.tpl +3 -5
  81. package/templates/partials/category/tools.tpl +16 -16
  82. package/templates/partials/category/watch.tpl +8 -10
  83. package/templates/partials/category-filter-content.tpl +17 -5
  84. package/templates/partials/category-filter-right.tpl +1 -1
  85. package/templates/partials/category-selector-content.tpl +17 -4
  86. package/templates/partials/category-selector-right.tpl +1 -1
  87. package/templates/partials/chats/message-window.tpl +10 -8
  88. package/templates/partials/chats/message.tpl +11 -11
  89. package/templates/partials/chats/options.tpl +8 -8
  90. package/templates/partials/chats/recent_room.tpl +1 -1
  91. package/templates/partials/chats/system-message.tpl +1 -1
  92. package/templates/partials/chats/user.tpl +1 -1
  93. package/templates/partials/chats-menu.tpl +11 -11
  94. package/templates/partials/cookie-consent.tpl +1 -1
  95. package/templates/partials/flags/filters.tpl +34 -32
  96. package/templates/partials/groups/admin.tpl +195 -0
  97. package/templates/partials/groups/badge.tpl +1 -0
  98. package/templates/partials/groups/list.tpl +6 -6
  99. package/templates/partials/groups/memberlist.tpl +11 -10
  100. package/templates/partials/menu.tpl +149 -156
  101. package/templates/partials/notifications_list.tpl +2 -2
  102. package/templates/partials/paginator.tpl +21 -21
  103. package/templates/partials/post_bar.tpl +4 -4
  104. package/templates/partials/posts_list.tpl +1 -1
  105. package/templates/partials/posts_list_item.tpl +2 -2
  106. package/templates/partials/quick-search-results.tpl +14 -11
  107. package/templates/partials/slideout-menu.tpl +1 -1
  108. package/templates/partials/tags_list.tpl +3 -3
  109. package/templates/partials/thread_tools.tpl +4 -4
  110. package/templates/partials/toast.tpl +14 -0
  111. package/templates/partials/topic/deleted-message.tpl +2 -2
  112. package/templates/partials/topic/event.tpl +26 -0
  113. package/templates/partials/topic/navigation-post.tpl +3 -3
  114. package/templates/partials/topic/navigator.tpl +7 -7
  115. package/templates/partials/topic/necro-post.tpl +1 -1
  116. package/templates/partials/topic/post-menu-list.tpl +26 -23
  117. package/templates/partials/topic/post-menu.tpl +3 -3
  118. package/templates/partials/topic/post.tpl +49 -44
  119. package/templates/partials/topic/quickreply.tpl +3 -3
  120. package/templates/partials/topic/reply-button.tpl +3 -3
  121. package/templates/partials/topic/sort.tpl +5 -5
  122. package/templates/partials/topic/tag.tpl +1 -0
  123. package/templates/partials/topic/tags.tpl +3 -5
  124. package/templates/partials/topic/topic-menu-list.tpl +18 -16
  125. package/templates/partials/topic/watch.tpl +11 -10
  126. package/templates/partials/topic-filters.tpl +12 -0
  127. package/templates/partials/topic-terms.tpl +12 -0
  128. package/templates/partials/topics_list.tpl +27 -25
  129. package/templates/partials/users_list.tpl +22 -10
  130. package/templates/partials/users_list_menu.tpl +19 -9
  131. package/templates/popular.tpl +9 -35
  132. package/templates/post-queue.tpl +42 -35
  133. package/templates/recent.tpl +10 -24
  134. package/templates/register.tpl +17 -17
  135. package/templates/registerComplete.tpl +14 -10
  136. package/templates/reset.tpl +7 -5
  137. package/templates/reset_code.tpl +9 -9
  138. package/templates/search.tpl +100 -87
  139. package/templates/tag.tpl +8 -10
  140. package/templates/tags.tpl +5 -3
  141. package/templates/top.tpl +9 -35
  142. package/templates/topic.tpl +13 -11
  143. package/templates/tos.tpl +4 -4
  144. package/templates/unread.tpl +10 -22
  145. package/templates/users.tpl +7 -20
  146. package/theme.json +6 -6
  147. package/theme.scss +1 -0
  148. package/less/bootstrap/.csscomb.json +0 -297
  149. package/less/bootstrap/.csslintrc +0 -19
  150. package/less/bootstrap/alerts.less +0 -73
  151. package/less/bootstrap/badges.less +0 -66
  152. package/less/bootstrap/bootstrap.less +0 -50
  153. package/less/bootstrap/breadcrumbs.less +0 -26
  154. package/less/bootstrap/button-groups.less +0 -243
  155. package/less/bootstrap/buttons.less +0 -160
  156. package/less/bootstrap/carousel.less +0 -269
  157. package/less/bootstrap/close.less +0 -34
  158. package/less/bootstrap/code.less +0 -69
  159. package/less/bootstrap/component-animations.less +0 -33
  160. package/less/bootstrap/dropdowns.less +0 -214
  161. package/less/bootstrap/forms.less +0 -574
  162. package/less/bootstrap/glyphicons.less +0 -305
  163. package/less/bootstrap/grid.less +0 -84
  164. package/less/bootstrap/input-groups.less +0 -166
  165. package/less/bootstrap/jumbotron.less +0 -50
  166. package/less/bootstrap/labels.less +0 -64
  167. package/less/bootstrap/list-group.less +0 -124
  168. package/less/bootstrap/media.less +0 -61
  169. package/less/bootstrap/mixins/alerts.less +0 -14
  170. package/less/bootstrap/mixins/background-variant.less +0 -8
  171. package/less/bootstrap/mixins/border-radius.less +0 -18
  172. package/less/bootstrap/mixins/buttons.less +0 -52
  173. package/less/bootstrap/mixins/center-block.less +0 -7
  174. package/less/bootstrap/mixins/clearfix.less +0 -22
  175. package/less/bootstrap/mixins/forms.less +0 -85
  176. package/less/bootstrap/mixins/gradients.less +0 -59
  177. package/less/bootstrap/mixins/grid-framework.less +0 -91
  178. package/less/bootstrap/mixins/grid.less +0 -122
  179. package/less/bootstrap/mixins/hide-text.less +0 -21
  180. package/less/bootstrap/mixins/image.less +0 -33
  181. package/less/bootstrap/mixins/labels.less +0 -12
  182. package/less/bootstrap/mixins/list-group.less +0 -29
  183. package/less/bootstrap/mixins/nav-divider.less +0 -10
  184. package/less/bootstrap/mixins/nav-vertical-align.less +0 -9
  185. package/less/bootstrap/mixins/opacity.less +0 -8
  186. package/less/bootstrap/mixins/pagination.less +0 -23
  187. package/less/bootstrap/mixins/panels.less +0 -24
  188. package/less/bootstrap/mixins/progress-bar.less +0 -10
  189. package/less/bootstrap/mixins/reset-filter.less +0 -8
  190. package/less/bootstrap/mixins/resize.less +0 -6
  191. package/less/bootstrap/mixins/responsive-visibility.less +0 -15
  192. package/less/bootstrap/mixins/size.less +0 -10
  193. package/less/bootstrap/mixins/tab-focus.less +0 -9
  194. package/less/bootstrap/mixins/table-row.less +0 -28
  195. package/less/bootstrap/mixins/text-emphasis.less +0 -8
  196. package/less/bootstrap/mixins/text-overflow.less +0 -8
  197. package/less/bootstrap/mixins/vendor-prefixes.less +0 -227
  198. package/less/bootstrap/mixins.less +0 -39
  199. package/less/bootstrap/modals.less +0 -150
  200. package/less/bootstrap/navbar.less +0 -660
  201. package/less/bootstrap/navs.less +0 -242
  202. package/less/bootstrap/normalize.less +0 -427
  203. package/less/bootstrap/pager.less +0 -54
  204. package/less/bootstrap/pagination.less +0 -88
  205. package/less/bootstrap/panels.less +0 -265
  206. package/less/bootstrap/popovers.less +0 -135
  207. package/less/bootstrap/print.less +0 -107
  208. package/less/bootstrap/progress-bars.less +0 -87
  209. package/less/bootstrap/responsive-embed.less +0 -35
  210. package/less/bootstrap/responsive-utilities.less +0 -194
  211. package/less/bootstrap/scaffolding.less +0 -162
  212. package/less/bootstrap/tables.less +0 -234
  213. package/less/bootstrap/theme.less +0 -273
  214. package/less/bootstrap/thumbnails.less +0 -36
  215. package/less/bootstrap/tooltip.less +0 -102
  216. package/less/bootstrap/type.less +0 -302
  217. package/less/bootstrap/utilities.less +0 -55
  218. package/less/bootstrap/variables.less +0 -861
  219. package/less/bootstrap/wells.less +0 -29
  220. package/less/bootstrap-flipped.css +0 -1550
  221. package/less/ip-blacklist.less +0 -7
  222. package/less/modules/bottom-sheet.less +0 -60
  223. package/less/modules/nprogress.less +0 -80
  224. package/less/notifications.less +0 -38
  225. package/less/post-queue.less +0 -19
  226. package/less/rtl.less +0 -132
  227. package/less/search.less +0 -96
  228. package/less/tags.less +0 -37
  229. package/less/topics_list.less +0 -16
  230. package/less/users.less +0 -73
  231. package/templates/alert.tpl +0 -15
  232. package/templates/partials/change_owner_modal.tpl +0 -22
  233. package/templates/partials/delete_posts_modal.tpl +0 -19
  234. package/templates/partials/fork_thread_modal.tpl +0 -22
  235. package/templates/partials/merge_topics_modal.tpl +0 -58
  236. package/templates/partials/modals/change_picture_modal.tpl +0 -73
  237. package/templates/partials/modals/flag_modal.tpl +0 -45
  238. package/templates/partials/modals/manage_room.tpl +0 -11
  239. package/templates/partials/modals/manage_room_users.tpl +0 -7
  240. package/templates/partials/modals/post_history.tpl +0 -36
  241. package/templates/partials/modals/rename_room.tpl +0 -4
  242. package/templates/partials/modals/upload_file_modal.tpl +0 -44
  243. package/templates/partials/modals/upload_picture_from_url_modal.tpl +0 -17
  244. package/templates/partials/modals/votes_modal.tpl +0 -10
  245. package/templates/partials/move_thread_modal.tpl +0 -17
  246. package/templates/partials/topic/badge.tpl +0 -5
  247. package/theme.less +0 -2
@@ -1,55 +1,113 @@
1
- <div class="navbar-header">
2
- <button type="button" class="navbar-toggle pull-left" id="mobile-menu">
3
- <i class="fa fa-lg fa-fw fa-bars unread-count" data-content="{unreadCount.mobileUnread}" data-unread-url="{unreadCount.unreadUrl}"></i>
1
+ <div class="d-flex align-items-center me-auto">
2
+ <button type="button" class="navbar-toggler border-0" id="mobile-menu">
3
+ <i class="fa fa-lg fa-fw fa-bars unread-count" ></i>
4
+ <span component="unread/icon" class="notification-icon fa fa-fw fa-book unread-count" data-content="{unreadCount.mobileUnread}" data-unread-url="{unreadCount.unreadUrl}"></span>
4
5
  </button>
5
- {{{ if config.loggedIn }}}
6
- <button type="button" class="navbar-toggle" id="mobile-chats">
7
- <span component="notifications/icon" class="notification-icon fa fa-fw fa-bell-o unread-count" data-content="{unreadCount.notification}"></span>
8
- <span component="chat/icon" class="notification-icon fa fa-fw fa-comments unread-count" data-content="{unreadCount.chat}"></span>
9
- {buildAvatar(user, "md", true)}
10
- </button>
11
- {{{ end }}}
6
+ <div class="d-inline-flex align-items-center">
7
+ {{{ if brand:logo }}}
8
+ <a class="navbar-brand" href="{{{ if brand:logo:url }}}{brand:logo:url}{{{ else }}}{relative_path}/{{{ end }}}">
9
+ <img alt="{brand:logo:alt}" class="{brand:logo:display} forum-logo d-inline-block align-text-bottom" src="{brand:logo}?{config.cache-buster}" />
10
+ </a>
11
+ {{{ end }}}
12
+ {{{ if config.showSiteTitle }}}
13
+ <a class="navbar-brand text-truncate" href="{{{ if title:url }}}{title:url}{{{ else }}}{relative_path}/{{{ end }}}">
14
+ <span class="forum-title">{config.siteTitle}</span>
15
+ </a>
16
+ {{{ end }}}
17
+ </div>
18
+ </div>
12
19
 
13
- {{{ if config.searchEnabled }}}
14
- <div class="navbar-search visible-xs pull-right">
15
- <form action="{config.relative_path}/search" method="GET">
16
- <button type="button" class="btn btn-link"><i class="fa fa-lg fa-fw fa-search" title="[[global:header.search]]"></i></button>
17
- <input autocomplete="off" type="text" class="form-control hidden" name="term" placeholder="[[global:search]]"/>
18
- <button class="btn btn-primary hidden" type="submit"></button>
19
- <input type="text" class="hidden" name="in" value="{config.searchDefaultInQuick}" />
20
- </form>
21
- <div class="quick-search-container hidden">
22
- <div class="quick-search-results-container"></div>
23
- </div>
20
+ {{{ if config.searchEnabled }}}
21
+ <div class="navbar-search visible-xs">
22
+ <form action="{config.relative_path}/search" method="GET">
23
+ <button type="button" class="btn btn-link"><i class="fa fa-lg fa-fw fa-search" title="[[global:header.search]]"></i></button>
24
+ <input autocomplete="off" type="text" class="form-control hidden" name="term" placeholder="[[global:search]]"/>
25
+ <button class="btn btn-primary hidden" type="submit"></button>
26
+ <input type="text" class="hidden" name="in" value="{config.searchDefaultInQuick}" />
27
+ </form>
28
+ <div class="quick-search-container hidden">
29
+ <div class="quick-search-results-container"></div>
24
30
  </div>
25
- {{{ end }}}
31
+ </div>
32
+ {{{ end }}}
26
33
 
27
- <!-- IF brand:logo -->
28
- <a href="<!-- IF brand:logo:url -->{brand:logo:url}<!-- ELSE -->{relative_path}/<!-- ENDIF brand:logo:url -->">
29
- <img alt="{brand:logo:alt}" class="{brand:logo:display} forum-logo" src="{brand:logo}?{config.cache-buster}" />
30
- </a>
31
- <!-- ENDIF brand:logo -->
32
- <!-- IF config.showSiteTitle -->
33
- <a href="<!-- IF title:url -->{title:url}<!-- ELSE -->{relative_path}/<!-- ENDIF title:url -->">
34
- <h1 class="navbar-brand forum-title">{config.siteTitle}</h1>
35
- </a>
36
- <!-- ENDIF config.showSiteTitle -->
34
+ {{{ if config.loggedIn }}}
35
+ <button type="button" class="navbar-toggler border-0" id="mobile-chats">
36
+ <span component="notifications/icon" class="notification-icon fa fa-fw fa-bell-o unread-count" data-content="{unreadCount.notification}"></span>
37
+ <span component="chat/icon" class="notification-icon fa fa-fw fa-comments unread-count" data-content="{unreadCount.chat}"></span>
38
+ {buildAvatar(user, "32px", true)}
39
+ </button>
40
+ {{{ end }}}
37
41
 
38
- <div component="navbar/title" class="visible-xs hidden">
39
- <span></span>
40
- </div>
42
+ <div component="navbar/title" class="visible-xs hidden">
43
+ <span></span>
41
44
  </div>
42
45
 
43
- <div id="nav-dropdown" class="hidden-xs">
44
- <!-- IF !maintenanceHeader -->
45
- <!-- IF config.loggedIn -->
46
+ <div id="nav-dropdown" class="collapse navbar-collapse d-none d-lg-block">
47
+ <ul id="main-nav" class="navbar-nav me-auto mb-2 mb-lg-0">
48
+ {{{each navigation}}}
49
+ <!-- IF function.displayMenuItem, @index -->
50
+ <li class="nav-item {navigation.class}{{{ if navigation.dropdown }}} dropdown{{{ end }}}" title="{navigation.title}">
51
+ <a class="nav-link navigation-link {{{ if navigation.dropdown }}}dropdown-toggle{{{ end }}}"
52
+ {{{ if navigation.dropdown }}} href="#" role="button" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false" {{{ else }}} href="{navigation.route}"{{{ end }}} {{{ if navigation.id }}}id="{navigation.id}"{{{ end }}}{{{ if navigation.targetBlank }}} target="_blank"{{{ end }}}>
53
+ {{{ if navigation.iconClass }}}
54
+ <i class="fa fa-fw {navigation.iconClass}" data-content="{navigation.content}"></i>
55
+ {{{ end }}}
56
+ {{{ if navigation.text }}}
57
+ <span class="{navigation.textClass}">{navigation.text}</span>
58
+ {{{ end }}}
59
+ {{{ if navigation.dropdown}}}
60
+ <i class="fa fa-caret-down"></i>
61
+ {{{ end }}}
62
+ </a>
63
+ {{{ if navigation.dropdown }}}
64
+ <ul class="dropdown-menu">
65
+ {navigation.dropdownContent}
66
+ </ul>
67
+ {{{ end }}}
68
+ </li>
69
+ <!-- ENDIF function.displayMenuItem -->
70
+ {{{end}}}
71
+ </ul>
72
+
73
+ {{{ if config.searchEnabled }}}
74
+ <div class="navbar-nav mb-2 mb-lg-0 position-relative">
75
+ <form component="search/form" id="search-form" class="d-flex justify-content-end align-items-center" role="search" method="GET">
76
+ <div component="search/fields" class="hidden" id="search-fields">
77
+ <div class="input-group flex-nowrap">
78
+ <input autocomplete="off" type="text" class="form-control" placeholder="[[global:search]]" name="query" value="">
46
79
 
47
- <ul id="logged-in-menu" class="nav navbar-nav navbar-right">
48
- <li class="notifications dropdown text-center hidden-xs" component="notifications">
49
- <a href="{relative_path}/notifications" title="[[global:header.notifications]]" class="dropdown-toggle" data-toggle="dropdown" id="notif_dropdown" data-ajaxify="false" role="button">
80
+ <button href="#" class="btn btn-outline-secondary">
81
+ <i class="fa fa-gears fa-fw advanced-search-link"></i>
82
+ </button>
83
+ </div>
84
+
85
+ <div id="quick-search-container" class="quick-search-container dropdown-menu d-block mt-2 hidden">
86
+ <div class="form-check filter-category mb-2 ms-4">
87
+ <input class="form-check-input" type="checkbox" checked>
88
+ <label class="form-check-label name"></label>
89
+ </div>
90
+
91
+ <div class="text-center loading-indicator"><i class="fa fa-spinner fa-spin"></i></div>
92
+ <div class="quick-search-results-container"></div>
93
+ </div>
94
+ <button type="submit" class="btn btn-outline-secondary hide">[[global:search]]</button>
95
+ </div>
96
+
97
+ <li id="" class="nav-item"><a component="search/button" id="search-button" href="#" class="nav-link"><i class="fa fa-search fa-fw" title="Search"></i></a></li>
98
+ </form>
99
+
100
+ </div>
101
+ {{{ end }}}
102
+
103
+ {{{ if !maintenanceHeader }}}
104
+ {{{ if config.loggedIn }}}
105
+ <ul id="logged-in-menu" class="navbar-nav me-0 mb-2 mb-lg-0 align-items-center">
106
+ <li class="nav-item notifications dropdown d-none d-sm-block" component="notifications" title="[[global:header.notifications]]">
107
+ <a href="{relative_path}/notifications" class="nav-link" data-bs-toggle="dropdown" id="notif_dropdown" data-ajaxify="false" role="button">
50
108
  <i component="notifications/icon" class="fa fa-fw fa-bell-o unread-count" data-content="{unreadCount.notification}"></i>
51
109
  </a>
52
- <ul class="dropdown-menu" aria-labelledby="notif_dropdown">
110
+ <ul class="dropdown-menu dropdown-menu-end" aria-labelledby="notif_dropdown">
53
111
  <li>
54
112
  <ul component="notifications/list" class="notification-list">
55
113
  <li class="loading-text">
@@ -58,20 +116,20 @@
58
116
  </ul>
59
117
  </li>
60
118
  <li class="notif-dropdown-link">
61
- <div class="btn-group btn-group-justified">
62
- <a role="button" href="#" class="btn btn-secondary mark-all-read"><i class="fa fa-check-double"></i> [[notifications:mark_all_read]]</a>
63
- <a class="btn btn-secondary" href="{relative_path}/notifications"><i class="fa fa-list"></i> [[notifications:see_all]]</a>
119
+ <div class="btn-group d-flex justify-content-center">
120
+ <a role="button" href="#" class="btn btn-light mark-all-read"><i class="fa fa-check-double"></i> [[notifications:mark_all_read]]</a>
121
+ <a class="btn btn-light" href="{relative_path}/notifications"><i class="fa fa-list"></i> [[notifications:see_all]]</a>
64
122
  </div>
65
123
  </li>
66
124
  </ul>
67
125
  </li>
68
126
 
69
127
  <!-- IF canChat -->
70
- <li class="chats dropdown">
71
- <a class="dropdown-toggle" data-toggle="dropdown" href="{relative_path}/user/{user.userslug}/chats" title="[[global:header.chats]]" id="chat_dropdown" component="chat/dropdown" data-ajaxify="false" role="button">
72
- <i component="chat/icon" class="fa fa-comment-o fa-fw unread-count" data-content="{unreadCount.chat}"></i> <span class="visible-xs-inline">[[global:header.chats]]</span>
128
+ <li class="nav-item chats dropdown" title="[[global:header.chats]]">
129
+ <a class="nav-link" data-bs-toggle="dropdown" href="{relative_path}/user/{user.userslug}/chats" id="chat_dropdown" component="chat/dropdown" data-ajaxify="false" role="button">
130
+ <i component="chat/icon" class="fa fa-comment-o fa-fw unread-count" data-content="{unreadCount.chat}"></i> <span class="d-inline d-sm-none">[[global:header.chats]]</span>
73
131
  </a>
74
- <ul class="dropdown-menu" aria-labelledby="chat_dropdown">
132
+ <ul class="dropdown-menu dropdown-menu-end" aria-labelledby="chat_dropdown">
75
133
  <li>
76
134
  <ul component="chat/list" class="chat-list chats-list">
77
135
  <li class="loading-text">
@@ -80,192 +138,127 @@
80
138
  </ul>
81
139
  </li>
82
140
  <li class="notif-dropdown-link">
83
- <div class="btn-group btn-group-justified">
84
- <a class="btn btn-secondary mark-all-read" href="#" component="chats/mark-all-read"><i class="fa fa-check-double"></i> [[modules:chat.mark_all_read]]</a>
85
- <a class="btn btn-secondary" href="{relative_path}/user/{user.userslug}/chats"><i class="fa fa-comments"></i> [[modules:chat.see_all]]</a>
141
+ <div class="btn-group d-flex justify-content-center">
142
+ <a class="btn btn-light mark-all-read" href="#" component="chats/mark-all-read"><i class="fa fa-check-double"></i> [[modules:chat.mark_all_read]]</a>
143
+ <a class="btn btn-light" href="{relative_path}/user/{user.userslug}/chats"><i class="fa fa-comments"></i> [[modules:chat.see_all]]</a>
86
144
  </div>
87
145
  </li>
88
146
  </ul>
89
147
  </li>
90
148
  <!-- ENDIF canChat -->
91
149
 
92
- <li id="user_label" class="dropdown">
93
- <label for="user-control-list-check" class="dropdown-toggle" data-toggle="dropdown" id="user_dropdown" title="[[global:header.profile]]" role="button">
94
- {buildAvatar(user, "md", true)}
95
- <span id="user-header-name" class="visible-xs-inline">{user.username}</span>
150
+ <li id="user_label" class="nav-item dropdown" title="[[global:header.profile]]">
151
+ <label for="user-control-list-check" class="" data-bs-toggle="dropdown" id="user_dropdown" role="button">
152
+ {buildAvatar(user, "32px", true)}
153
+ <span id="user-header-name" class="d-block d-sm-none">{user.username}</span>
96
154
  </label>
97
155
  <input type="checkbox" class="hidden" id="user-control-list-check" aria-hidden="true">
98
- <ul id="user-control-list" component="header/usercontrol" class="dropdown-menu" aria-labelledby="user_dropdown">
156
+ <ul id="user-control-list" component="header/usercontrol" class="dropdown-menu dropdown-menu-end" aria-labelledby="user_dropdown">
99
157
  <li>
100
- <a component="header/profilelink" href="{relative_path}/user/{user.userslug}">
158
+ <a class="dropdown-item" component="header/profilelink" href="{relative_path}/user/{user.userslug}">
101
159
  <i component="user/status" class="fa fa-fw fa-circle status {user.status}"></i> <span component="header/username">{user.username}</span>
102
160
  </a>
103
161
  </li>
104
- <li role="presentation" class="divider"></li>
162
+ <li role="presentation" class="dropdown-divider"></li>
163
+ <li><h6 class="dropdown-header">[[global:status]]</h6></li>
105
164
  <li>
106
- <a href="#" class="user-status" data-status="online">
165
+ <a href="#" class="dropdown-item user-status" data-status="online">
107
166
  <i class="fa fa-fw fa-circle status online"></i><span <!-- IF user.online -->class="bold"<!-- ENDIF user.online -->> [[global:online]]</span>
108
167
  </a>
109
168
  </li>
110
169
  <li>
111
- <a href="#" class="user-status" data-status="away">
170
+ <a href="#" class="dropdown-item user-status" data-status="away">
112
171
  <i class="fa fa-fw fa-circle status away"></i><span <!-- IF user.away -->class="bold"<!-- ENDIF user.away -->> [[global:away]]</span>
113
172
  </a>
114
173
  </li>
115
174
  <li>
116
- <a href="#" class="user-status" data-status="dnd">
175
+ <a href="#" class="dropdown-item user-status" data-status="dnd">
117
176
  <i class="fa fa-fw fa-circle status dnd"></i><span <!-- IF user.dnd -->class="bold"<!-- ENDIF user.dnd -->> [[global:dnd]]</span>
118
177
  </a>
119
178
  </li>
120
179
  <li>
121
- <a href="#" class="user-status" data-status="offline">
180
+ <a href="#" class="dropdown-item user-status" data-status="offline">
122
181
  <i class="fa fa-fw fa-circle status offline"></i><span <!-- IF user.offline -->class="bold"<!-- ENDIF user.offline -->> [[global:invisible]]</span>
123
182
  </a>
124
183
  </li>
125
- <li role="presentation" class="divider"></li>
184
+ <li role="presentation" class="dropdown-divider"></li>
126
185
  <li>
127
- <a component="header/profilelink/edit" href="{relative_path}/user/{user.userslug}/edit">
186
+ <a class="dropdown-item" component="header/profilelink/edit" href="{relative_path}/user/{user.userslug}/edit">
128
187
  <i class="fa fa-fw fa-edit"></i> <span>[[user:edit-profile]]</span>
129
188
  </a>
130
189
  </li>
131
190
  <li>
132
- <a component="header/profilelink/settings" href="{relative_path}/user/{user.userslug}/settings">
191
+ <a class="dropdown-item" component="header/profilelink/settings" href="{relative_path}/user/{user.userslug}/settings">
133
192
  <i class="fa fa-fw fa-gear"></i> <span>[[user:settings]]</span>
134
193
  </a>
135
194
  </li>
136
195
  {{{ if showModMenu }}}
137
- <li role="presentation" class="divider"></li>
138
- <li class="dropdown-header">[[pages:moderator-tools]]</li>
196
+ <li role="presentation" class="dropdown-divider"></li>
197
+ <li><h6 class="dropdown-header">[[pages:moderator-tools]]</h6></li>
139
198
  <li>
140
- <a href="{relative_path}/flags">
199
+ <a class="dropdown-item" href="{relative_path}/flags">
141
200
  <i class="fa fa-fw fa-flag"></i> <span>[[pages:flagged-content]]</span>
142
201
  </a>
143
202
  </li>
144
203
  <li>
145
- <a href="{relative_path}/post-queue">
204
+ <a class="dropdown-item" href="{relative_path}/post-queue">
146
205
  <i class="fa fa-fw fa-list-alt"></i> <span>[[pages:post-queue]]</span>
147
206
  </a>
148
207
  </li>
149
208
  <li>
150
- <a href="{relative_path}/ip-blacklist">
209
+ <a class="dropdown-item" href="{relative_path}/ip-blacklist">
151
210
  <i class="fa fa-fw fa-ban"></i> <span>[[pages:ip-blacklist]]</span>
152
211
  </a>
153
212
  </li>
154
213
  {{{ else }}}
155
214
  {{{ if postQueueEnabled }}}
156
215
  <li>
157
- <a href="{relative_path}/post-queue">
216
+ <a class="dropdown-item" href="{relative_path}/post-queue">
158
217
  <i class="fa fa-fw fa-list-alt"></i> <span>[[pages:post-queue]]</span>
159
218
  </a>
160
219
  </li>
161
220
  {{{ end }}}
162
221
  {{{ end }}}
163
222
 
164
- <li role="presentation" class="divider"></li>
223
+ <li role="presentation" class="dropdown-divider"></li>
165
224
  <li component="user/logout">
166
225
  <form method="post" action="{relative_path}/logout">
167
226
  <input type="hidden" name="_csrf" value="{config.csrf_token}">
168
227
  <input type="hidden" name="noscript" value="true">
169
- <button type="submit" class="btn btn-link">
228
+ <button type="submit" class="dropdown-item">
170
229
  <i class="fa fa-fw fa-sign-out"></i><span> [[global:logout]]</span>
171
230
  </button>
172
231
  </form>
173
232
  </li>
174
233
  </ul>
175
234
  </li>
176
-
177
235
  </ul>
178
- <!-- ELSE -->
179
- <ul id="logged-out-menu" class="nav navbar-nav navbar-right">
180
- <!-- IF allowRegistration -->
181
- <li>
182
- <a href="{relative_path}/register">
183
- <i class="fa fa-pencil fa-fw hidden-sm hidden-md hidden-lg"></i>
236
+ {{{ else }}}
237
+ <ul id="logged-out-menu" class="navbar-nav me-0 mb-2 mb-lg-0 align-items-center">
238
+ {{{ if allowRegistration }}}
239
+ <li class="nav-item">
240
+ <a class="nav-link" href="{relative_path}/register">
241
+ <i class="fa fa-pencil fa-fw d-inline-block d-sm-none"></i>
184
242
  <span>[[global:register]]</span>
185
243
  </a>
186
244
  </li>
187
- <!-- ENDIF allowRegistration -->
188
- <li>
189
- <a href="{relative_path}/login">
190
- <i class="fa fa-sign-in fa-fw hidden-sm hidden-md hidden-lg"></i>
245
+ {{{ end }}}
246
+ <li class="nav-item">
247
+ <a class="nav-link" href="{relative_path}/login">
248
+ <i class="fa fa-sign-in fa-fw d-inline-block d-sm-none"></i>
191
249
  <span>[[global:login]]</span>
192
250
  </a>
193
251
  </li>
194
252
  </ul>
195
- <!-- ENDIF config.loggedIn -->
196
- <!-- IF config.searchEnabled -->
197
- <ul class="nav navbar-nav navbar-right">
198
- <li>
199
- <form id="search-form" class="navbar-form navbar-right hidden-xs" role="search" method="GET">
200
- <button id="search-button" type="button" class="btn btn-link"><i class="fa fa-search fa-fw" title="[[global:header.search]]"></i></button>
201
- <div class="hidden" id="search-fields">
202
- <div class="form-group">
203
- <input autocomplete="off" type="text" class="form-control" placeholder="[[global:search]]" name="query" value="">
204
- <a href="#"><i class="fa fa-gears fa-fw advanced-search-link"></i></a>
205
- </div>
206
- <button type="submit" class="btn btn-default hide">[[global:search]]</button>
207
- </div>
208
- </form>
209
- <div id="quick-search-container" class="quick-search-container hidden">
210
- <div class="checkbox filter-category">
211
- <label>
212
- <input type="checkbox" checked><span class="name"></span>
213
- </label>
214
- </div>
215
- <div class="text-center loading-indicator"><i class="fa fa-spinner fa-spin"></i></div>
216
- <div class="quick-search-results-container"></div>
217
- </div>
218
- </li>
219
- <li class="visible-xs" id="search-menu">
220
- <a href="{relative_path}/search">
221
- <i class="fa fa-search fa-fw"></i> [[global:search]]
222
- </a>
223
- </li>
224
- </ul>
225
- <!-- ENDIF config.searchEnabled -->
226
-
227
- <ul class="nav navbar-nav navbar-right hidden-xs">
228
- <li>
229
- <a href="#" id="reconnect" class="hide" title="[[global:reconnecting-message, {config.siteTitle}]]">
230
- <i class="fa fa-check"></i>
231
- </a>
232
- </li>
233
- </ul>
234
-
235
- <ul id="main-nav" class="nav navbar-nav">
236
- {{{each navigation}}}
237
- <!-- IF function.displayMenuItem, @index -->
238
- <li class="{navigation.class}{{{ if navigation.dropdown }}} dropdown{{{ end }}}">
239
- <a title="{navigation.title}" class="navigation-link {{{ if navigation.dropdown }}}dropdown-toggle{{{ end }}}"
240
- {{{ if navigation.dropdown }}} href="#" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" {{{ else }}} href="{navigation.route}"{{{ end }}} {{{ if navigation.id }}}id="{navigation.id}"{{{ end }}}{{{ if navigation.targetBlank }}} target="_blank"{{{ end }}}>
241
- {{{ if navigation.iconClass }}}
242
- <i class="fa fa-fw {navigation.iconClass}" data-content="{navigation.content}"></i>
243
- {{{ end }}}
244
- {{{ if navigation.text }}}
245
- <span class="{navigation.textClass}">{navigation.text}</span>
246
- {{{ end }}}
247
- {{{ if navigation.dropdown}}}
248
- <i class="fa fa-caret-down"></i>
249
- {{{ end }}}
250
- </a>
251
- {{{ if navigation.dropdown }}}
252
- <ul class="dropdown-menu">
253
- {navigation.dropdownContent}
254
- </ul>
255
- {{{ end }}}
256
- </li>
257
- <!-- ENDIF function.displayMenuItem -->
258
- {{{end}}}
259
- </ul>
260
-
261
- <!-- ELSE -->
262
- <ul class="nav navbar-nav navbar-right">
263
- <li>
253
+ {{{ end }}}
254
+ {{{ else }}}
255
+ <ul class="navbar-nav me-0 mb-2 mb-lg-0"></ul>
256
+ <li class="nav-item">
264
257
  <a href="{relative_path}/login">
265
- <i class="fa fa-sign-in fa-fw hidden-sm hidden-md hidden-lg"></i>
258
+ <i class="fa fa-sign-in fa-fw d-block d-sm-none"></i>
266
259
  <span>[[global:login]]</span>
267
260
  </a>
268
261
  </li>
269
262
  </ul>
270
- <!-- ENDIF !maintenanceHeader -->
263
+ {{{ end }}}
271
264
  </div>
@@ -7,10 +7,10 @@
7
7
  <li class="{notifications.readClass}" data-nid="{notifications.nid}" data-path="{notifications.path}" <!-- IF notifications.pid --> data-pid="{notifications.pid}"<!-- ENDIF notifications.pid --><!-- IF notifications.tid --> data-tid="{notifications.tid}"<!-- ENDIF notifications.tid -->>
8
8
  <!-- IF notifications.image -->
9
9
  <!-- IF notifications.from -->
10
- <a href="{config.relative_path}/user/{notifications.user.userslug}"><img class="pull-left user-img avatar avatar-md avatar-rounded"src="{notifications.image}" /></a>
10
+ <a href="{config.relative_path}/user/{notifications.user.userslug}"><img class="float-start user-img avatar avatar-rounded" style="--avatar-size: 32px;" src="{notifications.image}" /></a>
11
11
  <!-- ENDIF notifications.from -->
12
12
  <!-- ELSE -->
13
- <a href="{config.relative_path}/user/{notifications.user.userslug}"><div class="pull-left avatar avatar-md avatar-rounded" style="background-color: {notifications.user.icon:bgColor};">{notifications.user.icon:text}</div></a>
13
+ <a href="{config.relative_path}/user/{notifications.user.userslug}"><div class="float-start avatar avatar-rounded" style="--avatar-size: 32px; background-color: {notifications.user.icon:bgColor};">{notifications.user.icon:text}</div></a>
14
14
  <!-- ENDIF notifications.image -->
15
15
 
16
16
  <a href="{notifications.path}" class="notification-chat-content deco-none">
@@ -1,45 +1,45 @@
1
- <div component="pagination" class="text-center pagination-container<!-- IF !pagination.pages.length --> hidden<!-- ENDIF !pagination.pages.length -->">
2
- <ul class="pagination hidden-xs">
3
- <li class="previous pull-left<!-- IF !pagination.prev.active --> disabled<!-- ENDIF !pagination.prev.active -->">
4
- <a href="?{pagination.prev.qs}" data-page="{pagination.prev.page}"><i class="fa fa-chevron-left"></i> </a>
1
+ <div component="pagination" class="pagination-container<!-- IF !pagination.pages.length --> hidden<!-- ENDIF !pagination.pages.length -->">
2
+ <ul class="pagination hidden-xs justify-content-center">
3
+ <li class="page-item previous float-start<!-- IF !pagination.prev.active --> disabled<!-- ENDIF !pagination.prev.active -->">
4
+ <a class="page-link" href="?{pagination.prev.qs}" data-page="{pagination.prev.page}"><i class="fa fa-chevron-left"></i> </a>
5
5
  </li>
6
6
 
7
7
  {{{each pagination.pages}}}
8
8
  <!-- IF pagination.pages.separator -->
9
- <li component="pagination/select-page" class="page select-page">
10
- <a href="#"><i class="fa fa-ellipsis-h"></i></a>
9
+ <li component="pagination/select-page" class="page-item page select-page">
10
+ <a class="page-link" href="#"><i class="fa fa-ellipsis-h"></i></a>
11
11
  </li>
12
12
  <!-- ELSE -->
13
- <li class="page<!-- IF pagination.pages.active --> active<!-- ENDIF pagination.pages.active -->" >
14
- <a href="?{pagination.pages.qs}" data-page="{pagination.pages.page}">{pagination.pages.page}</a>
13
+ <li class="page-item page<!-- IF pagination.pages.active --> active<!-- ENDIF pagination.pages.active -->" >
14
+ <a class="page-link" href="?{pagination.pages.qs}" data-page="{pagination.pages.page}">{pagination.pages.page}</a>
15
15
  </li>
16
16
  <!-- ENDIF pagination.pages.separator -->
17
17
  {{{end}}}
18
18
 
19
- <li class="next pull-right<!-- IF !pagination.next.active --> disabled<!-- ENDIF !pagination.next.active -->">
20
- <a href="?{pagination.next.qs}" data-page="{pagination.next.page}"> <i class="fa fa-chevron-right"></i></a>
19
+ <li class="page-item next float-end<!-- IF !pagination.next.active --> disabled<!-- ENDIF !pagination.next.active -->">
20
+ <a class="page-link" href="?{pagination.next.qs}" data-page="{pagination.next.page}"> <i class="fa fa-chevron-right"></i></a>
21
21
  </li>
22
22
  </ul>
23
23
 
24
- <ul class="pagination hidden-sm hidden-md hidden-lg">
25
- <li class="first<!-- IF !pagination.prev.active --> disabled<!-- ENDIF !pagination.prev.active -->">
26
- <a href="?{pagination.first.qs}" data-page="1"><i class="fa fa-fast-backward"></i> </a>
24
+ <ul class="pagination hidden-sm hidden-md hidden-lg justify-content-center">
25
+ <li class="page-item first<!-- IF !pagination.prev.active --> disabled<!-- ENDIF !pagination.prev.active -->">
26
+ <a class="page-link" href="?{pagination.first.qs}" data-page="1"><i class="fa fa-fast-backward"></i> </a>
27
27
  </li>
28
28
 
29
- <li class="previous<!-- IF !pagination.prev.active --> disabled<!-- ENDIF !pagination.prev.active -->">
30
- <a href="?{pagination.prev.qs}" data-page="{pagination.prev.page}"><i class="fa fa-chevron-left"></i> </a>
29
+ <li class="page-item previous<!-- IF !pagination.prev.active --> disabled<!-- ENDIF !pagination.prev.active -->">
30
+ <a class="page-link" href="?{pagination.prev.qs}" data-page="{pagination.prev.page}"><i class="fa fa-chevron-left"></i> </a>
31
31
  </li>
32
32
 
33
- <li component="pagination/select-page" class="page select-page">
34
- <a href="#">{pagination.currentPage} / {pagination.pageCount}</a>
33
+ <li component="pagination/select-page" class="page-item page select-page">
34
+ <a class="page-link" href="#">{pagination.currentPage} / {pagination.pageCount}</a>
35
35
  </li>
36
36
 
37
- <li class="next<!-- IF !pagination.next.active --> disabled<!-- ENDIF !pagination.next.active -->">
38
- <a href="?{pagination.next.qs}" data-page="{pagination.next.page}"> <i class="fa fa-chevron-right"></i></a>
37
+ <li class="page-item next<!-- IF !pagination.next.active --> disabled<!-- ENDIF !pagination.next.active -->">
38
+ <a class="page-link" href="?{pagination.next.qs}" data-page="{pagination.next.page}"> <i class="fa fa-chevron-right"></i></a>
39
39
  </li>
40
40
 
41
- <li class="last<!-- IF !pagination.next.active --> disabled<!-- ENDIF !pagination.next.active -->">
42
- <a href="?{pagination.last.qs}" data-page="{pagination.pageCount}"><i class="fa fa-fast-forward"></i> </a>
41
+ <li class="page-item last<!-- IF !pagination.next.active --> disabled<!-- ENDIF !pagination.next.active -->">
42
+ <a class="page-link" href="?{pagination.last.qs}" data-page="{pagination.pageCount}"><i class="fa fa-fast-forward"></i> </a>
43
43
  </li>
44
44
  </ul>
45
45
  </div>
@@ -1,10 +1,10 @@
1
- <div class="topic-main-buttons pull-right inline-block">
2
- <span class="loading-indicator btn pull-left hidden" done="0">
1
+ <div class="topic-main-buttons float-end d-inline-block">
2
+ <span class="loading-indicator btn float-start hidden" done="0">
3
3
  <span class="hidden-xs">[[topic:loading_more_posts]]</span> <i class="fa fa-refresh fa-spin"></i>
4
4
  </span>
5
5
 
6
6
  <!-- IF loggedIn -->
7
- <button component="topic/mark-unread" class="btn btn-sm btn-default" title="[[topic:mark_unread]]">
7
+ <button component="topic/mark-unread" class="btn btn-sm btn-outline-secondary" title="[[topic:mark_unread]]">
8
8
  <i class="fa fa-fw fa-inbox"></i><span class="visible-sm-inline visible-md-inline visible-lg-inline"></span>
9
9
  </button>
10
10
  <!-- ENDIF loggedIn -->
@@ -13,7 +13,7 @@
13
13
 
14
14
  <!-- IMPORT partials/topic/sort.tpl -->
15
15
 
16
- <div class="inline-block">
16
+ <div class="d-inline-block">
17
17
  <!-- IMPORT partials/thread_tools.tpl -->
18
18
  </div>
19
19
  <!-- IMPORT partials/topic/reply-button.tpl -->
@@ -1,4 +1,4 @@
1
- <ul component="posts" class="posts-list" data-nextstart="{nextStart}">
1
+ <ul component="posts" class="posts-list list-unstyled" data-nextstart="{nextStart}">
2
2
  {{{each posts}}}
3
3
  <!-- IMPORT partials/posts_list_item.tpl -->
4
4
  {{{end}}}
@@ -1,5 +1,5 @@
1
1
  <li component="post" class="posts-list-item row<!-- IF ../deleted --> deleted<!-- ELSE --><!-- IF ../topic.deleted --> deleted<!-- ENDIF --><!-- ENDIF -->{{{ if ../topic.scheduled }}} scheduled{{{ end }}}" data-pid="{../pid}" data-uid="{../uid}">
2
- <div class="col-lg-11 col-sm-10 col-xs-9 post-body">
2
+ <div class="col-lg-11 col-sm-10 col-9 post-body">
3
3
  <a class="topic-title" href="{config.relative_path}/post/{../pid}">
4
4
  <!-- IF !../isMainPost -->RE: <!-- ENDIF -->{../topic.title}
5
5
  </a>
@@ -21,7 +21,7 @@
21
21
  {{{ end }}}
22
22
 
23
23
  <div class="post-info">
24
- <a href="{config.relative_path}/user/{../user.userslug}">{buildAvatar(../user, "md", true, "user-img not-responsive")}</a>
24
+ <a href="{config.relative_path}/user/{../user.userslug}">{buildAvatar(../user, "28px", true, "user-img not-responsive")}</a>
25
25
 
26
26
  <div class="post-author">
27
27
  <a href="{config.relative_path}/user/{../user.userslug}">{../user.displayname}</a><br />
@@ -1,26 +1,29 @@
1
- <ul id="quick-search-results" class="quick-search-results">
1
+ <ul id="quick-search-results" class="quick-search-results list-unstyled mb-0 p-0 overflow-auto" style="max-width:400px; max-height: 500px;">
2
2
  {{{each posts}}}
3
3
  <li data-tid="{posts.topic.tid}" data-pid="{posts.pid}">
4
- <a href="{config.relative_path}/post/{posts.pid}" class="deco-none">
5
- {buildAvatar(posts.user, "sm", true)}
6
- <span class="quick-search-title">{posts.topic.title}</span>
4
+ <a href="{config.relative_path}/post/{posts.pid}"
5
+ class="text-decoration-none text-reset clearfix d-block text-truncate px-3 py-1">
6
+ {buildAvatar(posts.user, "24px", true)}
7
+ <span class="quick-search-title fw-bold">{posts.topic.title}</span>
7
8
  <br/>
8
- <p class="snippet">
9
+ <p class="snippet text-break text-wrap">
9
10
  {posts.snippet}
10
11
  </p>
11
- <small class="post-info pull-right">
12
- <span class="fa-stack" style="{function.generateCategoryBackground, posts.category}"><i style="color:{posts.category.color};" class="fa {posts.category.icon} fa-stack-1x"></i></span> {posts.category.name} &bull;
13
- <span class="timeago" title="{posts.timestampISO}"></span>
12
+ <small class="post-info float-end">
13
+ <div class="category-item d-inline-block">
14
+ {buildCategoryIcon(./category, "24px", "rounded-circle")} {posts.category.name}
15
+ &bull; <span class="timeago" title="{posts.timestampISO}"></span>
16
+ </div>
14
17
  </small>
15
- </a>
18
+ </a>
16
19
  </li>
17
20
  <!-- IF !@last -->
18
- <li role="separator" class="divider"></li>
21
+ <li role="separator" class="dropdown-divider"></li>
19
22
  <!-- ENDIF -->
20
23
  {{{end}}}
21
24
  </ul>
22
25
  <!-- IF multiplePages -->
23
- <div class="text-center">
26
+ <div class="text-center mt-2">
24
27
  <a href="{url}">
25
28
  [[search:see-more-results, {matchCount}]]
26
29
  </a>
@@ -1,4 +1,4 @@
1
1
  <section class="menu-section" data-section="navigation">
2
- <ul class="menu-section-list"></ul>
2
+ <ul class="menu-section-list text-bg-dark"></ul>
3
3
  </section>
4
4
 
@@ -1,5 +1,5 @@
1
1
  {{{each tags}}}
2
- <h3 class="pull-left tag-container">
3
- <a href="{config.relative_path}/tags/{tags.valueEncoded}" data-value="{tags.valueEscaped}"><span class="tag-item tag-class-{tags.class}" data-tag="{tags.valueEscaped}">{tags.valueEscaped}</span><span class="tag-topic-count human-readable-number" title="{tags.score}">{tags.score}</span></a>
4
- </h3>
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>
4
+ </h5>
5
5
  {{{end}}}