hexo-theme-gnix 4.0.5 → 4.2.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 (57) hide show
  1. package/include/util/common.js +22 -1
  2. package/layout/archive.jsx +70 -46
  3. package/layout/common/article_cover.jsx +19 -18
  4. package/layout/common/head.jsx +1 -1
  5. package/layout/common/navbar.jsx +1 -2
  6. package/layout/common/scripts.jsx +0 -19
  7. package/layout/tags.jsx +4 -0
  8. package/package.json +1 -1
  9. package/source/css/default.css +41 -88
  10. package/source/css/responsive/mobile.css +3 -2
  11. package/source/js/live2d_Asoul/Model/Ava/Ava.4096/texture_00.webp +0 -0
  12. package/source/js/live2d_Asoul/Model/Ava/Ava.moc3 +0 -0
  13. package/source/js/live2d_Asoul/Model/Ava/Ava.model3.json +0 -323
  14. package/source/js/live2d_Asoul/Model/Ava/Ava.physics3.json +0 -1225
  15. package/source/js/live2d_Asoul/Model/Ava/motions/Ava_idle.motion3.json +0 -1
  16. package/source/js/live2d_Asoul/Model/Ava/motions/Ava_shake01.motion3.json +0 -1
  17. package/source/js/live2d_Asoul/Model/Ava/motions/Ava_shake02.motion3.json +0 -1
  18. package/source/js/live2d_Asoul/Model/Ava/motions/Ava_tap01.motion3.json +0 -1
  19. package/source/js/live2d_Asoul/Model/Ava/motions/Ava_tap02.motion3.json +0 -1
  20. package/source/js/live2d_Asoul/Model/Ava/motions/Ava_tap03.motion3.json +0 -1
  21. package/source/js/live2d_Asoul/Model/Ava/motions/Ava_tap04.motion3.json +0 -1
  22. package/source/js/live2d_Asoul/Model/Ava/motions/Ava_tap05.motion3.json +0 -1
  23. package/source/js/live2d_Asoul/Model/Ava/motions/Ava_tap06.motion3.json +0 -1
  24. package/source/js/live2d_Asoul/Model/Ava/motions/Ava_tap07.motion3.json +0 -1
  25. package/source/js/live2d_Asoul/Model/Ava/motions/Ava_tap08.motion3.json +0 -1
  26. package/source/js/live2d_Asoul/Model/Ava/motions/Ava_tap09.motion3.json +0 -1
  27. package/source/js/live2d_Asoul/Model/Ava/motions/Ava_tap10.motion3.json +0 -1
  28. package/source/js/live2d_Asoul/Model/Ava/motions/Ava_tap11.motion3.json +0 -1
  29. package/source/js/live2d_Asoul/Model/Ava/raw.ex.json +0 -16
  30. package/source/js/live2d_Asoul/Model/Ava/raw.model3.json +0 -321
  31. package/source/js/live2d_Asoul/Model/Diana/Diana.4096/texture_00.webp +0 -0
  32. package/source/js/live2d_Asoul/Model/Diana/Diana.moc3 +0 -0
  33. package/source/js/live2d_Asoul/Model/Diana/Diana.model3.json +0 -212
  34. package/source/js/live2d_Asoul/Model/Diana/Diana.physics3.json +0 -764
  35. package/source/js/live2d_Asoul/Model/Diana/motions/Diana_idle.motion3.json +0 -1
  36. package/source/js/live2d_Asoul/Model/Diana/motions/Diana_tap01.motion3.json +0 -1
  37. package/source/js/live2d_Asoul/Model/Diana/motions/Diana_tap02.motion3.json +0 -1
  38. package/source/js/live2d_Asoul/Model/Diana/motions/Diana_tap03.motion3.json +0 -1
  39. package/source/js/live2d_Asoul/Model/Diana/motions/Diana_tap04.motion3.json +0 -1
  40. package/source/js/live2d_Asoul/Model/Diana/motions/Diana_tap05.motion3.json +0 -1
  41. package/source/js/live2d_Asoul/Model/Diana/motions/Diana_tap06.motion3.json +0 -1
  42. package/source/js/live2d_Asoul/Model/Diana/motions/Diana_tap07.motion3.json +0 -1
  43. package/source/js/live2d_Asoul/Model/Diana/motions/Diana_tap08.motion3.json +0 -1
  44. package/source/js/live2d_Asoul/Model/Diana/motions/Diana_tap09.motion3.json +0 -1
  45. package/source/js/live2d_Asoul/Model/Diana/motions/Diana_tap10.motion3.json +0 -1
  46. package/source/js/live2d_Asoul/Model/Diana/motions/Diana_tap11.motion3.json +0 -1
  47. package/source/js/live2d_Asoul/Model/Diana/raw.ex.json +0 -16
  48. package/source/js/live2d_Asoul/Model/Diana/raw.model3.json +0 -210
  49. package/source/js/live2d_Asoul/TweenLite.min.js +0 -12
  50. package/source/js/live2d_Asoul/cubism4.min.js +0 -2
  51. package/source/js/live2d_Asoul/live2dcubismcore.min.js +0 -9
  52. package/source/js/live2d_Asoul/load.js +0 -231
  53. package/source/js/live2d_Asoul/pio.css +0 -161
  54. package/source/js/live2d_Asoul/pio.js +0 -296
  55. package/source/js/live2d_Asoul/pio_sdk4.js +0 -149
  56. package/source/js/live2d_Asoul/pixi.min.js +0 -9
  57. package/util/cache.js +0 -24
