nodebb-theme-persona 13.3.45 → 13.3.46

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "nodebb-theme-persona",
3
- "version": "13.3.45",
3
+ "version": "13.3.46",
4
4
  "nbbpm": {
5
5
  "compatibility": "^3.7.0"
6
6
  },
@@ -1,161 +1,5 @@
1
- .category {
2
-
3
- .topic-list {
4
- overflow: visible;
5
- }
6
-
7
- > ul {
8
- > li {
9
- list-style: none;
10
-
11
- &:not(.unread) {
12
- .lastpost {
13
- border-color: lighten($gray-600, 20%) !important;
14
- }
15
-
16
- h2 a {
17
- color: $text-muted;
18
- }
19
- }
20
- .info {
21
- margin-left: 62px;
22
- font-size: 0.75rem;
23
- }
24
- &.deleted {
25
- -moz-opacity: 0.30;
26
- opacity: 0.30;
27
- }
28
-
29
- &.scheduled {
30
- opacity: 0.7;
31
- }
32
-
33
- .select {
34
- position: relative;
35
- @include pointer;
36
-
37
- &:before {
38
- content: "";
39
- display: none;
40
- }
41
-
42
- .fa-check {
43
- padding: 14.5px; /* 14.5*2 + 15 + 2px border = 46px */
44
- border-radius: 50%;
45
- position: absolute;
46
- font-size: 15px;
47
- opacity: 0;
48
- top: 0px;
49
- left: 0px;
50
- border: 1px solid transparent;
51
- background: $white;
52
- width: 100%;
53
- height: 100%;
54
- padding: 14px;
55
-
56
- &:before {
57
- @include pointer;
58
- }
59
- }
60
-
61
- .avatar {
62
- opacity: 1;
63
- }
64
-
65
- .fa-check, .avatar {
66
- @include transition(.2s ease-in-out all);
67
- }
68
-
69
- float: left;
70
- }
71
-
72
- .avatar .select {
73
- .fa-check {
74
- border: 1px solid $success;
75
- color: $success;
76
- }
77
- }
78
-
79
- .avatar .select:hover {
80
- .avatar {
81
- opacity: 0;
82
- }
83
-
84
- .fa-check {
85
- border: 1px solid $success;
86
- color: $success;
87
- opacity: 1;
88
- }
89
- }
90
-
91
- &.selected {
92
- .select .avatar {
93
- opacity: 0;
94
- }
95
-
96
- .avatar .select {
97
- .fa-check {
98
- opacity: 1;
99
- background-color: $success;
100
- border: 1px solid $success;
101
- color: $white;
102
- @include transition(all .15s ease-in-out);
103
- }
104
-
105
- &:hover .fa-check {
106
- background-color: $success;
107
- border: 1px solid $success;
108
- color: $white;
109
- }
110
- }
111
- }
112
-
113
- .lastpost .user-icon {
114
- display: inline-block;
115
- @include user-icon-style(24px, 1.5rem, 50%);
116
- }
117
- }
118
-
119
- &:last-child li {
120
- border-bottom: 0;
121
- }
122
- }
123
-
124
- .unread {
125
- .title {
126
- font-weight: bold;
127
- }
128
- }
129
-
130
- .subcategory {
131
- margin-bottom: 10px;
132
- }
133
- }
134
-
135
1
  .category, .categories, .subcategory {
136
- > p {
137
- text-transform: uppercase;
138
- }
139
-
140
- .description {
141
- font-weight: normal;
142
- line-height: 1.2;
143
- margin-top: 5px;
144
- min-height: 25px
2
+ .description > p {
3
+ margin-bottom: 0;
145
4
  }
146
-
147
- .title, .description, .category-children {
148
- margin-left: 62px;
149
- }
150
- }
151
-
152
- .categories-title {
153
- text-transform: uppercase;
154
- margin: 0 0 10px;
155
- font-size: 14px;
156
- font-weight: normal;
157
- line-height: 1.42857143;
158
5
  }
159
-
160
-
161
-
package/scss/chats.scss CHANGED
@@ -3,7 +3,7 @@ body.page-user-chats {
3
3
 
4
4
  > #panel {
5
5
  height: $calcHeight;
6
- > .container {
6
+ > #content {
7
7
  height: 100%;
8
8
  }
9
9
  }
@@ -0,0 +1,41 @@
1
+ ul.topics-list, ul.categories-list {
2
+ li {
3
+ &.deleted {
4
+ .meta, .topic-thumbs { display: none!important; }
5
+ opacity: 0.65;
6
+ }
7
+
8
+ &.selected {
9
+ background-color: mix($body-bg, $body-color, 90%);
10
+ [component="topic/select"] {
11
+ color: $success!important;
12
+ visibility: visible;
13
+ }
14
+ }
15
+ p {
16
+ margin: 0 !important;
17
+ }
18
+
19
+ // all other skins use link-color for unread titles
20
+ &.unread .title a {
21
+ color: $link-color;
22
+ font-weight: bold;
23
+ }
24
+
25
+ .ui-sortable-handle {
26
+ cursor: move;
27
+ }
28
+
29
+ // if only one thumb don't display
30
+ [data-numthumbs="1"] { display: none; }
31
+ }
32
+ }
33
+
34
+ // on default skin use primary color for unread titles
35
+ .skin-noskin {
36
+ ul.topics-list, ul.categories-list {
37
+ li.unread .title {
38
+ color: $primary;
39
+ }
40
+ }
41
+ }
package/scss/persona.scss CHANGED
@@ -6,7 +6,6 @@
6
6
  @import "category";
7
7
  @import "tags";
8
8
  @import "noscript";
9
- @import "categories";
10
9
  @import "header";
11
10
  @import "account";
12
11
  @import "groups";
@@ -28,4 +27,4 @@
28
27
  @import "modules/necro-post";
29
28
  @import "modules/composer";
30
29
  @import "modules/user-menu";
31
-
30
+ @import "modules/topics-list";
package/scss/topic.scss CHANGED
@@ -20,14 +20,10 @@
20
20
  }
21
21
  }
22
22
 
23
- [component="topic/labels"] {
24
- font-size: 20px;
25
- color: $text-muted;
26
- }
27
-
28
23
  [component="topic/browsing-users"] {
29
24
  margin-bottom: -5px;
30
25
  }
