jekyll-theme-chirpy 4.3.4 → 5.1.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 (69) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +20 -162
  3. data/_config.yml +44 -18
  4. data/_data/assets/cross_origin.yml +62 -0
  5. data/_data/assets/self_host.yml +51 -0
  6. data/_data/locales/en.yml +3 -15
  7. data/_data/locales/id-ID.yml +2 -14
  8. data/_data/locales/ko-KR.yml +78 -0
  9. data/_data/locales/my-MM.yml +78 -0
  10. data/_data/locales/ru-RU.yml +78 -0
  11. data/_data/locales/uk-UA.yml +78 -0
  12. data/_data/locales/zh-CN.yml +2 -14
  13. data/_data/share.yml +1 -1
  14. data/_includes/assets-origin.html +12 -0
  15. data/_includes/{disqus.html → comments/disqus.html} +4 -4
  16. data/_includes/comments/giscus.html +56 -0
  17. data/_includes/comments/utterances.html +51 -0
  18. data/_includes/comments.html +5 -0
  19. data/_includes/footer.html +1 -1
  20. data/_includes/head.html +35 -20
  21. data/_includes/js-selector.html +43 -11
  22. data/_includes/jsdelivr-combine.html +32 -0
  23. data/_includes/mermaid.html +31 -3
  24. data/_includes/mode-toggle.html +49 -65
  25. data/_includes/post-sharing.html +2 -2
  26. data/_includes/read-time.html +3 -3
  27. data/_includes/refactor-content.html +160 -36
  28. data/_includes/related-posts.html +1 -1
  29. data/_includes/search-loader.html +1 -1
  30. data/_includes/search-results.html +0 -8
  31. data/_includes/sidebar.html +16 -17
  32. data/_includes/timeago.html +11 -23
  33. data/_includes/toc.html +16 -0
  34. data/_includes/topbar.html +2 -3
  35. data/_includes/trending-tags.html +14 -0
  36. data/_includes/update-list.html +16 -0
  37. data/_layouts/archives.html +5 -7
  38. data/_layouts/category.html +3 -5
  39. data/_layouts/default.html +10 -4
  40. data/_layouts/home.html +14 -11
  41. data/_layouts/page.html +47 -22
  42. data/_layouts/post.html +128 -127
  43. data/_layouts/tag.html +3 -5
  44. data/_sass/addon/commons.scss +276 -290
  45. data/_sass/addon/module.scss +67 -31
  46. data/_sass/addon/syntax.scss +90 -66
  47. data/_sass/addon/variables.scss +7 -7
  48. data/_sass/colors/dark-syntax.scss +4 -4
  49. data/_sass/colors/dark-typography.scss +21 -9
  50. data/_sass/colors/light-syntax.scss +9 -4
  51. data/_sass/colors/light-typography.scss +18 -6
  52. data/_sass/jekyll-theme-chirpy.scss +1 -1
  53. data/_sass/layout/home.scss +6 -2
  54. data/_sass/layout/post.scss +52 -46
  55. data/_tabs/about.md +2 -2
  56. data/assets/404.html +0 -2
  57. data/assets/js/data/search.json +1 -0
  58. data/assets/js/data/swcache.js +11 -20
  59. data/assets/js/dist/categories.min.js +2 -2
  60. data/assets/js/dist/commons.min.js +2 -2
  61. data/assets/js/dist/home.min.js +2 -2
  62. data/assets/js/dist/misc.min.js +6 -0
  63. data/assets/js/dist/page.min.js +2 -2
  64. data/assets/js/dist/post.min.js +2 -2
  65. data/assets/js/dist/pvreport.min.js +2 -2
  66. metadata +16 -6
  67. data/_includes/css-selector.html +0 -15
  68. data/_includes/no-zero-date.html +0 -13
  69. data/_includes/panel.html +0 -59
@@ -1,37 +1,30 @@
1
1
  /*
2
2
  The common styles
3
3
  */
4
- @import url('https://fonts.googleapis.com/css2?family=Lato&family=Source+Sans+Pro:wght@400;600;900&display=swap');
5
4
 
