jekyll-theme-abd3lraouf 5.2.6 → 5.2.9

Sign up to get free protection for your applications and to get access to all the features.
Files changed (96) hide show
  1. checksums.yaml +4 -4
  2. data/LICENSE +21 -21
  3. data/README.md +105 -105
  4. data/_data/assets/cross_origin.yml +62 -62
  5. data/_data/assets/self_host.yml +51 -51
  6. data/_data/authors.yml +17 -17
  7. data/_data/contact.yml +30 -30
  8. data/_data/locales/bg-BG.yml +83 -83
  9. data/_data/locales/en.yml +83 -83
  10. data/_data/locales/es-ES.yml +79 -79
  11. data/_data/locales/fr-FR.yml +79 -79
  12. data/_data/locales/hu-HU.yml +81 -81
  13. data/_data/locales/id-ID.yml +79 -79
  14. data/_data/locales/ko-KR.yml +79 -79
  15. data/_data/locales/my-MM.yml +79 -79
  16. data/_data/locales/pt-BR.yml +79 -79
  17. data/_data/locales/ru-RU.yml +79 -79
  18. data/_data/locales/tr-TR.yml +79 -79
  19. data/_data/locales/uk-UA.yml +79 -79
  20. data/_data/locales/vi-VN.yml +77 -77
  21. data/_data/locales/zh-CN.yml +78 -78
  22. data/_data/share.yml +27 -27
  23. data/_includes/assets-origin.html +12 -12
  24. data/_includes/comments/disqus.html +54 -54
  25. data/_includes/comments/giscus.html +56 -56
  26. data/_includes/comments/utterances.html +51 -51
  27. data/_includes/comments.html +5 -5
  28. data/_includes/datetime.html +21 -21
  29. data/_includes/favicons.html +17 -17
  30. data/_includes/footer.html +17 -36
  31. data/_includes/google-analytics.html +14 -14
  32. data/_includes/head.html +116 -116
  33. data/_includes/js-selector.html +104 -104
  34. data/_includes/jsdelivr-combine.html +32 -32
  35. data/_includes/lang.html +8 -8
  36. data/_includes/language-alias.html +70 -70
  37. data/_includes/mermaid.html +57 -57
  38. data/_includes/mode-toggle.html +129 -129
  39. data/_includes/no-linenos.html +10 -10
  40. data/_includes/post-nav.html +30 -30
  41. data/_includes/post-paginator.html +88 -88
  42. data/_includes/post-sharing.html +27 -27
  43. data/_includes/read-time.html +30 -30
  44. data/_includes/refactor-content.html +282 -282
  45. data/_includes/related-posts.html +103 -103
  46. data/_includes/search-loader.html +46 -46
  47. data/_includes/search-results.html +11 -11
  48. data/_includes/sidebar.html +93 -93
  49. data/_includes/toc.html +16 -16
  50. data/_includes/topbar.html +70 -70
  51. data/_includes/trending-tags.html +50 -50
  52. data/_includes/update-list.html +40 -40
  53. data/_layouts/archives.html +48 -48
  54. data/_layouts/categories.html +120 -120
  55. data/_layouts/category.html +24 -24
  56. data/_layouts/compress.html +10 -10
  57. data/_layouts/default.html +74 -74
  58. data/_layouts/home.html +103 -103
  59. data/_layouts/page.html +64 -64
  60. data/_layouts/post.html +159 -159
  61. data/_layouts/tag.html +23 -23
  62. data/_layouts/tags.html +23 -23
  63. data/_plugins/posts-lastmod-hook.rb +14 -14
  64. data/_sass/addon/commons.scss +1694 -1680
  65. data/_sass/addon/module.scss +151 -151
  66. data/_sass/addon/syntax.scss +289 -289
  67. data/_sass/addon/variables.scss +34 -34
  68. data/_sass/colors/dark-syntax.scss +88 -88
  69. data/_sass/colors/dark-typography.scss +157 -157
  70. data/_sass/colors/light-syntax.scss +84 -84
  71. data/_sass/colors/light-typography.scss +94 -94
  72. data/_sass/layout/archives.scss +147 -147
  73. data/_sass/layout/categories.scss +67 -67
  74. data/_sass/layout/category-tag.scss +73 -73
  75. data/_sass/layout/home.scss +184 -184
  76. data/_sass/layout/post.scss +369 -369
  77. data/_sass/layout/tags.scss +19 -19
  78. data/_sass/variables-hook.scss +3 -3
  79. data/_tabs/about.md +8 -8
  80. data/_tabs/archives.md +7 -7
  81. data/_tabs/categories.md +6 -6
  82. data/_tabs/tags.md +6 -6
  83. data/assets/404.html +69 -16
  84. data/assets/css/style.scss +12 -12
  85. data/assets/feed.xml +61 -61
  86. data/assets/img/404.png +0 -0
  87. data/assets/img/favicons/browserconfig.xml +13 -13
  88. data/assets/img/favicons/site.webmanifest +26 -26
  89. data/assets/js/data/search.json +18 -18
  90. data/assets/js/data/swcache.js +55 -55
  91. data/assets/js/pwa/app.js +47 -47
  92. data/assets/js/pwa/sw.js +89 -89
  93. data/assets/js/pwa/unregister.js +12 -12
  94. data/assets/robots.txt +10 -10
  95. data/index.html +4 -4
  96. metadata +8 -7