26
+
31
27
  .topic-header {
32
28
  top: var(--panel-offset);
33
29
  background-color: $body-bg;
@@ -240,50 +236,8 @@
240
236
  margin-left: 1px;
241
237
  }
242
238
  }
243
-
244
- .quick-reply {
245
- position: relative;
246
- .icon {
247
- position: relative;
248
- border-radius: 50%;
249
- min-width: 46px;
250
- min-height: 46px;
251
- margin-top: 2px;
252
-
253
- > a > .status {
254
- position: absolute;
255
- right: 12px;
256
- font-size: 12px;
257
- top: 0px;
258
-
259
- @include media-breakpoint-up(md) {
260
- top: 2px;
261
- font-size: 16px;
262
- }
263
- }
264
-
265
- .avatar {
266
- margin-right: 15px;
267
- }
268
- }
269
-
270
- .quickreply-message {
271
- margin-left: 63px;
272
- margin-bottom: 5px;
273
-
274
- @include media-breakpoint-down(sm) {
275
- margin-left: 0;
276
-
277
- [component="topic/quickreply/text"] {
278
- font-size: 16px;
279
- padding: 10px;
280
- }
281
- }
282
- }
283
- }
284
239
  }
285
240
 
286
-
287
241
  .topic {
288
242
  &.deleted {
289
243
  opacity: 0.3;
@@ -456,48 +410,6 @@
456
410
  }
457
411
  }
458
412
 
