jekyll-theme-chirpy 3.0.2 → 3.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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 {