6
- @mixin mode-toggle($dark-mode: false) {
7
- @if $dark-mode {
8
- @include dark-scheme;
9
- } @else {
10
- @include light-scheme;
11
- }
12
- }
13
-
14
- html:not([mode]),
15
- html[mode=light] {
16
- @include mode-toggle();
17
- }
18
-
19
- html[mode=dark] {
20
- @include mode-toggle(true);
21
- }
5
+ html {
6
+ @media (prefers-color-scheme: light) {
7
+ &:not([data-mode]),
8
+ [data-mode=light] {
9
+ @include light-scheme;
10
+ }
22
11
 
23
- @media (prefers-color-scheme: dark) {
24
- html:not([mode]),
25
- html[mode=dark] {
26
- @include mode-toggle(true);
12
+ &[data-mode=dark] {
13
+ @include dark-scheme;
14
+ }
27
15
  }
28
16
 
29
- html[mode=light] {
30
- @include mode-toggle();
17
+ @media (prefers-color-scheme: dark) {
18
+ &:not([data-mode]),
19
+ &[data-mode=dark] {
20
+ @include dark-scheme;
21
+ }
22
+
23
+ &[data-mode=light] {
24
+ @include light-scheme;
25
+ }
31
26
  }
32
- }
33
27
 
34
- :root {
35
28
  font-size: 16px;
36
29
  }
37
30
 
@@ -43,51 +36,12 @@ body {
43
36
  font-family: 'Source Sans Pro', 'Microsoft Yahei', sans-serif;
44
37
  }
45
38
 
46
- /* --- Scrollbar --- */
47
-
48
- $scrollbar-size: 7px;
49
-
50
- ::-webkit-scrollbar {
51
- width: $scrollbar-size;
52
- height: $scrollbar-size;
53
- }
54
-
55
- ::-webkit-scrollbar-track {
56
- @at-root body#{&} {
57
- -webkit-box-shadow: inset 0 0 6px var(--scrollbar-track-bg);
58
- }
59
- }
60
-
61
- ::-webkit-scrollbar-thumb {
62
- background-color: var(--scrollbar-thumb-bg);
63
- border-radius: calc(#{$scrollbar-size} / 2);
64
- }
65
-
66
- .highlight {
67
- border-color: transparent;
68
- transition: border-color 0.5s ease;
69
-
70
- &:hover {
71
- border-color: var(--scrollbar-thumb-bg);
72
- transition: border-color 0.2s ease;
73
- }
74
-
75
- &::-webkit-scrollbar-thumb {
76
- /* add border to act as background-color */
77
- border-right-style: inset;
78
- border-right-width: calc(100vw + 100vh);
79
- border-color: inherit;
80
- background-color: var(--highlight-bg-color);
81
- }
82
-
83
- }
84
-
85
39
  /* --- Typography --- */
86
40
 
87
41
  h1 {
88
42
  @extend %heading;
89
43
 
90
- font-size: 1.8rem;
44
+ font-size: 1.9rem;
91
45
  }
92
46
 
93
47
  h2 {
@@ -95,7 +49,7 @@ h2 {
95
49
  @extend %section;
96
50
  @extend %anchor;
97
51
 
98
- font-size: 1.4rem;
52
+ font-size: 1.5rem;
99
53
  }
100
54
 
101
55
  h3 {
@@ -103,7 +57,7 @@ h3 {
103
57
  @extend %section;
104
58
  @extend %anchor;
105
59
 
106
- font-size: 1.25rem;
60
+ font-size: 1.2rem;
107
61
  }
108
62
 
109
63
  h4 {
@@ -143,10 +97,49 @@ blockquote {
143
97
  border-left: 5px solid var(--blockquote-border-color);
144
98
  padding-left: 1rem;
145
99
  color: var(--blockquote-text-color);
100
+
101
+ &[class^="prompt-"] {
102
+ display: flex;
103
+ border-left: 0;
104
+ border-radius: 6px;
105
+ padding: 0.75rem 1.2rem;
106
+ color: var(--prompt-text-color);
107
+
108
+ &::before {
109
+ margin-right: 1rem;
110
+ font-family: "Font Awesome 5 Free";
111
+ text-align: center;
112
+ width: 1.25rem;
113
+ }
114
+
115
+ p:last-child {
116
+ margin-bottom: 0rem;
117
+ }
118
+ }
119
+
120
+ @include prompt("tip", "\f0eb", 400);
121
+
122
+ @include prompt("info", "\f06a");
123
+
124
+ @include prompt("warning", "\f06a");
125
+
126
+ @include prompt("danger", "\f071");
146
127
  }
147
128
 
148
129
  kbd {
130
+ font-family: inherit;
131
+ display: inline-block;
132
+ vertical-align: middle;
133
+ line-height: 1.3rem;
134
+ min-width: 1.75rem;
135
+ text-align: center;
149
136
  margin: 0 0.3rem;
137
+ padding-top: 0.1rem;
138
+ color: var(--kbd-text-color);
139
+ background-color: var(--kbd-bg-color);
140
+ border-radius: 0.25rem;
141
+ border: solid 1px var(--kbd-wrap-color);
142
+ box-shadow: inset 0 -2px 0 var(--kbd-wrap-color);
150
143
  }
151
144
 
152
145
  footer {
@@ -155,8 +148,6 @@ footer {
155
148
  padding: 0 1rem;
156
149
  height: $footer-height;
157
150
  font-size: 0.8rem;
158
- color: #7a7b7d;
159
- background-color: var(--footer-bg-color);
160
151
 
161
152
  > div.d-flex {
162
153
  line-height: 1.2rem;
@@ -171,7 +162,7 @@ footer {
171
162
  }
172
163
 
173
164
  a {
174
- color: var(--footer-link);
165
+ @extend %text-color;
175
166
 
176
167
  &:link {
177
168
  @include no-text-decoration;
@@ -189,6 +180,43 @@ footer {
189
180
  }
190
181
  }
191
182
 
183
+ i { /* fontawesome icons */
184
+ &.far,
185
+ &.fas {
186
+ @extend %no-cursor;
187
+ }
188
+ }
189
+
190
+ @keyframes fade-in {
191
+ from { opacity: 0; }
192
+ to { opacity: 1; }
193
+ }
194
+
195
+ img[data-src] {
196
+ margin: 0.5rem 0;
197
+
198
+ &[data-loaded=true] {
199
+ animation: fade-in linear 0.5s;
200
+ }
201
+
202
+ &.left {
203
+ float: left;
204
+ margin: 0.75rem 1rem 1rem 0;
205
+ }
206
+
207
+ &.right {
208
+ float: right;
209
+ margin: 0.75rem 0 1rem 1rem;
210
+ }
211
+
212
+ &.shadow {
213
+ filter: drop-shadow(2px 4px 6px rgba(0, 0, 0, 0.08));
214
+ box-shadow: none !important; /* cover the Bootstrap 4.6.1 styles */
215
+ }
216
+
217
+ @extend %img-caption;
218
+ }
219
+
192
220
  /* --- Panels --- */
193
221
 
194
222
  .access {
@@ -203,10 +231,6 @@ footer {
203
231
  position: sticky;
204
232
  }
205
233
 
206
- &.topbar-down {
207
- top: 6rem;
208
- }
209
-
210
234
  > div {
211
235
  padding-left: 1rem;
212
236
  border-left: 1px solid var(--main-border-color);
@@ -216,19 +240,16 @@ footer {
216
240
  }
217
241
  }
218
242
 
219
- span {
220
- @include panel-label;
221
- }
222
-
223
243
  .post-content {
224
244
  font-size: 0.9rem;
225
245
  }
226
246
 
227
247
  }
228
248
 
229
- #access-tags {
230
- > div.post-content > div {
231
- max-width: 80%;
249
+ #panel-wrapper {
250
+ /* the headings */
251
+ .panel-heading {
252
+ @include label(inherit);
232
253
  }
233
254
 
234
255
  .post-tag {
@@ -248,6 +269,10 @@ footer {
248
269
  transition: none;
249
270
  }
250
271
  }
272
+
273
+ [data-topbar-visible=true] & > div {
274
+ top: 6rem;
275
+ }
251
276
  }
252
277
 
253
278
  #access-lastmod {
@@ -288,12 +313,12 @@ footer {
288
313
  margin-bottom: 0;
289
314
  }
290
315
 
291
- // [scroll-focus] added by `smooth-scroll.js`
316
+ /* [scroll-focus] added by `smooth-scroll.js` */
292
317
  &:target:not([scroll-focus]),
293
318
  &[scroll-focus=true] > p {
294
319
  background-color: var(--footnote-target-bg);
295
320
  width: fit-content;
296
- -webkit-transition: background-color 1.5s ease-in-out; // Safari prior 6.1
321
+ -webkit-transition: background-color 1.5s ease-in-out; /* Safari prior 6.1 */
297
322
  transition: background-color 1.5s ease-in-out;
298
323
  }
299
324
  }
@@ -305,11 +330,11 @@ footer {
305
330
  @include pl-pr(2px);
306
331
 
307
332
  border-bottom-style: none !important;
308
- -webkit-transition: background-color 1.5s ease-in-out; // Safari prior 6.1
333
+ -webkit-transition: background-color 1.5s ease-in-out; /* Safari prior 6.1 */
309
334
  transition: background-color 1.5s ease-in-out;
310
335
  }
311
336
 
312
- // [scroll-focus] added by `smooth-scroll.js`
337
+ /* [scroll-focus] added by `smooth-scroll.js` */
313
338
  @at-root sup:target:not([scroll-focus]),
314
339
  sup[scroll-focus=true] > a#{&} {
315
340
  background-color: var(--footnote-target-bg);
@@ -327,26 +352,10 @@ footer {
327
352
  }
328
353
  }
329
354
 
330
- .post {
331
- h1 {
332
- margin-top: 3rem;
333
- margin-bottom: 1rem;
334
- }
335
-
336
- em { /* MarkDown italic */
337
- padding-right: 0.2rem;
338
- }
339
-
340
- a:hover {
341
- code {
342
- @extend %link-hover;
343
- }
344
- }
345
- }
346
-
347
355
  /* --- Begin of Markdown table style --- */
348
356
 
349
- .table-wrapper { // it will be created by Liquid
357
+ /* it will be created by Liquid */
358
+ .table-wrapper {
350
359
  overflow-x: auto;
351
360
  margin-bottom: 1.5rem;
352
361
 
@@ -379,12 +388,41 @@ footer {
379
388
  @extend %table-cell;
380
389
  }
381
390
  }
382
- } // tbody
383
- }// table
391
+ } /* tbody */
392
+ }/* table */
384
393
  }
385
394
 
386
395
  /* --- post --- */
387
396
 
397
+ .post {
398
+ h1 {
399
+ margin-top: 3rem;
400
+ margin-bottom: 1.5rem;
401
+ }
402
+
403
+ a {
404
+ &.img-link {
405
+ @extend %no-cursor;
406
+ }
407
+
408
+ /* created by `_includes/img-extra.html` */
409
+ &.popup {
410
+ cursor: zoom-in;
411
+
412
+ > img[data-src]:not(.normal):not(.left):not(.right) {
413
+ @include align-center;
414
+ }
415
+ }
416
+
417
+ &:hover {
418
+ code {
419
+ @extend %link-hover;
420
+ }
421
+ }
422
+ } /* a */
423
+
424
+ }
425
+
388
426
  .pageviews .fa-spinner {
389
427
  font-size: 80%;
390
428
  }
@@ -394,9 +432,6 @@ footer {
394
432
  word-spacing: 1px;
395
433
 
396
434
  a {
397
- @extend %link-color;
398
- @extend %link-underline;
399
-
400
435
  &:not(:last-child) {
401
436
  margin-right: 2px;
402
437
  }
@@ -405,6 +440,10 @@ footer {
405
440
  @extend %link-hover;
406
441
  }
407
442
  }
443
+
444
+ em {
445
+ @extend %normal-font-style;
446
+ }
408
447
  }
409
448
 
410
449
  .post-content {
@@ -414,54 +453,8 @@ footer {
414
453
  overflow-wrap: break-word;
415
454
  word-wrap: break-word;
416
455
 
417
- @mixin caption {
418
- + em {
419
- display: block;
420
- text-align: center;
421
- font-style: normal;
422
- font-size: 80%;
423
- padding: 0;
424
- color: #6d6c6c;
425
- }
426
- }
427
-
428
- @keyframes fade-in {
429
- from { opacity: 0; }
430
- to { opacity: 1; }
431
- }
432
-
433
- img[data-src] {
434
- margin: 0.5rem 0;
435
-
436
- &[data-loaded=true] {
437
- animation: fade-in linear 0.5s;
438
- }
439
-
440
- &.left {
441
- float: left;
442
- margin: 0.75rem 1rem 1rem 0;
443
- }
444
-
445
- &.right {
446
- float: right;
447
- margin: 0.75rem 0 1rem 1rem;
448
- }
449
-
450
- &.shadow {
451
- filter: drop-shadow(2px 4px 6px rgba(0, 0, 0, 0.08));
452
- }
453
-
454
- @include caption;
455
-
456
- }
457
-
458
456
  a {
459
- blockquote & {
460
- color: var(--link-color);
461
- }
462
-
463
457
  &:not(.img-link) {
464
- @extend %link-color;
465
458
  @extend %link-underline;
466
459
 
467
460
  &:hover {
@@ -469,26 +462,18 @@ footer {
469
462
  }
470
463
  }
471
464
 
472
- &.popup { // created by `_includes/img-extra.html`
473
- cursor: zoom-in;
474
-
475
- > img[data-src]:not(.normal):not(.left):not(.right) {
476
- @include align-center;
477
- }
478
- }
479
-
480
465
  &.img-link {
481
- @include caption;
466
+ @extend %img-caption;
482
467
  }
483
468
 
484
- } // a
469
+ }
485
470
 
486
471
  ul {
487
- // attribute 'hide-bullet' was added by liquid
472
+ /* attribute 'hide-bullet' was added by liquid */
488
473
  .task-list-item[hide-bullet] {
489
474
  list-style-type: none;
490
475
 
491
- > i { // checkbox icon
476
+ > i { /* checkbox icon */
492
477
  margin: 0 0.4rem 0.2rem -1.4rem;
493
478
  vertical-align: middle;
494
479
  color: var(--checkbox-color);
@@ -505,7 +490,7 @@ footer {
505
490
  vertical-align: middle;
506
491
  }
507
492
 
508
- } // ul
493
+ } /* ul */
509
494
 
510
495
  > ol,
511
496
  > ul {
@@ -513,7 +498,7 @@ footer {
513
498
 
514
499
  li {
515
500
  ol,
516
- ul { // sub list
501
+ ul { /* sub list */
517
502
  padding-left: 2rem;
518
503
  margin-top: 0.3rem;
519
504
  }
@@ -531,7 +516,7 @@ footer {
531
516
  margin-left: 1rem;
532
517
  }
533
518
 
534
- } // .post-content
519
+ } /* .post-content */
535
520
 
536
521
  .tag:hover {
537
522
  @extend %tag-hover;
@@ -574,10 +559,6 @@ footer {
574
559
 
575
560
  /* --- Effects classes --- */
576
561
 
577
- .semi-bold {
578
- font-weight: 600 !important;
579
- }
580
-
581
562
  .loaded {
582
563
  display: block !important;
583
564
 
@@ -607,10 +588,6 @@ footer {
607
588
  box-shadow: 0 0 8px 0 var(--btn-box-shadow) !important;
608
589
  }
609
590
 
610
- .topbar-up {
611
- top: -3rem !important; /* same as topbar height. */
612
- }
613
-
614
591
  .no-text-decoration {
615
592
  @include no-text-decoration;
616
593
  }
@@ -640,14 +617,14 @@ footer {
640
617
 
641
618
  /* --- Overriding --- */
642
619
 
643
- // magnific-popup
620
+ /* magnific-popup */
644
621
  figure .mfp-title {
645
622
  text-align: center;
646
623
  padding-right: 0;
647
624
  margin-top: 0.5rem;
648
625
  }
649
626
 
650
- // mermaid
627
+ /* mermaid */
651
628
  .mermaid {
652
629
  text-align: center;
653
630
  }
@@ -695,7 +672,7 @@ $sidebar-display: "sidebar-display";
695
672
  border-radius: 50%;
696
673
  border: 2px solid rgba(222, 222, 222, 0.7);
697
674
  overflow: hidden;
698
- transform: translateZ(0); // fixed the zoom in Safari
675
+ transform: translateZ(0); /* fixed the zoom in Safari */
699
676
  -webkit-transition: border-color 0.35s ease-in-out;
700
677
  -moz-transition: border-color 0.35s ease-in-out;
701
678
  transition: border-color 0.35s ease-in-out;
@@ -719,7 +696,7 @@ $sidebar-display: "sidebar-display";
719
696
  transform: scale(1.2);
720
697
  }
721
698
  }
722
- } // #avatar
699
+ } /* #avatar */
723
700
 
724
701
  .site-title {
725
702
  a {
@@ -738,7 +715,7 @@ $sidebar-display: "sidebar-display";
738
715
  line-height: 1.2rem;
739
716
  word-spacing: 1px;
740
717
  margin: 0.5rem 1.5rem 0.5rem 1.5rem;
741
- min-height: 3rem; // avoid vertical shifting in multi-line words
718
+ min-height: 3rem; /* avoid vertical shifting in multi-line words */
742
719
  user-select: none;
743
720
  }
744
721
 
@@ -782,7 +759,7 @@ $sidebar-display: "sidebar-display";
782
759
  width: 100%;
783
760
  }
784
761
 
785
- &::after { // the cursor
762
+ &::after { /* the cursor */
786
763
  display: table;
787
764
  visibility: hidden;
788
765
  content: "";
@@ -795,7 +772,7 @@ $sidebar-display: "sidebar-display";
795
772
  pointer-events: none;
796
773
  }
797
774
  }
798
- } // li
775
+ } /* li */
799
776
 
800
777
  @mixin fix-cursor($top) {
801
778
  top: $top;
@@ -820,12 +797,11 @@ $sidebar-display: "sidebar-display";
820
797
  }
821
798
  }
822
799
 
823
- } // @for
800
+ } /* @for */
824
801
 
825
- } // ul
802
+ } /* ul */
826
803
 
827
804
  .sidebar-bottom {
828
- font-size: 1.2rem;
829
805
  margin-bottom: 2.1rem;
830
806
 
831
807
  @include ml-mr(auto);
@@ -842,22 +818,31 @@ $sidebar-display: "sidebar-display";
842
818
  }
843
819
 
844
820
  i {
845
- line-height: 1.75rem; // default line-height in body
846
- vertical-align: middle;
821
+ font-size: 1.2rem;
822
+ line-height: 1.75rem;
847
823
  }
848
824
 
849
- #mode-toggle-wrapper {
825
+ .mode-toggle {
826
+ padding: 0;
827
+ border: 0;
828
+ margin-bottom: 1px;
829
+ background-color: transparent;
830
+
850
831
  @extend %icon;
832
+ @extend %sidebar-links;
851
833
 
852
- i {
853
- @extend %sidebar-links;
854
- @extend %cursor-pointer;
834
+ > i {
855
835
  @extend %clickable-transition;
856
836
  }
857
837
 
838
+ &:hover > i {
839
+ color: var(--sidebar-active-color);
840
+ }
858
841
  }
859
842
 
860
843
  .icon-border {
844
+ @extend %no-cursor;
845
+
861
846
  background-color: var(--sidebar-muted-color);
862
847
  content: "";
863
848
  width: 3px;
@@ -865,13 +850,9 @@ $sidebar-display: "sidebar-display";
865
850
  border-radius: 50%;
866
851
  }
867
852
 
868
- #mode-toggle-wrapper:hover > i {
869
- color: var(--sidebar-active-color);
870
- }
871
-
872
- } // .sidebar-bottom
853
+ } /* .sidebar-bottom */
873
854
 
874
- } // #sidebar
855
+ } /* #sidebar */
875
856
 