459
- .thread_active_users {
460
- text-transform: initial;
461
-
462
- a[data-uid] {
463
- position: relative;
464
-
465
- img, .user-icon {
466
- @include user-icon-style(20px, 1rem, 50%);
467
- vertical-align: middle;
468
- margin: 0 7px;
469
- }
470
-
471
- &::after {
472
- position: absolute;
473
- z-index: 0;
474
- opacity: 0;
475
-
476
- font-family: "FontAwesome";
477
- content: "\f11c";
478
- padding: 4px 0.25em;
479
- top: -36px;
480
- left: 7px;
481
-
482
- @include transition("opacity ease 250ms, top ease 250ms")
483
- }
484
-
485
- &.replying::after {
486
- opacity: 1;
487
- top: -50px;
488
- animation: topic-reply-pulse 2s ease-in infinite;
489
- }
490
- }
491
-
492
- .anonymous-box {
493
- border: 1px solid #ddd;
494
- width: 24px;
495
- height: 24px;
496
- position: relative;
497
- text-align: center;
498
- }
499
- }
500
-
501
413
  [component="post"] {
502
414
  >.post-header [component="user/picture"], >.post-header [component="user/status"] {
503
415
  opacity: 1;
@@ -9,9 +9,9 @@
9
9
  {{{ if pagination.pages.length }}}
10
10
  <div><!-- IMPORT partials/category/selector-dropdown-left.tpl --></div>
11
11
  {{{ else }}}
12
- <h1 class="categories-title">[[pages:categories]]</h1>
12
+ <h1 class="categories-title text-uppercase text-sm mb-2 fw-normal">[[pages:categories]]</h1>
13
13
  {{{ end }}}
14
- <ul class="categories" itemscope itemtype="http://www.schema.org/ItemList">
14
+ <ul class="categories list-unstyled" itemscope itemtype="http://www.schema.org/ItemList">
15
15
  {{{ each categories }}}
16
16
  <!-- IMPORT partials/categories/item.tpl -->
17
17
  {{{ end }}}
@@ -33,7 +33,7 @@
33
33
 
34
34
  <main id="panel" class="slideout-panel">
35
35
  <nav class="navbar sticky-top navbar-expand-lg bg-light header border-bottom py-0" id="header-menu" component="navbar">
36
- <div class="container justify-content-start flex-nowrap">
36
+ <div class="container-lg justify-content-start flex-nowrap">
37
37
  <!-- IMPORT partials/menu.tpl -->
38
38
  </div>
39
39
  </nav>
@@ -42,6 +42,6 @@
42
42
  const offset = Math.max(0, rect.bottom);
43
43
  document.documentElement.style.setProperty('--panel-offset', offset + `px`);
44
44
  </script>
45
- <div class="container pt-3" id="content">
45
+ <div class="container-lg pt-3" id="content">
46
46
  <!-- IMPORT partials/noscript/warning.tpl -->
47
47
  <!-- IMPORT partials/noscript/message.tpl -->
@@ -1,60 +1,58 @@
1
- <li component="categories/category" data-cid="{./cid}" data-numRecentReplies="1" class="row clearfix category-{./cid} {./unread-class}">
2
- <meta itemprop="name" content="{../name}">
1
+ <li component="categories/category" data-cid="{./cid}" class="w-100 py-2 mb-2 gap-lg-0 gap-2 d-flex flex-column flex-md-row align-items-start {{{ if !@last }}}border-bottom{{{ end }}} border-bottom-lg-0 category-{./cid} {./unread-class}">
2
+ <meta itemprop="name" content="{./name}">
3
3
 
4
- <div class="content col-12 <!-- IF config.hideCategoryLastPost -->col-md-10 col-sm-12<!-- ELSE -->col-md-7 col-sm-9<!-- ENDIF config.hideCategoryLastPost -->">
5
- <div class="float-start">
4
+ <div class="d-flex col-md-7 gap-2 gap-lg-3">
5
+ <div class="flex-shrink-0">
6
6
  {buildCategoryIcon(@value, "48px", "rounded-circle")}
7
7
  </div>
8
- <h2 class="title">
9
- <!-- IMPORT partials/categories/link.tpl -->
10
- </h2>
11
- <div>
12
- <!-- IF ../descriptionParsed -->
13
- <div class="description text-muted">
14
- {../descriptionParsed}
8
+ <div class="flex-grow-1 d-flex flex-wrap gap-1">
9
+ <h2 class="title text-break fs-4 fw-semibold m-0 tracking-tight w-100">
10
+ <!-- IMPORT partials/categories/link.tpl -->
11
+ </h2>
12
+ {{{ if ./descriptionParsed }}}
13
+ <div class="description text-muted text-sm w-100">
14
+ {./descriptionParsed}
15
15
  </div>
16
- <!-- ENDIF ../descriptionParsed -->
17
- <!-- IF !config.hideSubCategories -->
18
- {{{ if ../children.length }}}
19
- <div class="category-children">
20
- {{{ each ../children }}}
21
- {{{ if !../isSection }}}
22
- <span class="category-children-item">
16
+ {{{ end }}}
17
+ {{{ if ./teaser.timestampISO }}}
18
+ <div class="d-block d-md-none">
19
+ <a class="permalink timeago text-muted" title="{../teaser.timestampISO}" href="{../teaser.url}">
20
+ </a>
21
+ </div>
22
+ {{{ end }}}
23
+ {{{ if !config.hideSubCategories }}}
24
+ {{{ if ./children.length }}}
25
+ <div class="category-children row row-cols-1 row-cols-md-2 g-2 my-1 w-100">
26
+ {{{ each ./children }}}
27
+ {{{ if !./isSection }}}
28
+ <span class="category-children-item small d-flex gap-1 align-items-center">
23
29
  {buildCategoryIcon(@value, "24px", "rounded-circle")}
24
- {{{ if ../link }}}
25
- <a href="{../link}">{../name}</a>
26
- {{{ else }}}
27
- <a href="{config.relative_path}/category/{../slug}">{../name}</a>
28
- {{{ end }}}
30
+ <a href="{{{ if ./link }}}{./link}{{{ else }}}{config.relative_path}/category/{./slug}{{{ end }}}" class="text-reset">{./name}</a>
29
31
  </span>
30
32
  {{{ end }}}
31
33
  {{{ end }}}
32
34
  </div>
33
35
  {{{ end }}}
34
- <!-- ENDIF !config.hideSubCategories -->
36
+ {{{ end }}}
35
37
  </div>
36
- <span class="d-block d-sm-none float-end">
37
- <!-- IF ../teaser.timestampISO -->
38
- <a class="permalink" href="{../teaser.url}">
39
- <small class="timeago" title="{../teaser.timestampISO}"></small>
40
- </a>
41
- <!-- ENDIF ../teaser.timestampISO -->
42
- </span>
43
- </div>
44
-
45
- <!-- IF !./link -->
46
- <div class="col-md-1 d-none d-md-block stats text-muted">
47
- <span title="{./totalTopicCount}">{humanReadableNumber(./totalTopicCount)}</span><br />
48
- <small>[[global:topics]]</small>
49
38
  </div>
50
- <div class="col-md-1 d-none d-md-block stats text-muted">
51
- <span title="{./totalPostCount}">{humanReadableNumber(./totalPostCount)}</span><br />
52
- <small>[[global:posts]]</small>
53
- </div>
54
- <!-- IF !config.hideCategoryLastPost -->
55
- <div class="col-md-3 col-sm-3 teaser d-none d-sm-block" component="topic/teaser">
56
- <!-- IMPORT partials/categories/lastpost.tpl -->
39
+ {{{ if (!./link && !./isSection) }}}
40
+ <div class="d-flex col-md-5 col-12 align-content-stretch">
41
+ <div class="meta stats d-none d-lg-grid col-6 gap-1 pe-2 text-muted" style="grid-template-columns: 1fr 1fr;">
42
+ <div class="p-1 overflow-hidden rounded-1 d-flex flex-column align-items-center">
43
+ <span class="fs-4" title="{./totalTopicCount}">{humanReadableNumber(./totalTopicCount, 0)}</span>
44
+ <span class="text-uppercase text-xs">[[global:topics]]</span>
45
+ </div>
46
+ <div class="p-1 overflow-hidden rounded-1 d-flex flex-column align-items-center">
47
+ <span class="fs-4" title="{./totalPostCount}">{humanReadableNumber(./totalPostCount, 0)}</span>
48
+ <span class="text-uppercase text-xs">[[global:posts]]</span>
49
+ </div>
50
+ </div>
51
+ {{{ if !config.hideCategoryLastPost }}}
52
+ <div component="topic/teaser" class="teaser col-md-6 col-12 d-none d-md-block">
53
+ <!-- IMPORT partials/categories/lastpost.tpl -->
54
+ </div>
55
+ {{{ end }}}
57
56
  </div>
58
- <!-- ENDIF !config.hideCategoryLastPost -->
59
- <!-- ENDIF !./link -->
57
+ {{{ end }}}
60
58
  </li>
@@ -1,26 +1,24 @@
1
- <div class="lastpost background-link-container" style="border-color: {../bgColor}">
2
- {{{each ./posts}}}
3
- <!-- IF @first -->
4
- <div component="category/posts">
5
- <a class="background-link" href="{config.relative_path}/topic/{../topic.slug}<!-- IF ../index -->/{../index}<!-- ENDIF ../index -->"></a>
6
- <p>
7
- <a href="{config.relative_path}/user/{../user.userslug}">{buildAvatar(posts.user, "24px", true)}</a>
8
- <a class="permalink text-muted" href="{config.relative_path}/topic/{../topic.slug}<!-- IF ../index -->/{../index}<!-- ENDIF ../index -->">
9
- <small class="timeago" title="{../timestampISO}"></small>
10
- </a>
11
- </p>
12
- <div class="post-content">
13
- {../content}
1
+ <div class="lastpost border-start border-4 lh-sm h-100" style="border-color: {./bgColor}!important;">
2
+ {{{ each ./posts }}}
3
+ {{{ if @first }}}
4
+ <div component="category/posts" class="ps-2 text-xs d-flex flex-column h-100 gap-1">
5
+ <div class="text-nowrap text-truncate">
6
+ <a class="text-decoration-none" href="{config.relative_path}/user/{./user.userslug}">{buildAvatar(posts.user, "18px", true, "avatar-tooltip")}</a>
7
+ <a class="permalink text-muted timeago text-xs" href="{config.relative_path}/topic/{./topic.slug}{{{ if ./index }}}/{./index}{{{ end }}}" title="{./timestampISO}" aria-label="[[global:lastpost]]"></a>
8
+ </div>
9
+ <div class="post-content text-xs text-break line-clamp-sm-2 lh-sm position-relative flex-fill">
10
+ <a class="stretched-link" tabindex="-1" href="{config.relative_path}/topic/{./topic.slug}{{{ if ./index }}}/{./index}{{{ end }}}" aria-label="[[global:lastpost]]"></a>
11
+ {./content}
14
12
  </div>
15
13
  </div>
16
- <!-- ENDIF @first -->
17
- {{{end}}}
14
+ {{{ end }}}
15
+ {{{ end }}}
18
16
 
19
- <!-- IF !../posts.length -->
20
- <div component="category/posts">
21
- <div class="post-content">
17
+ {{{ if !./posts.length }}}
18
+ <div component="category/posts" class="ps-2">
19
+ <div class="post-content overflow-hidden text-xs">
22
20
  [[category:no-new-posts]]
23
21
  </div>
24
22
  </div>
25
- <!-- ENDIF !../posts.length -->
23
+ {{{ end }}}
26
24
  </div>
@@ -1,28 +1,26 @@
1
- <!-- IF privileges.topics:reply -->
2
- <div component="topic/quickreply/container" class="clearfix quick-reply">
3
- <div class="icon float-start hidden-xs">
4
- <a data-uid="{loggedInUser.uid}" href="{{{ if loggedInUser.userslug }}}{config.relative_path}/user/{loggedInUser.userslug}{{{ else }}}#{{{ end }}}">
1
+ {{{ if privileges.topics:reply }}}
2
+ <div component="topic/quickreply/container" class="quick-reply d-flex gap-3 mb-4">
3
+ <div class="icon hidden-xs">
4
+ <a class="d-inline-block position-relative" href="{{{ if loggedInUser.userslug }}}{config.relative_path}/user/{loggedInUser.userslug}{{{ else }}}#{{{ end }}}">
5
5
  {buildAvatar(loggedInUser, "48px", true, "", "user/picture")}
6
- {{{ if loggedInUser.status }}}
7
- <i component="user/status" class="fa fa-circle status {loggedInUser.status}" title="[[global:{loggedInUser.status}]]"></i>
8
- {{{ end }}}
9
6
  </a>
10
7
  </div>
11
- <form method="post" action="{config.relative_path}/compose">
8
+ <form class="flex-grow-1 d-flex flex-column gap-2" method="post" action="{config.relative_path}/compose">
12
9
  <input type="hidden" name="tid" value="{tid}" />
13
10
  <input type="hidden" name="_csrf" value="{config.csrf_token}" />
14
- <div class="quickreply-message">
15
- <textarea name="content" component="topic/quickreply/text" class="form-control mousetrap" rows="5" placeholder="[[modules:composer.textarea.placeholder]]"></textarea>
11
+ <div class="quickreply-message position-relative">
12
+ <textarea rows="4" name="content" component="topic/quickreply/text" class="form-control mousetrap" placeholder="[[modules:composer.textarea.placeholder]]"></textarea>
16
13
  <div class="imagedrop"><div>[[topic:composer.drag-and-drop-images]]</div></div>
17
14
  </div>
18
- <div class="d-flex justify-content-end gap-1">
19
- <button type="submit" component="topic/quickreply/expand" class="btn btn-outline-primary btn-sm" formmethod="get"><i class="fa fa-expand"></i></button>
20
- <button type="submit" component="topic/quickreply/button" class="btn btn-primary btn-sm">[[topic:post-quick-reply]]</button>
15
+ <div>
16
+ <div class="d-flex justify-content-end gap-2">
17
+ <button type="submit" component="topic/quickreply/expand" class="btn btn-ghost btn-sm border" title="[[topic:open-composer]]"><i class="fa fa-expand"></i></button>
18
+ <button type="submit" component="topic/quickreply/button" class="btn btn-sm btn-primary">[[topic:post-quick-reply]]</button>
19
+ </div>
21
20
  </div>
22
21
  </form>
23
- <form component="topic/quickreply/upload" method="post" enctype="multipart/form-data">
22
+ <form class="d-none" component="topic/quickreply/upload" method="post" enctype="multipart/form-data">
24
23
  <input type="file" name="files[]" multiple class="hidden"/>
25
24
  </form>
26
-
27
25
  </div>
28
- <!-- ENDIF privileges.topics:reply -->
26
+ {{{ end }}}
@@ -1,12 +1,15 @@
1
- <div class="stats text-muted">
2
- <i class="fa fa-fw fa-user" title="[[global:posters]]"></i>
3
- <span title="{postercount}">{humanReadableNumber(postercount)}</span>
4
- </div>
5
- <div class="stats text-muted">
6
- <i class="fa fa-fw fa-pencil" title="[[global:posts]]"></i>
7
- <span component="topic/post-count" title="{postcount}">{humanReadableNumber(postcount)}</span>
8
- </div>
9
- <div class="stats text-muted">
10
- <i class="fa fa-fw fa-eye" title="[[global:views]]"></i>
11
- <span title="{viewcount}">{humanReadableNumber(viewcount)}</span>
12
- </div>
1
+ <span class="badge text-body border border-gray-300 stats text-xs">
2
+ <i class="fa-regular fa-fw fa-message visible-xs-inline" title="[[global:posts]]"></i>
3
+ <span component="topic/post-count" title="{postcount}" class="fw-bold">{humanReadableNumber(postcount)}</span>
4
+ <span class="hidden-xs text-lowercase fw-normal">[[global:posts]]</span>
5
+ </span>
6
+ <span class="badge text-body border border-gray-300 stats text-xs">
7
+ <i class="fa fa-fw fa-user visible-xs-inline" title="[[global:posters]]"></i>
8
+ <span title="{postercount}" class="fw-bold">{humanReadableNumber(postercount)}</span>
9
+ <span class="hidden-xs text-lowercase fw-normal">[[global:posters]]</span>
10
+ </span>
11
+ <span class="badge text-body border border-gray-300 stats text-xs">
12
+ <i class="fa fa-fw fa-eye visible-xs-inline" title="[[global:views]]"></i>
13
+ <span class="fw-bold" title="{viewcount}">{humanReadableNumber(viewcount)}</span>
14
+ <span class="hidden-xs text-lowercase fw-normal">[[global:views]]</span>
15
+ </span>
@@ -1 +1 @@
1
- <a href="{config.relative_path}/tags/{./valueEncoded}"><span class="tag tag-item fw-bold tag-class-{./class}" data-tag="{./value}">{./valueEscaped}</span></a>
1
+ <a href="{config.relative_path}/tags/{./valueEncoded}"><span class="badge border border-gray-300 fw-normal tag tag-class-{./class}" data-tag="{./value}">{./valueEscaped}</span></a>
@@ -1,3 +1 @@
1
- {{{ each tags }}}
2
- <!-- IMPORT partials/topic/tag.tpl -->
3
- {{{ end }}}
1
+ {{{ each tags }}}<!-- IMPORT partials/topic/tag.tpl -->{{{ end }}}
@@ -1,115 +1,129 @@
1
- <ul component="category" class="topic-list" itemscope itemtype="http://www.schema.org/ItemList" data-nextstart="{nextStart}" data-set="{set}">
2
- {{{each topics}}}
3
- <li component="category/topic" class="row clearfix category-item {function.generateTopicClass}" <!-- IMPORT partials/data/category.tpl -->>
4
- <link itemprop="url" content="{config.relative_path}/topic/{../slug}" />
5
- <meta itemprop="name" content="{function.stripTags, ../title}" />
1
+ <ul component="category" class="topics-list list-unstyled" itemscope itemtype="http://www.schema.org/ItemList" data-nextstart="{nextStart}" data-set="{set}">
2
+
3
+ {{{ each topics }}}
4
+ <li component="category/topic" class="category-item hover-parent border-bottom py-3 py-lg-4 d-flex flex-column flex-lg-row align-items-start {function.generateTopicClass}" <!-- IMPORT partials/data/category.tpl -->>
5
+ <link itemprop="url" content="{config.relative_path}/topic/{./slug}" />
6
+ <meta itemprop="name" content="{function.stripTags, ./title}" />
6
7
  <meta itemprop="itemListOrder" content="descending" />
7
8
  <meta itemprop="position" content="{increment(./index, "1")}" />
8
- <a id="{../index}" data-index="{../index}" component="topic/anchor"></a>
9
+ <a id="{./index}" data-index="{./index}" component="topic/anchor"></a>
9
10
 
10
- <div class="col-md-6 col-sm-9 col-10 content">
11
- <div class="avatar float-start me-2">
12
- <!-- IF showSelect -->
13
- <div class="select" component="topic/select">
14
- {{{ if ./thumbs.length }}}
15
- <img src="{./thumbs.0.url}" class="user-img not-responsive" />
16
- {{{ else }}}
17
- {buildAvatar(../user, "48px", true, "not-responsive")}
18
- {{{ end }}}
19
- <i class="fa fa-check"></i>
11
+ <div class="d-flex p-0 col-12 col-lg-7 gap-2 gap-lg-3 pe-1 align-items-start {{{ if config.theme.mobileTopicTeasers }}}mb-2 mb-lg-0{{{ end }}}">
12
+ <div class="flex-shrink-0 position-relative">
13
+ <a class="text-decoration-none" href="{{{ if ./user.userslug }}}{config.relative_path}/user/{./user.userslug}{{{ else }}}#{{{ end }}}">
14
+ {buildAvatar(./user, "40px", true, "avatar avatar-tooltip")}
15
+ </a>
16
+ {{{ if showSelect }}}
17
+ <div class="checkbox position-absolute top-100 start-50 translate-middle-x pt-2 m-0 d-none d-lg-flex" style="max-width:max-content">
18
+ <i component="topic/select" class="fa text-muted pointer fa-square-o p-1 hover-visible"></i>
20
19
  </div>
21
- <!-- ENDIF showSelect -->
20
+ {{{ end }}}
21
+ </div>
22
+ <div class="flex-grow-1 d-flex flex-wrap gap-1 position-relative">
23
+ <h3 component="topic/header" class="title text-break fs-5 fw-semibold m-0 tracking-tight w-100 {{{ if showSelect }}}me-4 me-lg-0{{{ end }}}">
24
+ <a class="text-reset" href="{{{ if topics.noAnchor }}}#{{{ else }}}{config.relative_path}/topic/{./slug}{{{ if ./bookmark }}}/{./bookmark}{{{ end }}}{{{ end }}}">{./title}</a>
25
+ </h3>
26
+ <span component="topic/labels" class="d-flex flex-wrap gap-1 w-100 align-items-center">
27
+ <span component="topic/watched" class="badge border border-gray-300 text-body {{{ if !./followed }}}hidden{{{ end }}}">
28
+ <i class="fa fa-bell-o"></i>
29
+ <span>[[topic:watching]]</span>
30
+ </span>
31
+ <span component="topic/ignored" class="badge border border-gray-300 text-body {{{ if !./ignored }}}hidden{{{ end }}}">
32
+ <i class="fa fa-eye-slash"></i>
33
+ <span>[[topic:ignoring]]</span>
34
+ </span>
35
+ <span component="topic/scheduled" class="badge border border-gray-300 text-body {{{ if !./scheduled }}}hidden{{{ end }}}">
36
+ <i class="fa fa-clock-o"></i>
37
+ <span>[[topic:scheduled]]</span>
38
+ </span>
39
+ <span component="topic/pinned" class="badge border border-gray-300 text-body {{{ if (./scheduled || !./pinned) }}}hidden{{{ end }}}">
40
+ <i class="fa fa-thumb-tack"></i>
41
+ <span>{{{ if !./pinExpiry }}}[[topic:pinned]]{{{ else }}}[[topic:pinned-with-expiry, {isoTimeToLocaleString(./pinExpiryISO, config.userLang)}]]{{{ end }}}</span>
42
+ </span>
43
+ <span component="topic/locked" class="badge border border-gray-300 text-body {{{ if !./locked }}}hidden{{{ end }}}">
44
+ <i class="fa fa-lock"></i>
45
+ <span>[[topic:locked]]</span>
46
+ </span>
47
+ <span component="topic/moved" class="badge border border-gray-300 text-body {{{ if !./oldCid }}}hidden{{{ end }}}">
48
+ <i class="fa fa-arrow-circle-right"></i>
49
+ <span>[[topic:moved]]</span>
50
+ </span>
51
+ {{{each ./icons}}}<span class="lh-1">{@value}</span>{{{end}}}
22
52
 
23
- <!-- IF !showSelect -->
24
- <a href="<!-- IF topics.user.userslug -->{config.relative_path}/user/{topics.user.userslug}<!-- ELSE -->#<!-- ENDIF topics.user.userslug -->" class="float-start">
25
- {{{ if ./thumbs.length }}}
26
- <img src="{./thumbs.0.url}" class="user-img not-responsive" />
27
- {{{ else }}}
28
- {buildAvatar(../user, "48px", true, "not-responsive")}
53
+ {{{ if !template.category }}}
54
+ {function.buildCategoryLabel, ./category, "a", "border"}
29
55
  {{{ end }}}
30
- </a>
31
- <!-- ENDIF !showSelect -->
32
- </div>
33
56
 
34
- <h2 component="topic/header" class="title mb-1">
35
- <i component="topic/watched" class="fa fa-bell-o {{{ if !topics.followed }}}hidden{{{ end }}}" title="[[topic:watching]]"></i>
36
- <i component="topic/watched" class="fa fa-eye-slash {{{ if !topics.ignored }}}hidden{{{ end }}}" title="[[topic:ignoring]]"></i>
37
- <i component="topic/scheduled" class="fa fa-clock-o {{{ if !topics.scheduled }}}hidden{{{ end }}}" title="[[topic:scheduled]]"></i>
38
- <i component="topic/pinned" class="fa fa-thumb-tack {{{ if (topics.scheduled || !topics.pinned) }}}hidden{{{ end }}}" title="{{{ if !../pinExpiry }}}[[topic:pinned]]{{{ else }}}[[topic:pinned-with-expiry, {../pinExpiryISO}]]{{{ end }}}"></i>
39
- <i component="topic/locked" class="fa fa-lock {{{ if !topics.locked }}}hidden{{{ end }}}" title="[[topic:locked]]"></i>
40
- <i component="topic/moved" class="fa fa-arrow-circle-right {{{ if !topics.oldCid }}}hidden{{{ end }}}" title="[[topic:moved]]"></i>
41
- {{{each topics.icons}}}{@value}{{{end}}}
57
+ <span data-tid="{./tid}" component="topic/tags" class="lh-1 tag-list hidden-xs d-flex flex-wrap gap-1 {{{ if !./tags.length }}}hidden{{{ end }}}">
58
+ {{{ each ./tags }}}
59
+ <a href="{config.relative_path}/tags/{./valueEncoded}"><span class="badge border border-gray-300 fw-normal tag tag-class-{./class}" data-tag="{./value}">{./valueEscaped}</span></a>
60
+ {{{ end }}}
61
+ </span>
42
62
 
43
- {{{ if topics.noAnchor }}}
44
- <span>{./title}</span>
45
- {{{ else }}}
46
- <a href="{config.relative_path}/topic/{./slug}{{{ if ./bookmark }}}/{./bookmark}{{{ end }}}">{./title}</a>
47
- {{{ end }}}
48
- </h2>
49
- <div class="info">
50
- <!-- IF !template.category -->
51
- <div class="category-item d-inline-block">
52
- {buildCategoryIcon(./category, "24px", "rounded-circle")}
53
- <a class="text-muted" href="{config.relative_path}/category/{topics.category.slug}">{topics.category.name}</a>
54
- </div>
55
- &bull;
56
- <!-- ENDIF !template.category -->
63
+ <div class="d-flex gap-1 d-block d-lg-none w-100">
64
+ <span class="badge text-body border stats text-xs text-muted">
65
+ <i class="fa-regular fa-fw fa-message"></i>
66
+ <span component="topic/post-count" class="fw-normal">{humanReadableNumber(./postcount, 0)}</span>
67
+ </span>
57
68
 
69
+ <a href="{config.relative_path}/topic/{./slug}{{{ if (./teaser.timestampISO && !config.theme.mobileTopicTeasers) }}}/{./teaser.index}{{{ end }}}" class="border badge bg-transparent text-muted fw-normal timeago" title="{{{ if (./teaser.timestampISO && !config.theme.mobileTopicTeasers) }}}{./teaser.timestampISO}{{{ else }}}{./timestampISO}{{{ end }}}"></a>
70
+ </div>
58
71
 
59
- <span data-tid="{./tid}" component="topic/tags" class="tag-list hidden-xs {{{ if !./tags.length }}}hidden{{{ end}}}">
60
- {{{ each ./tags }}}
61
- <!-- IMPORT partials/topic/tag.tpl -->
62
- {{{ end }}}
63
- &bull;
72
+ <a href="{config.relative_path}/topic/{./slug}" class="d-none d-lg-block badge bg-transparent text-muted fw-normal timeago" title="{./timestampISO}"></a>
64
73
  </span>
65
-
66
- <span class="hidden-xs"><span class="timeago text-muted" title="{./timestampISO}"></span> &bull; <a class="text-muted" href="{{{ if ./user.userslug }}}{config.relative_path}/user/{./user.userslug}{{{ else }}}#{{{ end }}}">{./user.displayname}</a></span>
67
-
68
- <span class="visible-xs-inline timeago text-muted" title="{{{ if ./teaser.timestampISO }}}{./teaser.timestampISO}{{{ else }}}{./timestampISO}{{{ end }}}"></span>
74
+ {{{ if showSelect }}}
75
+ <div class="checkbox position-absolute top-0 end-0 m-0 d-flex d-lg-none" style="max-width:max-content">
76
+ <i component="topic/select" class="fa fa-square-o text-muted pointer p-1"></i>
77
+ </div>
78
+ {{{ end }}}
69
79
  </div>
80
+ {{{ if ./thumbs.length }}}
81
+ <a class="topic-thumbs position-relative text-decoration-none flex-shrink-0 d-none d-xl-block" href="{config.relative_path}/topic/{./slug}{{{ if ./bookmark }}}/{./bookmark}{{{ end }}}" aria-label="[[topic:thumb-image]]">
82
+ <img class="topic-thumb rounded-1 bg-light" style="width:auto;max-width: 5.33rem;height: 3.33rem;object-fit: contain;" src="{./thumbs.0.url}" alt=""/>
83
+ <span data-numthumbs="{./thumbs.length}" class="px-1 position-absolute top-0 start-100 translate-middle badge rounded text-bg-info" style="z-index: 1;">+{increment(./thumbs.length, "-1")}</span>
84
+ </a>
85
+ {{{ end }}}
70
86
  </div>
71
87
 
72
- <div class="mobile-stat col-2 visible-xs text-end">
73
- <span>{humanReadableNumber(topics.postcount)}</span> <a href="{config.relative_path}/topic/{topics.slug}/{topics.teaser.index}"><i class="fa fa-arrow-circle-right"></i></a>
74
- </div>
75
-
76
- <div class="col-md-1 hidden-sm hidden-xs stats stats-votes">
77
- <!-- IF !reputation:disabled -->
78
- <span title="{topics.votes}">{humanReadableNumber(topics.votes)}</span><br />
79
- <small>[[global:votes]]</small>
80
- <!-- END -->
81
- </div>
82
-
83
- <div class="col-md-1 hidden-sm hidden-xs stats stats-postcount">
84
- <span title="{topics.postcount}">{humanReadableNumber(topics.postcount)}</span><br />
85
- <small>[[global:posts]]</small>
86
- </div>
87
-
88
- <div class="col-md-1 hidden-sm hidden-xs stats stats-viewcount">
89
- <span title="{topics.viewcount}">{humanReadableNumber(topics.viewcount)}</span><br />
90
- <small>[[global:views]]</small>
91
- </div>
92
-
93
- <div class="col-md-3 col-sm-3 teaser hidden-xs" component="topic/teaser">
94
- <div class="lastpost background-link-container" style="border-color: {topics.category.bgColor}">
95
- <a class="background-link" href="{config.relative_path}/topic/{topics.slug}/{topics.teaser.index}"></a>
96
- <!-- IF topics.unreplied -->
97
- <p>
98
- [[category:no-replies]]
99
- </p>
100
- <!-- ELSE -->
101
- <!-- IF topics.teaser.pid -->
102
- <p>
103
- <a href="{config.relative_path}/user/{topics.teaser.user.userslug}">{buildAvatar(topics.teaser.user, "24px", true, "not-responsive")}</a>
104
- <a class="permalink text-muted" href="{config.relative_path}/topic/{topics.slug}/{topics.teaser.index}">
105
- <span class="timeago" title="{topics.teaser.timestampISO}"></span>
106
- </a>
107
- </p>
108
- <div class="post-content">
109
- {topics.teaser.content}
88
+ <div class="d-flex p-0 col-lg-5 col-12 align-content-stretch">
89
+ <div class="meta stats d-none d-lg-grid col-6 gap-1 pe-2 text-muted" style="grid-template-columns: 1fr 1fr 1fr;">
90
+ {{{ if !reputation:disabled }}}
91
+ <div class="stats-votes border-0 p-2 overflow-hidden rounded-1 d-flex flex-column align-items-center">
92
+ <span class="fs-5 ff-secondary lh-1" title="{./votes}">{humanReadableNumber(./votes, 0)}</span>
93
+ <span class="d-none d-xl-flex text-lowercase text-xs">[[global:votes]]</span>
94
+ <i class="d-xl-none fa fa-fw text-xs text-muted opacity-75 fa-chevron-up"></i>
95
+ </div>
96
+ {{{ end }}}
97
+ <div class="stats-postcount border-0 p-2 overflow-hidden rounded-1 d-flex flex-column align-items-center">
98
+ <span class="fs-5 ff-secondary lh-1" title="{./postcount}">{humanReadableNumber(./postcount, 0)}</span>
99
+ <span class="d-none d-xl-flex text-lowercase text-xs">[[global:posts]]</span>
100
+ <i class="d-xl-none fa-regular fa-fw text-xs text-muted opacity-75 fa-message"></i>
101
+ </div>
102
+ <div class="stats-viewcount border-0 p-2 overflow-hidden rounded-1 d-flex flex-column align-items-center">
103
+ <span class="fs-5 ff-secondary lh-1" title="{./viewcount}">{humanReadableNumber(./viewcount, 0)}</span>
104
+ <span class="d-none d-xl-flex text-lowercase text-xs">[[global:views]]</span>
105
+ <i class="d-xl-none fa fa-fw text-xs text-muted opacity-75 fa-eye"></i>
106
+ </div>
107
+ </div>
108
+ <div component="topic/teaser" class="meta teaser col-lg-6 col-12 {{{ if !config.theme.mobileTopicTeasers }}}d-none d-lg-block{{{ end }}}">
109
+ <div class="lastpost border-start border-4 lh-sm h-100 d-flex flex-column gap-1" style="border-color: {./category.bgColor}!important;">
110
+ {{{ if ./unreplied }}}
111
+ <div class="ps-2 text-xs">
112
+ [[category:no-replies]]
113
+ </div>
114
+ {{{ else }}}
115
+ {{{ if ./teaser.pid }}}
116
+ <div class="ps-2">
117
+ <a href="{{{ if ./teaser.user.userslug }}}{config.relative_path}/user/{./teaser.user.userslug}{{{ else }}}#{{{ end }}}" class="text-decoration-none">{buildAvatar(./teaser.user, "18px", true, "avatar-tooltip not-responsive")}</a>
118
+ <a class="permalink text-muted timeago text-xs" href="{config.relative_path}/topic/{./slug}/{./teaser.index}" title="{./teaser.timestampISO}" aria-label="[[global:lastpost]]"></a>
119
+ </div>
120
+ <div class="post-content text-xs ps-2 line-clamp-sm-2 lh-sm text-break position-relative flex-fill">
121
+ <a class="stretched-link" tabindex="-1" href="{config.relative_path}/topic/{./slug}/{./teaser.index}" aria-label="[[global:lastpost]]"></a>
122
+ {./teaser.content}
123
+ </div>
124
+ {{{ end }}}
125
+ {{{ end }}}
110
126
  </div>
111
- <!-- ENDIF topics.teaser.pid -->
112
- <!-- ENDIF topics.unreplied -->
113
127
  </div>
114
128
  </div>
115
129
  </li>
@@ -22,8 +22,8 @@
22
22
  </div>
23
23
  </h1>
24
24
 
25
- <div class="topic-info pb-2 d-flex gap-3 align-items-center flex-wrap">
26
- <span component="topic/labels" class="d-flex text-md gap-2 {{{ if (!scheduled && (!pinned && (!locked && (!oldCid && !icons.length)))) }}}hidden{{{ end }}}">
25
+ <div class="topic-info pb-2 d-flex gap-2 align-items-center flex-wrap">
26
+ <span component="topic/labels" class="d-flex gap-2 {{{ if (!scheduled && (!pinned && (!locked && (!oldCid && !icons.length)))) }}}hidden{{{ end }}}">
27
27
  <span component="topic/scheduled" class="badge badge border border-gray-300 text-body {{{ if !scheduled }}}hidden{{{ end }}}">
28
28
  <i class="fa fa-clock-o"></i> [[topic:scheduled]]
29
29
  </span>
@@ -38,16 +38,9 @@
38
38
  </a>
39
39
  {{{each icons}}}<span class="lh-1">{@value}</span>{{{end}}}
40
40
  </span>
41
-
42
- <div class="category-item d-inline-block">
43
- {buildCategoryIcon(category, "24px", "rounded-circle")}
44
- <a href="{config.relative_path}/category/{category.slug}">{category.name}</a>
45
- </div>
46
-
47
- <div data-tid="{./tid}" component="topic/tags" class="tags tag-list d-inline-block hidden-xs hidden-empty"><!-- IMPORT partials/topic/tags.tpl --></div>
48
- <div class="d-inline-block hidden-xs">
49
- <!-- IMPORT partials/topic/stats.tpl -->
50
- </div>
41
+ {function.buildCategoryLabel, category, "a", "border"}
42
+ <div data-tid="{./tid}" component="topic/tags" class="lh-1 tags tag-list d-flex flex-wrap hidden-xs hidden-empty gap-2"><!-- IMPORT partials/topic/tags.tpl --></div>
43
+ <div class="d-flex hidden-xs gap-2"><!-- IMPORT partials/topic/stats.tpl --></div>
51
44
  {{{ if !feeds:disableRSS }}}
52
45
  {{{ if rssFeedUrl }}}<a class="hidden-xs" target="_blank" href="{rssFeedUrl}"><i class="fa fa-rss-square"></i></a>{{{ end }}}
53
46
  {{{ end }}}
@@ -1,205 +0,0 @@
1
- .categories, .category > ul {
2
- list-style-type: none;
3
- padding: 0;
4
-
5
- > li {
6
-
7
- padding-bottom: 10px;
8
-
9
- @include media-breakpoint-down(sm) {
10
- border-top: 1px solid $gray-200;
11
- &:last-child {
12
- border-bottom: 1px solid $gray-200;
13
- };
14
- }
15
-
16
- min-height: 53px;
17
-
18
- .content {
19
- padding: 10px 15px;
20
-
21
- img, .user-icon {
22
- @include user-icon-style(46px, 2.4rem, 50%);
23
- }
24
-
25
- h2 {
26
- display: block;
27
- word-wrap: break-word;
28
- overflow: hidden;
29
- font-size: 18px;
30
- line-height: 22px;
31
- }
32
- }
33
-
34
- @media (max-width: 500px) {
35
- .teaser {
36
- position: absolute;
37
- right: 4px;
38
- }
39
- }
40
-
41
- .mobile-stat {
42
- padding-left: 0px;
43
- padding-top: 10px;
44
- font-size: 16px;
45
- }
46
-
47
- .lastpost {
48
- border-left: 4px solid #ccc;
49
- text-align: left;
50
- margin-top: 10px;
51
- overflow: hidden;
52
- height: 53px;
53
- font-size: 12px;
54
- line-height: 14px;
55
-
56
- > * {
57
- padding-left: 20px;
58
- }
59
-
60
- p {
61
- margin: 0;
62
- .emoji {
63
- max-width: 12px;
64
- max-height: 12px;
65
- }
66
- }
67
-
68
- .post-content {
69
- overflow: hidden;
70
- blockquote {
71
- display: none;
72
- }
73
- }
74
-
75
- .user-icon {
76
- display: inline-block;
77
- @include user-icon-style(24px, 1.5rem, 50%);
78
- }
79
- }
80
-
81
- .category-children {
82
- .category-children-item {
83
- min-width: 180px;
84
- margin-right: 10px;
85
- margin-bottom: 1px;
86
- display: inline-block;
87
- }
88
- }
89
-
90
- [component="topic/header"] > i[component="topic/pinned"] {
91
- color: $danger;
92
- }
93
- }
94
-
95
- &.ui-sortable > li .content h2 {
96
- > [component="topic/pinned"] {
97
- &:after {
98
- position: absolute;
99
- top: 0.5rem;
100
- left: calc(62px + 2rem);
101
- width: 4rem;
102
- height: 3rem;
103
- background: rgba(0, 0, 0, 0.5);
104
- color: rgba(255, 255, 255, 0.9);
105
- font-family: "FontAwesome";
106
- content: "\f07d \f255";
107
- text-align: center;
108
- font-size: 1.5rem;
109
- padding-top: 0.66rem;
110
- cursor: move;
111
- opacity: 0;
112
-
113
- -webkit-transition: opacity 100ms linear;
114
- -moz-transition: opacity 100ms linear;
115
- -ms-transition: opacity 100ms linear;
116
- -o-transition: opacity 100ms linear;
117
- transition: opacity 100ms linear;
118
- }
119
- }
120
-
121
- &:hover {
122
- > [component="topic/pinned"] {
123
- &:after {
124
- opacity: 1;
125
- }
126
- }
127
- }
128
- }
129
- }
130
-
131
-
132
- .category-header {
133
- width: 100%;
134
- height: 110px;
135
- text-align: center;
136
- margin: 0;
137
- padding-top:25px;
138
- @include pointer;
139
- margin-bottom: 10px;
140
- overflow:hidden;
141
-
142
- &:hover {
143
- filter: brightness(115%);
144
- -webkit-filter: brightness(115%);
145
- }
146
-
147
- .category-box {
148
- height:90px;
149
-
150
- .post-preview {
151
- padding-left:10px;
152
- padding-right:10px;
153
- text-align:left;
154
- img {
155
- width:60px;
156
- height:60px;
157
- padding-right:5px;
158
- }
159
-
160
- p {
161
- overflow: hidden;
162
- text-overflow:ellipsis;
163
- height:60px;
164
- }
165
- }
166
- }
167
- }
168
-
169
- .category-header-image-auto {
170
- -webkit-background-size: auto!important;
171
- -moz-background-size: auto!important;
172
- -o-background-size: auto!important;
173
- background-size: auto!important;
174
- background-position: 0% 0% !important;
175
- }
176
-
177
- .category-header-image-cover {
178
- -webkit-background-size: cover!important;
179
- -moz-background-size: cover!important;
180
- -o-background-size: cover!important;
181
- background-size: cover!important;
182
- background-position: center!important;
183
- }
184
-
185
- .category-header-image-contain {
186
- -webkit-background-size: contain!important;
187
- -moz-background-size: contain!important;
188
- -o-background-size: contain!important;
189
- background-size: contain!important;
190
- background-position: center!important;
191
- }
192
-
193
-
194
- .stats {
195
- font-size: 20px;
196
- text-align: center;
197
- margin-top: 10px;
198
- line-height: 22px;
199
-
200
- small {
201
- text-transform: uppercase;
202
- font-weight: 300;
203
- font-size: 12px;
204
- }
205
- }