jekyll-theme-chirpy 3.0.2 → 3.0.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 13329c76cf9ab970bac6aed0bbd902c7d22257353ffb69a46d19ce9f8f1e8169
4
- data.tar.gz: be8f748d386097bb471cf4e30e094bfaa8868e7db702a149e7320249605e928b
3
+ metadata.gz: 6d1deb397c90c655e4dd568846ead4b81dbd2df583f824376881ff3742c786fb
4
+ data.tar.gz: 2969990a0e9dd0d6f29c84b0e7ab3524c4826129839e56bbc26f2ffcd4444987
5
5
  SHA512:
6
- metadata.gz: 7c2a11fa5d473856d36e464103d186d33624acbea23139d2a2378032eaf60d52bfc9382ea59bbfe64f44ad2c8a3afb4755370a5bc8a0dbc99af2cf333d4010e8
7
- data.tar.gz: 000eb0bad0b453aadcd5ea4bb629fdaab0a76850368225e6110b341d6bf7348042bcbdd5c6e522487ee7867492e55f9987866fec97e9ec9366545cfc4ffa4479
6
+ metadata.gz: ffbb1857e75f93898afa0460b30b4c7103a21880da05649356a040ca6c5b1aff62a0b9cfcaf381045ca30d7bf06706e21a5775051dfa7083e01b4d9a81746ba1
7
+ data.tar.gz: 52eeecada99b630956f16d643c6d7f05d971828fb1f75c89d74764efe9161a04fc0093f6903e63c44b5fa8ecccc9d8c086ba4007f061e486433ef1e3afbfa49f
data/README.md CHANGED
@@ -14,9 +14,10 @@ A minimal, sidebar, responsive web design Jekyll theme that focuses on text pres
14
14
  ## Table of Contents
15
15
 