876
857
  @media (hover: hover) {
877
858
  #sidebar ul > li:last-child::after {
@@ -909,10 +890,14 @@ $sidebar-display: "sidebar-display";
909
890
  z-index: 50;
910
891
  border-bottom: 1px solid rgba(0, 0, 0, 0.07);
911
892
  background-color: var(--topbar-wrapper-bg);
893
+
894
+ [data-topbar-visible=false] & {
895
+ top: -$topbar-height; /* same as topbar height. */
896
+ }
912
897
  }
913
898
 
914
899
  #topbar {
915
- i { // icons
900
+ i { /* icons */
916
901
  color: #999;
917
902
  }
918
903
 
@@ -934,7 +919,7 @@ $sidebar-display: "sidebar-display";
934
919
  }
935
920
  }
936
921
  }
937
- } // #topbar
922
+ } /* #topbar */
938
923
 
939
924
  #sidebar-trigger,
940
925
  #search-trigger {
@@ -954,12 +939,6 @@ $sidebar-display: "sidebar-display";
954
939
  font-size: 0.9rem;
955
940
  color: var(--search-icon-color);
956
941
  }
957
-
958
- .fa-times-circle { /* button 'clean up' */
959
- @extend %cursor-pointer;
960
-
961
- visibility: hidden;
962
- }
963
942
  }
