jekyll-theme-abd3lraouf 5.2.6 → 5.2.7

Sign up to get free protection for your applications and to get access to all the features.
Files changed (95) 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 +1678 -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 +16 -16
  84. data/assets/css/style.scss +12 -12
  85. data/assets/feed.xml +61 -61
  86. data/assets/img/favicons/browserconfig.xml +13 -13
  87. data/assets/img/favicons/site.webmanifest +26 -26
  88. data/assets/js/data/search.json +18 -18
  89. data/assets/js/data/swcache.js +55 -55
  90. data/assets/js/pwa/app.js +47 -47
  91. data/assets/js/pwa/sw.js +89 -89
  92. data/assets/js/pwa/unregister.js +12 -12
  93. data/assets/robots.txt +10 -10
  94. data/index.html +4 -4
  95. metadata +7 -7
@@ -1,1680 +1,1678 @@
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
+ /* --- 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
+ }
1571
+
1572
+ %profile-ml {
1573
+ margin: 0 auto;
1574
+ }
1575
+
1576
+ #avatar {
1577
+ @extend %profile-ml;
1578
+
1579
+ > a {
1580
+ width: 6.2rem;
1581
+ height: 6.2rem;
1582
+
1583
+ &.mx-auto {
1584
+ }
1585
+ }
1586
+ }
1587
+
1588
+ .site-title {
1589
+ @extend %profile-ml;
1590
+
1591
+ a {
1592
+ font-size: 1.7rem;
1593
+ letter-spacing: 1px;
1594
+ }
1595
+ }
1596
+
1597
+ .site-subtitle {
1598
+ @extend %profile-ml;
1599
+
1600
+ word-spacing: 0;
1601
+ margin-top: 0.3rem;
1602
+ }
1603
+
1604
+ } /* .profile-wrapper (min-width: 1650px) */
1605
+
1606
+ ul {
1607
+ padding-left: 2.5rem;
1608
+
1609
+ > li:last-child {
1610
+ > a {
1611
+ position: static;
1612
+ }
1613
+ }
1614
+
1615
+ .nav-item {
1616
+ text-align: left;
1617
+
1618
+ .nav-link {
1619
+ > span {
1620
+ letter-spacing: 2px;
1621
+ }
1622
+
1623
+ > i {
1624
+ &.unloaded {
1625
+ display: inline-block !important;
1626
+ }
1627
+ }
1628
+ }
1629
+
1630
+ }
1631
+ }
1632
+
1633
+ .sidebar-bottom {
1634
+ padding-left: 3.5rem;
1635
+ width: 100%;
1636
+
1637
+ $icon-block-size: 2rem;
1638
+
1639
+ &.justify-content-center {
1640
+ -webkit-box-pack: start !important;
1641
+ -ms-flex-pack: start !important;
1642
+ justify-content: flex-start !important;
1643
+ }
1644
+
1645
+ > span,
1646
+ > button.mode-toggle,
1647
+ > a {
1648
+ @include ml-mr(0.15rem);
1649
+
1650
+ height: $icon-block-size;
1651
+ margin-bottom: 0.5rem; /* wrap line */
1652
+ }
1653
+
1654
+ i {
1655
+ background-color: var(--sidebar-btn-bg);
1656
+ font-size: 1rem;
1657
+ width: $icon-block-size;
1658
+ height: $icon-block-size;
1659
+ border-radius: 50%;
1660
+ position: relative;
1661
+
1662
+ &::before {
1663
+ position: absolute;
1664
+ top: 50%;
1665
+ left: 50%;
1666
+ transform: translate(-50%, -50%);
1667
+ }
1668
+ }
1669
+
1670
+ .icon-border {
1671
+ top: 0.9rem;
1672
+ }
1673
+
1674
+ } /* .sidebar-bottom */
1675
+
1676
+ } /* #sidebar */
1677
+
1678
+ } /* min-width: 1650px */