@@ -3,7 +3,28 @@
3
3
  */
4
4
  const { Component, Fragment } = require("inferno");
5
5
  const view = require("../hexo/view");
6
- const { cacheComponent } = require("../../util/cache");
6
+ const crypto = require("node:crypto");
7
+ const { createElement } = require("inferno-create-element");
8
+
9
+ const cache = {};
10
+
11
+ function computeHash(props) {
12
+ return crypto.createHash("md5").update(JSON.stringify(props)).digest("hex");
13
+ }
14
+
15
+ function cacheComponent(type, prefix, transform) {
16
+ return (props) => {
17
+ const targetProps = transform(props);
18
+ if (targetProps === null || typeof targetProps !== "object") {
19
+ return null;
20
+ }
21
+ const cacheId = `${prefix}-${computeHash(targetProps)}`;
22
+ if (!cache[cacheId]) {
23
+ cache[cacheId] = createElement(type, targetProps);
24
+ }
25
+ return cache[cacheId];
26
+ };
27
+ }
7
28
 
8
29
  function lazy_load_css(href) {
9
30
  script_str = `var link = document.createElement('link');
@@ -1,25 +1,38 @@
1
1
  const { format, isValid, parseISO } = require("date-fns");
2
2
  const { Component, Fragment } = require("../include/util/common");
3
- const Paginator = require("./misc/paginator");
4
3
  const ArticleMedia = require("./common/article_media");
5
4
 
6
5
  module.exports = class extends Component {
7
6
  render() {
8
- const { config, page, helper } = this.props;
9
- const { url_for, __, date_xml, date } = helper;
7
+ const { page, helper } = this.props;
8
+ const { url_for, date_xml, date } = helper;
10
9
 
11
10
  const inlineCSS = `
11
+ .winter {
12
+ --accent: var(--blue);
13
+ }
14
+ .autumn {
15
+ --accent: var(--red);
16
+ }
17
+ .summer {
18
+ --accent: var(--green);
19
+ }
20
+ .spring {
21
+ --accent: var(--peach);
22
+ }
23
+
12
24
  .article-meta {
13
25
  font-size: 0.8rem;
14
26
  color: var(--subtext1);
15
- margin-bottom: 0.1rem;
27
+ font-family: var(--font-handwriting);
16
28
  }
17
-
18
29
  a.archive-title {
30
+ font-family: var(--font-sans-serif);
31
+ font-weight: 400;
19
32
  color: var(--text);
20
33
 
21
34
  &:hover {
22
- color: var(--peach);
35
+ color: var(--accent);
23
36
  }
24
37
  }
25
38
 
@@ -28,46 +41,57 @@ module.exports = class extends Component {
28
41
  top: 1.5rem;
29
42
  right: 1.5rem;
30
43
  z-index: 0;
31
- font-size: 7.5rem;
32
44
  font-weight: bolder;
33
- font-family: Paris2024;
34
- color: hsl(from var(--lavender) h s l / 0.15);
45
+ font-family: var(--font-handwriting);
46
+ font-size: 4em;
47
+ font-style: italic;
48
+ color: hsl(from var(--accent) h s l / 0.3);
35
49
  line-height: 1;
36
50
  user-select: none;
37
51
  }
38
- .timeline .archive-item {
52
+
53
+ .archive-item {
39
54
  display: flex;
40
55
  text-align: left;
41
56
  align-items: flex-start;
42
57
  }
43
- .timeline .archive-item a {
44
- color: var(--text);
45
- transition: color 0.2s;
46
- }
47
- .timeline .archive-item a:hover {
48
- color: var(--peach);
58
+ .archive-item > div {
59
+ display: flex;
60
+ align-items: baseline; /* 时间和标题的文字基线对齐 */
61
+ gap: 0.75rem;
49
62
  }
50
63
  .archive-item + .archive-item {
51
64
  border: none;
52
65
  margin-top: 0;
53
- padding-top: .5rem;
66
+ padding-top: 1em;
54
67
  }
55
68
  `;
56
- function renderArticleList(posts, year, month = null) {
69
+ function getSeason(month) {
70
+ if (month >= 2 && month <= 4) return "Spring";
71
+ if (month >= 5 && month <= 7) return "Summer";
72
+ if (month >= 8 && month <= 10) return "Autumn";
73
+ return "Winter";
74
+ }
75
+
76
+ function renderArticleList(posts, year, month = null, sectionTitle = null, season = null) {
57
77
  let time = null;
58
78
  if (page.year) {
59
79
  const mm = page.month ? String(page.month).padStart(2, "0") : "01";
60
80
  time = parseISO(`${page.year}-${mm}-01T00:00:00.000Z`);
61
81
  }
82
+
83
+ let title = `'${String(year).slice(-2)}`;
84
+ if (sectionTitle) {
85
+ title = sectionTitle;
86
+ } else if (month !== null && isValid(time)) {
87
+ title = format(time, "LLLL 'yy");
88
+ }
89
+
62
90
  return (
63
91
  <div class="card">
64
- <div class="card-content">
92
+ <div class={["card-content", season ? season.toLowerCase() : null].filter(Boolean).join(" ")}>
65
93
  <span class="year">
66
- {month === null
67
- ? year
68
- : isValid(time)
69
- ? format(time, "LLLL yyyy")
70
- : year}
94
+ {title}
71
95
  </span>
72
96
  <div class="timeline">
73
97
  {posts.map((post) => {
@@ -88,37 +112,37 @@ module.exports = class extends Component {
88
112
 
89
113
  let articleList;
90
114
  if (!page.year) {
91
- const years = {};
115
+ const groups = [];
92
116
  page.posts.each((p) => {
93
- years[p.date.year()] = null;
117
+ const year = p.date.year();
118
+ const month = p.date.month(); // 0-11
119
+ const season = getSeason(month);
120
+
121
+ const lastGroup = groups[groups.length - 1];
122
+ if (lastGroup && lastGroup.year === year && lastGroup.season === season) {
123
+ lastGroup.posts.push(p);
124
+ } else {
125
+ groups.push({
126
+ year,
127
+ season,
128
+ posts: [p]
129
+ });
130
+ }
131
+ });
132
+
133
+ articleList = groups.map((group) => {
134
+ const title = `'${String(group.year).slice(-2)} ${group.season}`;
135
+ return renderArticleList(group.posts, group.year, null, title, group.season);
94
136
  });
95
- articleList = Object.keys(years)
96
- .sort((a, b) => b - a)
97
- .map((year) => {
98
- const posts = page.posts.filter(
99
- (p) => p.date.year() === parseInt(year, 10),
100
- );
101
- return renderArticleList(posts, year, null);
102
- });
103
137
  } else {
104
- articleList = renderArticleList(page.posts, page.year, page.month);
138
+ const season = page.month ? getSeason(page.month - 1) : null;
139
+ articleList = renderArticleList(page.posts, page.year, page.month, null, season);
105
140
  }
106
141
 
107
142
  return (
108
143
  <Fragment>
109
144
  <style dangerouslySetInnerHTML={{ __html: inlineCSS }}></style>
110
145
  {articleList}
111
- {page.total > 1 ? (
112
- <Paginator
113
- current={page.current}
114
- total={page.total}
115
- baseUrl={page.base}
116
- path={config.pagination_dir}
117
- urlFor={url_for}
118
- prevTitle={__("common.prev")}
119
- nextTitle={__("common.next")}
120
- />
121
- ) : null}
122
146
  </Fragment>
123
147
  );
124
148
  }
@@ -2,28 +2,29 @@ const { Component } = require("inferno");
2
2
 
3
3
  module.exports = class extends Component {
4
4
  render() {
5
- const { page, cover, helper } = this.props;
5
+ const { page, cover, helper, index } = this.props;
6
6
  const { url_for } = helper;
7
7
 
8
8
  const imageSrcset = `${cover}?w=800 800w, ${cover}?w=1500 1500w, ${cover}?w=2000 2000w, ${cover} 6144w`;
9
- const CoverImage = (
10
- <img
11
- class="fill"
12
- src={cover}
13
- alt={page.title || cover}
14
- onLoad={"this.classList.add('loaded')"}
15
- srcset={imageSrcset}
16
- referrerpolicy="no-referrer"
17
- decoding="async"
18
- loading="lazy"
19
- />
20
- );
9
+ const lqip_src = `${cover}?q=80&blur=80`;
10
+
21
11
  return (
22
- <div class="card-image">
23
- <a href={url_for(page.link || page.path)} class="image is-7by3">
24
- {CoverImage}
25
- </a>
26
- </div>
12
+ <a href={url_for(page.link || page.path)} class="cover-image">
13
+ <img
14
+ class="cover-image-placeholder"
15
+ src={lqip_src}
16
+ alt="placeholder"
17
+ />
18
+ <img
19
+ class="fill"
20
+ src={cover}
21
+ alt={page.title || cover}
22
+ srcset={imageSrcset}
23
+ referrerpolicy="no-referrer"
24
+ decoding="async"
25
+ loading={index ? "lazy" : "eager"}
26
+ />
27
+ </a>
27
28
  );
28
29
  }
29
30
  };
@@ -113,7 +113,7 @@ module.exports = class extends Component {
113
113
  latte: "light"
114
114
  };
115
115
  var stored = localStorage.getItem("themePreference");
116
- var theme = stored ? stored : "system";
116
+ var theme = stored && stored in THEME_MAP ? stored : "system";
117
117
  var html = document.documentElement;
118
118
  var resolvedTheme = theme === "system"
119
119
  ? window.matchMedia("(prefers-color-scheme: dark)").matches ? "mocha" : "nord"
@@ -1,5 +1,4 @@
1
- const { Component, Fragment } = require("../../include/util/common");
2
- const { cacheComponent } = require("../../util/cache");
1
+ const { Component, Fragment, cacheComponent } = require("../../include/util/common");
3
2
 
4
3
  function isSameLink(a, b) {
5
4
  function santize(url) {
@@ -29,25 +29,6 @@ module.exports = class extends Component {
29
29
  ></script>
30
30
  <script async src="/js/shiki/shiki.js"></script>
31
31
  <script async src="/js/instant-page.min.js" type="module"></script>
32
- {config?.plugins?.live2d_Asoul && (
33
- <>
34
- <script defer src="/js/live2d_Asoul/TweenLite.min.js"></script>
35
- <script
36
- defer
37
- src="/js/live2d_Asoul/live2dcubismcore.min.js"
38
- ></script>
39
- <script defer src="/js/live2d_Asoul/pixi.min.js"></script>
40
- <script defer src="/js/live2d_Asoul/cubism4.min.js"></script>
41
- <script defer src="/js/live2d_Asoul/pio.js"></script>
42
- <script defer src="/js/live2d_Asoul/pio_sdk4.js"></script>
43
- <script defer src="/js/live2d_Asoul/load.js"></script>
44
- <link
45
- href="/js/live2d_Asoul/pio.css"
46
- rel="stylesheet"
47
- type="text/css"
48
- />
49
- </>
50
- )}
51
32
  </Fragment>
52
33
  );
53
34
  }
package/layout/tags.jsx CHANGED
@@ -20,6 +20,8 @@ class Tags extends Component {
20
20
  }
21
21
 
22
22
  .tag {
23
+ color: var(--text);
24
+ border-color: var(--surface0);
23
25
  padding: 0 0.75em;
24
26
  transition: all 0.3s ease;
25
27
  border-style: solid;
@@ -34,6 +36,7 @@ class Tags extends Component {
34
36
  .tag:first-child {
35
37
  border-width: 1px 0 1px 1px;
36
38
  border-radius: 5px 0 0 5px;
39
+ background: var(--base);
37
40
  }
38
41
 
39
42
  .tag:first-child::before {
@@ -43,6 +46,7 @@ class Tags extends Component {
43
46
  }
44
47
 
45
48
  .tag:last-child {
49
+ background: var(--mantle);
46
50
  border-width: 1px 1px 1px 0;
47
51
  border-radius: 0 5px 5px 0;
48
52
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hexo-theme-gnix",
3
- "version": "4.0.5",
3
+ "version": "4.2.0",
4
4
  "author": "Efterklang <gaojiaxing0220@gmail.com>",
5
5
  "license": "MIT",
6
6
  "description": "Second generation of Hexo theme Icarus, now with Catppuccin flavor and night mode support.",
@@ -13,6 +13,7 @@
13
13
  Avenir, system-ui, "Segoe UI", Roboto, Helvetica, Arial, "PingFang SC",
14
14
  "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans CJK SC",
15
15
  "Source Han Sans CN", sans-serif;
16
+ --font-handwriting: "Bradley Hand", "Segoe Script", "Dancing Script", cursive;
16
17
  }
17
18
 
18
19
  /* #region Color */
@@ -204,10 +205,6 @@ a:hover {
204
205
  color: var(--blue);
205
206
  }
206
207
 
207
- a.header-anchor {
208
- font-family: var(--font-sans-serif);
209
- }
210
-
211
208
  a.header-anchor:hover::after {
212
209
  margin-left: 0.2em;
213
210
  color: var(--surface0);
@@ -289,27 +286,13 @@ blockquote::before {
289
286
  color: var(--lavender);
290
287
  }
291
288
 
292
- .tag {
293
- color: var(--text);
294
- border-color: var(--surface0);
295
- }
296
-
297
- .tag:first-child {
298
- background: var(--base);
299
- }
300
-
301
- .tag:last-child {
302
- background: var(--mantle);
303
- }
304
-
305
289
  body {
306
290
  background: var(--mantle);
307
291
  color: var(--text);
308
292
  }
309
293
 
310
294
  .card {
311
- background: var(--mantle);
312
- border: 0.1px dashed var(--surface0);
295
+ border: .5px dashed var(--surface0);
313
296
  }
314
297
 
315
298
  input.task-list-item-checkbox:checked {
@@ -419,16 +402,11 @@ li,
419
402
  ol,
420
403
  p,
421
404
  pre,
422
- textarea,
423
- ul {
405
+ textarea {
424
406
  margin: 0;
425
407
  padding: 0;
426
408
  }
427
409
 
428
- ul {
429
- list-style: none;
430
- }
431
-
432
410
  button,
433
411
  input,
434
412
  select,
@@ -454,12 +432,6 @@ body {
454
432
  flex-direction: column;
455
433
  }
456
434
 
457
- img,
458
- video {
459
- height: auto;
460
- max-width: 100%;
461
- }
462
-
463
435
  .breadcrumb,
464
436
  .pagination-ellipsis,
465
437
  .pagination-link,
@@ -531,23 +503,6 @@ video {
531
503
  margin-top: 1.5rem;
532
504
  }
533
505
 
534
- .card-image {
535
- user-select: none;
536
- display: block;
537
- position: relative;
538
- border-radius: 24px;
539
- overflow: hidden;
540
- }
541
-
542
- .card-image .fill {
543
- position: absolute;
544
- top: 0;
545
- left: 0;
546
- width: 100%;
547
- height: 100%;
548
- object-fit: cover;
549
- }
550
-
551
506
  .card-content {
552
507
  padding: 1.25rem;
553
508
  border-radius: 0;
@@ -993,7 +948,6 @@ video {
993
948
 
994
949
  p,
995
950
  blockquote,
996
- ul,
997
951
  ol,
998
952
  dl,
999
953
  pre,
@@ -1016,7 +970,8 @@ video {
1016
970
  img,
1017
971
  video {
1018
972
  display: block;
1019
- margin: 0 auto;
973
+ margin: 1em auto;
974
+ max-width: 100%;
1020
975
 
1021
976
  &:hover {
1022
977
  cursor: pointer;
@@ -1033,8 +988,7 @@ video {
1033
988
  ul {
1034
989
  list-style: disc outside;
1035
990
  padding-left: 2em;
1036
- margin-top: 0;
1037
- margin-bottom: 0;
991
+ margin: 1em 0;
1038
992
 
1039
993
  ul {
1040
994
  margin-top: 0.5em;
@@ -1279,11 +1233,6 @@ a strong {
1279
1233
  color: currentColor;
1280
1234
  }
1281
1235
 
1282
- img {
1283
- height: auto;
1284
- max-width: 100%;
1285
- }
1286
-
1287
1236
  input[type="checkbox"],
1288
1237
  input[type="radio"] {
1289
1238
  vertical-align: baseline;
@@ -1295,35 +1244,6 @@ small {
1295
1244
 
1296
1245
  /* #endregion Content */
1297
1246
 
1298
- .image {
1299
- display: block;
1300
- position: relative;
1301
- }
1302
-
1303
- .image img {
1304
- display: block;
1305
- height: auto;
1306
- width: 100%;
1307
- }
1308
-
1309
- .image.is-7by3 {
1310
- padding-top: 42.8%;
1311
- }
1312
-
1313
- .image.is-7by3 img {
1314
- bottom: 0;
1315
- left: 0;
1316
- position: absolute;
1317
- right: 0;
1318
- top: 0;
1319
- }
1320
-
1321
- .image .fill {
1322
- object-fit: cover;
1323
- width: 100%;
1324
- height: 100%;
1325
- }
1326
-
1327
1247
  :target {
1328
1248
  scroll-margin-top: 20vh;
1329
1249
  }
@@ -1362,6 +1282,7 @@ section {
1362
1282
  .article-header-meta {
1363
1283
  font-family: var(--font-monospace);
1364
1284
  overflow: auto;
1285
+ padding-bottom: 0.5em;
1365
1286
  margin-bottom: 1rem;
1366
1287
  border-bottom: 1px dashed var(--surface0);
1367
1288
  color: var(--subtext0);
@@ -1496,7 +1417,7 @@ input.searchbox-input {
1496
1417
  z-index: 101;
1497
1418
  display: flex;
1498
1419
  overflow: hidden;
1499
- border-radius: 24px;
1420
+ border-radius: 20px;
1500
1421
  width: 640px;
1501
1422
  top: 100px;
1502
1423
  }
@@ -1551,4 +1472,36 @@ input.searchbox-input {
1551
1472
  margin-top: 0.25em;
1552
1473
  }
1553
1474
 
1554
- /* #endregion Search */
1475
+ /* #endregion Search */
1476
+
1477
+ /* #region Article Cover */
1478
+
1479
+ .cover-image {
1480
+ position: relative;
1481
+ display: block;
1482
+ overflow: hidden;
1483
+ border-radius: 24px 24px 0 0;
1484
+ height: 380px;
1485
+
1486
+ .cover-image-placeholder {
1487
+ position: absolute;
1488
+ top: 0;
1489
+ left: 0;
1490
+ z-index: 1;
1491
+ filter: blur(10px);
1492
+ }
1493
+
1494
+ .fill {
1495
+ position: relative;
1496
+ z-index: 2;
1497
+ }
1498
+ }
1499
+
1500
+ .cover-image img {
1501
+ display: block;
1502
+ width: 100%;
1503
+ height: 100%;
1504
+ object-fit: cover;
1505
+ }
1506
+
1507
+ /* #endregion Article Cover */
@@ -25,7 +25,8 @@ table td {
25
25
  margin: 0 0 1.5rem 0;
26
26
  }
27
27
 
28
- .card-image {
28
+ .cover-image {
29
+ max-height: 20vh;
29
30
  border-radius: 0;
30
31
  }
31
32
 
@@ -46,4 +47,4 @@ table td {
46
47
  .pagination-list li {
47
48
  flex-grow: 1;
48
49
  flex-shrink: 1;
49
- }
50
+ }