964
943
 
965
944
  #search-cancel { /* 'Cancel' link */
@@ -976,6 +955,7 @@ $sidebar-display: "sidebar-display";
976
955
  border-radius: 0;
977
956
  padding: 0.18rem 0.3rem;
978
957
  color: var(--text-color);
958
+ height: auto;
979
959
 
980
960
  &:focus {
981
961
  box-shadow: none;
@@ -991,7 +971,11 @@ $sidebar-display: "sidebar-display";
991
971
  }
992
972
 
993
973
  #search-hints {
994
- display: none;
974
+ padding: 0 1rem;
975
+
976
+ h4 {
977
+ margin-bottom: 1.5rem;
978
+ }
995
979
 
996
980
  .post-tag {
997
981
  display: inline-block;
@@ -1000,13 +984,15 @@ $sidebar-display: "sidebar-display";
1000
984
  background: var(--search-tag-bg);
1001
985
  border: none;
1002
986
  padding: 0.5rem;
1003
- margin: 0 1rem 1rem 0;
987
+ margin: 0 1.25rem 1rem 0;
1004
988
 
1005
989
  &::before {
1006
990
  content: "#";
1007
991
  color: var(--text-muted-color);
1008
992
  padding-right: 0.2rem;
1009
993
  }
994
+
995
+ @extend %link-color;
1010
996
  }