@@ -1,1680 +1,1694 @@
1
- /*
2
- The common styles
3
- */
4
-
5
- html {
6
- @media (prefers-color-scheme: light) {
7
- &:not([data-mode]),
8
- &[data-mode=light] {
9
- @include light-scheme;
10
- }
11
-
12
- &[data-mode=dark] {
13
- @include dark-scheme;
14
- }
15
- }
16
-
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
- }
26
- }
27
-
28
- font-size: 16px;
29
- }
30
-
31
- body {
32
- line-height: 1.75rem;
33
- background: var(--body-bg);
34
- color: var(--text-color);
35
- -webkit-font-smoothing: antialiased;
36
- font-family: 'Source Sans Pro', 'Microsoft Yahei', sans-serif;
37
- }
38
-
39
- /* --- Typography --- */
40
-
41
- h1 {
42
- @extend %heading;
43
-
44
- font-size: 1.9rem;
45
- }
46
-
47
- h2 {
48
- @extend %heading;
49
- @extend %section;
50
- @extend %anchor;
51
-
52
- font-size: 1.5rem;
53
- }
54
-
55
- h3 {
56
- @extend %heading;
57
- @extend %section;
58
- @extend %anchor;
59
-
60
- font-size: 1.2rem;
61
- }
62
-
63
- h4 {
64
- @extend %heading;
65
- @extend %section;
66
- @extend %anchor;
67
-
68
- font-size: 1.15rem;
69
- }
70
-
71
- h5 {
72
- @extend %heading;
73
- @extend %section;
74
- @extend %anchor;
75
-
76
- font-size: 1.1rem;
77
- }
78
-
79
- ol,
80
- ul {
81
- ol,
82
- ul {
83
- margin-bottom: 1rem;
84
- }
85
- }
86
-
87
- a {
88
- @extend %link-color;
89
- }
90
-
91
- img {
92
- max-width: 100%;
93
- height: auto;
94
- }
95
-
96
- blockquote {
97
- border-left: 5px solid var(--blockquote-border-color);
98
- padding-left: 1rem;
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");
127
- }
128
-
129
- mjx-container {
130
- overflow-x: auto;
131
- overflow-y: hidden;
132
- }
133
-
134
- kbd {
135
- font-family: inherit;
136
- display: inline-block;
137
- vertical-align: middle;
138
- line-height: 1.3rem;
139
- min-width: 1.75rem;
140
- text-align: center;
141
- margin: 0 0.3rem;
142
- padding-top: 0.1rem;
143
- color: var(--kbd-text-color);
144
- background-color: var(--kbd-bg-color);
145
- border-radius: 0.25rem;
146
- border: solid 1px var(--kbd-wrap-color);
147
- box-shadow: inset 0 -2px 0 var(--kbd-wrap-color);
148
- }
149
-
150
- footer {
151
- @include pl-pr(1.5rem);
152
-
153
- font-size: 0.8rem;
154
-
155
- > div.d-flex {
156
- height: $footer-height;
157
- line-height: 1.2rem;
158
- padding-bottom: 1rem;
159
- border-top: 1px solid var(--main-border-color);
160
-
161
- > div {
162
- width: 350px;
163
- }
164
- }
165
-
166
- a {
167
- @extend %text-color;
168
-
169
- &:link {
170
- @include no-text-decoration;
171
- }
172
-
173
- &:hover {
174
- @extend %link-hover;
175
-
176
- @include no-text-decoration;
177
- }
178
- }
179
-
180
- .footer-right {
181
- text-align: right;
182
- }
183
- }
184
-
185
- i { /* fontawesome icons */
186
- &.far,
187
- &.fas {
188
- @extend %no-cursor;
189
- }
190
- }
191
-
192
- @keyframes fade-in {
193
- from { opacity: 0; }
194
- to { opacity: 1; }
195
- }
196
-
197
- img[data-src] {
198
- margin: 0.5rem 0;
199
-
200
- &[data-loaded=true] {
201
- animation: fade-in linear 0.5s;
202
- }
203
-
204
- &.left {
205
- float: left;
206
- margin: 0.75rem 1rem 1rem 0;
207
- }
208
-
209
- &.right {
210
- float: right;
211
- margin: 0.75rem 0 1rem 1rem;
212
- }
213
-
214
- &.shadow {
215
- filter: drop-shadow(2px 4px 6px rgba(0, 0, 0, 0.08));
216
- box-shadow: none !important; /* cover the Bootstrap 4.6.1 styles */
217
- }
218
-
219
- @extend %img-caption;
220
- }
221
-
222
- /* --- Panels --- */
223
-
224
- .access {
225
- top: 2rem;
226
- transition: top 0.2s ease-in-out;
227
- margin-top: 3rem;
228
- margin-bottom: 4rem;
229
-
230
- &:only-child {
231
- position: -webkit-sticky; /* Safari */
232
- position: sticky;
233
- }
234
-
235
- > div {
236
- padding-left: 1rem;
237
- border-left: 1px solid var(--main-border-color);
238
-
239
- &:not(:last-child) {
240
- margin-bottom: 4rem;
241
- }
242
- }
243
-
244
- .post-content {
245
- font-size: 0.9rem;
246
- }
247
-
248
- }
249
-
250
- #panel-wrapper {
251
- /* the headings */
252
- .panel-heading {
253
- @include label(inherit);
254
- }
255
-
256
- .post-tag {
257
- display: inline-block;
258
- line-height: 1rem;
259
- font-size: 0.85rem;
260
- background: none;
261
- border: 1px solid var(--btn-border-color);
262
- border-radius: 0.8rem;
263
- padding: 0.3rem 0.5rem;
264
- margin: 0 0.35rem 0.5rem 0;
265
-
266
- &:hover {
267
- background-color: #2a408e;
268
- border-color: #2a408e;
269
- color: #fff;
270
- transition: none;
271
- }
272
- }
273
-
274
- [data-topbar-visible=true] & > div {
275
- top: 6rem;
276
- }
277
- }
278
-
279
- #access-lastmod {
280
- li {
281
- height: 1.8rem;
282
- overflow: hidden;
283
- text-overflow: ellipsis;
284
- display: -webkit-box;
285
- -webkit-line-clamp: 1;
286
- -webkit-box-orient: vertical;
287
- list-style: none;
288
- }
289
-
290
- a {
291
- &:hover {
292
- @extend %link-hover;
293
- }
294
-
295
- @extend %no-bottom-border;
296
-
297
- color: inherit;
298
- }
299
-
300
- }
301
-
302
- .footnotes > ol {
303
- padding-left: 2rem;
304
- margin-top: 0.5rem;
305
-
306
- > li {
307
- &:not(:last-child) {
308
- margin-bottom: 0.3rem;
309
- }
310
-
311
- > p {
312
- margin-left: 0.25em;
313
- margin-top: 0;
314
- margin-bottom: 0;
315
- }
316
-
317
- /* [scroll-focus] added by `smooth-scroll.js` */
318
- &:target:not([scroll-focus]),
319
- &[scroll-focus=true] > p {
320
- background-color: var(--footnote-target-bg);
321
- width: fit-content;
322
- -webkit-transition: background-color 1.5s ease-in-out; /* Safari prior 6.1 */
323
- transition: background-color 1.5s ease-in-out;
324
- }
325
- }
326
- }
327
-
328
- .footnote {
329
- @at-root a#{&} {
330
- @include ml-mr(1px);
331
- @include pl-pr(2px);
332
-
333
- border-bottom-style: none !important;
334
- -webkit-transition: background-color 1.5s ease-in-out; /* Safari prior 6.1 */
335
- transition: background-color 1.5s ease-in-out;
336
- }
337
-
338
- /* [scroll-focus] added by `smooth-scroll.js` */
339
- @at-root sup:target:not([scroll-focus]),
340
- sup[scroll-focus=true] > a#{&} {
341
- background-color: var(--footnote-target-bg);
342
- }
343
- }
344
-
345
- .reversefootnote {
346
- @at-root a#{&} {
347
- font-size: 0.6rem;
348
- line-height: 1;
349
- position: relative;
350
- bottom: 0.25em;
351
- margin-left: 0.25em;
352
- border-bottom-style: none !important;
353
- }
354
- }
355
-
356
- /* --- Begin of Markdown table style --- */
357
-
358
- /* it will be created by Liquid */
359
- .table-wrapper {
360
- overflow-x: auto;
361
- margin-bottom: 1.5rem;
362
-
363
- > table {
364
- min-width: 100%;
365
- overflow-x: auto;
366
- border-spacing: 0;
367
-
368
- thead {
369
- border-bottom: solid 2px rgba(210, 215, 217, 0.75);
370
-
371
- th {
372
- @extend %table-cell;
373
- }
374
- }
375
-
376
- tbody {
377
- tr {
378
- border-bottom: 1px solid var(--tb-border-color);
379
-
380
- &:nth-child(2n) {
381
- background-color: var(--tb-even-bg);
382
- }
383
-
384
- &:nth-child(2n + 1) {
385
- background-color: var(--tb-odd-bg);
386
- }
387
-
388
- td {
389
- @extend %table-cell;
390
- }
391
- }
392
- } /* tbody */
393
- }/* table */
394
- }
395
-
396
- /* --- post --- */
397
-
398
- .post {
399
- h1 {
400
- margin-top: 3rem;
401
- margin-bottom: 1.5rem;
402
- }
403
-
404
- a {
405
- &.img-link {
406
- @extend %no-cursor;
407
- }
408
-
409
- /* created by `_includes/img-extra.html` */
410
- &.popup {
411
- cursor: zoom-in;
412
-
413
- > img[data-src]:not(.normal):not(.left):not(.right) {
414
- @include align-center;
415
- }
416
- }
417
-
418
- &:hover {
419
- code {
420
- @extend %link-hover;
421
- }
422
- }
423
- } /* a */
424
-
425
- }
426
-
427
- .pageviews .fa-spinner {
428
- font-size: 80%;
429
- }
430
-
431
- .post-meta {
432
- font-size: 0.85rem;
433
- word-spacing: 1px;
434
-
435
- a {
436
- &:not(:last-child) {
437
- margin-right: 2px;
438
- }
439
-
440
- &:not([class]):hover {
441
- @extend %link-hover;
442
- }
443
- }
444
-
445
- em {
446
- @extend %normal-font-style;
447
- }
448
- }
449
-
450
- .post-content {
451
- font-size: 1.08rem;
452
- line-height: 1.8;
453
- margin-top: 2rem;
454
- overflow-wrap: break-word;
455
- word-wrap: break-word;
456
-
457
- a {
458
- &:not(.img-link) {
459
- @extend %link-underline;
460
-
461
- &:hover {
462
- @extend %link-hover;
463
- }
464
- }
465
-
466
- &.img-link {
467
- @extend %img-caption;
468
- }
469
-
470
- }
471
-
472
- ul {
473
- /* attribute 'hide-bullet' was added by liquid */
474
- .task-list-item[hide-bullet] {
475
- list-style-type: none;
476
-
477
- > i { /* checkbox icon */
478
- margin: 0 0.4rem 0.2rem -1.4rem;
479
- vertical-align: middle;
480
- color: var(--checkbox-color);
481
-
482
- &.checked {
483
- color: var(--checkbox-checked-color);
484
- }
485
- }
486
-
487
- }
488
-
489
- input[type=checkbox] {
490
- margin: 0 0.5rem 0.2rem -1.3rem;
491
- vertical-align: middle;
492
- }
493
-
494
- } /* ul */
495
-
496
- > ol,
497
- > ul {
498
- padding-left: 2rem;
499
-
500
- li {
501
- ol,
502
- ul { /* sub list */
503
- padding-left: 2rem;
504
- margin-top: 0.3rem;
505
- }
506
- }
507
-
508
- }
509
-
510
- > ol {
511
- li {
512
- padding-left: 0.25em;
513
- }
514
- }
515
-
516
- dl > dd {
517
- margin-left: 1rem;
518
- }
519
-
520
- } /* .post-content */
521
-
522
- .tag:hover {
523
- @extend %tag-hover;
524
- }
525
-
526
- .post-tag {
527
- display: inline-block;
528
- min-width: 2rem;
529
- text-align: center;
530
- background: var(--tag-bg);
531
- border-radius: 0.3rem;
532
- padding: 0 0.4rem;
533
- color: inherit;
534
- line-height: 1.3rem;
535
-
536
- &:not(:last-child) {
537
- margin-right: 0.2rem;
538
- }
539
-
540
- &:hover {
541
- @extend %tag-hover;
542
-
543
- border-bottom: none;
544
- text-decoration: none;
545
- color: #d2603a;
546
- }
547
- }
548
-
549
- /* --- buttons --- */
550
- .btn-lang {
551
- border: 1px solid !important;
552
- padding: 1px 3px;
553
- border-radius: 3px;
554
- color: var(--link-color);
555
-
556
- &:focus {
557
- box-shadow: none;
558
- }
559
- }
560
-
561
- /* --- Effects classes --- */
562
-
563
- .loaded {
564
- display: block !important;
565
-
566
- @at-root .d-flex#{&} {
567
- display: flex !important;
568
- }
569
- }
570
-
571
- .unloaded {
572
- display: none !important;
573
- }
574
-
575
- .visible {
576
- visibility: visible !important;
577
- }
578
-
579
- .hidden {
580
- visibility: hidden !important;
581
- }
582
-
583
- .flex-grow-1 {
584
- -ms-flex-positive: 1 !important;
585
- flex-grow: 1 !important;
586
- }
587
-
588
- .btn-box-shadow {
589
- box-shadow: 0 0 8px 0 var(--btn-box-shadow) !important;
590
- }
591
-
592
- .no-text-decoration {
593
- @include no-text-decoration;
594
- }
595
-
596
- .tooltip-inner { /* Overrided BS4 Tooltip */
597
- font-size: 0.7rem;
598
- max-width: 220px;
599
- text-align: left;
600
- }
601
-
602
- .disabled {
603
- color: rgb(206, 196, 196);
604
- pointer-events: auto;
605
- cursor: not-allowed;
606
- }
607
-
608
- .hide-border-bottom {
609
- border-bottom: none !important;
610
- }
611
-
612
- .input-focus {
613
- box-shadow: none;
614
- border-color: var(--input-focus-border-color) !important;
615
- background: center !important;
616
- transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out;
617
- }
618
-
619
- /* --- Overriding --- */
620
-
621
- /* magnific-popup */
622
- figure .mfp-title {
623
- text-align: center;
624
- padding-right: 0;
625
- margin-top: 0.5rem;
626
- }
627
-
628
- /* mermaid */
629
- .mermaid {
630
- text-align: center;
631
- }
632
-
633
- /* --- sidebar layout --- */
634
-
635
- $sidebar-display: "sidebar-display";
636
-
637
- #sidebar {
638
- @include pl-pr(0);
639
-
640
- position: fixed;
641
- top: 0;
642
- left: 0;
643
- height: 100%;
644
- overflow-y: auto;
645
- width: $sidebar-width;
646
- z-index: 99;
647
- background: var(--sidebar-bg);
648
-
649
- /* Hide scrollbar for Chrome, Safari and Opera */
650
- &::-webkit-scrollbar {
651
- display: none;
652
- }
653
-
654
- /* Hide scrollbar for IE, Edge and Firefox */
655
- -ms-overflow-style: none; /* IE and Edge */
656
- scrollbar-width: none; /* Firefox */
657
-
658
- a {
659
- @extend %sidebar-links;
660
-
661
- &:hover {
662
- @include no-text-decoration;
663
-
664
- color: var(--sidebar-active-color) !important;
665
- }
666
- }
667
-
668
- #avatar {
669
- > a {
670
- display: block;
671
- width: 6rem;
672
- height: 6rem;
673
- border-radius: 50%;
674
- border: 2px solid rgba(222, 222, 222, 0.7);
675
- overflow: hidden;
676
- transform: translateZ(0); /* fixed the zoom in Safari */
677
- -webkit-transition: border-color 0.35s ease-in-out;
678
- -moz-transition: border-color 0.35s ease-in-out;
679
- transition: border-color 0.35s ease-in-out;
680
-
681
- &:hover {
682
- border-color: white;
683
- }
684
- }
685
-
686
- img {
687
- width: 100%;
688
- height: 100%;
689
- -webkit-transition: transform 0.5s;
690
- -moz-transition: transform 0.5s;
691
- transition: transform 0.5s;
692
-
693
- &:hover {
694
- -ms-transform: scale(1.2);
695
- -moz-transform: scale(1.2);
696
- -webkit-transform: scale(1.2);
697
- transform: scale(1.2);
698
- }
699
- }
700
- } /* #avatar */
701
-
702
- .site-title {
703
- a {
704
- @extend %clickable-transition;
705
-
706
- font-weight: 900;
707
- font-size: 1.5rem;
708
- letter-spacing: 0.5px;
709
- color: rgba(134, 133, 133, 99%);
710
- }
711
- }
712
-
713
- .site-subtitle {
714
- font-size: 95%;
715
- color: var(--sidebar-muted-color);
716
- line-height: 1.2rem;
717
- word-spacing: 1px;
718
- margin: 0.5rem 1.5rem 0.5rem 1.5rem;
719
- min-height: 3rem; /* avoid vertical shifting in multi-line words */
720
- user-select: none;
721
- }
722
-
723
- .nav-link {
724
- border-radius: 0;
725
- font-size: 0.95rem;
726
- font-weight: 600;
727
- letter-spacing: 1px;
728
- display: table-cell;
729
- vertical-align: middle;
730
- }
731
-
732
- .nav-item {
733
- text-align: center;
734
- display: table;
735
- height: $tab-height;
736
-
737
- &.active {
738
- .nav-link {
739
- color: var(--sidebar-active-color);
740
- }
741
- }
742
-
743
- &:not(.active) > a {
744
- @extend %clickable-transition;
745
- }
746
- }
747
-
748
- ul {
749
- height: $tab-height * $tab-count;
750
- margin-bottom: 2rem;
751
- padding-left: 0;
752
-
753
- li {
754
- width: 100%;
755
-
756
- &:last-child {
757
- a {
758
- position: relative;
759
- left: $cursor-width / 2;
760
- width: 100%;
761
- }
762
-
763
- &::after { /* the cursor */
764
- display: table;
765
- visibility: hidden;
766
- content: "";
767
- position: relative;
768
- right: 1px;
769
- width: $cursor-width;
770
- height: $tab-cursor-height;
771
- border-radius: 1px;
772
- background-color: var(--nav-cursor-color);
773
- pointer-events: none;
774
- }
775
- }
776
- } /* li */
777
-
778
- @mixin fix-cursor($top) {
779
- top: $top;
780
- visibility: visible;
781
- }
782
-
783
- @for $i from 1 through $tab-count {
784
- $offset: $tab-count - $i;
785
- $top: -$offset * $tab-height + ($tab-height - $tab-cursor-height) / 2;
786
-
787
- @if $i < $tab-count {
788
- > li.active:nth-child(#{$i}),
789
- > li.nav-item:nth-child(#{$i}):hover {
790
- ~ li:last-child::after {
791
- @include fix-cursor($top);
792
- }
793
- }
794
- } @else {
795
- > li.active:nth-child(#{$i}):last-child::after,
796
- > li.nav-item:nth-child(#{$i}):last-child:hover::after {
797
- @include fix-cursor($top);
798
- }
799
- }
800
-
801
- } /* @for */
802
-
803
- } /* ul */
804
-
805
- .sidebar-bottom {
806
- margin-bottom: 2.1rem;
807
-
808
- @include ml-mr(auto);
809
- @include pl-pr(1rem);
810
-
811
- %icon {
812
- width: 2.4rem;
813
- text-align: center;
814
- }
815
-
816
- a {
817
- @extend %icon;
818
- @extend %clickable-transition;
819
- }
820
-
821
- i {
822
- font-size: 1.2rem;
823
- line-height: 1.75rem;
824
- }
825
-
826
- .mode-toggle {
827
- padding: 0;
828
- border: 0;
829
- margin-bottom: 1px;
830
- background-color: transparent;
831
-
832
- @extend %icon;
833
- @extend %sidebar-links;
834
-
835
- > i {
836
- @extend %clickable-transition;
837
- }
838
-
839
- &:hover > i {
840
- color: var(--sidebar-active-color);
841
- }
842
- }
843
-
844
- .icon-border {
845
- @extend %no-cursor;
846
-
847
- background-color: var(--sidebar-muted-color);
848
- content: "";
849
- width: 3px;
850
- height: 3px;
851
- border-radius: 50%;
852
- }
853
-
854
- } /* .sidebar-bottom */
855
-
856
- } /* #sidebar */
857
-
858
- @media (hover: hover) {
859
- #sidebar ul > li:last-child::after {
860
- -webkit-transition: top 0.5s ease;
861
- -moz-transition: top 0.5s ease;
862
- -o-transition: top 0.5s ease;
863
- transition: top 0.5s ease;
864
- }
865
- }
866
-
867
- .profile-wrapper {
868
- margin-top: 2rem;
869
- width: 100%;
870
- }
871
-
872
- #search-result-wrapper {
873
- display: none;
874
- height: 100%;
875
- width: 100%;
876
- overflow: auto;
877
-
878
- .post-content {
879
- margin-top: 2rem;
880
- }
881
- }
882
-
883
- /* --- top-bar --- */
884
-
885
- #topbar-wrapper {
886
- height: $topbar-height;
887
- position: fixed;
888
- top: 0;
889
- left: $sidebar-width; /* same as sidebar width */
890
- right: 0;
891
- transition: top 0.2s ease-in-out;
892
- z-index: 50;
893
- border-bottom: 1px solid rgba(0, 0, 0, 0.07);
894
- background-color: var(--topbar-wrapper-bg);
895
-
896
- [data-topbar-visible=false] & {
897
- top: -$topbar-height; /* same as topbar height. */
898
- }
899
- }
900
-
901
- #topbar {
902
- i { /* icons */
903
- color: #999;
904
- }
905
-
906
- #breadcrumb {
907
- font-size: 1rem;
908
- color: gray;
909
- padding-left: 0.5rem;
910
-
911
- a:hover {
912
- @extend %link-hover;
913
- }
914
-
915
- span {
916
- &:not(:last-child) {
917
- &::after {
918
- content: "›";
919
- padding: 0 0.3rem;
920
- }
921
- }
922
- }
923
- }
924
- } /* #topbar */
925
-
926
- #sidebar-trigger,
927
- #search-trigger {
928
- display: none;
929
- }
930
-
931
- #search-wrapper {
932
- display: flex;
933
- width: 100%;
934
- border-radius: 1rem;
935
- border: 1px solid var(--search-wrapper-border-color);
936
- background: var(--search-wrapper-bg);
937
- padding: 0 0.5rem;
938
-
939
- i {
940
- z-index: 2;
941
- font-size: 0.9rem;
942
- color: var(--search-icon-color);
943
- }
944
- }
945
-
946
- #search-cancel { /* 'Cancel' link */
947
- color: var(--link-color);
948
- margin-left: 1rem;
949
- display: none;
950
-
951
- @extend %cursor-pointer;
952
- }
953
-
954
- #search-input {
955
- background: center;
956
- border: 0;
957
- border-radius: 0;
958
- padding: 0.18rem 0.3rem;
959
- color: var(--text-color);
960
- height: auto;
961
-
962
- &:focus {
963
- box-shadow: none;
964
- background: center;
965
-
966
- &.form-control {
967
- &::-webkit-input-placeholder { @include input-placeholder; }
968
- &::-moz-placeholder { @include input-placeholder; }
969
- &:-ms-input-placeholder { @include input-placeholder; }
970
- &::placeholder { @include input-placeholder; }
971
- }
972
- }
973
- }
974
-
975
- #search-hints {
976
- padding: 0 1rem;
977
-
978
- h4 {
979
- margin-bottom: 1.5rem;
980
- }
981
-
982
- .post-tag {
983
- display: inline-block;
984
- line-height: 1rem;
985
- font-size: 1rem;
986
- background: var(--search-tag-bg);
987
- border: none;
988
- padding: 0.5rem;
989
- margin: 0 1.25rem 1rem 0;
990
-
991
- &::before {
992
- content: "#";
993
- color: var(--text-muted-color);
994
- padding-right: 0.2rem;
995
- }
996
-
997
- @extend %link-color;
998
- }
999
- }
1000
-
1001
- #search-results {
1002
- padding-bottom: 3rem;
1003
-
1004
- a {
1005
- &:hover {
1006
- @extend %link-hover;
1007
- }
1008
-
1009
- @extend %link-color;
1010
- @extend %no-bottom-border;
1011
- @extend %heading;
1012
-
1013
- font-size: 1.4rem;
1014
- line-height: 2.5rem;
1015
- }
1016
-
1017
- > div {
1018
- width: 100%;
1019
-
1020
- &:not(:last-child) {
1021
- margin-bottom: 1rem;
1022
- }
1023
-
1024
- i { /* icons */
1025
- color: #818182;
1026
- margin-right: 0.15rem;
1027
- font-size: 80%;
1028
- }
1029
-
1030
- > p {
1031
- overflow: hidden;
1032
- text-overflow: ellipsis;
1033
- display: -webkit-box;
1034
- -webkit-line-clamp: 3;
1035
- -webkit-box-orient: vertical;
1036
- }
1037
- }
1038
- } /* #search-results */
1039
-
1040
- #topbar-title {
1041
- display: none;
1042
- font-size: 1.1rem;
1043
- font-weight: 600;
1044
- font-family: sans-serif;
1045
- color: var(--topbar-text-color);
1046
- text-align: center;
1047
- width: 70%;
1048
- overflow: hidden;
1049
- text-overflow: ellipsis;
1050
- word-break: keep-all;
1051
- white-space: nowrap;
1052
- }
1053
-
1054
- #core-wrapper {
1055
- min-height: calc(100vh - #{$topbar-height} - #{$footer-height});
1056
-
1057
- .categories,
1058
- #tags,
1059
- #archives {
1060
- a:not(:hover) {
1061
- @extend %no-bottom-border;
1062
- }
1063
- }
1064
- }
1065
-
1066
- #mask {
1067
- display: none;
1068
- position: fixed;
1069
- top: 0;
1070
- right: 0;
1071
- bottom: 0;
1072
- left: 0;
1073
- height: 100%;
1074
- width: 100%;
1075
- z-index: 1;
1076
-
1077
- @at-root [#{$sidebar-display}] & {
1078
- display: block !important;
1079
- }
1080
- }
1081
-
1082
- /* --- main wrapper --- */
1083
-
1084
- #main-wrapper {
1085
- background-color: var(--main-wrapper-bg);
1086
- position: relative;
1087
- min-height: 100vh;
1088
-
1089
- @include pl-pr(0);
1090
- }
1091
-
1092
- #core-wrapper,
1093
- #panel-wrapper {
1094
- margin-top: $topbar-height; /* same as the height of topbar */
1095
- }
1096
-
1097
- #topbar-wrapper.row,
1098
- #main > .row,
1099
- #search-result-wrapper > .row {
1100
- @include ml-mr(0);
1101
- }
1102
-
1103
- /* --- button back-to-top --- */
1104
-
1105
- #back-to-top {
1106
- $size: 2.7em;
1107
-
1108
- display: none;
1109
- z-index: 1;
1110
- cursor: pointer;
1111
- position: fixed;
1112
- background: var(--button-bg);
1113
- color: var(--btn-backtotop-color);
1114
- padding: 0;
1115
- width: $size;
1116
- height: $size;
1117
- border-radius: 50%;
1118
- border: 1px solid var(--btn-backtotop-border-color);
1119
- transition: transform 0.2s ease-out;
1120
- -webkit-transition: transform 0.2s ease-out;
1121
-
1122
- i {
1123
- line-height: $size;
1124
- position: relative;
1125
- bottom: 2px;
1126
- }
1127
- }
1128
-
1129
- #back-to-top:hover {
1130
- transform: translate3d(0, -5px, 0);
1131
- -webkit-transform: translate3d(0, -5px, 0);
1132
- }
1133
-
1134
- #notification {
1135
- @keyframes popup {
1136
- from {
1137
- opacity: 0;
1138
- bottom: 0;
1139
- }
1140
- }
1141
-
1142
- .toast-header {
1143
- background: none;
1144
- border-bottom: none;
1145
- color: inherit;
1146
- }
1147
-
1148
- .toast-body {
1149
- font-family: 'Lato';
1150
- line-height: 1.25rem;
1151
-
1152
- button {
1153
- font-size: 90%;
1154
- min-width: 4rem;
1155
- }
1156
- }
1157
-
1158
- &.toast {
1159
- display: none;
1160
-
1161
- &.show {
1162
- display: block;
1163
- min-width: 20rem;
1164
- border-radius: 0.5rem;
1165
- -webkit-backdrop-filter: blur(10px);
1166
- backdrop-filter: blur(10px);
1167
- background-color: rgba(255, 255, 255, 0.5);
1168
- color: #1b1b1eba;
1169
- position: fixed;
1170
- left: 50%;
1171
- bottom: 20%;
1172
- transform: translateX(-50%);
1173
- animation: popup 0.8s;
1174
- }
1175
- }
1176
-
1177
- }
1178
-
1179
- /*
1180
- Responsive Design:
1181
-
1182
- {sidebar, content, panel} >= 1120px screen width
1183
- {sidebar, content} >= 850px screen width
1184
- {content} <= 849px screen width
1185
-
1186
- */
1187
-
1188
- @media all and (max-width: 576px) {
1189
- footer {
1190
- height: $footer-height-mobile;
1191
-
1192
- > div.d-flex {
1193
- padding: 1.5rem 0;
1194
- flex-wrap: wrap;
1195
- -ms-flex-pack: distribute !important;
1196
- justify-content: space-around !important;
1197
- }
1198
-
1199
- .footer-left,
1200
- .footer-right {
1201
- text-align: center;
1202
- }
1203
- }
1204
-
1205
- #core-wrapper {
1206
- min-height: calc(100vh - #{$topbar-height} - #{$footer-height-mobile}) !important;
1207
-
1208
- h1 {
1209
- margin-top: 2.2rem;
1210
- font-size: 1.75rem;
1211
- }
1212
-
1213
- .post-content {
1214
- > blockquote[class^=prompt-] {
1215
- @include ml-mr(-1.25rem);
1216
- border-radius: 0;
1217
- }
1218
- }
1219
-
1220
- }
1221
-
1222
- #avatar > a {
1223
- width: 5rem;
1224
- height: 5rem;
1225
- }
1226
-
1227
- .site-subtitle {
1228
- @include ml-mr(1.8rem);
1229
- }
1230
-
1231
- }
1232
-
1233
- @media all and (max-width: 768px) {
1234
- %full-width {
1235
- max-width: 100%;
1236
- }
1237
-
1238
- #topbar {
1239
- @extend %full-width;
1240
- }
1241
-
1242
- #main {
1243
- @extend %full-width;
1244
- @include pl-pr(0);
1245
- }
1246
- }
1247
-
1248
- /* hide sidebar and panel */
1249
- @media all and (max-width: 849px) {
1250
- @mixin slide($append: null) {
1251
- $basic: transform 0.4s ease;
1252
- @if $append {
1253
- -webkit-transition: $basic, $append;
1254
- transition: $basic, $append;
1255
- } @else {
1256
- -webkit-transition: $basic;
1257
- transition: $basic;
1258
- }
1259
- }
1260
-
1261
- html,
1262
- body {
1263
- overflow-x: hidden;
1264
- }
1265
-
1266
- [#{$sidebar-display}] {
1267
- #sidebar {
1268
- transform: translateX(0);
1269
- }
1270
-
1271
- #topbar-wrapper,
1272
- #main-wrapper {
1273
- transform: translateX(#{$sidebar-width});
1274
- }
1275
- }
1276
-
1277
- #sidebar {
1278
- @include slide;
1279
-
1280
- transform: translateX(-#{$sidebar-width}); /* hide */
1281
- -webkit-transform: translateX(-#{$sidebar-width});
1282
-
1283
- .cursor {
1284
- -webkit-transition: none;
1285
- -moz-transition: none;
1286
- transition: none;
1287
- }
1288
- }
1289
-
1290
- #main-wrapper {
1291
- @include slide;
1292
-
1293
- padding-top: $topbar-height;
1294
- }
1295
-
1296
- #topbar,
1297
- #main {
1298
- max-width: 100%;
1299
- }
1300
-
1301
- #search-result-wrapper {
1302
- width: 100%;
1303
- }
1304
-
1305
- #breadcrumb,
1306
- #search-wrapper {
1307
- display: none;
1308
- }
1309
-
1310
- #topbar-wrapper {
1311
- @include slide(top 0.2s ease);
1312
-
1313
- left: 0;
1314
- }
1315
-
1316
- #core-wrapper,
1317
- #panel-wrapper {
1318
- margin-top: 0;
1319
- }
1320
-
1321
- #topbar-title,
1322
- #sidebar-trigger,
1323
- #search-trigger {
1324
- display: block;
1325
- }
1326
-
1327
- #search-result-wrapper .post-content {
1328
- letter-spacing: 0;
1329
- }
1330
-
1331
- #tags {
1332
- -webkit-box-pack: center !important;
1333
- -ms-flex-pack: center !important;
1334
- justify-content: center !important;
1335
- }
1336
-
1337
- h1.dynamic-title {
1338
- display: none;
1339
-
1340
- ~ .post-content {
1341
- margin-top: 3rem;
1342
- }
1343
- }
1344
-
1345
- } /* max-width: 849px */
1346
-
1347
- @media all and (max-width: 849px) and (orientation: portrait) {
1348
- [data-topbar-visible=false] #topbar-wrapper {
1349
- top: 0;
1350
- }
1351
- }
1352
-
1353
- /* Phone & Pad */
1354
- @media all and (min-width: 577px) and (max-width: 1199px) {
1355
- footer > .d-flex > div {
1356
- width: 312px;
1357
- }
1358
- }
1359
-
1360
- /* Sidebar is visible */
1361
- @media all and (min-width: 850px) {
1362
- /* Solved jumping scrollbar */
1363
- html {
1364
- overflow-y: scroll;
1365
- }
1366
-
1367
- #main-wrapper {
1368
- margin-left: $sidebar-width;
1369
- }
1370
-
1371
- .profile-wrapper {
1372
- margin-top: 3rem;
1373
- }
1374
-
1375
- #search-hints {
1376
- display: none;
1377
- }
1378
-
1379
- #search-wrapper {
1380
- max-width: $search-max-width;
1381
- }
1382
-
1383
- #search-result-wrapper {
1384
- margin-top: 3rem;
1385
- max-width: $main-content-max-width;
1386
- }
1387
-
1388
- div.post-content .table-wrapper > table {
1389
- min-width: 70%;
1390
- }
1391
-
1392
- /* button 'back-to-Top' position */
1393
- #back-to-top {
1394
- bottom: 5.5rem;
1395
- right: 5%;
1396
- }
1397
-
1398
- #topbar {
1399
- @include pl-pr(2rem);
1400
- }
1401
-
1402
- #topbar-title {
1403
- text-align: left;
1404
- }
1405
-
1406
- }
1407
-
1408
- /* Pad horizontal */
1409
- @media all and (min-width: 992px) and (max-width: 1199px) {
1410
- #main .col-lg-11 {
1411
- -webkit-box-flex: 0;
1412
- -ms-flex: 0 0 96%;
1413
- flex: 0 0 96%;
1414
- max-width: 96%;
1415
- }
1416
- }
1417
-
1418
- /* Compact icons in sidebar & panel hidden */
1419
- @media all and (min-width: 850px) and (max-width: 1199px) {
1420
- #sidebar {
1421
- width: $sidebar-width-small;
1422
-
1423
- .site-subtitle {
1424
- margin-left: 1rem;
1425
- margin-right: 1rem;
1426
- }
1427
-
1428
- .sidebar-bottom {
1429
- a,
1430
- span {
1431
- width: 2rem;
1432
- }
1433
-
1434
- .icon-border {
1435
- left: -3px;
1436
- }
1437
- }
1438
- }
1439
-
1440
- #topbar-wrapper {
1441
- left: 210px;
1442
- }
1443
-
1444
- #search-results > div {
1445
- max-width: 700px;
1446
- }
1447
-
1448
- .site-title {
1449
- font-size: 1.3rem;
1450
- margin-left: 0 !important;
1451
- }
1452
-
1453
- .site-subtitle {
1454
- @include ml-mr(1rem);
1455
-
1456
- font-size: 90%;
1457
- }
1458
-
1459
- #main-wrapper {
1460
- margin-left: 210px;
1461
- }
1462
-
1463
- #breadcrumb {
1464
- width: 65%;
1465
- overflow: hidden;
1466
- text-overflow: ellipsis;
1467
- word-break: keep-all;
1468
- white-space: nowrap;
1469
- }
1470
-
1471
- }
1472
-
1473
- /* panel hidden */
1474
- @media all and (max-width: 1199px) {
1475
- #panel-wrapper {
1476
- display: none;
1477
- }
1478
-
1479
- #main > div.row {
1480
- -webkit-box-pack: center !important;
1481
- -ms-flex-pack: center !important;
1482
- justify-content: center !important;
1483
- }
1484
- }
1485
-
1486
- /* --- desktop mode, both sidebar and panel are visible --- */
1487
-
1488
- @media all and (min-width: 1200px) {
1489
- #back-to-top {
1490
- bottom: 6.5rem;
1491
- }
1492
-
1493
- #search-wrapper {
1494
- margin-right: 4rem;
1495
- }
1496
-
1497
- #search-input {
1498
- -webkit-transition: all 0.3s ease-in-out;
1499
- transition: all 0.3s ease-in-out;
1500
- }
1501
-
1502
- #search-results > div {
1503
- width: 46%;
1504
-
1505
- &:nth-child(odd) {
1506
- margin-right: 1.5rem;
1507
- }
1508
-
1509
- &:nth-child(even) {
1510
- margin-left: 1.5rem;
1511
- }
1512
-
1513
- &:last-child:nth-child(odd) {
1514
- position: relative;
1515
- right: 24.3%;
1516
- }
1517
- }
1518
-
1519
- .post-content {
1520
- font-size: 1.03rem;
1521
- }
1522
-
1523
- footer > div.d-felx {
1524
- width: 85%;
1525
- }
1526
-
1527
- }
1528
-
1529
- @media all and (min-width: 1400px) {
1530
- #back-to-top {
1531
- right: calc((100vw - #{$sidebar-width} - 1140px) / 2 + 3rem);
1532
- }
1533
- }
1534
-
1535
- @media all and (min-width: 1650px) {
1536
- #main-wrapper {
1537
- margin-left: $sidebar-width-large;
1538
- }
1539
-
1540
- #topbar-wrapper {
1541
- left: $sidebar-width-large;
1542
- }
1543
-
1544
- #search-wrapper {
1545
- margin-right: calc(#{$main-content-max-width} * 0.25 - #{$search-max-width});
1546
- }
1547
-
1548
- #topbar,
1549
- #main {
1550
- max-width: $main-content-max-width;
1551
- }
1552
-
1553
- #core-wrapper,
1554
- #tail-wrapper {
1555
- padding-right: 4.5rem !important;
1556
- }
1557
-
1558
- #back-to-top {
1559
- right: calc((100vw - #{$sidebar-width-large} - #{$main-content-max-width}) / 2 + 2rem);
1560
- }
1561
-
1562
- #sidebar {
1563
- width: $sidebar-width-large;
1564
-
1565
- .profile-wrapper {
1566
- margin-top: 4rem;
1567
- margin-bottom: 1rem;
1568
-
1569
- &.text-center {
1570
- text-align: left !important;
1571
- }
1572
-
1573
- %profile-ml {
1574
- margin-left: 4.5rem;
1575
- }
1576
-
1577
- #avatar {
1578
- @extend %profile-ml;
1579
-
1580
- > a {
1581
- width: 6.2rem;
1582
- height: 6.2rem;
1583
-
1584
- &.mx-auto {
1585
- margin-left: 0 !important;
1586
- }
1587
- }
1588
- }
1589
-
1590
- .site-title {
1591
- @extend %profile-ml;
1592
-
1593
- a {
1594
- font-size: 1.7rem;
1595
- letter-spacing: 1px;
1596
- }
1597
- }
1598
-
1599
- .site-subtitle {
1600
- @extend %profile-ml;
1601
-
1602
- word-spacing: 0;
1603
- margin-top: 0.3rem;
1604
- }
1605
-
1606
- } /* .profile-wrapper (min-width: 1650px) */
1607
-
1608
- ul {
1609
- padding-left: 2.5rem;
1610
-
1611
- > li:last-child {
1612
- > a {
1613
- position: static;
1614
- }
1615
- }
1616
-
1617
- .nav-item {
1618
- text-align: left;
1619
-
1620
- .nav-link {
1621
- > span {
1622
- letter-spacing: 2px;
1623
- }
1624
-
1625
- > i {
1626
- &.unloaded {
1627
- display: inline-block !important;
1628
- }
1629
- }
1630
- }
1631
-
1632
- }
1633
- }
1634
-
1635
- .sidebar-bottom {
1636
- padding-left: 3.5rem;
1637
- width: 100%;
1638
-
1639
- $icon-block-size: 2rem;
1640
-
1641
- &.justify-content-center {
1642
- -webkit-box-pack: start !important;
1643
- -ms-flex-pack: start !important;
1644
- justify-content: flex-start !important;
1645
- }
1646
-
1647
- > span,
1648
- > button.mode-toggle,
1649
- > a {
1650
- @include ml-mr(0.15rem);
1651
-
1652
- height: $icon-block-size;
1653
- margin-bottom: 0.5rem; /* wrap line */
1654
- }
1655
-
1656
- i {
1657
- background-color: var(--sidebar-btn-bg);
1658
- font-size: 1rem;
1659
- width: $icon-block-size;
1660
- height: $icon-block-size;
1661
- border-radius: 50%;
1662
- position: relative;
1663
-
1664
- &::before {
1665
- position: absolute;
1666
- top: 50%;
1667
- left: 50%;
1668
- transform: translate(-50%, -50%);
1669
- }
1670
- }
1671
-
1672
- .icon-border {
1673
- top: 0.9rem;
1674
- }
1675
-
1676
- } /* .sidebar-bottom */
1677
-
1678
- } /* #sidebar */
1679
-
1680
- } /* min-width: 1650px */
1
+ /*
2
+ The common styles
3
+ */
4
+
5
+ html {
6
+ @media (prefers-color-scheme: light) {
7
+ &:not([data-mode]),
8
+ &[data-mode=light] {
9
+ @include light-scheme;
10
+ }
11
+
12
+ &[data-mode=dark] {
13
+ @include dark-scheme;
14
+ }
15
+ }
16
+
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
+ }
26
+ }
27
+
28
+ font-size: 16px;
29
+ }
30
+
31
+ body {
32
+ line-height: 1.75rem;
33
+ background: var(--body-bg);
34
+ color: var(--text-color);
35
+ -webkit-font-smoothing: antialiased;
36
+ font-family: 'Source Sans Pro', 'Microsoft Yahei', sans-serif;
37
+ }
38
+
39
+ /* --- Typography --- */
40
+
41
+ h1 {
42
+ @extend %heading;
43
+
44
+ font-size: 1.9rem;
45
+ }
46
+
47
+ h2 {
48
+ @extend %heading;
49
+ @extend %section;
50
+ @extend %anchor;
51
+
52
+ font-size: 1.5rem;
53
+ }
54
+
55
+ h3 {
56
+ @extend %heading;
57
+ @extend %section;
58
+ @extend %anchor;
59
+
60
+ font-size: 1.2rem;
61
+ }
62
+
63
+ h4 {
64
+ @extend %heading;
65
+ @extend %section;
66
+ @extend %anchor;
67
+
68
+ font-size: 1.15rem;
69
+ }
70
+
71
+ h5 {
72
+ @extend %heading;
73
+ @extend %section;
74
+ @extend %anchor;
75
+
76
+ font-size: 1.1rem;
77
+ }
78
+
79
+ ol,
80
+ ul {
81
+ ol,
82
+ ul {
83
+ margin-bottom: 1rem;
84
+ }
85
+ }
86
+
87
+ a {
88
+ @extend %link-color;
89
+ }
90
+
91
+ img {
92
+ max-width: 100%;
93
+ height: auto;
94
+ }
95
+
96
+ blockquote {
97
+ border-left: 5px solid var(--blockquote-border-color);
98
+ padding-left: 1rem;
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");
127
+ }
128
+
129
+ mjx-container {
130
+ overflow-x: auto;
131
+ overflow-y: hidden;
132
+ }
133
+
134
+ kbd {
135
+ font-family: inherit;
136
+ display: inline-block;
137
+ vertical-align: middle;
138
+ line-height: 1.3rem;
139
+ min-width: 1.75rem;
140
+ text-align: center;
141
+ margin: 0 0.3rem;
142
+ padding-top: 0.1rem;
143
+ color: var(--kbd-text-color);
144
+ background-color: var(--kbd-bg-color);
145
+ border-radius: 0.25rem;
146
+ border: solid 1px var(--kbd-wrap-color);
147
+ box-shadow: inset 0 -2px 0 var(--kbd-wrap-color);
148
+ }
149
+
150
+ footer {
151
+ @include pl-pr(1.5rem);
152
+
153
+ font-size: 0.8rem;
154
+
155
+ > div.d-flex {
156
+ height: $footer-height;
157
+ line-height: 1.2rem;
158
+ padding-bottom: 1rem;
159
+ border-top: 1px solid var(--main-border-color);
160
+
161
+ > div {
162
+ width: 350px;
163
+ }
164
+ }
165
+
166
+ a {
167
+ @extend %text-color;
168
+
169
+ &:link {
170
+ @include no-text-decoration;
171
+ }
172
+
173
+ &:hover {
174
+ @extend %link-hover;
175
+
176
+ @include no-text-decoration;
177
+ }
178
+ }
179
+
180
+ .footer-right {
181
+ text-align: right;
182
+ }
183
+ }
184
+
185
+ i { /* fontawesome icons */
186
+ &.far,
187
+ &.fas {
188
+ @extend %no-cursor;
189
+ }
190
+ }
191
+
192
+ @keyframes fade-in {
193
+ from { opacity: 0; }
194
+ to { opacity: 1; }
195
+ }
196
+
197
+ img[data-src] {
198
+ margin: 0.5rem 0;
199
+
200
+ &[data-loaded=true] {
201
+ animation: fade-in linear 0.5s;
202
+ }
203
+
204
+ &.left {
205
+ float: left;
206
+ margin: 0.75rem 1rem 1rem 0;
207
+ }
208
+
209
+ &.right {
210
+ float: right;
211
+ margin: 0.75rem 0 1rem 1rem;
212
+ }
213
+
214
+ &.shadow {
215
+ filter: drop-shadow(2px 4px 6px rgba(0, 0, 0, 0.08));
216
+ box-shadow: none !important; /* cover the Bootstrap 4.6.1 styles */
217
+ }
218
+
219
+ @extend %img-caption;
220
+ }
221
+
222
+ /* --- Panels --- */
223
+
224
+ .access {
225
+ top: 2rem;
226
+ transition: top 0.2s ease-in-out;
227
+ margin-top: 3rem;
228
+ margin-bottom: 4rem;
229
+
230
+ &:only-child {
231
+ position: -webkit-sticky; /* Safari */
232
+ position: sticky;
233
+ }
234
+
235
+ > div {
236
+ padding-left: 1rem;
237
+ border-left: 1px solid var(--main-border-color);
238
+
239
+ &:not(:last-child) {
240
+ margin-bottom: 4rem;
241
+ }
242
+ }
243
+
244
+ .post-content {
245
+ font-size: 0.9rem;
246
+ }
247
+
248
+ }
249
+
250
+ #panel-wrapper {
251
+ /* the headings */
252
+ .panel-heading {
253
+ @include label(inherit);
254
+ }
255
+
256
+ .post-tag {
257
+ display: inline-block;
258
+ line-height: 1rem;
259
+ font-size: 0.85rem;
260
+ background: none;
261
+ border: 1px solid var(--btn-border-color);
262
+ border-radius: 0.8rem;
263
+ padding: 0.3rem 0.5rem;
264
+ margin: 0 0.35rem 0.5rem 0;
265
+
266
+ &:hover {
267
+ background-color: #2a408e;
268
+ border-color: #2a408e;
269
+ color: #fff;
270
+ transition: none;
271
+ }
272
+ }
273
+
274
+ [data-topbar-visible=true] & > div {
275
+ top: 6rem;
276
+ }
277
+ }
278
+
279
+ #access-lastmod {
280
+ li {
281
+ height: 1.8rem;
282
+ overflow: hidden;
283
+ text-overflow: ellipsis;
284
+ display: -webkit-box;
285
+ -webkit-line-clamp: 1;
286
+ -webkit-box-orient: vertical;
287
+ list-style: none;
288
+ }
289
+
290
+ a {
291
+ &:hover {
292
+ @extend %link-hover;
293
+ }
294
+
295
+ @extend %no-bottom-border;
296
+
297
+ color: inherit;
298
+ }
299
+
300
+ }
301
+
302
+ .footnotes > ol {
303
+ padding-left: 2rem;
304
+ margin-top: 0.5rem;
305
+
306
+ > li {
307
+ &:not(:last-child) {
308
+ margin-bottom: 0.3rem;
309
+ }
310
+
311
+ > p {
312
+ margin-left: 0.25em;
313
+ margin-top: 0;
314
+ margin-bottom: 0;
315
+ }
316
+
317
+ /* [scroll-focus] added by `smooth-scroll.js` */
318
+ &:target:not([scroll-focus]),
319
+ &[scroll-focus=true] > p {
320
+ background-color: var(--footnote-target-bg);
321
+ width: fit-content;
322
+ -webkit-transition: background-color 1.5s ease-in-out; /* Safari prior 6.1 */
323
+ transition: background-color 1.5s ease-in-out;
324
+ }
325
+ }
326
+ }
327
+
328
+ .footnote {
329
+ @at-root a#{&} {
330
+ @include ml-mr(1px);
331
+ @include pl-pr(2px);
332
+
333
+ border-bottom-style: none !important;
334
+ -webkit-transition: background-color 1.5s ease-in-out; /* Safari prior 6.1 */
335
+ transition: background-color 1.5s ease-in-out;
336
+ }
337
+
338
+ /* [scroll-focus] added by `smooth-scroll.js` */
339
+ @at-root sup:target:not([scroll-focus]),
340
+ sup[scroll-focus=true] > a#{&} {
341
+ background-color: var(--footnote-target-bg);
342
+ }
343
+ }
344
+
345
+ .reversefootnote {
346
+ @at-root a#{&} {
347
+ font-size: 0.6rem;
348
+ line-height: 1;
349
+ position: relative;
350
+ bottom: 0.25em;
351
+ margin-left: 0.25em;
352
+ border-bottom-style: none !important;
353
+ }
354
+ }
355
+
356
+ /* --- Begin of Markdown table style --- */
357
+
358
+ /* it will be created by Liquid */
359
+ .table-wrapper {
360
+ overflow-x: auto;
361
+ margin-bottom: 1.5rem;
362
+
363
+ > table {
364
+ min-width: 100%;
365
+ overflow-x: auto;
366
+ border-spacing: 0;
367
+
368
+ thead {
369
+ border-bottom: solid 2px rgba(210, 215, 217, 0.75);
370
+
371
+ th {
372
+ @extend %table-cell;
373
+ }
374
+ }
375
+
376
+ tbody {
377
+ tr {
378
+ border-bottom: 1px solid var(--tb-border-color);
379
+
380
+ &:nth-child(2n) {
381
+ background-color: var(--tb-even-bg);
382
+ }
383
+
384
+ &:nth-child(2n + 1) {
385
+ background-color: var(--tb-odd-bg);
386
+ }
387
+
388
+ td {
389
+ @extend %table-cell;
390
+ }
391
+ }
392
+ } /* tbody */
393
+ }/* table */
394
+ }
395
+
396
+ /* --- post --- */
397
+
398
+ .post {
399
+ h1 {
400
+ margin-top: 3rem;
401
+ margin-bottom: 1.5rem;
402
+ }
403
+
404
+ a {
405
+ &.img-link {
406
+ @extend %no-cursor;
407
+ }
408
+
409
+ /* created by `_includes/img-extra.html` */
410
+ &.popup {
411
+ cursor: zoom-in;
412
+
413
+ > img[data-src]:not(.normal):not(.left):not(.right) {
414
+ @include align-center;
415
+ }
416
+ }
417
+
418
+ &:hover {
419
+ code {
420
+ @extend %link-hover;
421
+ }
422
+ }
423
+ } /* a */
424
+
425
+ }
426
+
427
+ .pageviews .fa-spinner {
428
+ font-size: 80%;
429
+ }
430
+
431
+ .post-meta {
432
+ font-size: 0.85rem;
433
+ word-spacing: 1px;
434
+
435
+ a {
436
+ &:not(:last-child) {
437
+ margin-right: 2px;
438
+ }
439
+
440
+ &:not([class]):hover {
441
+ @extend %link-hover;
442
+ }
443
+ }
444
+
445
+ em {
446
+ @extend %normal-font-style;
447
+ }
448
+ }
449
+
450
+ .post-content {
451
+ font-size: 1.08rem;
452
+ line-height: 1.8;
453
+ margin-top: 2rem;
454
+ overflow-wrap: break-word;
455
+ word-wrap: break-word;
456
+
457
+ a {
458
+ &:not(.img-link) {
459
+ @extend %link-underline;
460
+
461
+ &:hover {
462
+ @extend %link-hover;
463
+ }
464
+ }
465
+
466
+ &.img-link {
467
+ @extend %img-caption;
468
+ }
469
+
470
+ }
471
+
472
+ ul {
473
+ /* attribute 'hide-bullet' was added by liquid */
474
+ .task-list-item[hide-bullet] {
475
+ list-style-type: none;
476
+
477
+ > i { /* checkbox icon */
478
+ margin: 0 0.4rem 0.2rem -1.4rem;
479
+ vertical-align: middle;
480
+ color: var(--checkbox-color);
481
+
482
+ &.checked {
483
+ color: var(--checkbox-checked-color);
484
+ }
485
+ }
486
+
487
+ }
488
+
489
+ input[type=checkbox] {
490
+ margin: 0 0.5rem 0.2rem -1.3rem;
491
+ vertical-align: middle;
492
+ }
493
+
494
+ } /* ul */
495
+
496
+ > ol,
497
+ > ul {
498
+ padding-left: 2rem;
499
+
500
+ li {
501
+ ol,
502
+ ul { /* sub list */
503
+ padding-left: 2rem;
504
+ margin-top: 0.3rem;
505
+ }
506
+ }
507
+
508
+ }
509
+
510
+ > ol {
511
+ li {
512
+ padding-left: 0.25em;
513
+ }
514
+ }
515
+
516
+ dl > dd {
517
+ margin-left: 1rem;
518
+ }
519
+
520
+ } /* .post-content */
521
+
522
+ .tag:hover {
523
+ @extend %tag-hover;
524
+ }
525
+
526
+ .post-tag {
527
+ display: inline-block;
528
+ min-width: 2rem;
529
+ text-align: center;
530
+ background: var(--tag-bg);
531
+ border-radius: 0.3rem;
532
+ padding: 0 0.4rem;
533
+ color: inherit;
534
+ line-height: 1.3rem;
535
+
536
+ &:not(:last-child) {
537
+ margin-right: 0.2rem;
538
+ }
539
+
540
+ &:hover {
541
+ @extend %tag-hover;
542
+
543
+ border-bottom: none;
544
+ text-decoration: none;
545
+ color: #d2603a;
546
+ }
547
+ }
548
+
549
+ /* --- buttons --- */
550
+ .btn-lang {
551
+ border: 1px solid !important;
552
+ padding: 1px 3px;
553
+ border-radius: 3px;
554
+ color: var(--link-color);
555
+
556
+ &:focus {
557
+ box-shadow: none;
558
+ }
559
+ }
560
+
561
+ .btn-home {
562
+ color: inherit;
563
+ padding: 0;
564
+ width: 50%;
565
+ margin: 0 auto;
566
+ display: -webkit-box;
567
+ -webkit-box-pack: center;
568
+ -webkit-box-align: center;
569
+ border: 1px solid var(--btn-paginator-border-color);
570
+ background-color: var(--button-bg);
571
+
572
+ &:hover {
573
+ background-color: var(--btn-paginator-hover-color);
574
+ }
575
+ }
576
+
577
+ /* --- Effects classes --- */
578
+
579
+ .loaded {
580
+ display: block !important;
581
+
582
+ @at-root .d-flex#{&} {
583
+ display: flex !important;
584
+ }
585
+ }
586
+
587
+ .unloaded {
588
+ display: none !important;
589
+ }
590
+
591
+ .visible {
592
+ visibility: visible !important;
593
+ }
594
+
595
+ .hidden {
596
+ visibility: hidden !important;
597
+ }
598
+
599
+ .flex-grow-1 {
600
+ -ms-flex-positive: 1 !important;
601
+ flex-grow: 1 !important;
602
+ }
603
+
604
+ .btn-box-shadow {
605
+ box-shadow: 0 0 8px 0 var(--btn-box-shadow) !important;
606
+ }
607
+
608
+ .no-text-decoration {
609
+ @include no-text-decoration;
610
+ }
611
+
612
+ .tooltip-inner { /* Overrided BS4 Tooltip */
613
+ font-size: 0.7rem;
614
+ max-width: 220px;
615
+ text-align: left;
616
+ }
617
+
618
+ .disabled {
619
+ color: rgb(206, 196, 196);
620
+ pointer-events: auto;
621
+ cursor: not-allowed;
622
+ }
623
+
624
+ .hide-border-bottom {
625
+ border-bottom: none !important;
626
+ }
627
+
628
+ .input-focus {
629
+ box-shadow: none;
630
+ border-color: var(--input-focus-border-color) !important;
631
+ background: center !important;
632
+ transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out;
633
+ }
634
+
635
+ /* --- Overriding --- */
636
+
637
+ /* magnific-popup */
638
+ figure .mfp-title {
639
+ text-align: center;
640
+ padding-right: 0;
641
+ margin-top: 0.5rem;
642
+ }
643
+
644
+ /* mermaid */
645
+ .mermaid {
646
+ text-align: center;
647
+ }
648
+
649
+ /* --- sidebar layout --- */
650
+
651
+ $sidebar-display: "sidebar-display";
652
+
653
+ #sidebar {
654
+ @include pl-pr(0);
655
+
656
+ position: fixed;
657
+ top: 0;
658
+ left: 0;
659
+ height: 100%;
660
+ overflow-y: auto;
661
+ width: $sidebar-width;
662
+ z-index: 99;
663
+ background: var(--sidebar-bg);
664
+
665
+ /* Hide scrollbar for Chrome, Safari and Opera */
666
+ &::-webkit-scrollbar {
667
+ display: none;
668
+ }
669
+
670
+ /* Hide scrollbar for IE, Edge and Firefox */
671
+ -ms-overflow-style: none; /* IE and Edge */
672
+ scrollbar-width: none; /* Firefox */
673
+
674
+ a {
675
+ @extend %sidebar-links;
676
+
677
+ &:hover {
678
+ @include no-text-decoration;
679
+
680
+ color: var(--sidebar-active-color) !important;
681
+ }
682
+ }
683
+
684
+ #avatar {
685
+ > a {
686
+ display: block;
687
+ width: 6rem;
688
+ height: 6rem;
689
+ border-radius: 50%;
690
+ border: 2px solid rgba(222, 222, 222, 0.7);
691
+ overflow: hidden;
692
+ transform: translateZ(0); /* fixed the zoom in Safari */
693
+ -webkit-transition: border-color 0.35s ease-in-out;
694
+ -moz-transition: border-color 0.35s ease-in-out;
695
+ transition: border-color 0.35s ease-in-out;
696
+
697
+ &:hover {
698
+ border-color: white;
699
+ }
700
+ }
701
+
702
+ img {
703
+ width: 100%;
704
+ height: 100%;
705
+ -webkit-transition: transform 0.5s;
706
+ -moz-transition: transform 0.5s;
707
+ transition: transform 0.5s;
708
+
709
+ &:hover {
710
+ -ms-transform: scale(1.2);
711
+ -moz-transform: scale(1.2);
712
+ -webkit-transform: scale(1.2);
713
+ transform: scale(1.2);
714
+ }
715
+ }
716
+ } /* #avatar */
717
+
718
+ .site-title {
719
+ a {
720
+ @extend %clickable-transition;
721
+
722
+ font-weight: 900;
723
+ font-size: 1.5rem;
724
+ letter-spacing: 0.5px;
725
+ color: rgba(134, 133, 133, 99%);
726
+ }
727
+ }
728
+
729
+ .site-subtitle {
730
+ font-size: 95%;
731
+ color: var(--sidebar-muted-color);
732
+ line-height: 1.2rem;
733
+ word-spacing: 1px;
734
+ margin: 0.5rem 1.5rem 0.5rem 1.5rem;
735
+ min-height: 3rem; /* avoid vertical shifting in multi-line words */
736
+ user-select: none;
737
+ }
738
+
739
+ .nav-link {
740
+ border-radius: 0;
741
+ font-size: 0.95rem;
742
+ font-weight: 600;
743
+ letter-spacing: 1px;
744
+ display: table-cell;
745
+ vertical-align: middle;
746
+ }
747
+
748
+ .nav-item {
749
+ text-align: center;
750
+ display: table;
751
+ height: $tab-height;
752
+
753
+ &.active {
754
+ .nav-link {
755
+ color: var(--sidebar-active-color);
756
+ }
757
+ }
758
+
759
+ &:not(.active) > a {
760
+ @extend %clickable-transition;
761
+ }
762
+ }
763
+
764
+ ul {
765
+ height: $tab-height * $tab-count;
766
+ margin-bottom: 2rem;
767
+ padding-left: 0;
768
+
769
+ li {
770
+ width: 100%;
771
+
772
+ &:last-child {
773
+ a {
774
+ position: relative;
775
+ left: $cursor-width / 2;
776
+ width: 100%;
777
+ }
778
+
779
+ &::after { /* the cursor */
780
+ display: table;
781
+ visibility: hidden;
782
+ content: "";
783
+ position: relative;
784
+ right: 1px;
785
+ width: $cursor-width;
786
+ height: $tab-cursor-height;
787
+ border-radius: 1px;
788
+ background-color: var(--nav-cursor-color);
789
+ pointer-events: none;
790
+ }
791
+ }
792
+ } /* li */
793
+
794
+ @mixin fix-cursor($top) {
795
+ top: $top;
796
+ visibility: visible;
797
+ }
798
+
799
+ @for $i from 1 through $tab-count {
800
+ $offset: $tab-count - $i;
801
+ $top: -$offset * $tab-height + ($tab-height - $tab-cursor-height) / 2;
802
+
803
+ @if $i < $tab-count {
804
+ > li.active:nth-child(#{$i}),
805
+ > li.nav-item:nth-child(#{$i}):hover {
806
+ ~ li:last-child::after {
807
+ @include fix-cursor($top);
808
+ }
809
+ }
810
+ } @else {
811
+ > li.active:nth-child(#{$i}):last-child::after,
812
+ > li.nav-item:nth-child(#{$i}):last-child:hover::after {
813
+ @include fix-cursor($top);
814
+ }
815
+ }
816
+
817
+ } /* @for */
818
+
819
+ } /* ul */
820
+
821
+ .sidebar-bottom {
822
+ margin-bottom: 2.1rem;
823
+
824
+ @include ml-mr(auto);
825
+ @include pl-pr(1rem);
826
+
827
+ %icon {
828
+ width: 2.4rem;
829
+ text-align: center;
830
+ }
831
+
832
+ a {
833
+ @extend %icon;
834
+ @extend %clickable-transition;
835
+ }
836
+
837
+ i {
838
+ font-size: 1.2rem;
839
+ line-height: 1.75rem;
840
+ }
841
+
842
+ .mode-toggle {
843
+ padding: 0;
844
+ border: 0;
845
+ margin-bottom: 1px;
846
+ background-color: transparent;
847
+
848
+ @extend %icon;
849
+ @extend %sidebar-links;
850
+
851
+ > i {
852
+ @extend %clickable-transition;
853
+ }
854
+
855
+ &:hover > i {
856
+ color: var(--sidebar-active-color);
857
+ }
858
+ }
859
+
860
+ .icon-border {
861
+ @extend %no-cursor;
862
+
863
+ background-color: var(--sidebar-muted-color);
864
+ content: "";
865
+ width: 3px;
866
+ height: 3px;
867
+ border-radius: 50%;
868
+ }
869
+
870
+ } /* .sidebar-bottom */
871
+
872
+ } /* #sidebar */
873
+
874
+ @media (hover: hover) {
875
+ #sidebar ul > li:last-child::after {
876
+ -webkit-transition: top 0.5s ease;
877
+ -moz-transition: top 0.5s ease;
878
+ -o-transition: top 0.5s ease;
879
+ transition: top 0.5s ease;
880
+ }
881
+ }
882
+
883
+ .profile-wrapper {
884
+ margin-top: 2rem;
885
+ width: 100%;
886
+ }
887
+
888
+ #search-result-wrapper {
889
+ display: none;
890
+ height: 100%;
891
+ width: 100%;
892
+ overflow: auto;
893
+
894
+ .post-content {
895
+ margin-top: 2rem;
896
+ }
897
+ }
898
+
899
+ /* --- top-bar --- */
900
+
901
+ #topbar-wrapper {
902
+ height: $topbar-height;
903
+ position: fixed;
904
+ top: 0;
905
+ left: $sidebar-width; /* same as sidebar width */
906
+ right: 0;
907
+ transition: top 0.2s ease-in-out;
908
+ z-index: 50;
909
+ border-bottom: 1px solid rgba(0, 0, 0, 0.07);
910
+ background-color: var(--topbar-wrapper-bg);
911
+
912
+ [data-topbar-visible=false] & {
913
+ top: -$topbar-height; /* same as topbar height. */
914
+ }
915
+ }
916
+
917
+ #topbar {
918
+ i { /* icons */
919
+ color: #999;
920
+ }
921
+
922
+ #breadcrumb {
923
+ font-size: 1rem;
924
+ color: gray;
925
+ padding-left: 0.5rem;
926
+
927
+ a:hover {
928
+ @extend %link-hover;
929
+ }
930
+
931
+ span {
932
+ &:not(:last-child) {
933
+ &::after {
934
+ content: "›";
935
+ padding: 0 0.3rem;
936
+ }
937
+ }
938
+ }
939
+ }
940
+ } /* #topbar */
941
+
942
+ #sidebar-trigger,
943
+ #search-trigger {
944
+ display: none;
945
+ }
946
+
947
+ #search-wrapper {
948
+ display: flex;
949
+ width: 100%;
950
+ border-radius: 1rem;
951
+ border: 1px solid var(--search-wrapper-border-color);
952
+ background: var(--search-wrapper-bg);
953
+ padding: 0 0.5rem;
954
+
955
+ i {
956
+ z-index: 2;
957
+ font-size: 0.9rem;
958
+ color: var(--search-icon-color);
959
+ }
960
+ }
961
+
962
+ #search-cancel { /* 'Cancel' link */
963
+ color: var(--link-color);
964
+ margin-left: 1rem;
965
+ display: none;
966
+
967
+ @extend %cursor-pointer;
968
+ }
969
+
970
+ #search-input {
971
+ background: center;
972
+ border: 0;
973
+ border-radius: 0;
974
+ padding: 0.18rem 0.3rem;
975
+ color: var(--text-color);
976
+ height: auto;
977
+
978
+ &:focus {
979
+ box-shadow: none;
980
+ background: center;
981
+
982
+ &.form-control {
983
+ &::-webkit-input-placeholder { @include input-placeholder; }
984
+ &::-moz-placeholder { @include input-placeholder; }
985
+ &:-ms-input-placeholder { @include input-placeholder; }
986
+ &::placeholder { @include input-placeholder; }
987
+ }
988
+ }
989
+ }
990
+
991
+ #search-hints {
992
+ padding: 0 1rem;
993
+
994
+ h4 {
995
+ margin-bottom: 1.5rem;
996
+ }
997
+
998
+ .post-tag {
999
+ display: inline-block;
1000
+ line-height: 1rem;
1001
+ font-size: 1rem;
1002
+ background: var(--search-tag-bg);
1003
+ border: none;
1004
+ padding: 0.5rem;
1005
+ margin: 0 1.25rem 1rem 0;
1006
+
1007
+ &::before {
1008
+ content: "#";
1009
+ color: var(--text-muted-color);
1010
+ padding-right: 0.2rem;
1011
+ }
1012
+
1013
+ @extend %link-color;
1014
+ }
1015
+ }
1016
+
1017
+ #search-results {
1018
+ padding-bottom: 3rem;
1019
+
1020
+ a {
1021
+ &:hover {
1022
+ @extend %link-hover;
1023
+ }
1024
+
1025
+ @extend %link-color;
1026
+ @extend %no-bottom-border;
1027
+ @extend %heading;
1028
+
1029
+ font-size: 1.4rem;
1030
+ line-height: 2.5rem;
1031
+ }
1032
+
1033
+ > div {
1034
+ width: 100%;
1035
+
1036
+ &:not(:last-child) {
1037
+ margin-bottom: 1rem;
1038
+ }
1039
+
1040
+ i { /* icons */
1041
+ color: #818182;
1042
+ margin-right: 0.15rem;
1043
+ font-size: 80%;
1044
+ }
1045
+
1046
+ > p {
1047
+ overflow: hidden;
1048
+ text-overflow: ellipsis;
1049
+ display: -webkit-box;
1050
+ -webkit-line-clamp: 3;
1051
+ -webkit-box-orient: vertical;
1052
+ }
1053
+ }
1054
+ } /* #search-results */
1055
+
1056
+ #topbar-title {
1057
+ display: none;
1058
+ font-size: 1.1rem;
1059
+ font-weight: 600;
1060
+ font-family: sans-serif;
1061
+ color: var(--topbar-text-color);
1062
+ text-align: center;
1063
+ width: 70%;
1064
+ overflow: hidden;
1065
+ text-overflow: ellipsis;
1066
+ word-break: keep-all;
1067
+ white-space: nowrap;
1068
+ }
1069
+
1070
+ #core-wrapper {
1071
+ min-height: calc(100vh - #{$topbar-height} - #{$footer-height});
1072
+
1073
+ .categories,
1074
+ #tags,
1075
+ #archives {
1076
+ a:not(:hover) {
1077
+ @extend %no-bottom-border;
1078
+ }
1079
+ }
1080
+ }
1081
+
1082
+ #mask {
1083
+ display: none;
1084
+ position: fixed;
1085
+ top: 0;
1086
+ right: 0;
1087
+ bottom: 0;
1088
+ left: 0;
1089
+ height: 100%;
1090
+ width: 100%;
1091
+ z-index: 1;
1092
+
1093
+ @at-root [#{$sidebar-display}] & {
1094
+ display: block !important;
1095
+ }
1096
+ }
1097
+
1098
+ /* --- main wrapper --- */
1099
+
1100
+ #main-wrapper {
1101
+ background-color: var(--main-wrapper-bg);
1102
+ position: relative;
1103
+ min-height: 100vh;
1104
+
1105
+ @include pl-pr(0);
1106
+ }
1107
+
1108
+ #core-wrapper,
1109
+ #panel-wrapper {
1110
+ margin-top: $topbar-height; /* same as the height of topbar */
1111
+ }
1112
+
1113
+ #topbar-wrapper.row,
1114
+ #main > .row,
1115
+ #search-result-wrapper > .row {
1116
+ @include ml-mr(0);
1117
+ }
1118
+
1119
+ /* --- button back-to-top --- */
1120
+
1121
+ #back-to-top {
1122
+ $size: 2.7em;
1123
+
1124
+ display: none;
1125
+ z-index: 1;
1126
+ cursor: pointer;
1127
+ position: fixed;
1128
+ background: var(--button-bg);
1129
+ color: var(--btn-backtotop-color);
1130
+ padding: 0;
1131
+ width: $size;
1132
+ height: $size;
1133
+ border-radius: 50%;
1134
+ border: 1px solid var(--btn-backtotop-border-color);
1135
+ transition: transform 0.2s ease-out;
1136
+ -webkit-transition: transform 0.2s ease-out;
1137
+
1138
+ i {
1139
+ line-height: $size;
1140
+ position: relative;
1141
+ bottom: 2px;
1142
+ }
1143
+ }
1144
+
1145
+ #back-to-top:hover {
1146
+ transform: translate3d(0, -5px, 0);
1147
+ -webkit-transform: translate3d(0, -5px, 0);
1148
+ }
1149
+
1150
+ #notification {
1151
+ @keyframes popup {
1152
+ from {
1153
+ opacity: 0;
1154
+ bottom: 0;
1155
+ }
1156
+ }
1157
+
1158
+ .toast-header {
1159
+ background: none;
1160
+ border-bottom: none;
1161
+ color: inherit;
1162
+ }
1163
+
1164
+ .toast-body {
1165
+ font-family: 'Lato';
1166
+ line-height: 1.25rem;
1167
+
1168
+ button {
1169
+ font-size: 90%;
1170
+ min-width: 4rem;
1171
+ }
1172
+ }
1173
+
1174
+ &.toast {
1175
+ display: none;
1176
+
1177
+ &.show {
1178
+ display: block;
1179
+ min-width: 20rem;
1180
+ border-radius: 0.5rem;
1181
+ -webkit-backdrop-filter: blur(10px);
1182
+ backdrop-filter: blur(10px);
1183
+ background-color: rgba(255, 255, 255, 0.5);
1184
+ color: #1b1b1eba;
1185
+ position: fixed;
1186
+ left: 50%;
1187
+ bottom: 20%;
1188
+ transform: translateX(-50%);
1189
+ animation: popup 0.8s;
1190
+ }
1191
+ }
1192
+
1193
+ }
1194
+
1195
+ /*
1196
+ Responsive Design:
1197
+
1198
+ {sidebar, content, panel} >= 1120px screen width
1199
+ {sidebar, content} >= 850px screen width
1200
+ {content} <= 849px screen width
1201
+
1202
+ */
1203
+
1204
+ @media all and (max-width: 576px) {
1205
+ footer {
1206
+ height: $footer-height-mobile;
1207
+
1208
+ > div.d-flex {
1209
+ padding: 1.5rem 0;
1210
+ flex-wrap: wrap;
1211
+ -ms-flex-pack: distribute !important;
1212
+ justify-content: space-around !important;
1213
+ }
1214
+
1215
+ .footer-left,
1216
+ .footer-right {
1217
+ text-align: center;
1218
+ }
1219
+ }
1220
+
1221
+ #core-wrapper {
1222
+ min-height: calc(100vh - #{$topbar-height} - #{$footer-height-mobile}) !important;
1223
+
1224
+ h1 {
1225
+ margin-top: 2.2rem;
1226
+ font-size: 1.75rem;
1227
+ }
1228
+
1229
+ .post-content {
1230
+ > blockquote[class^=prompt-] {
1231
+ @include ml-mr(-1.25rem);
1232
+ border-radius: 0;
1233
+ }
1234
+ }
1235
+
1236
+ }
1237
+
1238
+ #avatar > a {
1239
+ width: 5rem;
1240
+ height: 5rem;
1241
+ }
1242
+
1243
+ .site-subtitle {
1244
+ @include ml-mr(1.8rem);
1245
+ }
1246
+
1247
+ }
1248
+
1249
+ @media all and (max-width: 768px) {
1250
+ %full-width {
1251
+ max-width: 100%;
1252
+ }
1253
+
1254
+ #topbar {
1255
+ @extend %full-width;
1256
+ }
1257
+
1258
+ #main {
1259
+ @extend %full-width;
1260
+ @include pl-pr(0);
1261
+ }
1262
+ }
1263
+
1264
+ /* hide sidebar and panel */
1265
+ @media all and (max-width: 849px) {
1266
+ @mixin slide($append: null) {
1267
+ $basic: transform 0.4s ease;
1268
+ @if $append {
1269
+ -webkit-transition: $basic, $append;
1270
+ transition: $basic, $append;
1271
+ } @else {
1272
+ -webkit-transition: $basic;
1273
+ transition: $basic;
1274
+ }
1275
+ }
1276
+
1277
+ html,
1278
+ body {
1279
+ overflow-x: hidden;
1280
+ }
1281
+
1282
+ [#{$sidebar-display}] {
1283
+ #sidebar {
1284
+ transform: translateX(0);
1285
+ }
1286
+
1287
+ #topbar-wrapper,
1288
+ #main-wrapper {
1289
+ transform: translateX(#{$sidebar-width});
1290
+ }
1291
+ }
1292
+
1293
+ #sidebar {
1294
+ @include slide;
1295
+
1296
+ transform: translateX(-#{$sidebar-width}); /* hide */
1297
+ -webkit-transform: translateX(-#{$sidebar-width});
1298
+
1299
+ .cursor {
1300
+ -webkit-transition: none;
1301
+ -moz-transition: none;
1302
+ transition: none;
1303
+ }
1304
+ }
1305
+
1306
+ #main-wrapper {
1307
+ @include slide;
1308
+
1309
+ padding-top: $topbar-height;
1310
+ }
1311
+
1312
+ #topbar,
1313
+ #main {
1314
+ max-width: 100%;
1315
+ }
1316
+
1317
+ #search-result-wrapper {
1318
+ width: 100%;
1319
+ }
1320
+
1321
+ #breadcrumb,
1322
+ #search-wrapper {
1323
+ display: none;
1324
+ }
1325
+
1326
+ #topbar-wrapper {
1327
+ @include slide(top 0.2s ease);
1328
+
1329
+ left: 0;
1330
+ }
1331
+
1332
+ #core-wrapper,
1333
+ #panel-wrapper {
1334
+ margin-top: 0;
1335
+ }
1336
+
1337
+ #topbar-title,
1338
+ #sidebar-trigger,
1339
+ #search-trigger {
1340
+ display: block;
1341
+ }
1342
+
1343
+ #search-result-wrapper .post-content {
1344
+ letter-spacing: 0;
1345
+ }
1346
+
1347
+ #tags {
1348
+ -webkit-box-pack: center !important;
1349
+ -ms-flex-pack: center !important;
1350
+ justify-content: center !important;
1351
+ }
1352
+
1353
+ h1.dynamic-title {
1354
+ display: none;
1355
+
1356
+ ~ .post-content {
1357
+ margin-top: 3rem;
1358
+ }
1359
+ }
1360
+
1361
+ } /* max-width: 849px */
1362
+
1363
+ @media all and (max-width: 849px) and (orientation: portrait) {
1364
+ [data-topbar-visible=false] #topbar-wrapper {
1365
+ top: 0;
1366
+ }
1367
+ }
1368
+
1369
+ /* Phone & Pad */
1370
+ @media all and (min-width: 577px) and (max-width: 1199px) {
1371
+ footer > .d-flex > div {
1372
+ width: 312px;
1373
+ }
1374
+ }
1375
+
1376
+ /* Sidebar is visible */
1377
+ @media all and (min-width: 850px) {
1378
+ /* Solved jumping scrollbar */
1379
+ html {
1380
+ overflow-y: scroll;
1381
+ }
1382
+
1383
+ #main-wrapper {
1384
+ margin-left: $sidebar-width;
1385
+ }
1386
+
1387
+ .profile-wrapper {
1388
+ margin-top: 3rem;
1389
+ }
1390
+
1391
+ #search-hints {
1392
+ display: none;
1393
+ }
1394
+
1395
+ #search-wrapper {
1396
+ max-width: $search-max-width;
1397
+ }
1398
+
1399
+ #search-result-wrapper {
1400
+ margin-top: 3rem;
1401
+ max-width: $main-content-max-width;
1402
+ }
1403
+
1404
+ div.post-content .table-wrapper > table {
1405
+ min-width: 70%;
1406
+ }
1407
+
1408
+ /* button 'back-to-Top' position */
1409
+ #back-to-top {
1410
+ bottom: 5.5rem;
1411
+ right: 5%;
1412
+ }
1413
+
1414
+ #topbar {
1415
+ @include pl-pr(2rem);
1416
+ }
1417
+
1418
+ #topbar-title {
1419
+ text-align: left;
1420
+ }
1421
+
1422
+ }
1423
+
1424
+ /* Pad horizontal */
1425
+ @media all and (min-width: 992px) and (max-width: 1199px) {
1426
+ #main .col-lg-11 {
1427
+ -webkit-box-flex: 0;
1428
+ -ms-flex: 0 0 96%;
1429
+ flex: 0 0 96%;
1430
+ max-width: 96%;
1431
+ }
1432
+ }
1433
+
1434
+ /* Compact icons in sidebar & panel hidden */
1435
+ @media all and (min-width: 850px) and (max-width: 1199px) {
1436
+ #sidebar {
1437
+ width: $sidebar-width-small;
1438
+
1439
+ .site-subtitle {
1440
+ margin-left: 1rem;
1441
+ margin-right: 1rem;
1442
+ }
1443
+
1444
+ .sidebar-bottom {
1445
+ a,
1446
+ span {
1447
+ width: 2rem;
1448
+ }
1449
+
1450
+ .icon-border {
1451
+ left: -3px;
1452
+ }
1453
+ }
1454
+ }
1455
+
1456
+ #topbar-wrapper {
1457
+ left: 210px;
1458
+ }
1459
+
1460
+ #search-results > div {
1461
+ max-width: 700px;
1462
+ }
1463
+
1464
+ .site-title {
1465
+ font-size: 1.3rem;
1466
+ margin-left: 0 !important;
1467
+ }
1468
+
1469
+ .site-subtitle {
1470
+ @include ml-mr(1rem);
1471
+
1472
+ font-size: 90%;
1473
+ }
1474
+
1475
+ #main-wrapper {
1476
+ margin-left: 210px;
1477
+ }
1478
+
1479
+ #breadcrumb {
1480
+ width: 65%;
1481
+ overflow: hidden;
1482
+ text-overflow: ellipsis;
1483
+ word-break: keep-all;
1484
+ white-space: nowrap;
1485
+ }
1486
+
1487
+ }
1488
+
1489
+ /* panel hidden */
1490
+ @media all and (max-width: 1199px) {
1491
+ #panel-wrapper {
1492
+ display: none;
1493
+ }
1494
+
1495
+ #main > div.row {
1496
+ -webkit-box-pack: center !important;
1497
+ -ms-flex-pack: center !important;
1498
+ justify-content: center !important;
1499
+ }
1500
+ }
1501
+
1502
+ /* --- desktop mode, both sidebar and panel are visible --- */
1503
+
1504
+ @media all and (min-width: 1200px) {
1505
+ #back-to-top {
1506
+ bottom: 6.5rem;
1507
+ }
1508
+
1509
+ #search-wrapper {
1510
+ margin-right: 4rem;
1511
+ }
1512
+
1513
+ #search-input {
1514
+ -webkit-transition: all 0.3s ease-in-out;
1515
+ transition: all 0.3s ease-in-out;
1516
+ }
1517
+
1518
+ #search-results > div {
1519
+ width: 46%;
1520
+
1521
+ &:nth-child(odd) {
1522
+ margin-right: 1.5rem;
1523
+ }
1524
+
1525
+ &:nth-child(even) {
1526
+ margin-left: 1.5rem;
1527
+ }
1528
+
1529
+ &:last-child:nth-child(odd) {
1530
+ position: relative;
1531
+ right: 24.3%;
1532
+ }
1533
+ }
1534
+
1535
+ .post-content {
1536
+ font-size: 1.03rem;
1537
+ }
1538
+
1539
+ footer > div.d-felx {
1540
+ width: 85%;
1541
+ }
1542
+
1543
+ }
1544
+
1545
+ @media all and (min-width: 1400px) {
1546
+ #back-to-top {
1547
+ right: calc((100vw - #{$sidebar-width} - 1140px) / 2 + 3rem);
1548
+ }
1549
+ }
1550
+
1551
+ @media all and (min-width: 1650px) {
1552
+ #main-wrapper {
1553
+ margin-left: $sidebar-width-large;
1554
+ }
1555
+
1556
+ #topbar-wrapper {
1557
+ left: $sidebar-width-large;
1558
+ }
1559
+
1560
+ #search-wrapper {
1561
+ margin-right: calc(#{$main-content-max-width} * 0.25 - #{$search-max-width});
1562
+ }
1563
+
1564
+ #topbar,
1565
+ #main {
1566
+ max-width: $main-content-max-width;
1567
+ }
1568
+
1569
+ #core-wrapper,
1570
+ #tail-wrapper {
1571
+ padding-right: 4.5rem !important;
1572
+ }
1573
+
1574
+ #back-to-top {
1575
+ right: calc((100vw - #{$sidebar-width-large} - #{$main-content-max-width}) / 2 + 2rem);
1576
+ }
1577
+
1578
+ #sidebar {
1579
+ width: $sidebar-width-large;
1580
+
1581
+ .profile-wrapper {
1582
+ margin-top: 4rem;
1583
+ margin-bottom: 1rem;
1584
+
1585
+ &.text-center {
1586
+ }
1587
+
1588
+ %profile-ml {
1589
+ margin: 0 auto;
1590
+ }
1591
+
1592
+ #avatar {
1593
+ @extend %profile-ml;
1594
+
1595
+ > a {
1596
+ width: 6.2rem;
1597
+ height: 6.2rem;
1598
+
1599
+ &.mx-auto {
1600
+ }
1601
+ }
1602
+ }
1603
+
1604
+ .site-title {
1605
+ @extend %profile-ml;
1606
+
1607
+ a {
1608
+ font-size: 1.7rem;
1609
+ letter-spacing: 1px;
1610
+ }
1611
+ }
1612
+
1613
+ .site-subtitle {
1614
+ @extend %profile-ml;
1615
+
1616
+ word-spacing: 0;
1617
+ margin-top: 0.3rem;
1618
+ }
1619
+
1620
+ } /* .profile-wrapper (min-width: 1650px) */
1621
+
1622
+ ul {
1623
+ padding-left: 2.5rem;
1624
+
1625
+ > li:last-child {
1626
+ > a {
1627
+ position: static;
1628
+ }
1629
+ }
1630
+
1631
+ .nav-item {
1632
+ text-align: left;
1633
+
1634
+ .nav-link {
1635
+ > span {
1636
+ letter-spacing: 2px;
1637
+ }
1638
+
1639
+ > i {
1640
+ &.unloaded {
1641
+ display: inline-block !important;
1642
+ }
1643
+ }
1644
+ }
1645
+
1646
+ }
1647
+ }
1648
+
1649
+ .sidebar-bottom {
1650
+ padding-left: 3.5rem;
1651
+ width: 100%;
1652
+
1653
+ $icon-block-size: 2rem;
1654
+
1655
+ &.justify-content-center {
1656
+ -webkit-box-pack: start !important;
1657
+ -ms-flex-pack: start !important;
1658
+ justify-content: flex-start !important;
1659
+ }
1660
+
1661
+ > span,
1662
+ > button.mode-toggle,
1663
+ > a {
1664
+ @include ml-mr(0.15rem);
1665
+
1666
+ height: $icon-block-size;
1667
+ margin-bottom: 0.5rem; /* wrap line */
1668
+ }
1669
+
1670
+ i {
1671
+ background-color: var(--sidebar-btn-bg);
1672
+ font-size: 1rem;
1673
+ width: $icon-block-size;
1674
+ height: $icon-block-size;
1675
+ border-radius: 50%;
1676
+ position: relative;
1677
+
1678
+ &::before {
1679
+ position: absolute;
1680
+ top: 50%;
1681
+ left: 50%;
1682
+ transform: translate(-50%, -50%);
1683
+ }
1684
+ }
1685
+
1686
+ .icon-border {
1687
+ top: 0.9rem;
1688
+ }
1689
+
1690
+ } /* .sidebar-bottom */
1691
+
1692
+ } /* #sidebar */
1693
+
1694
+ } /* min-width: 1650px */