16
16
  - [Features](#features)
17
- - [Installation](#installation)
18
17
  - [Prerequisites](#prerequisites)
18
+ - [Installation](#installation)
19
19
  - [Usage](#usage)
20
+ - [Documentation](#documentation)
20
21
  - [Contributing](#contributing)
21
22
  - [Credits](#credits)
22
23
  - [Supporting](#supporting)
@@ -48,8 +49,8 @@ Follow the [Jekyll Docs](https://jekyllrb.com/docs/installation/) to complete th
48
49
 
49
50
  There are two ways to get the theme:
50
51
 
51
- - Install from [RubyGems](https://rubygems.org/gems/jekyll-theme-chirpy)
52
- - Fork from GitHub
52
+ - Install from [RubyGems](https://rubygems.org/gems/jekyll-theme-chirpy)
53
+ - Fork from GitHub
53
54
 
54
55
  ### Install From Rubygems
55
56
 
@@ -81,9 +82,6 @@ $ bundle info --path jekyll-theme-chirpy
81
82
 
82
83
  Or you can [use the starter template][use-starter] to create a Jekyll site to save time copying contents from theme's gem.
83
84
 
84
- [starter]: https://github.com/cotes2020/chirpy-starter
85
- [use-starter]: https://github.com/cotes2020/chirpy-starter/generate
86
-
87
85
  ### Fork From GitHub
88
86
 
89
87
  [Fork **Chirpy**](https://github.com/cotes2020/jekyll-theme-chirpy/fork) from GitHub and clone your fork to local.
@@ -104,16 +102,14 @@ $ bash tools/init.sh
104
102
 
105
103
  What it does is:
106
104
 
107
- 1. Remove some files or directories from your repository:
108
-
109
- - `.travis.yml`
110
- - files under `_posts`
111
- - folder `docs`
105
+ 1. Remove some files or directories from your repository:
106
+ - `.travis.yml`
107
+ - files under `_posts`
108
+ - folder `docs`
112
109
 
113
- 2. If you use the `--no-gh` option, the directory `.github` will be deleted. Otherwise, setup the GitHub Action workflow by removing extension `.hook` of `.github/workflows/pages-deploy.yml.hook`, and then remove the other files and directories in folder `.github`.
114
-
115
- 3. Automatically create a commit to save the changes.
110
+ 2. If you use the `--no-gh` option, the directory `.github` will be deleted. Otherwise, setup the GitHub Action workflow by removing extension `.hook` of `.github/workflows/pages-deploy.yml.hook`, and then remove the other files and directories in folder `.github`.
116
111
 
112
+ 3. Automatically create a commit to save the changes.
117
113
 
118
114
  ## Usage
119
115
 
@@ -121,10 +117,10 @@ What it does is:
121
117
 
122
118
  Update the variables of `_config.yml` as needed. Some of them are typical options:
123
119
 
124
- - `url`
125
- - `avatar`
126
- - `timezone`
127
- - `theme_mode`
120
+ - `url`
121
+ - `avatar`
122
+ - `timezone`
123
+ - `theme_mode`
128
124
 
129
125
  ### Running Local Server
130
126
 
@@ -157,23 +153,20 @@ For security reasons, GitHub Pages build runs on `safe` mode, which restricts us
157
153
 
158
154
  Quickly check the files needed for GitHub Actions build:
159
155
 
160
- 1. Ensure your Jekyll site has the file `/.github/workflows/pages-deploy.yml`. Otherwise, create a new one and fill in the contents of the [workflow file][workflow], and the value of the `on.push.branches` should be the same as your repo's default branch name.
161
-
162
- 2. Ensuer your Jekyll site has file `/tools/test.sh` and `/tools/deploy.sh`. Otherwise, copy them from this repo to your Jekyll site.
163
-
164
- [workflow]:https://github.com/cotes2020/jekyll-theme-chirpy/blob/master/.github/workflows/pages-deploy.yml.hook
156
+ 1. Ensure your Jekyll site has the file `/.github/workflows/pages-deploy.yml`. Otherwise, create a new one and fill in the contents of the [workflow file][workflow], and the value of the `on.push.branches` should be the same as your repo's default branch name.
157
+ 2. Ensuer your Jekyll site has file `/tools/test.sh` and `/tools/deploy.sh`. Otherwise, copy them from this repo to your Jekyll site.
165
158
 
166
159
  Next, rename your repoistory to `<GH-USERNAME>.github.io` on GitHub.
167
160
 
168
161
  And then publish your Jekyll site by:
169
162
 
170
- 1. Push any commit to remote to trigger the GitHub Actions workflow. Once the build is complete and successful, a new remote branch named `gh-pages` will appear to store the built site files.
163
+ 1. Push any commit to remote to trigger the GitHub Actions workflow. Once the build is complete and successful, a new remote branch named `gh-pages` will appear to store the built site files.
171
164
 
172
- 2. Browse to your repo's landing page on GitHub and select the branch `gh-pages` as the [publishing source](https://docs.github.com/en/github/working-with-github-pages/configuring-a-publishing-source-for-your-github-pages-site) throught _Settings_ → _Options_ → _GitHub Pages_:
165
+ 2. Browse to your repo's landing page on GitHub and select the branch `gh-pages` as the [publishing source](https://docs.github.com/en/github/working-with-github-pages/configuring-a-publishing-source-for-your-github-pages-site) throught _Settings_ → _Options_ → _GitHub Pages_:
173
166
 
174
- ![gh-pages-sources](https://cdn.jsdelivr.net/gh/cotes2020/chirpy-images/posts/20190809/gh-pages-sources.png)
167
+ ![gh-pages-sources](https://cdn.jsdelivr.net/gh/cotes2020/chirpy-images/posts/20190809/gh-pages-sources.png)
175
168
 
176
- 3. Visit your website at the address indicated by GitHub.
169
+ 3. Visit your website at the address indicated by GitHub.
177
170
 
178
171
  #### Deploy on Other Platforms
179
172
 
@@ -197,7 +190,6 @@ $ docker run -it --rm \
197
190
 
198
191
  Unless you specified the output path, the generated site files will be placed in folder `_site` of the project's root directory. Now you should upload those files to your web server.
199
192
 
200
-
201
193
  ## Documentation
202
194
 
203
195
  For more details and the better reading experience, please check out the [tutorials on demo site](https://chirpy.cotes.info/categories/tutorial/). In the meanwhile, a copy of the tutorial is also available on the [Wiki](https://github.com/cotes2020/jekyll-theme-chirpy/wiki).
@@ -212,11 +204,9 @@ This theme is mainly built with [Jekyll](https://jekyllrb.com/) ecosystem, [Boot
212
204
 
213
205
  :tada: Thanks to all the volunteers who contributed to this project, their GitHub IDs are on [this list](https://github.com/cotes2020/jekyll-theme-chirpy/graphs/contributors). Also, I won't forget those guys who submitted the issues or unmerged PR because they reported bugs, shared ideas or inspired me to write more readable documentation.
214
206
 
215
- Also, thank [JetBrains][JB] for providing the open source license.
216
-
217
- [![JB-logo](https://cdn.jsdelivr.net/gh/cotes2020/chirpy-images/commons/jetbrains.svg)][JB]
207
+ Also, thank [JetBrains][jb] for providing the open source license.
218
208
 
219
- [JB]:https://www.jetbrains.com/?from=jekyll-theme-chirpy
209
+ [![JB-logo](https://cdn.jsdelivr.net/gh/cotes2020/chirpy-images/commons/jetbrains.svg)][jb]
220
210
 
221
211
  ## Supporting
222
212
 
@@ -225,3 +215,8 @@ If you enjoy this theme or find it helpful, please consider becoming my sponsor,
225
215
  ## License
226
216
 
227
217
  This work is published under [MIT](https://github.com/cotes2020/jekyll-theme-chirpy/blob/master/LICENSE) License.
218
+
219
+ [starter]: https://github.com/cotes2020/chirpy-starter
220
+ [use-starter]: https://github.com/cotes2020/chirpy-starter/generate
221
+ [workflow]:https://github.com/cotes2020/jekyll-theme-chirpy/blob/master/.github/workflows/pages-deploy.yml.hook
222
+ [jb]:https://www.jetbrains.com/?from=jekyll-theme-chirpy
@@ -6,18 +6,23 @@
6
6
  @mixin mode-toggle($dark-mode: false) {
7
7
  @if $dark-mode {
8
8
  @include dark-scheme;
9
+
9
10
  .mode-toggle {
10
11
  transform: rotateY(180deg);
11
12
  }
13
+
12
14
  } @else {
13
15
  @include light-scheme;
16
+
14
17
  .mode-toggle {
15
18
  transform: none;
16
19
  }
17
20
  }
21
+
18
22
  }
19
23
 
20
- html:not([mode]), html[mode=light] {
24
+ html:not([mode]),
25
+ html[mode=light] {
21
26
  @include mode-toggle();
22
27
  }
23
28
 
@@ -26,7 +31,8 @@ html[mode=dark] {
26
31
  }
27
32
 
28
33
  @media (prefers-color-scheme: dark) {
29
- html:not([mode]), html[mode=dark] {
34
+ html:not([mode]),
35
+ html[mode=dark] {
30
36
  @include mode-toggle(true);
31
37
  }
32
38
 
@@ -47,484 +53,124 @@ body {
47
53
  font-family: 'Source Sans Pro', 'Microsoft Yahei', sans-serif;
48
54
  }
49
55
 
50
- /*--- sidebar layout ---*/
51
-
52
- $tab-count: 5 !default;
53
-
54
- $sidebar-display: "sidebar-display";
55
-
56
- #sidebar {
57
- @include pl-pr(0);
58
- position: fixed;
59
- top: 0;
60
- left: 0;
61
- height: 100%;
62
- overflow-y: auto;
63
- width: $sidebar-width-medium;
64
- z-index: 99;
65
- background: var(--sidebar-bg);
66
-
67
- a {
68
- @include sidebar-links;
69
- &:hover {
70
- color: #fff;
71
- @include no-text-decoration;
72
- }
73
- }
74
-
75
- .site-title {
76
- a {
77
- font-weight: 900;
78
- font-size: 1.5rem;
79
- letter-spacing: 0.5px;
80
- }
81
- }
56
+ /* --- Typography --- */
82
57
 
83
- .site-subtitle {
84
- font-size: 95%;
85
- color: #828282;
86
- line-height: 1.2rem;
87
- word-spacing: 1px;
88
- margin: 0.5rem 1.5rem 0.5rem 1.5rem;
89
- min-height: 3rem; // avoid vertical shifting in multi-line words
90
- user-select: none;
91
- }
58
+ h1 {
59
+ @extend %heading;
92
60
 
93
- .nav-link {
94
- border-radius: 0;
95
- font-size: 0.95rem;
96
- font-weight: 600;
97
- letter-spacing: 1px;
98
- display: table-cell;
99
- vertical-align: middle;
100
- }
61
+ font-size: 1.8rem;
62
+ }
101
63
 
102
- .nav-item {
103
- text-align: center;
104
- display: table;
105
- height: $tab-height;
106
- &:hover {
107
- .nav-link {
108
- color: #f8f9facf;
109
- }
110
- }
111
- &.active {
112
- .nav-link {
113
- color: #fcfcfc;
114
- }
115
- }
116
- }
64
+ h2 {
65
+ @extend %heading;
66
+ @extend %section;
67
+ @extend %anchor;
117
68
 
118
- ul {
119
- height: $tab-height * $tab-count;
120
- margin-bottom: 2rem;
121
- padding-left: 0;
69
+ font-size: 1.4rem;
70
+ }
122
71
 
123
- > li {
124
- width: 100%;
72
+ h3 {
73
+ @extend %heading;
74
+ @extend %section;
75
+ @extend %anchor;
125
76
 
126
- &:last-child {
127
- $cursor-width: 3px;
77
+ font-size: 1.25rem;
78
+ }
128
79
 
129
- > a {
130
- position: relative;
131
- left: $cursor-width / 2;
132
- width: 100%;
133
- }
80
+ h4 {
81
+ @extend %heading;
82
+ @extend %section;
83
+ @extend %anchor;
134
84
 
135
- &::after { // the cursor
136
- display: table;
137
- visibility: hidden;
138
- content: "";
139
- position: relative;
140
- right: 1px;
141
- width: $cursor-width;
142
- height: $tab-cursor-height;
143
- border-radius: 1px;
144
- background-color: var(--nav-cursor-color);
145
- pointer-events: none;
146
- }
147
- }
148
- } // li
85
+ font-size: 1.15rem;
86
+ }
149
87
 
150
- @mixin fix-cursor($top) {
151
- top: $top;
152
- visibility: visible;
153
- }
88
+ h5 {
89
+ @extend %heading;
90
+ @extend %section;
91
+ @extend %anchor;
154
92
 
155
- @for $i from 1 through $tab-count {
156
- $offset: $tab-count - $i;
157
- $top: -$offset * $tab-height + $tab-cursor-height / 2;
93
+ font-size: 1.1rem;
94
+ }
158
95
 
159
- @if $i < $tab-count {
160
- > li.active:nth-child(#{$i}),
161
- > li.nav-item:nth-child(#{$i}):hover {
162
- ~li:last-child::after {
163
- @include fix-cursor($top);
164
- }
165
- }
166
- } @else {
167
- > li.active:nth-child(#{$i}):last-child::after,
168
- > li.nav-item:nth-child(#{$i}):last-child:hover::after {
169
- @include fix-cursor($top);
170
- }
171
- }
96
+ ol,
97
+ ul {
98
+ ol,
99
+ ul {
100
+ margin-bottom: 1rem;
101
+ }
102
+ }
172
103
 
173
- } // @for
104
+ a {
105
+ @extend %link-color;
106
+ }
174
107
 
175
- } // ul
108
+ img {
109
+ max-width: 100%;
110
+ }
176
111
 
177
- .sidebar-bottom {
178
- font-size: 1.2rem;
179
- margin-bottom: 2.1rem;
112
+ blockquote {
113
+ border-left: 5px solid var(--blockquote-border-color);
114
+ padding-left: 1rem;
115
+ color: var(--blockquote-text-color);
116
+ }
180
117
 
181
- @include ml-mr(auto);
182
- @include pl-pr(1rem);
118
+ kbd {
119
+ margin: 0 0.3rem;
120
+ }
183
121
 
184
- %icon {
185
- width: 2.4rem;
186
- text-align: center;
187
- }
122
+ footer {
123
+ position: absolute;
124
+ bottom: 0;
125
+ padding: 0 1rem;
126
+ height: $footer-height;
127
+ font-size: 0.8rem;
128
+ color: #7a7b7d;
129
+ background-color: var(--footer-bg-color);
188
130
 
189
- a {
190
- @extend %icon;
191
- }
131
+ > div.d-flex {
132
+ line-height: 1.2rem;
133
+ width: 95%;
134
+ max-width: 1045px;
135
+ border-top: 1px solid var(--main-border-color);
136
+ margin-bottom: 1rem;
192
137
 
193
- a:hover, #mode-toggle-wrapper > i:hover {
194
- color: #fff;
138
+ > div {
139
+ width: 350px;
195
140
  }
141
+ }
196
142
 
197
- #mode-toggle-wrapper {
198
- @extend %icon;
199
-
200
- i {
201
- @include sidebar-links;
202
- margin: 0;
203
- font-size: 1.05rem;
204
- text-align: center;
205
- position: relative;
206
- bottom: 1px;
207
- }
208
-
143
+ a {
144
+ color: var(--footer-link);
145
+ &:link {
146
+ @include no-text-decoration;
209
147
  }
148
+ &:hover {
149
+ @extend %link-hover;
210
150
 
211
- .icon-border {
212
- background-color: #525354;
213
- content: "";
214
- width: 3px;
215
- height: 3px;
216
- border-radius: 50%;
217
- position: relative;
218
- top: 12px;
151
+ @include no-text-decoration;
219
152
  }
220
-
221
- } // .sidebar-bottom
222
-
223
- } // #sidebar
224
-
225
- @media (hover: hover) {
226
- #sidebar ul > li:last-child::after {
227
- -webkit-transition: top 0.5s ease;
228
- -moz-transition: top 0.5s ease;
229
- -o-transition: top 0.5s ease;
230
- transition: top 0.5s ease;
153
+ }
154
+ .footer-right {
155
+ text-align: right;
231
156
  }
232
157
  }
233
158
 
234
- .profile-wrapper {
235
- margin-top: 2rem;
236
- width: 100%;
237
- }
159
+ /* --- Panels --- */
238
160
 
239
- #avatar {
240
- > a {
241
- display: block;
242
- width: 6rem;
243
- height: 6rem;
244
- border-radius: 50%;
245
- border: 2px solid #b6b6b6;
246
- overflow: hidden;
247
- transform: translateZ(0); // fixed the zoom in Safari
248
- -webkit-transition: border-color 0.35s ease-in-out;
249
- -moz-transition: border-color 0.35s ease-in-out;
250
- transition: border-color 0.35s ease-in-out;
251
- }
161
+ .access {
162
+ top: 2rem;
163
+ transition: top 0.2s ease-in-out;
164
+ margin-right: 1.5rem;
165
+ margin-top: 3rem;
166
+ margin-bottom: 4rem;
252
167
 
253
- &:hover > a {
254
- border-color: #fff;
168
+ &:only-child {
169
+ position: -webkit-sticky; /* Safari */
170
+ position: sticky;
255
171
  }
256
-
257
- img {
258
- width: 100%;
259
- height: 100%;
260
- -webkit-transition: transform 0.5s;
261
- -moz-transition: transform 0.5s;
262
- transition: transform 0.5s;
263
-
264
- &:hover {
265
- -ms-transform: scale(1.2);
266
- -moz-transform: scale(1.2);
267
- -webkit-transform: scale(1.2);
268
- transform: scale(1.2);
269
- }
270
- }
271
- } // #avatar
272
-
273
- #search-result-wrapper {
274
- display: none;
275
- position: fixed;
276
- top: 0;
277
- padding-top: 3rem;
278
- height: 100%;
279
- overflow: auto;
280
- .post-content {
281
- margin-top: 2rem;
282
- }
283
- }
284
-
285
- /*--- top-bar ---*/
286
-
287
- #topbar-wrapper {
288
- height: $topbar-height;
289
- position: fixed;
290
- top: 0;
291
- left: 260px; /* same as sidebar width */
292
- right: 0;
293
- transition: top 0.2s ease-in-out;
294
- z-index: 50;
295
- border-bottom: 1px solid rgba(0, 0, 0, 0.07);
296
- box-shadow: 0 3px 5px 0 rgba(0, 0, 0, 0.05);
297
- background-color: var(--topbar-wrapper-bg);
298
- }
299
-
300
- #topbar i { // icons
301
- color: #999;
302
- }
303
-
304
- #breadcrumb {
305
- font-size: 1rem;
306
- color: gray;
307
- padding-left: 0.5rem;
308
- a:hover {
309
- @extend %link-hover;
310
- }
311
- span {
312
- &:not(:last-child) {
313
- &::after {
314
- content: "›";
315
- padding: 0 0.3rem;
316
- }
317
- }
318
- }
319
- }
320
-
321
- #sidebar-trigger,
322
- #search-trigger {
323
- display: none;
324
- }
325
-
326
- #search-wrapper {
327
- display: flex;
328
- width: 95%;
329
- border-radius: 1rem;
330
- border: 1px solid var(--search-wrapper-bg);
331
- background: var(--search-wrapper-bg);
332
- padding: 0 0.5rem;
333
- i {
334
- z-index: 2;
335
- font-size: 0.9rem;
336
- color: var(--search-icon-color);
337
- }
338
- .fa-times-circle { /* button 'clean up' */
339
- visibility: hidden;
340
- }
341
- }
342
-
343
- #search-cancel { /* 'Cancel' link */
344
- color: var(--link-color);
345
- margin-left: 1rem;
346
- display: none;
347
- }
348
-
349
- #search-input {
350
- background: center;
351
- border: 0;
352
- border-radius: 0;
353
- padding: 0.18rem 0.3rem;
354
- color: var(--text-color);
355
- font-size: 95%;
356
- }
357
-
358
- #search-input {
359
- &:focus {
360
- box-shadow: none;
361
- background: center;
362
- &.form-control {
363
- &::-webkit-input-placeholder { @include input-placeholder }
364
- &::-moz-placeholder { @include input-placeholder }
365
- &:-ms-input-placeholder { @include input-placeholder }
366
- &::placeholder { @include input-placeholder }
367
- }
368
- }
369
- }
370
-
371
- #search-hints {
372
- display: none;
373
- .post-tag {
374
- display: inline-block;
375
- line-height: 1rem;
376
- font-size: 1rem;
377
- background: var(--search-tag-bg);
378
- border: none;
379
- padding: 0.5rem;
380
- margin: 0 1rem 1rem 0;
381
- &::before {
382
- content: "#";
383
- color: var(--text-muted-color);
384
- padding-right: 0.2rem;
385
- }
386
- }
387
- }
388
-
389
- #search-results {
390
- padding-bottom: 6rem;
391
- a {
392
- @extend %link-color;
393
- @extend %no-bottom-border;
394
- @extend %heading;
395
- font-size: 1.4rem;
396
- line-height: 2.5rem;
397
- &:hover {
398
- @extend %link-hover;
399
- }
400
- }
401
- > div {
402
- max-width: 100%;
403
- &:not(:last-child) {
404
- margin-bottom: 1rem;
405
- }
406
- i { // icons
407
- color: #818182;
408
- margin-right: 0.15rem;
409
- font-size: 80%;
410
- }
411
- > p {
412
- overflow: hidden;
413
- text-overflow: ellipsis;
414
- display: -webkit-box;
415
- -webkit-line-clamp: 3;
416
- -webkit-box-orient: vertical;
417
- }
418
- }
419
- }
420
-
421
- #topbar-title {
422
- display: none;
423
- font-size: 1.1rem;
424
- font-weight: 600;
425
- font-family: sans-serif;
426
- color: var(--topbar-text-color);
427
- text-align: center;
428
- width: 70%;
429
- overflow: hidden;
430
- text-overflow: ellipsis;
431
- word-break: keep-all;
432
- white-space: nowrap;
433
- }
434
-
435
- #mask {
436
- display: none;
437
- position: fixed;
438
- top: 0;
439
- right: 0;
440
- bottom: 0;
441
- left: 0;
442
- height: 100%;
443
- width: 100%;
444
- z-index: 1;
445
- @at-root [#{$sidebar-display}] & {
446
- display: block!important;
447
- }
448
- }
449
-
450
- /*--- main wrapper ---*/
451
-
452
- #main-wrapper {
453
- background-color: var(--main-wrapper-bg);
454
- position: relative;
455
- min-height: 100vh;
456
- padding-bottom: $footer-height;
457
- @include pl-pr(0);
458
- }
459
-
460
- #main > div.row:first-child > div {
461
- &:nth-child(1), &:nth-child(2) {
462
- margin-top: $topbar-height; /* same as the height of topbar */
463
- }
464
- &:first-child {
465
- /* 3rem for topbar, 6rem for footer */
466
- min-height: calc(100vh - #{$topbar-height} - #{$footer-height} - #{$post-extend-min-height});
467
- }
468
- }
469
-
470
- #post-wrapper {
471
- min-height: calc(100vh - #{$topbar-height}
472
- - #{$footer-height} - #{$post-extend-min-height})!important;
473
- }
474
-
475
- #topbar-wrapper.row,
476
- #main>.row,
477
- #search-result-wrapper>.row {
478
- @include ml-mr(0);
479
- }
480
-
481
- footer {
482
- position: absolute;
483
- bottom: 0;
484
- padding: 0 1rem;
485
- height: $footer-height;
486
- font-size: 0.8rem;
487
- color: #7a7b7d;
488
- background-color: var(--footer-bg-color);
489
- > div.d-flex {
490
- line-height: 1.2rem;
491
- width: 95%;
492
- max-width: 1045px;
493
- border-top: 1px solid var(--main-border-color);
494
- margin-bottom: 1rem;
495
- > div {
496
- width: 350px;
497
- }
498
- }
499
- a {
500
- color: var(--footer-link);
501
- &:link {
502
- @include no-text-decoration;
503
- }
504
- &:hover {
505
- @extend %link-hover;
506
- @include no-text-decoration;
507
- }
508
- }
509
- .footer-right {
510
- text-align: right;
511
- }
512
- }
513
-
514
- /*--- Panels ---*/
515
-
516
- .access {
517
- top: 2rem;
518
- transition: top 0.2s ease-in-out;
519
- margin-right: 1.5rem;
520
- margin-top: 3rem;
521
- margin-bottom: 4rem;
522
- &:only-child {
523
- position: -webkit-sticky; /* Safari */
524
- position: sticky;
525
- }
526
- &.topbar-down {
527
- top: 6rem;
172
+ &.topbar-down {
173
+ top: 6rem;
528
174
  }
529
175
  > div {
530
176
  padding-left: 1rem;
@@ -541,11 +187,11 @@ footer {
541
187
  }
542
188
  }
543
189
 
544
-
545
190
  #access-tags {
546
191
  > div.post-content > div {
547
192
  max-width: 80%;
548
193
  }
194
+
549
195
  .post-tag {
550
196
  display: inline-block;
551
197
  line-height: 1rem;
@@ -565,106 +211,28 @@ footer {
565
211
  }
566
212
 
567
213
  #access-lastmod {
568
- ul {
569
- > li {
570
- height: 1.8rem;
571
- overflow: hidden;
572
- text-overflow: ellipsis;
573
- display: -webkit-box;
574
- -webkit-line-clamp: 1;
575
- -webkit-box-orient: vertical;
576
- list-style: none;
577
- }
578
- a {
579
- color: #6c757d;
580
- }
214
+
215
+ li {
216
+ height: 1.8rem;
217
+ overflow: hidden;
218
+ text-overflow: ellipsis;
219
+ display: -webkit-box;
220
+ -webkit-line-clamp: 1;
221
+ -webkit-box-orient: vertical;
222
+ list-style: none;
581
223
  }
582
224
 
583
225
  a {
584
- @extend %no-bottom-border;
585
226
  &:hover {
586
227
  @extend %link-hover;
587
228
  }
229
+
230
+ @extend %no-bottom-border;
231
+
232
+ color: #6c757d;
588
233
  }
589
- }
590
234
 
591
- /*--- button back-to-top ---*/
592
-
593
- #back-to-top {
594
- display: none;
595
- z-index: 1;
596
- cursor: pointer;
597
- position: fixed;
598
- background: var(--button-bg);
599
- color: var(--btn-backtotop-color);
600
- height: 2.6em;
601
- width: 2.7em;
602
- border-radius: 50%;
603
- border: 1px solid var(--btn-backtotop-border-color);
604
- transition: 0.2s ease-out;
605
- -webkit-transition: 0.2s ease-out;
606
- }
607
-
608
- #back-to-top:hover {
609
- transform: translate3d(0, -5px, 0);
610
- -webkit-transform: translate3d(0, -5px, 0);
611
- }
612
-
613
- /*--- Typography ---*/
614
-
615
- h1 {
616
- @extend %heading;
617
- font-size: 1.8rem;
618
- }
619
-
620
- h2 {
621
- @extend %heading;
622
- @extend %section;
623
- @extend %anchor;
624
- font-size: 1.4rem;
625
- }
626
-
627
- h3 {
628
- @extend %heading;
629
- @extend %section;
630
- @extend %anchor;
631
- font-size: 1.25rem;
632
- }
633
-
634
- h4 {
635
- @extend %heading;
636
- @extend %section;
637
- @extend %anchor;
638
- font-size: 1.15rem;
639
- }
640
-
641
- h5 {
642
- @extend %heading;
643
- @extend %section;
644
- @extend %anchor;
645
- font-size: 1.1rem;
646
- }
647
-
648
- ol, ul {
649
- ol, ul {
650
- margin-bottom: 1rem;
651
- }
652
- }
653
-
654
- blockquote {
655
- border-left: 5px solid var(--blockquote-border-color);
656
- padding-left: 1rem;
657
- color: var(--blockquote-text-color);
658
- .post-content & {
659
- a {
660
- color: var(--link-color);
661
- }
662
- }
663
- }
664
-
665
- kbd {
666
- margin: 0 0.3rem;
667
- }
235
+ }
668
236
 
669
237
  .footnotes > ol {
670
238
  padding-left: 2rem;
@@ -678,11 +246,12 @@ kbd {
678
246
  margin-top: 0;
679
247
  margin-bottom: 0;
680
248
  }
681
- &:target:not([scroll-focus]), &[scroll-focus=true] > p { // [scroll-focus] added by `smooth-scroll.js`
249
+ // [scroll-focus] added by `smooth-scroll.js`
250
+ &:target:not([scroll-focus]),
251
+ &[scroll-focus=true] > p {
682
252
  background-color: var(--footnote-target-bg);
683
253
  width: fit-content;
684
- -webkit-transition: background-color 1.5s ease-in-out;
685
- /* Safari prior 6.1 */
254
+ -webkit-transition: background-color 1.5s ease-in-out; // Safari prior 6.1
686
255
  transition: background-color 1.5s ease-in-out;
687
256
  }
688
257
  }
@@ -692,11 +261,15 @@ kbd {
692
261
  @at-root a#{&} {
693
262
  @include ml-mr(1px);
694
263
  @include pl-pr(2px);
264
+
695
265
  border-bottom-style: none !important;
696
- -webkit-transition: background-color 1.5s ease-in-out; /* Safari prior 6.1 */
266
+ -webkit-transition: background-color 1.5s ease-in-out; // Safari prior 6.1
697
267
  transition: background-color 1.5s ease-in-out;
698
268
  }
699
- @at-root sup:target:not([scroll-focus]), sup[scroll-focus=true] > a#{&} { // [scroll-focus] added by `smooth-scroll.js`
269
+
270
+ // [scroll-focus] added by `smooth-scroll.js`
271
+ @at-root sup:target:not([scroll-focus]),
272
+ sup[scroll-focus=true] > a#{&} {
700
273
  background-color: var(--footnote-target-bg);
701
274
  }
702
275
  }
@@ -712,34 +285,6 @@ kbd {
712
285
  }
713
286
  }
714
287
 
715
- a {
716
- p > & {
717
- @extend %link-color;
718
- }
719
- span > & {
720
- @extend %link-color;
721
- }
722
- .post-preview & {
723
- @extend %link-color;
724
- &:hover {
725
- @extend %link-hover;
726
- }
727
- }
728
- .categories &,
729
- #page-category &,
730
- #tags &,
731
- #archives & {
732
- &:not(:hover) {
733
- @extend %no-bottom-border;
734
- }
735
- }
736
-
737
- } // a
738
-
739
- img {
740
- max-width: 100%;
741
- }
742
-
743
288
  .post {
744
289
  h1 {
745
290
  margin-top: 3rem;
@@ -755,8 +300,7 @@ img {
755
300
  }
756
301
  }
757
302
 
758
-
759
- /*--- Begin of Markdown table style ---*/
303
+ /* --- Begin of Markdown table style --- */
760
304
 
761
305
  .table-wrapper { // it will be created by Liquid
762
306
  overflow-x: auto;
@@ -776,15 +320,13 @@ img {
776
320
 
777
321
  tbody {
778
322
  tr {
323
+ border-bottom: 1px solid var(--tb-border-color);
779
324
  &:nth-child(2n) {
780
325
  background-color: var(--tb-even-bg);
781
326
  }
782
327
  &:nth-child(2n + 1) {
783
328
  background-color: var(--tb-odd-bg);
784
329
  }
785
- & {
786
- border-bottom: 1px solid var(--tb-border-color);
787
- }
788
330
  td {
789
331
  @extend %table-cell;
790
332
  }
@@ -793,8 +335,7 @@ img {
793
335
  }
794
336
  }
795
337
 
796
-
797
- /*--- post ---*/
338
+ /* --- post --- */
798
339
 
799
340
  .pageviews .fa-spinner {
800
341
  font-size: 80%;
@@ -839,7 +380,6 @@ img {
839
380
  @mixin img($caption: false) {
840
381
 
841
382
  > img[data-src] {
842
-
843
383
  @if $caption {
844
384
  @include img-caption;
845
385
  }
@@ -858,6 +398,10 @@ img {
858
398
  }
859
399
 
860
400
  a {
401
+ blockquote & {
402
+ color: var(--link-color);
403
+ }
404
+
861
405
  &:not(.img-hyperlink) {
862
406
  @extend %link-color;
863
407
  @extend %link-underline;
@@ -865,172 +409,659 @@ img {
865
409
  @extend %link-hover;
866
410
  }
867
411
  }
412
+
868
413
  &.img-hyperlink {
869
414
  @include img;
870
415
  @include img-caption;
871
416
  }
872
417
  }
873
418
 
874
- > p {
875
- > img[data-src]:not(.normal):not(.left):not(.right) {
876
- @include align-center;
419
+ > p {
420
+ > img[data-src]:not(.normal):not(.left):not(.right) {
421
+ @include align-center;
422
+ }
423
+ }
424
+
425
+ p {
426
+ @include img(true);
427
+
428
+ font-size: 1.08rem;
429
+ }
430
+
431
+ ul {
432
+ // attribute 'hide-bullet' was added by liquid
433
+ .task-list-item[hide-bullet] {
434
+ list-style-type: none;
435
+
436
+ > i { // checkbox icon
437
+ margin: 0 0.4rem 0.2rem -1.4rem;
438
+ vertical-align: middle;
439
+ color: var(--checkbox-color);
440
+ &.checked {
441
+ color: var(--checkbox-checked-color);
442
+ }
443
+ }
444
+
445
+ }
446
+
447
+ input[type=checkbox] {
448
+ margin: 0 0.5rem 0.2rem -1.3rem;
449
+ vertical-align: middle;
450
+ }
451
+
452
+ } // ul
453
+
454
+ > ol,
455
+ > ul {
456
+ padding-left: 2rem;
457
+
458
+ li {
459
+ + li {
460
+ margin-top: 0.3rem;
461
+ }
462
+
463
+ ol,
464
+ ul { // sub list
465
+ padding-left: 2rem;
466
+ margin-top: 0.3rem;
467
+ }
468
+ }
469
+
470
+ }
471
+
472
+ > ol {
473
+ li {
474
+ padding-left: 0.25em;
475
+ }
476
+ }
477
+
478
+ dl > dd {
479
+ margin-left: 1rem;
480
+ }
481
+
482
+ } // .post-content
483
+
484
+ .tag:hover {
485
+ @extend %tag-hover;
486
+ }
487
+
488
+ .post-tag {
489
+ display: inline-block;
490
+ min-width: 2rem;
491
+ text-align: center;
492
+ background: var(--tag-bg);
493
+ border-radius: 0.3rem;
494
+ padding: 0 0.4rem;
495
+ color: inherit;
496
+ line-height: 1.3rem;
497
+
498
+ &:not(:last-child) {
499
+ margin-right: 0.2rem;
500
+ }
501
+
502
+ &:hover {
503
+ @extend %tag-hover;
504
+
505
+ border-bottom: none;
506
+ text-decoration: none;
507
+ color: #d2603a;
508
+ }
509
+ }
510
+
511
+ /* --- buttons --- */
512
+ .btn-lang {
513
+ border: 1px solid !important;
514
+ padding: 1px 3px;
515
+ border-radius: 3px;
516
+ color: var(--link-color);
517
+ &:focus {
518
+ box-shadow: none;
519
+ }
520
+ }
521
+
522
+ /* --- Effects classes --- */
523
+
524
+ .loaded {
525
+ display: block !important;
526
+
527
+ @at-root .d-flex#{&} {
528
+ display: flex !important;
529
+ }
530
+ }
531
+
532
+ .unloaded {
533
+ display: none !important;
534
+ }
535
+
536
+ .visible {
537
+ visibility: visible !important;
538
+ }
539
+
540
+ .hidden {
541
+ visibility: hidden !important;
542
+ }
543
+
544
+ .flex-grow-1 {
545
+ -ms-flex-positive: 1 !important;
546
+ flex-grow: 1 !important;
547
+ }
548
+
549
+ .btn-box-shadow {
550
+ box-shadow: 0 0 8px 0 var(--btn-box-shadow) !important;
551
+ }
552
+
553
+ .topbar-up {
554
+ top: -3rem !important; /* same as topbar height. */
555
+ }
556
+
557
+ .no-text-decoration {
558
+ @include no-text-decoration;
559
+ }
560
+
561
+ .tooltip-inner { /* Overrided BS4 Tooltip */
562
+ font-size: 0.7rem;
563
+ max-width: 220px;
564
+ text-align: left;
565
+ }
566
+
567
+ .disabled {
568
+ color: rgb(206, 196, 196);
569
+ pointer-events: auto;
570
+ cursor: not-allowed;
571
+ }
572
+
573
+ .hide-border-bottom {
574
+ border-bottom: none !important;
575
+ }
576
+
577
+ .input-focus {
578
+ box-shadow: none;
579
+ border-color: var(--input-focus-border-color) !important;
580
+ background: center !important;
581
+ transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out;
582
+ }
583
+
584
+ /* --- sidebar layout --- */
585
+
586
+ $tab-count: 5 !default;
587
+
588
+ $sidebar-display: "sidebar-display";
589
+
590
+ #sidebar {
591
+ @include pl-pr(0);
592
+
593
+ position: fixed;
594
+ top: 0;
595
+ left: 0;
596
+ height: 100%;
597
+ overflow-y: auto;
598
+ width: $sidebar-width-medium;
599
+ z-index: 99;
600
+ background: var(--sidebar-bg);
601
+
602
+ a {
603
+ @include sidebar-links;
604
+
605
+ &:hover {
606
+ @include no-text-decoration;
607
+
608
+ color: #fff;
609
+ }
610
+ }
611
+
612
+ #avatar {
613
+ &:hover > a {
614
+ border-color: #fff;
615
+ }
616
+
617
+ > a {
618
+ display: block;
619
+ width: 6rem;
620
+ height: 6rem;
621
+ border-radius: 50%;
622
+ border: 2px solid #b6b6b6;
623
+ overflow: hidden;
624
+ transform: translateZ(0); // fixed the zoom in Safari
625
+ -webkit-transition: border-color 0.35s ease-in-out;
626
+ -moz-transition: border-color 0.35s ease-in-out;
627
+ transition: border-color 0.35s ease-in-out;
628
+ }
629
+
630
+ img {
631
+ width: 100%;
632
+ height: 100%;
633
+ -webkit-transition: transform 0.5s;
634
+ -moz-transition: transform 0.5s;
635
+ transition: transform 0.5s;
636
+
637
+ &:hover {
638
+ -ms-transform: scale(1.2);
639
+ -moz-transform: scale(1.2);
640
+ -webkit-transform: scale(1.2);
641
+ transform: scale(1.2);
642
+ }
643
+ }
644
+ } // #avatar
645
+
646
+ .site-title {
647
+ a {
648
+ font-weight: 900;
649
+ font-size: 1.5rem;
650
+ letter-spacing: 0.5px;
651
+ }
652
+ }
653
+
654
+ .site-subtitle {
655
+ font-size: 95%;
656
+ color: #828282;
657
+ line-height: 1.2rem;
658
+ word-spacing: 1px;
659
+ margin: 0.5rem 1.5rem 0.5rem 1.5rem;
660
+ min-height: 3rem; // avoid vertical shifting in multi-line words
661
+ user-select: none;
662
+ }
663
+
664
+ .nav-link {
665
+ border-radius: 0;
666
+ font-size: 0.95rem;
667
+ font-weight: 600;
668
+ letter-spacing: 1px;
669
+ display: table-cell;
670
+ vertical-align: middle;
671
+ }
672
+
673
+ .nav-item {
674
+ text-align: center;
675
+ display: table;
676
+ height: $tab-height;
677
+ &:hover {
678
+ .nav-link {
679
+ color: #f8f9facf;
680
+ }
681
+ }
682
+ &.active {
683
+ .nav-link {
684
+ color: #fcfcfc;
685
+ }
686
+ }
687
+ }
688
+
689
+ ul {
690
+ height: $tab-height * $tab-count;
691
+ margin-bottom: 2rem;
692
+ padding-left: 0;
693
+
694
+ li {
695
+ width: 100%;
696
+
697
+ &:last-child {
698
+ $cursor-width: 3px;
699
+
700
+ a {
701
+ position: relative;
702
+ left: $cursor-width / 2;
703
+ width: 100%;
704
+ }
705
+
706
+ &::after { // the cursor
707
+ display: table;
708
+ visibility: hidden;
709
+ content: "";
710
+ position: relative;
711
+ right: 1px;
712
+ width: $cursor-width;
713
+ height: $tab-cursor-height;
714
+ border-radius: 1px;
715
+ background-color: var(--nav-cursor-color);
716
+ pointer-events: none;
717
+ }
718
+ }
719
+ } // li
720
+
721
+ @mixin fix-cursor($top) {
722
+ top: $top;
723
+ visibility: visible;
724
+ }
725
+
726
+ @for $i from 1 through $tab-count {
727
+ $offset: $tab-count - $i;
728
+ $top: -$offset * $tab-height + $tab-cursor-height / 2;
729
+
730
+ @if $i < $tab-count {
731
+ > li.active:nth-child(#{$i}),
732
+ > li.nav-item:nth-child(#{$i}):hover {
733
+ ~li:last-child::after {
734
+ @include fix-cursor($top);
735
+ }
736
+ }
737
+ } @else {
738
+ > li.active:nth-child(#{$i}):last-child::after,
739
+ > li.nav-item:nth-child(#{$i}):last-child:hover::after {
740
+ @include fix-cursor($top);
741
+ }
742
+ }
743
+
744
+ } // @for
745
+
746
+ } // ul
747
+
748
+ .sidebar-bottom {
749
+ font-size: 1.2rem;
750
+ margin-bottom: 2.1rem;
751
+
752
+ @include ml-mr(auto);
753
+ @include pl-pr(1rem);
754
+
755
+ %icon {
756
+ width: 2.4rem;
757
+ text-align: center;
758
+ }
759
+
760
+ a {
761
+ @extend %icon;
762
+ }
763
+
764
+ #mode-toggle-wrapper {
765
+ @extend %icon;
766
+
767
+ i {
768
+ @include sidebar-links;
769
+
770
+ margin: 0;
771
+ font-size: 1.05rem;
772
+ text-align: center;
773
+ position: relative;
774
+ bottom: 1px;
775
+ }
776
+
777
+ }
778
+
779
+ .icon-border {
780
+ background-color: #525354;
781
+ content: "";
782
+ width: 3px;
783
+ height: 3px;
784
+ border-radius: 50%;
785
+ position: relative;
786
+ top: 12px;
787
+ }
788
+
789
+ a:hover,
790
+ #mode-toggle-wrapper i:hover {
791
+ color: #fff;
792
+ }
793
+
794
+ } // .sidebar-bottom
795
+
796
+ } // #sidebar
797
+
798
+ @media (hover: hover) {
799
+ #sidebar ul > li:last-child::after {
800
+ -webkit-transition: top 0.5s ease;
801
+ -moz-transition: top 0.5s ease;
802
+ -o-transition: top 0.5s ease;
803
+ transition: top 0.5s ease;
804
+ }
805
+ }
806
+
807
+ .profile-wrapper {
808
+ margin-top: 2rem;
809
+ width: 100%;
810
+ }
811
+
812
+ #search-result-wrapper {
813
+ display: none;
814
+ position: fixed;
815
+ top: 0;
816
+ padding-top: 3rem;
817
+ height: 100%;
818
+ overflow: auto;
819
+ .post-content {
820
+ margin-top: 2rem;
821
+ }
822
+ }
823
+
824
+ /* --- top-bar --- */
825
+
826
+ #topbar-wrapper {
827
+ height: $topbar-height;
828
+ position: fixed;
829
+ top: 0;
830
+ left: 260px; /* same as sidebar width */
831
+ right: 0;
832
+ transition: top 0.2s ease-in-out;
833
+ z-index: 50;
834
+ border-bottom: 1px solid rgba(0, 0, 0, 0.07);
835
+ box-shadow: 0 3px 5px 0 rgba(0, 0, 0, 0.05);
836
+ background-color: var(--topbar-wrapper-bg);
837
+ }
838
+
839
+ #topbar {
840
+ i { // icons
841
+ color: #999;
842
+ }
843
+
844
+ #breadcrumb {
845
+ font-size: 1rem;
846
+ color: gray;
847
+ padding-left: 0.5rem;
848
+
849
+ a:hover {
850
+ @extend %link-hover;
851
+ }
852
+
853
+ span {
854
+ &:not(:last-child) {
855
+ &::after {
856
+ content: "›";
857
+ padding: 0 0.3rem;
858
+ }
859
+ }
860
+ }
861
+ }
862
+ } // #topbar
863
+
864
+ #sidebar-trigger,
865
+ #search-trigger {
866
+ display: none;
867
+ }
868
+
869
+ #search-wrapper {
870
+ display: flex;
871
+ width: 95%;
872
+ border-radius: 1rem;
873
+ border: 1px solid var(--search-wrapper-bg);
874
+ background: var(--search-wrapper-bg);
875
+ padding: 0 0.5rem;
876
+ i {
877
+ z-index: 2;
878
+ font-size: 0.9rem;
879
+ color: var(--search-icon-color);
880
+ }
881
+ .fa-times-circle { /* button 'clean up' */
882
+ visibility: hidden;
883
+ }
884
+ }
885
+
886
+ #search-cancel { /* 'Cancel' link */
887
+ color: var(--link-color);
888
+ margin-left: 1rem;
889
+ display: none;
890
+ }
891
+
892
+ #search-input {
893
+ background: center;
894
+ border: 0;
895
+ border-radius: 0;
896
+ padding: 0.18rem 0.3rem;
897
+ color: var(--text-color);
898
+ font-size: 95%;
899
+
900
+ &:focus {
901
+ box-shadow: none;
902
+ background: center;
903
+ &.form-control {
904
+ &::-webkit-input-placeholder { @include input-placeholder; }
905
+ &::-moz-placeholder { @include input-placeholder; }
906
+ &:-ms-input-placeholder { @include input-placeholder; }
907
+ &::placeholder { @include input-placeholder; }
877
908
  }
878
909
  }
910
+ }
879
911
 
880
- p {
881
- font-size: 1.08rem;
882
- @include img(true);
883
- }
884
-
885
- ul {
886
- // attribute 'hide-bullet' was added by liquid
887
- .task-list-item[hide-bullet] {
888
- list-style-type: none;
889
-
890
- > i { // checkbox icon
891
- margin: 0 0.4rem 0.2rem -1.4rem;
892
- vertical-align: middle;
893
- color: var(--checkbox-color);
894
- &.checked {
895
- color: var(--checkbox-checked-color);
896
- }
897
- }
912
+ #search-hints {
913
+ display: none;
898
914
 
915
+ .post-tag {
916
+ display: inline-block;
917
+ line-height: 1rem;
918
+ font-size: 1rem;
919
+ background: var(--search-tag-bg);
920
+ border: none;
921
+ padding: 0.5rem;
922
+ margin: 0 1rem 1rem 0;
923
+ &::before {
924
+ content: "#";
925
+ color: var(--text-muted-color);
926
+ padding-right: 0.2rem;
899
927
  }
928
+ }
929
+ }
900
930
 
901
- input[type=checkbox] {
902
- margin: 0 0.5rem 0.2rem -1.3rem;
903
- vertical-align: middle;
931
+ #search-results {
932
+ padding-bottom: 6rem;
933
+ a {
934
+ &:hover {
935
+ @extend %link-hover;
904
936
  }
905
937
 
906
- } // ul
938
+ @extend %link-color;
939
+ @extend %no-bottom-border;
940
+ @extend %heading;
907
941
 
908
- > ol, > ul {
909
- padding-left: 2rem;
942
+ font-size: 1.4rem;
943
+ line-height: 2.5rem;
944
+ }
910
945
 
911
- li {
912
- + li {
913
- margin-top: 0.3rem;
914
- }
946
+ > div {
947
+ max-width: 100%;
915
948
 
916
- ol, ul { // sub list
917
- padding-left: 2rem;
918
- margin-top: 0.3rem;
919
- }
949
+ &:not(:last-child) {
950
+ margin-bottom: 1rem;
920
951
  }
921
952
 
922
- }
923
-
924
- > ol {
925
- li {
926
- padding-left: 0.25em;
953
+ i { // icons
954
+ color: #818182;
955
+ margin-right: 0.15rem;
956
+ font-size: 80%;
927
957
  }
928
- }
929
958
 
930
- dl > dd {
931
- margin-left: 1rem;
959
+ > p {
960
+ overflow: hidden;
961
+ text-overflow: ellipsis;
962
+ display: -webkit-box;
963
+ -webkit-line-clamp: 3;
964
+ -webkit-box-orient: vertical;
965
+ }
932
966
  }
967
+ } // #search-results
933
968
 
934
- } // .post-content
935
-
936
- .tag:hover {
937
- @extend %tag-hover;
938
- }
939
-
940
- .post-tag {
941
- display: inline-block;
942
- min-width: 2rem;
969
+ #topbar-title {
970
+ display: none;
971
+ font-size: 1.1rem;
972
+ font-weight: 600;
973
+ font-family: sans-serif;
974
+ color: var(--topbar-text-color);
943
975
  text-align: center;
944
- background: var(--tag-bg);
945
- border-radius: 0.3rem;
946
- padding: 0 0.4rem;
947
- color: inherit;
948
- line-height: 1.3rem;
949
- &:not(:last-child) {
950
- margin-right: 0.2rem;
951
- }
952
-
953
- &:hover {
954
- @extend %tag-hover;
955
- border-bottom: none;
956
- text-decoration: none;
957
- color: #d2603a;
958
- }
976
+ width: 70%;
977
+ overflow: hidden;
978
+ text-overflow: ellipsis;
979
+ word-break: keep-all;
980
+ white-space: nowrap;
959
981
  }
960
982
 
961
- /* --- buttons --- */
962
- .btn-lang {
963
- border: 1px solid !important;
964
- padding: 1px 3px;
965
- border-radius: 3px;
966
- color: var(--link-color);
967
- &:focus {
968
- box-shadow: none;
983
+ #page {
984
+ .categories,
985
+ #tags,
986
+ #archives {
987
+ a:not(:hover) {
988
+ @extend %no-bottom-border;
989
+ }
969
990
  }
970
991
  }
971
992
 
972
- /* --- Effects classes --- */
993
+ #mask {
994
+ display: none;
995
+ position: fixed;
996
+ top: 0;
997
+ right: 0;
998
+ bottom: 0;
999
+ left: 0;
1000
+ height: 100%;
1001
+ width: 100%;
1002
+ z-index: 1;
973
1003
 
974
- .loaded {
975
- display: block !important;
976
- @at-root .d-flex#{&} {
977
- display: flex !important;
1004
+ @at-root [#{$sidebar-display}] & {
1005
+ display: block !important;
978
1006
  }
979
1007
  }
980
1008
 
981
- .unloaded {
982
- display: none !important;
983
- }
984
-
985
- .visible {
986
- visibility: visible !important;
987
- }
988
-
989
- .hidden {
990
- visibility: hidden !important;
991
- }
1009
+ /* --- main wrapper --- */
992
1010
 
993
- .flex-grow-1 {
994
- -ms-flex-positive: 1!important;
995
- flex-grow: 1!important;
996
- }
1011
+ #main-wrapper {
1012
+ background-color: var(--main-wrapper-bg);
1013
+ position: relative;
1014
+ min-height: 100vh;
1015
+ padding-bottom: $footer-height;
997
1016
 
998
- .btn-box-shadow {
999
- box-shadow: 0 0 8px 0 var(--btn-box-shadow)!important;
1017
+ @include pl-pr(0);
1000
1018
  }
1001
1019
 
1002
- .topbar-up {
1003
- top: -3rem !important; /* same as topbar height. */
1020
+ #main > div.row:first-child > div {
1021
+ &:nth-child(1),
1022
+ &:nth-child(2) {
1023
+ margin-top: $topbar-height; /* same as the height of topbar */
1024
+ }
1025
+ &:first-child {
1026
+ /* 3rem for topbar, 6rem for footer */
1027
+ min-height: calc(100vh - #{$topbar-height} - #{$footer-height} - #{$post-extend-min-height});
1028
+ }
1004
1029
  }
1005
1030
 
1006
- .no-text-decoration {
1007
- @include no-text-decoration;
1031
+ #post-wrapper {
1032
+ min-height: calc(
1033
+ 100vh - #{$topbar-height} - #{$footer-height} - #{$post-extend-min-height}) !important;
1008
1034
  }
1009
1035
 
1010
- .tooltip-inner { /* Overrided BS4 Tooltip */
1011
- font-size: 0.7rem;
1012
- max-width: 220px;
1013
- text-align: left;
1036
+ #topbar-wrapper.row,
1037
+ #main > .row,
1038
+ #search-result-wrapper > .row {
1039
+ @include ml-mr(0);
1014
1040
  }
1015
1041
 
1016
- .disabled {
1017
- color: rgb(206, 196, 196);
1018
- pointer-events: auto;
1019
- cursor: not-allowed;
1020
- }
1042
+ /* --- button back-to-top --- */
1021
1043
 
1022
- .hide-border-bottom {
1023
- border-bottom: none!important;
1044
+ #back-to-top {
1045
+ display: none;
1046
+ z-index: 1;
1047
+ cursor: pointer;
1048
+ position: fixed;
1049
+ background: var(--button-bg);
1050
+ color: var(--btn-backtotop-color);
1051
+ height: 2.6em;
1052
+ width: 2.7em;
1053
+ border-radius: 50%;
1054
+ border: 1px solid var(--btn-backtotop-border-color);
1055
+ transition: 0.2s ease-out;
1056
+ -webkit-transition: 0.2s ease-out;
1024
1057
  }
1025
1058
 
1026
- .input-focus {
1027
- box-shadow: none;
1028
- border-color: var(--input-focus-border-color) !important;
1029
- background: center !important;
1030
- transition: background-color 0.15s ease-in-out,border-color 0.15s ease-in-out;
1059
+ #back-to-top:hover {
1060
+ transform: translate3d(0, -5px, 0);
1061
+ -webkit-transform: translate3d(0, -5px, 0);
1031
1062
  }
1032
1063
 
1033
- /*--- Responsive Design ---*/
1064
+ /* --- Responsive Design --- */
1034
1065
 
1035
1066
  @media all and (max-width: 576px) {
1036
1067
 
@@ -1041,8 +1072,8 @@ img {
1041
1072
  }
1042
1073
 
1043
1074
  #post-wrapper {
1044
- min-height: calc(100vh - #{$topbar-height}
1045
- - #{$footer-height} - #{$post-extend-min-height}) !important;
1075
+ min-height: calc(
1076
+ 100vh - #{$topbar-height} - #{$footer-height} - #{$post-extend-min-height}) !important;
1046
1077
  h1 {
1047
1078
  margin-top: 2.2rem;
1048
1079
  font-size: 1.55rem;
@@ -1069,18 +1100,17 @@ img {
1069
1100
  padding: 1.5rem 0;
1070
1101
  margin-bottom: 0.3rem;
1071
1102
  flex-wrap: wrap;
1072
- justify-content: left!important;
1073
- -ms-flex-pack: distribute!important;
1074
- justify-content: space-around!important;
1103
+ -ms-flex-pack: distribute !important;
1104
+ justify-content: space-around !important;
1075
1105
  }
1076
- .footer-left, .footer-right {
1106
+ .footer-left,
1107
+ .footer-right {
1077
1108
  text-align: center;
1078
1109
  }
1079
1110
  }
1080
1111
 
1081
1112
  }
1082
1113
 
1083
-
1084
1114
  /* Hide Sidebar and TOC */
1085
1115
  @media all and (max-width: 830px) {
1086
1116
  %slide {
@@ -1088,10 +1118,19 @@ img {
1088
1118
  transition: transform 0.4s ease;
1089
1119
  }
1090
1120
 
1091
- html, body {
1121
+ html,
1122
+ body {
1092
1123
  overflow-x: hidden;
1093
1124
  }
1094
1125
 
1126
+ .footnotes ol > li {
1127
+ padding-top: 3.5rem;
1128
+ margin-top: -3.2rem;
1129
+ &:first-child {
1130
+ margin-top: -3.5rem;
1131
+ }
1132
+ }
1133
+
1095
1134
  [#{$sidebar-display}] {
1096
1135
 
1097
1136
  #sidebar {
@@ -1118,12 +1157,9 @@ img {
1118
1157
  }
1119
1158
  }
1120
1159
 
1121
- #topbar-wrapper {
1122
- @extend %slide;
1123
- }
1124
-
1125
1160
  #main-wrapper {
1126
1161
  @extend %slide;
1162
+
1127
1163
  padding-top: $topbar-height;
1128
1164
  }
1129
1165
 
@@ -1131,19 +1167,14 @@ img {
1131
1167
  width: 100%;
1132
1168
  }
1133
1169
 
1134
- #page h1.dynamic-title {
1135
- display: none;
1136
- ~.post-content {
1137
- margin-top: 3rem;
1138
- }
1139
- }
1140
-
1141
1170
  #breadcrumb,
1142
1171
  #search-wrapper {
1143
1172
  display: none;
1144
1173
  }
1145
1174
 
1146
1175
  #topbar-wrapper {
1176
+ @extend %slide;
1177
+
1147
1178
  left: 0;
1148
1179
  }
1149
1180
 
@@ -1186,31 +1217,28 @@ img {
1186
1217
  }
1187
1218
 
1188
1219
  #tags {
1189
- -webkit-box-pack: center!important;
1190
- -ms-flex-pack: center!important;
1191
- justify-content: center!important;
1220
+ -webkit-box-pack: center !important;
1221
+ -ms-flex-pack: center !important;
1222
+ justify-content: center !important;
1192
1223
  }
1193
1224
 
1194
- .footnotes ol > li {
1195
- padding-top: 3.5rem;
1196
- margin-top: -3.2rem;
1197
- &:first-child {
1198
- margin-top: -3.5rem;
1225
+ #page h1.dynamic-title {
1226
+ display: none;
1227
+ ~ .post-content {
1228
+ margin-top: 3rem;
1199
1229
  }
1200
1230
  }
1201
- }
1202
1231
 
1232
+ }
1203
1233
 
1204
1234
  @media all and (min-width: 577px) and (max-width: 1199px) {
1205
- footer>.d-flex > div {
1235
+ footer > .d-flex > div {
1206
1236
  width: 312px;
1207
1237
  }
1208
1238
  }
1209
1239
 
1210
-
1211
1240
  /* Sidebar visible */
1212
1241
  @media all and (min-width: 831px) {
1213
-
1214
1242
  /* Solved jumping scrollbar */
1215
1243
  html {
1216
1244
  overflow-y: scroll;
@@ -1269,7 +1297,8 @@ img {
1269
1297
  #sidebar {
1270
1298
  width: $sidebar-width-small;
1271
1299
  .sidebar-bottom {
1272
- a, span {
1300
+ a,
1301
+ span {
1273
1302
  width: 2rem;
1274
1303
  }
1275
1304
  .icon-border {
@@ -1292,12 +1321,13 @@ img {
1292
1321
 
1293
1322
  .site-title {
1294
1323
  font-size: 1.3rem;
1295
- margin-left: 0!important;
1324
+ margin-left: 0 !important;
1296
1325
  }
1297
1326
 
1298
1327
  .site-subtitle {
1299
- font-size: 90%;
1300
1328
  @include ml-mr(1rem);
1329
+
1330
+ font-size: 90%;
1301
1331
  }
1302
1332
 
1303
1333
  #main-wrapper {
@@ -1325,14 +1355,13 @@ img {
1325
1355
  }
1326
1356
 
1327
1357
  #main > div.row {
1328
- -webkit-box-pack: center!important;
1329
- -ms-flex-pack: center!important;
1330
- justify-content: center!important;
1358
+ -webkit-box-pack: center !important;
1359
+ -ms-flex-pack: center !important;
1360
+ justify-content: center !important;
1331
1361
  }
1332
1362
  }
1333
1363
 
1334
-
1335
- /*--- desktop mode, both sidebar and panel are visible ---*/
1364
+ /* --- desktop mode, both sidebar and panel are visible --- */
1336
1365
 
1337
1366
  @media all and (min-width: 1200px) {
1338
1367
 
@@ -1482,6 +1511,7 @@ img {
1482
1511
 
1483
1512
  .site-title {
1484
1513
  @extend %profile-ml;
1514
+
1485
1515
  a {
1486
1516
  font-size: 1.7rem;
1487
1517
  letter-spacing: 1px;
@@ -1490,6 +1520,7 @@ img {
1490
1520
 
1491
1521
  .site-subtitle {
1492
1522
  @extend %profile-ml;
1523
+
1493
1524
  word-spacing: 0;
1494
1525
  margin-top: 0.3rem;
1495
1526
  }
@@ -1537,9 +1568,9 @@ img {
1537
1568
  width: 100%;
1538
1569
 
1539
1570
  &.justify-content-center {
1540
- -webkit-box-pack: start!important;
1541
- -ms-flex-pack: start!important;
1542
- justify-content: flex-start!important;
1571
+ -webkit-box-pack: start !important;
1572
+ -ms-flex-pack: start !important;
1573
+ justify-content: flex-start !important;
1543
1574
  }
1544
1575
 
1545
1576
  a {
@@ -1549,6 +1580,7 @@ img {
1549
1580
 
1550
1581
  i {
1551
1582
  @include icon-round(2rem);
1583
+
1552
1584
  padding-top: 0.44rem;
1553
1585
  margin-top: .7rem; // multi line space
1554
1586
  bottom: 0;
@@ -1584,15 +1616,14 @@ img {
1584
1616
 
1585
1617
  } // min-width: 1650px
1586
1618
 
1587
-
1588
1619
  @media all and (min-width: 1700px) {
1589
1620
  #topbar-wrapper {
1590
- padding-right: calc(100% - #{$sidebar-width-large}
1591
- - (1920px - #{$sidebar-width-large}) ) /* 100% - 350px - (1920px - 350px); */
1621
+ /* 100% - 350px - (1920px - 350px); */
1622
+ padding-right: calc(100% - #{$sidebar-width-large} - (1920px - #{$sidebar-width-large}));
1592
1623
  }
1593
1624
 
1594
1625
  #topbar {
1595
- max-width: calc(#{$main-content-max-width} + 20px)
1626
+ max-width: calc(#{$main-content-max-width} + 20px);
1596
1627
  }
1597
1628
 
1598
1629
  #main > div.row {