1011
997
  }
1012
998
 
@@ -1033,7 +1019,7 @@ $sidebar-display: "sidebar-display";
1033
1019
  margin-bottom: 1rem;
1034
1020
  }
1035
1021
 
1036
- i { // icons
1022
+ i { /* icons */
1037
1023
  color: #818182;
1038
1024
  margin-right: 0.15rem;
1039
1025
  font-size: 80%;
@@ -1047,7 +1033,7 @@ $sidebar-display: "sidebar-display";
1047
1033
  -webkit-box-orient: vertical;
1048
1034
  }
1049
1035
  }
1050
- } // #search-results
1036
+ } /* #search-results */
1051
1037
 
1052
1038
  #topbar-title {
1053
1039
  display: none;
@@ -1063,7 +1049,9 @@ $sidebar-display: "sidebar-display";
1063
1049
  white-space: nowrap;
1064
1050
  }
1065
1051
 
1066
- #page {
1052
+ #core-wrapper {
1053
+ min-height: calc(100vh - #{$topbar-height} - #{$footer-height} - #{$bottom-min-height}) !important;
1054
+
1067
1055
  .categories,
1068
1056
  #tags,
1069
1057
  #archives {
@@ -1100,20 +1088,24 @@ $sidebar-display: "sidebar-display";
1100
1088
  @include pl-pr(0);
1101
1089
  }
