jekyll-theme-chirpy-birdly 6.0.2

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