1102
1090
 
1103
- #main > div.row:first-child > div {
1104
- &:nth-child(1),
1105
- &:nth-child(2) {
1106
- margin-top: $topbar-height; /* same as the height of topbar */
1107
- }
1091
+ #main {
1092
+ .row:first-child {
1093
+ > div {
1094
+ &:nth-child(1),
1095
+ &:nth-child(2) {
1096
+ margin-top: $topbar-height; /* same as the height of topbar */
1097
+ }
1108
1098
 
1109
- &:first-child {
1110
- /* 3rem for topbar, 6rem for footer */
1111
- min-height: calc(100vh - #{$topbar-height} - #{$footer-height} - #{$post-extend-min-height});
1099
+ &:first-child {
1100
+ /* 3rem for topbar, 6rem for footer */
1101
+ min-height: calc(100vh - #{$topbar-height} - #{$footer-height} - #{$bottom-min-height});
1102
+ }
1103
+ }
1112
1104
  }
1113
- }
1114
1105
 
1115
- #post-wrapper {
1116
- min-height: calc(100vh - #{$topbar-height} - #{$footer-height} - #{$post-extend-min-height}) !important;
1106
+ div.row:first-of-type:last-of-type { /* alone */
1107
+ margin-bottom: 4rem;
1108
+ }
1117
1109
  }
1118
1110
 
1119
1111
  #topbar-wrapper.row,
@@ -1164,19 +1156,45 @@ $sidebar-display: "sidebar-display";
1164
1156
 
1165
1157
  @media all and (max-width: 576px) {
1166
1158
 
1167
- $footer-height: $footer-height-mobile; // overwrite
1159
+ $footer-height: $footer-height-mobile; /* overwrite */
1160
+
1161
+ footer {
1162
+ height: $footer-height;
1163
+
1164
+ > div.d-flex {
1165
+ width: 100%;
1166
+ padding: 1.5rem 0;
1167
+ margin-bottom: 0.3rem;
1168
+ flex-wrap: wrap;
1169
+ -ms-flex-pack: distribute !important;
1170
+ justify-content: space-around !important;
1171
+ }
1172
+
1173
+ .footer-left,
1174
+ .footer-right {
1175
+ text-align: center;
1176
+ }
1177
+ }
1168
1178
 
1169
1179
  #main > div.row:first-child > div:first-child {
1170
1180
  min-height: calc(100vh - #{$topbar-height} - #{$footer-height});
1171
1181
  }
1172
1182
 
1173
- #post-wrapper {
1174
- min-height: calc(100vh - #{$topbar-height} - #{$footer-height} - #{$post-extend-min-height}) !important;
1183
+ #core-wrapper {
1184
+ min-height: calc(100vh - #{$topbar-height} - #{$footer-height} - #{$bottom-min-height}) !important;
1175
1185
 
1176
1186
  h1 {
1177
1187
  margin-top: 2.2rem;
1178
- font-size: 1.55rem;
1188
+ font-size: 1.75rem;
1189
+ }
1190
+
1191
+ .post-content {
1192
+ > blockquote[class^=prompt-] {
1193
+ @include ml-mr(-1.25rem);
1194
+ border-radius: 0;
1195
+ }
1179
1196
  }
1197
+
1180
1198
  }
1181
1199
 
1182
1200
  #avatar > a {
@@ -1192,31 +1210,19 @@ $sidebar-display: "sidebar-display";
1192
1210
  padding-bottom: $footer-height;
1193
1211
  }
1194
1212
 
1195
- footer {
1196
- height: $footer-height;
1197
-
1198
- > div.d-flex {
1199
- width: 100%;
1200
- padding: 1.5rem 0;
1201
- margin-bottom: 0.3rem;
1202
- flex-wrap: wrap;
1203
- -ms-flex-pack: distribute !important;
1204
- justify-content: space-around !important;
1205
- }
1206
-
1207
- .footer-left,
1208
- .footer-right {
1209
- text-align: center;
1210
- }
1211
- }
1212
-
1213
1213
  }
1214
1214
 
1215
1215
  /* hide sidebar and panel */
1216
1216
  @media all and (max-width: 849px) {
1217
- %slide {
1218
- -webkit-transition: transform 0.4s ease;
1219
- transition: transform 0.4s ease;
1217
+ @mixin slide($append: null) {
1218
+ $basic: transform 0.4s ease;
1219
+ @if $append {
1220
+ -webkit-transition: $basic, $append;
1221
+ transition: $basic, $append;
1222
+ } @else {
1223
+ -webkit-transition: $basic;
1224
+ transition: $basic;
1225
+ }
1220
1226
  }
1221
1227
 
1222
1228
  html,
@@ -1224,15 +1230,6 @@ $sidebar-display: "sidebar-display";
1224
1230
  overflow-x: hidden;
1225
1231
  }
1226
1232
 
1227
- .footnotes ol > li {
1228
- padding-top: 3.5rem;
1229
- margin-top: -3.2rem;
1230
-
1231
- &:first-child {
1232
- margin-top: -3.5rem;
1233
- }
1234
- }
1235
-
1236
1233
  [#{$sidebar-display}] {
1237
1234
  #sidebar {
1238
1235
  transform: translateX(0);
@@ -1242,13 +1239,12 @@ $sidebar-display: "sidebar-display";
1242
1239
  #main-wrapper {
1243
1240
  transform: translateX(#{$sidebar-width});
1244
1241
  }
1245
-
1246
1242
  }
1247
1243
 
1248
1244
  #sidebar {
1249
- @extend %slide;
1245
+ @include slide;
1250
1246
 
1251
- transform: translateX(-#{$sidebar-width}); // hide
1247
+ transform: translateX(-#{$sidebar-width}); /* hide */
1252
1248
  -webkit-transform: translateX(-#{$sidebar-width});
1253
1249
 
1254
1250
  .cursor {
@@ -1259,7 +1255,7 @@ $sidebar-display: "sidebar-display";
1259
1255
  }
1260
1256
 
1261
1257
  #main-wrapper {
1262
- @extend %slide;
1258
+ @include slide;
1263
1259
 
1264
1260
  padding-top: $topbar-height;
1265
1261
  }
@@ -1274,15 +1270,11 @@ $sidebar-display: "sidebar-display";
1274
1270
  }
1275
1271
 
1276
1272
  #topbar-wrapper {
1277
- @extend %slide;
1273
+ @include slide(top 0.2s ease);
1278
1274
 
1279
1275
  left: 0;
1280
1276
  }
1281
1277
 
1282
- .topbar-up {
1283
- top: 0 !important;
1284
- }
1285
-
1286
1278
  #main > div.row:first-child > div:nth-child(1),
1287
1279
  #main > div.row:first-child > div:nth-child(2) {
1288
1280
  margin-top: 0;
@@ -1298,10 +1290,6 @@ $sidebar-display: "sidebar-display";
1298
1290
  &.loaded ~ a {
1299
1291
  margin-right: 1rem;
1300
1292
  }
1301
-
1302
- .fa-times-circle {
1303
- right: 5.2rem;
1304
- }
1305
1293
  }
1306
1294
 
1307
1295
  #search-input {
@@ -1313,18 +1301,13 @@ $sidebar-display: "sidebar-display";
1313
1301
  letter-spacing: 0;
1314
1302
  }
1315
1303
 
1316
- #search-hints {
1317
- display: block;
1318
- padding: 0 1rem;
1319
- }
1320
-
1321
1304
  #tags {
1322
1305
  -webkit-box-pack: center !important;
1323
1306
  -ms-flex-pack: center !important;
1324
1307
  justify-content: center !important;
1325
1308
  }
1326
1309
 
1327
- #page h1.dynamic-title {
1310
+ h1.dynamic-title {
1328
1311
  display: none;
1329
1312
 
1330
1313
  ~ .post-content {
@@ -1332,7 +1315,13 @@ $sidebar-display: "sidebar-display";
1332
1315
  }
1333
1316
  }
1334
1317
 
1335
- } // max-width: 849px
1318
+ } /* max-width: 849px */
1319
+
1320
+ @media all and (max-width: 849px) and (orientation: portrait) {
1321
+ [data-topbar-visible=false] #topbar-wrapper {
1322
+ top: 0;
1323
+ }
1324
+ }
1336
1325
 
1337
1326
  /* Phone & Pad */
1338
1327
  @media all and (min-width: 577px) and (max-width: 1199px) {
@@ -1361,6 +1350,10 @@ $sidebar-display: "sidebar-display";
1361
1350
  min-width: 150px;
1362
1351
  }
1363
1352
 
1353
+ #search-hints {
1354
+ display: none;
1355
+ }
1356
+
1364
1357
  #search-result-wrapper {
1365
1358
  margin-top: 3rem;
1366
1359
  }
@@ -1375,10 +1368,6 @@ $sidebar-display: "sidebar-display";
1375
1368
  right: 1.2rem;
1376
1369
  }
1377
1370
 
1378
- .topbar-up {
1379
- box-shadow: none !important;
1380
- }
1381
-
1382
1371
  #topbar-title {
1383
1372
  text-align: left;
1384
1373
  }
@@ -1545,10 +1534,6 @@ $sidebar-display: "sidebar-display";
1545
1534
  }
1546
1535
  }
1547
1536
 
1548
- #search-wrapper .fa-times-circle {
1549
- right: 2.6rem;
1550
- }
1551
-
1552
1537
  }
1553
1538
 
1554
1539
  @media all and (min-width: 1400px) and (max-width: 1650px) {
@@ -1635,7 +1620,7 @@ $sidebar-display: "sidebar-display";
1635
1620
  margin-top: 0.3rem;
1636
1621
  }
1637
1622
 
1638
- } // .profile-wrapper (min-width: 1650px)
1623
+ } /* .profile-wrapper (min-width: 1650px) */
1639
1624
 
1640
1625
  ul {
1641
1626
  padding-left: 2.5rem;
@@ -1677,11 +1662,12 @@ $sidebar-display: "sidebar-display";
1677
1662
  }
1678
1663
 
1679
1664
  > span,
1665
+ > button.mode-toggle,
1680
1666
  > a {
1681
1667
  @include ml-mr(0.15rem);
1682
1668
 
1683
1669
  height: $icon-block-size;
1684
- margin-bottom: 0.5rem; // wrap line
1670
+ margin-bottom: 0.5rem; /* wrap line */
1685
1671
  }
1686
1672
 
1687
1673
  i {
@@ -1704,9 +1690,9 @@ $sidebar-display: "sidebar-display";
1704
1690
  top: 0.9rem;
1705
1691
  }
1706
1692
 
1707
- } // .sidebar-bottom
1693
+ } /* .sidebar-bottom */
1708
1694
 
1709
- } // #sidebar
1695
+ } /* #sidebar */
1710
1696
 
1711
1697
  footer > div.d-flex {
1712
1698
  width: 92%;
@@ -1719,7 +1705,7 @@ $sidebar-display: "sidebar-display";
1719
1705
  }
1720
1706
  }
1721
1707
 
1722
- } // min-width: 1650px
1708
+ } /* min-width: 1650px */
1723
1709
 
1724
1710
  @media all and (min-width: 1700px) {
1725
1711
  #topbar-wrapper {