hexo-theme-gnix 8.0.0 → 10.0.0

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.
Files changed (66) hide show
  1. package/README.md +4 -2
  2. package/include/hexo/feed.js +6 -5
  3. package/include/hexo/filter.js +25 -1
  4. package/include/hexo/generator/archive.js +116 -0
  5. package/include/hexo/generator/home.js +64 -0
  6. package/include/hexo/generator/index.js +82 -0
  7. package/include/hexo/generator/md_generator.js +87 -0
  8. package/include/hexo/generator/page.js +55 -0
  9. package/include/hexo/generator/tag.js +84 -0
  10. package/include/hexo/helper.js +38 -0
  11. package/include/hexo/i18n.js +183 -0
  12. package/include/util/article_font.js +132 -0
  13. package/include/util/i18n.js +280 -0
  14. package/include/util/theme.js +84 -0
  15. package/languages/en.yml +28 -0
  16. package/languages/zh-CN.yml +28 -0
  17. package/layout/archive.jsx +131 -127
  18. package/layout/common/article.jsx +316 -34
  19. package/layout/common/article_info.jsx +339 -0
  20. package/layout/common/article_media.jsx +11 -4
  21. package/layout/common/comment.jsx +15 -7
  22. package/layout/common/footer.jsx +6 -5
  23. package/layout/common/head.jsx +122 -33
  24. package/layout/common/navbar.jsx +195 -65
  25. package/layout/common/theme_selector.jsx +16 -14
  26. package/layout/layout.jsx +43 -5
  27. package/layout/misc/open_graph.jsx +162 -66
  28. package/layout/misc/paginator.jsx +2 -8
  29. package/layout/plugin/cookie_consent.jsx +252 -53
  30. package/layout/plugin/swup.jsx +1 -1
  31. package/layout/search/insight.jsx +1 -1
  32. package/layout/tag.jsx +3 -2
  33. package/layout/tags.jsx +81 -73
  34. package/package.json +5 -5
  35. package/scripts/index.js +1 -0
  36. package/source/css/archive.css +225 -180
  37. package/source/css/default.css +1223 -126
  38. package/source/css/responsive.css +426 -0
  39. package/source/css/shiki/shiki.css +12 -2081
  40. package/source/css/tags.css +183 -0
  41. package/source/css/twikoo.css +1053 -1049
  42. package/source/img/favicon.svg +1 -6
  43. package/source/img/og_image.webp +0 -0
  44. package/source/js/article-font-utils.js +99 -0
  45. package/source/js/busuanzi.js +91 -24
  46. package/source/js/components/chat.js +169 -50
  47. package/source/js/components/image-carousel.js +152 -108
  48. package/source/js/components/sidenote.js +210 -0
  49. package/source/js/components/text-image-section.js +78 -90
  50. package/source/js/components/theme-stacked.js +65 -33
  51. package/source/js/components/tree.js +30 -16
  52. package/source/js/decrypt.js +7 -2
  53. package/source/js/main.js +428 -5
  54. package/source/js/swup.js +39 -0
  55. package/source/js/theme-selector.js +26 -16
  56. package/include/hexo/generator.js +0 -53
  57. package/layout/misc/article_licensing.jsx +0 -99
  58. package/source/css/responsive/desktop.css +0 -36
  59. package/source/css/responsive/mobile.css +0 -38
  60. package/source/css/responsive/tablet.css +0 -43
  61. package/source/css/responsive/touch.css +0 -155
  62. package/source/img/logo.svg +0 -9
  63. package/source/js/archive-breadcrumb.js +0 -132
  64. package/source/js/host/cookieconsent/3.1.1/build/cookieconsent.min.css +0 -6
  65. package/source/js/host/cookieconsent/3.1.1/build/cookieconsent.min.js +0 -1
  66. package/source/js/swup.bundle.js +0 -1
@@ -9,127 +9,7 @@
9
9
  }
10
10
  }
11
11
 
12
- .tk-avatar {
13
- flex-shrink: 0;
14
- height: 2.5rem;
15
- width: 2.5rem;
16
- overflow: hidden;
17
- text-align: center;
18
- border-radius: 5px;
19
- margin-right: 1rem;
20
- }
21
-
22
- .tk-comment .tk-submit .tk-avatar,
23
- .tk-replies .tk-avatar {
24
- height: 2rem;
25
- width: 2rem;
26
- }
27
-
28
- .tk-avatar .tk-avatar-img {
29
- height: 2.5rem;
30
- color: var(--subtext0);
31
- }
32
-
33
- .tk-comment .tk-submit .tk-avatar .tk-avatar-img,
34
- .tk-replies .tk-avatar .tk-avatar-img {
35
- height: 2rem;
36
- }
37
-
38
- .tk-avatar.tk-clickable {
39
- cursor: pointer;
40
- transition: opacity 0.2s ease-out;
41
- &:hover {
42
- opacity: 0.8;
43
- }
44
- }
45
-
46
- .tk-meta-input {
47
- display: flex;
48
- margin-bottom: 0.5rem;
49
- }
50
-
51
- .tk-meta-input .el-input {
52
- width: calc((100% - 1rem) / 3);
53
- flex: 1;
54
- }
55
-
56
- .tk-meta-input .el-input + .el-input {
57
- margin-left: 0.5rem;
58
- }
59
-
60
- .tk-meta-input .el-input .el-input-group__prepend {
61
- padding: 0 1rem;
62
- }
63
-
64
- .tk-meta-input .el-input input:invalid {
65
- border: 1px solid var(--red);
66
- box-shadow: none;
67
- }
68
-
69
- @media screen and (max-width: 767px) {
70
- .tk-meta-input {
71
- flex-direction: column;
72
- }
73
-
74
- .tk-meta-input .el-input {
75
- width: auto;
76
- }
77
-
78
- .tk-meta-input .el-input + .el-input {
79
- margin-left: 0;
80
- margin-top: 0.5rem;
81
- }
82
- }
83
-
84
- .tk-submit {
85
- display: flex;
86
- flex-direction: column;
87
- margin-top: 1rem;
88
- }
89
-
90
- .tk-col {
91
- flex: 1;
92
- display: flex;
93
- flex-direction: column;
94
- }
95
-
96
- .tk-row.actions {
97
- position: relative;
98
- margin-top: 1rem;
99
- margin-bottom: 1rem;
100
- margin-left: 3.5rem;
101
- align-items: center;
102
- justify-content: flex-end;
103
- }
104
-
105
- .tk-row-actions-start {
106
- flex: 1;
107
- display: flex;
108
- align-items: center;
109
- }
110
-
111
- .tk-submit-action-icon {
112
- align-self: center;
113
- display: inline-block;
114
- width: 1.25em;
115
- line-height: 0;
116
- margin-right: 10px;
117
- cursor: pointer;
118
- flex-shrink: 0;
119
- transition: opacity 0.15s ease-out;
120
- }
121
-
122
- .tk-submit-action-icon.__markdown {
123
- color: var(--surface0);
124
- }
125
-
126
- .tk-error-message {
127
- word-break: break-all;
128
- color: var(--red);
129
- font-size: 0.75em;
130
- flex-shrink: 1;
131
- }
132
-
12
+ /* Element UI primitives used by Twikoo. Keep these before component overrides. */
133
13
  .el-textarea__inner {
134
14
  display: block;
135
15
  resize: vertical;
@@ -157,1331 +37,1425 @@
157
37
  }
158
38
  }
159
39
 
160
- .tk-input-image {
161
- display: none;
40
+ .el-button {
41
+ display: inline-block;
42
+ line-height: 1;
43
+ white-space: nowrap;
44
+ cursor: pointer;
45
+ background: var(--base);
46
+ border: 1px solid var(--surface0);
47
+ color: var(--subtext1);
48
+ text-align: center;
49
+ box-sizing: border-box;
50
+ outline: 0;
51
+ margin: 0;
52
+ transition:
53
+ color 0.15s ease-out,
54
+ background-color 0.15s ease-out,
55
+ border-color 0.15s ease-out;
56
+ font-weight: 500;
57
+ user-select: none;
58
+ padding: 12px 20px;
59
+ font-size: 14px;
60
+ border-radius: 4px;
61
+ &:focus-visible {
62
+ border-color: var(--blue);
63
+ box-shadow: 0 0 0 2px hsl(from var(--blue) h s l / 0.25);
64
+ }
162
65
  }
163
66
 
164
- .tk-input {
165
- flex: 1;
67
+ .el-button + .el-button {
68
+ margin-left: 10px;
166
69
  }
167
70
 
168
- .tk-input .el-textarea__inner {
169
- background-position: right bottom;
170
- background-repeat: no-repeat;
71
+ .el-button.is-disabled,
72
+ .el-button.is-disabled:focus,
73
+ .el-button.is-disabled:hover {
74
+ color: var(--subtext1);
75
+ cursor: not-allowed;
76
+ background-image: none;
77
+ background-color: var(--mantle);
78
+ border-color: var(--surface0);
171
79
  }
172
80
 
173
- .tk-turnstile-container {
174
- position: absolute;
175
- right: 0;
176
- bottom: -75px;
177
- z-index: 1;
81
+ .el-button--primary {
82
+ color: var(--base);
83
+ background-color: var(--blue);
84
+ border-color: var(--blue);
178
85
  }
179
86
 
180
- .tk-turnstile {
181
- display: flex;
182
- flex-direction: column;
87
+ .el-button--mini,
88
+ .el-button--small {
89
+ font-size: 12px;
90
+ border-radius: 3px;
183
91
  }
184
92
 
185
- .tk-preview-container {
186
- margin-left: 3rem;
187
- margin-bottom: 1rem;
188
- padding: 5px 15px;
189
- border: 1px solid var(--surface0);
190
- border-radius: 4px;
191
- word-break: break-word;
93
+ .el-button--small,
94
+ .el-button--small.is-round {
95
+ padding: 9px 15px;
192
96
  }
193
97
 
194
- .tk-fade-in {
195
- animation: tkFadeIn 0.3s;
98
+ .el-input__inner,
99
+ .el-textarea__inner {
100
+ background-image: none;
196
101
  }
197
102
 
198
- @keyframes tkFadeIn {
199
- 0% {
200
- opacity: 0;
201
- }
103
+ .el-textarea {
104
+ position: relative;
105
+ display: inline-block;
106
+ width: 100%;
107
+ vertical-align: bottom;
108
+ font-size: 14px;
109
+ }
202
110
 
203
- to {
204
- opacity: 1;
111
+ .el-textarea .el-input__count {
112
+ color: var(--subtext0);
113
+ background: var(--base);
114
+ position: absolute;
115
+ font-size: 12px;
116
+ bottom: 5px;
117
+ right: 10px;
118
+ }
119
+
120
+ .el-textarea.is-disabled .el-textarea__inner {
121
+ background-color: var(--mantle);
122
+ border-color: var(--surface0);
123
+ color: var(--subtext0);
124
+ cursor: not-allowed;
125
+ &::placeholder {
126
+ color: var(--subtext0);
205
127
  }
206
128
  }
207
129
 
208
- .tk-action {
209
- display: flex;
210
- align-items: center;
130
+ .el-textarea.is-exceed .el-textarea__inner {
131
+ border-color: var(--red);
211
132
  }
212
133
 
213
- .tk-action-link {
214
- margin-left: 0.5rem;
215
- color: var(--blue);
216
- text-decoration: none;
217
- display: flex;
218
- align-items: center;
134
+ .el-textarea.is-exceed .el-input__count {
135
+ color: var(--red);
219
136
  }
220
137
 
221
- .tk-action-icon {
138
+ .el-input {
139
+ position: relative;
140
+ font-size: 14px;
222
141
  display: inline-block;
223
- height: 1em;
224
- width: 1em;
225
- line-height: 0;
226
- color: var(--blue);
142
+ width: 100%;
227
143
  }
228
144
 
229
- .tk-action-link .tk-action-icon-solid,
230
- .tk-action-link.tk-liked .tk-action-icon,
231
- .tk-action-link:hover .tk-action-icon {
232
- display: none;
145
+ .el-input::-webkit-scrollbar {
146
+ z-index: 11;
147
+ width: 6px;
233
148
  }
234
149
 
235
- .tk-action-link.tk-liked .tk-action-icon-solid,
236
- .tk-action-link:hover .tk-action-icon-solid {
237
- display: block;
238
- }
239
-
240
- .tk-action-count {
241
- margin-left: 0.25rem;
242
- font-size: 0.75rem;
243
- height: 1.5rem;
244
- line-height: 1.5rem;
245
- }
246
-
247
- .tk-main {
248
- flex: 1;
249
- width: 0;
250
- }
251
-
252
- .tk-meta {
253
- display: flex;
254
- align-items: baseline;
255
- gap: 0.5rem;
256
- flex-wrap: wrap;
257
- }
258
-
259
- .tk-row {
260
- flex: 1;
261
- display: flex;
262
- flex-direction: row;
263
- justify-content: space-between;
150
+ .el-input::-webkit-scrollbar:horizontal {
151
+ height: 6px;
264
152
  }
265
153
 
266
- .tk-nick-link {
267
- color: inherit;
268
- text-decoration: none;
269
- transition: color 0.15s ease-out;
154
+ .el-input::-webkit-scrollbar-thumb {
155
+ border-radius: 5px;
156
+ width: 6px;
157
+ background: var(--overlay0);
270
158
  }
271
159
 
272
- .tk-replies .tk-nick-link {
273
- font-size: 0.9em;
160
+ .el-input::-webkit-scrollbar-corner {
161
+ background: var(--base);
274
162
  }
275
163
 
276
- .tk-nick-link:hover {
277
- color: var(--blue);
164
+ .el-input::-webkit-scrollbar-track {
165
+ background: var(--base);
278
166
  }
279
167
 
280
- .tk-actions {
281
- display: none;
282
- margin-left: 1em;
168
+ .el-input::-webkit-scrollbar-track-piece {
169
+ background: var(--base);
170
+ width: 6px;
283
171
  }
284
172
 
285
- .tk-comment:hover .tk-actions {
286
- display: inline;
173
+ .el-input .el-input__clear {
174
+ color: var(--subtext0);
175
+ font-size: 14px;
176
+ cursor: pointer;
177
+ transition: color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1);
287
178
  }
288
179
 
289
- .tk-extras {
290
- display: flex;
291
- flex-wrap: wrap;
292
- gap: 12px;
293
- align-items: center;
294
- margin: 4px 0;
180
+ .el-input .el-input__clear:hover {
181
+ color: var(--text);
295
182
  }
296
183
 
297
- .tk-extra {
298
- display: flex;
184
+ .el-input .el-input__count {
185
+ height: 100%;
186
+ display: inline-flex;
299
187
  align-items: center;
300
- gap: 6px;
301
- padding: 4px;
302
- color: var(--subtext1);
303
- font-size: 0.75rem;
304
- border-radius: 3px;
305
- transition: background-color 0.15s ease-out;
188
+ color: var(--subtext0);
189
+ font-size: 12px;
306
190
  }
307
191
 
308
- .tk-extra:hover {
309
- background: hsl(from var(--text) h s l / 0.06);
192
+ .el-input-group__append .el-button,
193
+ .el-input-group__append .el-input,
194
+ .el-input-group__prepend .el-button,
195
+ .el-input-group__prepend .el-input,
196
+ .el-input__inner {
197
+ font-size: inherit;
310
198
  }
311
199
 
312
- .tk-icon {
313
- display: inline-flex;
314
- align-items: center;
315
- justify-content: center;
316
- width: 0.8rem;
317
- height: 0.8rem;
318
- flex-shrink: 0;
200
+ .el-input .el-input__count .el-input__count-inner {
201
+ background: var(--base);
202
+ line-height: initial;
203
+ display: inline-block;
204
+ padding: 0 5px;
319
205
  }
320
206
 
321
- .tk-tag {
207
+ .el-input__inner {
208
+ background-color: var(--base);
209
+ border-radius: 4px;
210
+ border: 1px solid hsl(from var(--surface1) h s l / 0.31);
211
+ box-sizing: border-box;
212
+ color: var(--text);
322
213
  display: inline-block;
323
- padding: 0 0.5em;
324
- font-size: 0.75em;
325
- background-color: hsl(from var(--blue) h s l / 0.1);
326
- border-radius: 3px;
214
+ height: 40px;
215
+ line-height: 40px;
216
+ outline: 0;
217
+ padding: 0 15px;
218
+ transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1);
219
+ width: 100%;
327
220
  }
328
221
 
329
- .tk-tag-green {
330
- background-color: hsl(from var(--green) h s l / 0.1);
331
- border: 1px solid hsl(from var(--green) h s l / 0.8);
332
- border-radius: 3px;
333
- color: var(--green);
222
+ .el-input__prefix,
223
+ .el-input__suffix {
224
+ position: absolute;
225
+ top: 0;
226
+ transition: all 0.3s;
227
+ text-align: center;
228
+ height: 100%;
229
+ color: var(--subtext0);
334
230
  }
335
231
 
336
- .tk-time {
232
+ .el-input__inner::placeholder {
337
233
  color: var(--subtext0);
338
234
  }
339
235
 
340
- .tk-comment {
341
- margin-top: 1rem;
342
- padding-bottom: 1rem;
343
- display: flex;
344
- flex-direction: row;
345
- word-break: break-word;
236
+ .el-input.is-active .el-input__inner {
237
+ border-color: var(--blue);
238
+ outline: 0;
346
239
  }
347
240
 
348
- .tk-comment:last-child {
349
- padding-bottom: 0;
241
+ .el-input__suffix {
242
+ right: 5px;
243
+ transition: all 0.3s;
244
+ pointer-events: none;
350
245
  }
351
246
 
352
- .tk-content {
353
- margin-top: 0.5rem;
354
- overflow: hidden;
355
- max-height: 500px;
356
- position: relative;
357
- line-height: 1.75;
247
+ .el-input__suffix-inner {
248
+ pointer-events: all;
358
249
  }
359
250
 
360
- .tk-content-expand {
361
- max-height: none;
251
+ .el-input__prefix {
252
+ left: 5px;
253
+ transition: all 0.3s;
362
254
  }
363
255
 
364
- .tk-replies .tk-content {
365
- font-size: 0.9em;
256
+ .el-input__icon {
257
+ height: 100%;
258
+ width: 25px;
259
+ text-align: center;
260
+ transition: all 0.3s;
261
+ line-height: 40px;
366
262
  }
367
263
 
368
- .tk-comment .vemoji {
369
- max-height: 2em;
264
+ .el-input__icon:after {
265
+ content: "";
266
+ height: 100%;
267
+ width: 0;
268
+ display: inline-block;
370
269
  vertical-align: middle;
371
270
  }
372
271
 
373
- .tk-replies {
374
- max-height: 200px;
375
- overflow: hidden;
376
- position: relative;
377
- margin-top: 0.75rem;
378
- padding-left: 1rem;
379
- border-left: 2px solid var(--surface0);
272
+ .el-input__validateIcon {
273
+ pointer-events: none;
380
274
  }
381
275
 
382
- .tk-replies .tk-comment {
383
- margin-top: 0.75rem;
384
- padding-bottom: 0;
276
+ .el-input.is-disabled .el-input__inner {
277
+ background-color: var(--mantle);
278
+ border-color: var(--surface0);
279
+ color: var(--subtext0);
280
+ cursor: not-allowed;
385
281
  }
386
282
 
387
- .tk-replies .tk-comment:first-child {
388
- margin-top: 0;
283
+ .el-input.is-disabled .el-input__inner::placeholder {
284
+ color: var(--subtext1);
389
285
  }
390
286
 
391
- .tk-replies-expand {
392
- max-height: none;
393
- overflow: unset;
287
+ .el-input.is-disabled .el-input__icon {
288
+ cursor: not-allowed;
394
289
  }
395
290
 
396
- .tk-ruser {
397
- color: var(--blue);
398
- text-decoration: none;
399
- transition: opacity 0.15s ease-out;
291
+ .el-input.is-exceed .el-input__inner,
292
+ .el-input.is-exceed .el-input__suffix .el-input__count {
293
+ color: var(--red);
400
294
  }
401
295
 
402
- .tk-lightbox {
403
- display: block;
404
- position: fixed;
405
- background-color: hsl(from var(--crust) h s l / 0.5);
406
- inset: 0;
407
- z-index: 999;
408
- cursor: zoom-out;
296
+ .el-input--suffix .el-input__inner {
297
+ padding-right: 30px;
409
298
  }
410
299
 
411
- .tk-lightbox-image {
412
- min-width: 100px;
413
- min-height: 30px;
414
- width: auto;
415
- height: auto;
416
- max-width: 95%;
417
- max-height: 95%;
418
- position: absolute;
419
- top: 50%;
420
- left: 50%;
421
- transform: translate(-50%, -50%);
422
- background: linear-gradient(90deg, var(--surface0) 50%, var(--surface1) 0);
423
- background-size: 40px 100%;
300
+ .el-input--prefix .el-input__inner {
301
+ padding-left: 30px;
424
302
  }
425
303
 
426
- .tk-comments-title {
427
- font-size: 1.25rem;
428
- font-weight: 700;
429
- margin-bottom: 1rem;
430
- display: flex;
431
- align-items: baseline;
432
- justify-content: space-between;
304
+ .el-input--medium {
305
+ font-size: 14px;
433
306
  }
434
307
 
435
- .tk-comments-count.__hidden {
436
- visibility: hidden;
308
+ .el-input--medium .el-input__inner {
309
+ height: 36px;
310
+ line-height: 36px;
437
311
  }
438
312
 
439
- .tk-comments-container {
440
- min-height: 10rem;
441
- display: flex;
442
- flex-direction: column;
313
+ .el-input--medium .el-input__icon {
314
+ line-height: 36px;
443
315
  }
444
316
 
445
- .tk-comments-no {
446
- flex: 1;
447
- text-align: center;
448
- display: flex;
449
- align-items: center;
450
- justify-content: center;
317
+ .el-input--small {
318
+ font-size: 13px;
451
319
  }
452
320
 
453
- .tk-comments-error {
454
- font-size: 0.75em;
455
- color: var(--red);
321
+ .el-input--small .el-input__inner {
322
+ height: 32px;
323
+ line-height: 32px;
456
324
  }
457
325
 
458
- .tk-icon.__comments {
459
- display: inline-flex;
460
- align-items: center;
461
- justify-content: center;
462
- vertical-align: sub;
463
- margin-left: 0.5em;
464
- height: 0.75em;
465
- width: 0.75em;
466
- line-height: 0;
467
- cursor: pointer;
468
- color: var(--blue);
469
- transition: opacity 0.15s ease-out;
326
+ .el-input--small .el-input__icon {
327
+ line-height: 32px;
470
328
  }
471
329
 
472
- .twikoo div.code-toolbar {
473
- position: relative;
474
- border-radius: 0.3em;
475
- > .toolbar {
476
- position: absolute;
477
- right: 4px;
478
- top: 4px;
479
- font-size: 0.8125rem;
480
- font-weight: 500;
481
- display: flex;
482
- > .toolbar-item {
483
- margin-left: 0.3em;
484
- > a,
485
- > button,
486
- > span {
487
- padding: 2px 4px;
488
- border-radius: 0.3em;
489
- }
490
-
491
- > button {
492
- border: 1px solid hsl(from var(--surface1) h s l / 0.31);
493
- &:hover {
494
- cursor: pointer;
495
- }
496
- }
497
- }
498
- }
330
+ .el-input--mini {
331
+ font-size: 12px;
499
332
  }
500
333
 
501
- .tk-footer {
502
- width: 100%;
503
- text-align: end;
504
- font-size: 0.75em;
505
- color: var(--subtext0);
506
- margin-top: 1em;
334
+ .el-input--mini .el-input__inner {
335
+ height: 28px;
336
+ line-height: 28px;
507
337
  }
508
338
 
509
- .tk-pagination,
510
- .tk-pagination-pagers {
511
- display: flex;
339
+ .el-input--mini .el-input__icon {
340
+ line-height: 28px;
512
341
  }
513
342
 
514
- .tk-pagination {
343
+ .el-input-group {
344
+ line-height: normal;
345
+ display: inline-table;
515
346
  width: 100%;
516
- align-items: center;
517
- justify-content: space-between;
518
- flex-wrap: wrap;
347
+ border-collapse: separate;
348
+ border-spacing: 0;
519
349
  }
520
350
 
521
- .tk-pagination-options {
522
- display: flex;
523
- align-items: center;
351
+ .el-input-group > .el-input__inner {
352
+ vertical-align: middle;
353
+ display: table-cell;
524
354
  }
525
355
 
526
- .tk-pagination-pager {
527
- width: 2em;
528
- height: 2em;
529
- display: flex;
530
- align-items: center;
531
- justify-content: center;
532
- cursor: pointer;
356
+ .el-input-group__append,
357
+ .el-input-group__prepend {
358
+ display: table-cell;
359
+ position: relative;
533
360
  border-radius: 4px;
534
- transition: background-color 0.15s ease-out;
361
+ padding: 0 20px;
362
+ width: 1px;
363
+ white-space: nowrap;
364
+ color: var(--subtext1);
365
+ background-clip: padding-box;
366
+ background-color: hsl(from var(--surface1) h s l / 0.4);
367
+ border: 1px solid hsl(from var(--surface1) h s l / 0.6);
535
368
  }
536
369
 
537
- .tk-pagination-pager.__current {
538
- background-color: var(--blue);
539
- color: var(--base);
540
- pointer-events: none;
370
+ .el-input-group--prepend .el-input__inner,
371
+ .el-input-group__append {
372
+ border-top-left-radius: 0;
373
+ border-bottom-left-radius: 0;
541
374
  }
542
375
 
543
- .tk-pagination .el-input {
544
- width: 50px;
376
+ .el-input-group--append .el-input__inner,
377
+ .el-input-group__prepend {
378
+ border-top-right-radius: 0;
379
+ border-bottom-right-radius: 0;
545
380
  }
546
381
 
547
- .tk-pagination .el-input .el-input__inner {
548
- padding: 0;
549
- height: 28px;
550
- text-align: center;
551
- appearance: textfield;
382
+ .el-input-group__append:focus,
383
+ .el-input-group__prepend:focus {
384
+ outline: 0;
552
385
  }
553
386
 
554
- .tk-pagination .el-input .el-input__inner::-webkit-inner-spin-button,
555
- .tk-pagination .el-input .el-input__inner::-webkit-outer-spin-button {
556
- appearance: none;
557
- margin: 0;
387
+ .el-input-group__append .el-button,
388
+ .el-input-group__append .el-select,
389
+ .el-input-group__prepend .el-button,
390
+ .el-input-group__prepend .el-select {
391
+ display: inline-block;
392
+ margin: -10px -20px;
558
393
  }
559
394
 
560
- .tk-admin-comment {
561
- display: flex;
562
- flex-direction: column;
563
- align-items: center;
395
+ .el-input-group__append button.el-button,
396
+ .el-input-group__append div.el-select .el-input__inner,
397
+ .el-input-group__append div.el-select:hover .el-input__inner,
398
+ .el-input-group__prepend button.el-button,
399
+ .el-input-group__prepend div.el-select .el-input__inner,
400
+ .el-input-group__prepend div.el-select:hover .el-input__inner {
401
+ border-color: transparent;
402
+ background-color: transparent;
403
+ color: inherit;
404
+ border-top: 0;
405
+ border-bottom: 0;
564
406
  }
565
407
 
566
- .tk-admin-comment a {
567
- color: currentColor;
568
- text-decoration: underline;
408
+ .el-input-group__prepend {
409
+ border-right: 0;
569
410
  }
570
411
 
571
- .tk-admin-warn {
572
- margin-bottom: 1em;
412
+ .el-input-group__append {
413
+ border-left: 0;
573
414
  }
574
415
 
575
- .tk-admin-comment-filter {
576
- width: 100%;
577
- display: flex;
578
- align-items: center;
579
- justify-content: flex-start;
416
+ .el-input-group--append .el-select .el-input.is-focus .el-input__inner,
417
+ .el-input-group--prepend .el-select .el-input.is-focus .el-input__inner {
418
+ border-color: transparent;
580
419
  }
581
420
 
582
- .tk-admin-comment-filter-keyword {
583
- flex: 1;
421
+ .el-loading-parent--relative {
422
+ position: relative !important;
584
423
  }
585
424
 
586
- .tk-admin-comment-filter-type {
587
- height: 32px;
588
- width: 50px;
589
- margin: 0 0.5em;
590
- padding-left: 0.5em;
591
- font-size: 1em;
592
- color: var(--text);
593
- background: var(--surface0);
594
- border-radius: 4px;
595
- position: relative;
596
- appearance: none;
425
+ .el-loading-parent--hidden {
426
+ overflow: hidden !important;
597
427
  }
598
428
 
599
- .tk-admin-comment-list {
600
- margin-top: 1em;
429
+ .el-loading-mask {
430
+ position: absolute;
431
+ z-index: 2000;
432
+ background-color: hsl(from var(--base) h s l / 0.9);
433
+ margin: 0;
434
+ inset: 0;
435
+ transition: opacity 0.3s;
601
436
  }
602
437
 
603
- .tk-admin-comment-list,
604
- .tk-admin-comment-item {
605
- width: 100%;
606
- display: flex;
607
- flex-direction: column;
608
- justify-content: stretch;
438
+ .el-loading-mask.is-fullscreen {
439
+ position: fixed;
609
440
  }
610
441
 
611
- .tk-admin-comment-meta {
612
- display: flex;
613
- align-items: center;
614
- flex-wrap: wrap;
615
- margin-bottom: 0.5em;
616
- }
442
+ .el-loading-spinner {
443
+ top: 50%;
444
+ margin-top: -21px;
445
+ width: 100%;
446
+ text-align: center;
447
+ position: absolute;
448
+ .el-loading-text {
449
+ color: var(--blue);
450
+ margin: 3px 0;
451
+ font-size: 14px;
452
+ }
617
453
 
618
- .tk-admin-comment .tk-avatar {
619
- margin-right: 0.5em;
620
- }
454
+ .circular {
455
+ height: 42px;
456
+ width: 42px;
457
+ animation: loading-rotate 2s linear infinite;
458
+ }
621
459
 
622
- .tk-admin-comment .tk-content {
623
- max-height: none;
624
- }
460
+ .path {
461
+ animation: loading-dash 1.5s ease-in-out infinite;
462
+ stroke-dasharray: 90, 150;
463
+ stroke-dashoffset: 0;
464
+ stroke-width: 2;
465
+ stroke: var(--blue);
466
+ stroke-linecap: round;
467
+ }
625
468
 
626
- .tk-admin-actions {
627
- display: flex;
628
- margin-bottom: 1em;
629
- border-bottom: 1px solid hsl(from var(--surface0) h s l / 0.5);
630
- button {
631
- font-size: 1em;
632
- padding: 0.25em 1em;
633
- margin: 0.5em 0;
469
+ i {
470
+ color: var(--blue);
634
471
  }
635
472
  }
636
473
 
637
- .tk-admin-config-groups {
638
- overflow-y: auto;
639
- padding-right: 0.5em;
474
+ .el-loading-mask.is-fullscreen .el-loading-spinner {
475
+ margin-top: -25px;
640
476
  }
641
477
 
642
- .tk-admin-config-group-title {
643
- margin-top: 1em;
644
- font-size: 1.25rem;
645
- font-weight: 700;
478
+ .el-loading-mask.is-fullscreen .el-loading-spinner .circular {
479
+ height: 50px;
480
+ width: 50px;
646
481
  }
647
482
 
648
- .tk-admin-config-groups .tk-admin-config-group,
649
- .tk-admin-config-groups .tk-admin-config-group-title {
650
- background: transparent;
651
- }
652
-
653
- .tk-admin-config-item {
654
- display: grid;
655
- align-items: center;
656
- grid-template-columns: 30% 70%;
657
- margin-top: 1em;
483
+ .el-loading-fade-enter,
484
+ .el-loading-fade-leave-active {
485
+ opacity: 0;
658
486
  }
659
487
 
660
- .tk-admin-config-title {
661
- text-align: right;
662
- margin-right: 1em;
488
+ /* Twikoo comment form, thread, pagination, and admin views. */
489
+ .tk-avatar {
490
+ flex-shrink: 0;
491
+ height: 2.5rem;
492
+ width: 2.5rem;
663
493
  overflow: hidden;
664
- text-overflow: ellipsis;
665
- white-space: nowrap;
494
+ text-align: center;
495
+ border-radius: 5px;
496
+ margin-right: 1rem;
666
497
  }
667
498
 
668
- .tk-admin-config-desc {
669
- margin-top: 0.5em;
670
- font-size: 0.75em;
671
- overflow-wrap: break-word;
499
+ .tk-comment .tk-submit .tk-avatar,
500
+ .tk-replies .tk-avatar {
501
+ height: 2rem;
502
+ width: 2rem;
672
503
  }
673
504
 
674
- .tk-admin-config-actions {
675
- display: flex;
676
- align-items: center;
677
- justify-content: center;
678
- margin-top: 1em;
505
+ .tk-avatar .tk-avatar-img {
506
+ height: 2.5rem;
507
+ color: var(--subtext0);
679
508
  }
680
509
 
681
- .tk-admin-config-message {
682
- margin-top: 0.5em;
683
- text-align: center;
510
+ .tk-comment .tk-submit .tk-avatar .tk-avatar-img,
511
+ .tk-replies .tk-avatar .tk-avatar-img {
512
+ height: 2rem;
684
513
  }
685
514
 
686
- .tk-admin-config-email-test-desc {
687
- margin: 1em 0;
515
+ .tk-avatar.tk-clickable {
516
+ cursor: pointer;
517
+ transition: opacity 0.2s ease-out;
518
+ &:hover {
519
+ opacity: 0.8;
520
+ }
688
521
  }
689
522
 
690
- .tk-admin-import {
523
+ .tk-meta-input {
691
524
  display: flex;
692
- flex-direction: column;
525
+ margin-bottom: 0.5rem;
693
526
  }
694
527
 
695
- .tk-admin-import-label {
696
- margin-top: 1em;
697
- font-size: 1.25rem;
698
- font-weight: 700;
528
+ .tk-meta-input .el-input {
529
+ width: calc((100% - 1rem) / 3);
530
+ flex: 1;
699
531
  }
700
532
 
701
- .tk-admin-import select,
702
- .tk-admin-import input,
703
- .tk-admin-import .el-button,
704
- .tk-admin-import .el-textarea {
705
- margin-top: 1em;
533
+ .tk-meta-input .el-input + .el-input {
534
+ margin-left: 0.5rem;
706
535
  }
707
536
 
708
- .tk-admin-container {
709
- position: absolute;
710
- top: 0;
711
- left: 0;
712
- width: 100%;
713
- height: 100%;
714
- overflow: hidden;
715
- pointer-events: none;
537
+ .tk-meta-input .el-input .el-input-group__prepend {
538
+ padding: 0 1rem;
716
539
  }
717
540
 
718
- .tk-admin {
719
- position: absolute;
720
- width: 100%;
721
- height: 100%;
722
- overflow-y: auto;
723
- pointer-events: all;
724
- background-color: var(--mantle);
725
- visibility: hidden;
541
+ .tk-meta-input .el-input input:invalid {
542
+ border: 1px solid var(--red);
543
+ box-shadow: none;
726
544
  }
727
545
 
728
- .tk-admin::-webkit-scrollbar {
729
- width: 5px;
730
- background-color: transparent;
731
- }
546
+ @media screen and (max-width: 767px) {
547
+ .tk-meta-input {
548
+ flex-direction: column;
549
+ }
732
550
 
733
- .tk-admin::-webkit-scrollbar-track {
734
- background-color: transparent;
551
+ .tk-meta-input .el-input {
552
+ width: auto;
553
+ }
554
+
555
+ .tk-meta-input .el-input + .el-input {
556
+ margin-left: 0;
557
+ margin-top: 0.5rem;
558
+ }
735
559
  }
736
560
 
737
- .tk-admin::-webkit-scrollbar-thumb {
738
- background-color: var(--overlay0);
561
+ .tk-submit {
562
+ display: flex;
563
+ flex-direction: column;
564
+ margin-top: 1rem;
739
565
  }
740
566
 
741
- .tk-admin.__show {
742
- left: 0;
743
- visibility: visible;
567
+ .tk-col {
568
+ flex: 1;
569
+ display: flex;
570
+ flex-direction: column;
744
571
  }
745
572
 
746
- .tk-admin-close {
747
- position: sticky;
748
- float: right;
749
- display: block;
750
- top: 0;
751
- right: 0;
752
- width: 1rem;
753
- height: 1rem;
754
- padding: 1rem;
755
- box-sizing: content-box;
756
- color: var(--base);
757
- cursor: pointer;
758
- transition: opacity 0.15s ease-out;
573
+ .tk-row.actions {
574
+ position: relative;
575
+ margin-top: 1rem;
576
+ margin-bottom: 1rem;
577
+ margin-left: 3.5rem;
578
+ align-items: center;
579
+ justify-content: flex-end;
759
580
  }
760
581
 
761
- .tk-login,
762
- .tk-regist {
582
+ .tk-row-actions-start {
583
+ flex: 1;
763
584
  display: flex;
764
- flex-direction: column;
765
585
  align-items: center;
766
- width: 100%;
767
- padding: 0 2rem;
768
586
  }
769
587
 
770
- .tk-login-title {
771
- font-size: 1.25rem;
772
- text-align: center;
773
- margin-top: 10rem;
588
+ .tk-submit-action-icon {
589
+ align-self: center;
590
+ display: inline-block;
591
+ width: 1.25em;
592
+ line-height: 0;
593
+ margin-right: 10px;
594
+ cursor: pointer;
595
+ flex-shrink: 0;
596
+ transition: opacity 0.15s ease-out;
774
597
  }
775
598
 
776
- .tk-password,
777
- .tk-login-msg {
778
- width: 80%;
779
- text-align: center;
780
- margin-top: 1rem;
599
+ .tk-submit-action-icon.__markdown {
600
+ color: var(--surface0);
781
601
  }
782
602
 
783
- .tk-password .el-input__inner {
784
- min-width: 100px;
603
+ .tk-error-message {
604
+ word-break: break-all;
605
+ color: var(--red);
606
+ font-size: 0.75em;
607
+ flex-shrink: 1;
785
608
  }
786
609
 
787
- .tk-login-msg a {
788
- color: var(--base);
789
- margin-left: 1em;
790
- text-decoration: underline;
610
+ .tk-input-image {
611
+ display: none;
791
612
  }
792
613
 
793
- .tk-regist-button {
794
- margin-top: 1rem;
614
+ .tk-input {
615
+ flex: 1;
795
616
  }
796
617
 
797
- .tk-panel {
798
- padding: 2rem;
618
+ .tk-input .el-textarea__inner {
619
+ background-position: right bottom;
620
+ background-repeat: no-repeat;
799
621
  }
800
622
 
801
- .tk-panel-title {
802
- font-size: 1.5rem;
623
+ .tk-turnstile-container {
624
+ position: absolute;
625
+ right: 0;
626
+ bottom: -75px;
627
+ z-index: 1;
628
+ }
629
+
630
+ .tk-turnstile {
803
631
  display: flex;
804
- align-items: flex-end;
805
- justify-content: space-between;
632
+ flex-direction: column;
806
633
  }
807
634
 
808
- .tk-panel-logout {
809
- color: var(--red);
810
- font-size: 1rem;
811
- text-decoration: underline;
635
+ .tk-preview-container {
636
+ margin-left: 3rem;
637
+ margin-bottom: 1rem;
638
+ padding: 5px 15px;
639
+ border: 1px solid var(--surface0);
640
+ border-radius: 4px;
641
+ word-break: break-word;
812
642
  }
813
643
 
814
- .tk-panel .tk-tabs {
815
- display: flex;
816
- margin-bottom: 1em;
817
- border-bottom: 1px solid var(--surface0);
644
+ .tk-fade-in {
645
+ animation: tkFadeIn 0.3s;
818
646
  }
819
647
 
820
- .tk-panel .tk-tab {
821
- color: var(--subtext0);
822
- cursor: pointer;
823
- line-height: 2em;
824
- margin-right: 2em;
825
- margin-bottom: -2px;
826
- transition: color 0.15s ease-out;
827
- &:hover {
828
- color: var(--text);
648
+ @keyframes tkFadeIn {
649
+ 0% {
650
+ opacity: 0;
829
651
  }
830
- }
831
652
 
832
- .tk-panel .tk-tab.__active {
833
- color: var(--blue);
653
+ to {
654
+ opacity: 1;
655
+ }
834
656
  }
835
657
 
836
- .twikoo {
837
- position: relative;
658
+ .tk-action {
659
+ display: flex;
660
+ align-items: center;
838
661
  }
839
662
 
840
- .twikoo svg {
841
- fill: var(--subtext1);
663
+ .tk-action-link {
664
+ margin-left: 0.5rem;
665
+ color: var(--blue);
666
+ text-decoration: none;
667
+ display: flex;
668
+ align-items: center;
842
669
  }
843
670
 
844
- .tk-expand {
845
- cursor: pointer;
846
- padding: 0.75em;
847
- text-align: center;
848
- &:hover,
849
- &:active {
850
- background-color: var(--surfacevar(--surface0) 0);
851
- }
671
+ .tk-action-icon {
672
+ display: inline-block;
673
+ height: 1em;
674
+ width: 1em;
675
+ line-height: 0;
676
+ color: var(--blue);
852
677
  }
853
678
 
854
- .tk-content img {
855
- max-width: 300px;
856
- max-height: 300px;
857
- vertical-align: middle;
858
- cursor: zoom-in;
679
+ .tk-action-link .tk-action-icon-solid,
680
+ .tk-action-link.tk-liked .tk-action-icon,
681
+ .tk-action-link:hover .tk-action-icon {
682
+ display: none;
859
683
  }
860
684
 
861
- .tk-owo-emotion,
862
- .twikoo .OwO-item img {
863
- width: 3em;
864
- height: auto;
685
+ .tk-action-link.tk-liked .tk-action-icon-solid,
686
+ .tk-action-link:hover .tk-action-icon-solid {
687
+ display: block;
865
688
  }
866
689
 
867
- .twikoo .el-input__inner,
868
- .twikoo .el-textarea__inner {
869
- color: currentColor;
870
- background-color: transparent;
871
- border-color: hsl(from var(--surface1) h s l / 0.31);
690
+ .tk-action-count {
691
+ margin-left: 0.25rem;
692
+ font-size: 0.75rem;
693
+ height: 1.5rem;
694
+ line-height: 1.5rem;
695
+ }
872
696
 
873
- &:focus {
874
- border-color: var(--blue);
875
- }
697
+ .tk-main {
698
+ flex: 1;
699
+ width: 0;
700
+ }
876
701
 
877
- &:focus-visible {
878
- box-shadow: 0 0 0 2px hsl(from var(--blue) h s l / 0.25);
879
- }
702
+ .tk-meta {
703
+ display: flex;
704
+ align-items: baseline;
705
+ gap: 0.5rem;
706
+ flex-wrap: wrap;
880
707
  }
881
708
 
882
- .twikoo .el-button:not(.el-button--primary):not(.el-button--text) {
883
- color: currentColor;
884
- background-color: hsl(from var(--surface1) h s l / 0.063);
885
- border-color: hsl(from var(--surface1) h s l / 0.31);
709
+ .tk-row {
710
+ flex: 1;
711
+ display: flex;
712
+ flex-direction: row;
713
+ justify-content: space-between;
886
714
  }
887
715
 
888
- .el-button:not(.el-button--primary):not(.el-button--text):active,
889
- .el-button:not(.el-button--primary):not(.el-button--text):focus,
890
- .el-button:not(.el-button--primary):not(.el-button--text):hover {
716
+ .tk-nick-link {
717
+ color: inherit;
718
+ text-decoration: none;
719
+ transition: color 0.15s ease-out;
720
+ }
721
+
722
+ .tk-replies .tk-nick-link {
723
+ font-size: 0.9em;
724
+ }
725
+
726
+ .tk-nick-link:hover {
891
727
  color: var(--blue);
892
- background-color: hsl(from var(--blue) h s l / 0.063);
893
- border-color: hsl(from var(--blue) h s l / 0.5);
894
728
  }
895
729
 
896
- .el-button--primary.is-disabled,
897
- .el-button--primary.is-disabled:active,
898
- .el-button--primary.is-disabled:focus,
899
- .el-button--primary.is-disabled:hover {
900
- color: hsl(from var(--base) h s l / 0.63);
901
- background-color: hsl(from var(--blue) h s l / 0.5);
902
- border: 1px solid var(--surface0);
730
+ .tk-actions {
731
+ display: none;
732
+ margin-left: 1em;
903
733
  }
904
734
 
905
- .twikoo .el-loading-mask {
906
- background-color: transparent;
907
- backdrop-filter: opacity(20%);
735
+ .tk-comment:hover .tk-actions {
736
+ display: inline;
908
737
  }
909
738
 
910
- .twikoo .el-textarea .el-input__count {
911
- color: currentColor;
912
- background: transparent;
739
+ .tk-extras {
740
+ display: flex;
741
+ flex-wrap: wrap;
742
+ gap: 12px;
743
+ align-items: center;
744
+ margin: 4px 0;
913
745
  }
914
746
 
915
- .tk-admin-warn {
916
- padding: 1rem 1.5rem;
917
- background-color: var(--base);
918
- border-left: 0.5rem solid var(--peach);
919
- color: var(--yellow);
920
- align-self: stretch;
747
+ .tk-extra {
748
+ display: flex;
749
+ align-items: center;
750
+ gap: 6px;
751
+ padding: 4px;
752
+ color: var(--subtext1);
753
+ font-size: 0.75rem;
754
+ border-radius: 3px;
755
+ transition: background-color 0.15s ease-out;
921
756
  }
922
757
 
923
- /*!
924
- * OwO v1.0.2
925
- * Source: https://github.com/DIYgod/OwO/blob/master/dist/OwO.min.css
926
- * Author: DIYgod
927
- * Modified by: iMaeGoo
928
- * Released under the MIT License.
929
- */
930
- .OwO {
931
- user-select: none;
932
- .OwO-logo {
933
- width: 1.125em;
934
- display: flex;
935
- }
758
+ .tk-extra:hover {
759
+ background: hsl(from var(--text) h s l / 0.06);
760
+ }
936
761
 
937
- &.OwO-open .OwO-body {
938
- display: block;
939
- }
762
+ .tk-icon {
763
+ display: inline-flex;
764
+ align-items: center;
765
+ justify-content: center;
766
+ width: 0.8rem;
767
+ height: 0.8rem;
768
+ flex-shrink: 0;
940
769
  }
941
770
 
942
- .OwO-body {
943
- display: none;
944
- position: absolute;
945
- left: 0;
946
- right: 0;
947
- max-width: 500px;
948
- color: var(--text);
949
- background-color: var(--base);
950
- border: 1px solid var(--surface0);
951
- top: 2em;
952
- border-radius: var(--radius);
953
- z-index: 200;
771
+ .tk-tag {
772
+ display: inline-block;
773
+ padding: 0 0.5em;
774
+ font-size: 0.75em;
775
+ background-color: hsl(from var(--blue) h s l / 0.1);
776
+ border-radius: 3px;
777
+ }
954
778
 
955
- .OwO-items {
956
- padding: 10px 0 10px 10px;
957
- margin: 0;
958
- overflow: auto;
959
- font-size: 0;
960
- }
779
+ .tk-tag-green {
780
+ background-color: hsl(from var(--green) h s l / 0.1);
781
+ border: 1px solid hsl(from var(--green) h s l / 0.8);
782
+ border-radius: 3px;
783
+ color: var(--green);
784
+ }
961
785
 
962
- .OwO-item {
963
- list-style-type: none;
964
- padding: 5px 10px;
965
- display: inline-block;
966
- font-size: 16px;
967
- cursor: pointer;
968
- text-align: center;
969
- &:hover {
970
- background-color: var(--surface0);
971
- }
786
+ .tk-time {
787
+ color: var(--subtext0);
788
+ }
972
789
 
973
- &:focus-visible {
974
- background-color: var(--surface0);
975
- outline: none;
976
- }
977
- }
790
+ .tk-comment {
791
+ margin-top: 1rem;
792
+ padding-bottom: 1rem;
793
+ display: flex;
794
+ flex-direction: row;
795
+ word-break: break-word;
796
+ }
978
797
 
979
- .OwO-items-image {
980
- .OwO-item {
981
- img {
982
- max-width: 100%;
983
- }
984
- }
985
- }
798
+ .tk-comment:last-child {
799
+ padding-bottom: 0;
800
+ }
986
801
 
987
- .OwO-bar {
988
- width: 100%;
989
- border-top: 1px solid var(--surface0);
990
- .OwO-packages {
991
- margin: 0;
992
- padding: 0;
993
- font-size: 0;
994
- li {
995
- list-style-type: none;
996
- display: inline-block;
997
- line-height: 30px;
998
- font-size: 14px;
999
- padding: 0 10px;
1000
- cursor: pointer;
1001
- margin-right: 3px;
1002
- &:nth-child(1) {
1003
- border-radius: 0 0 0 3px;
1004
- }
1005
- }
802
+ .tk-content {
803
+ margin-top: 0.5rem;
804
+ overflow: hidden;
805
+ max-height: 500px;
806
+ position: relative;
807
+ line-height: 1.75;
808
+ }
1006
809
 
1007
- .OwO-package-active,
1008
- .OwO-packages:hover {
1009
- color: var(--lavender);
1010
- }
1011
- }
1012
- }
810
+ .tk-content-expand {
811
+ max-height: none;
812
+ }
813
+
814
+ .tk-replies .tk-content {
815
+ font-size: 0.9em;
816
+ }
817
+
818
+ .tk-comment .vemoji {
819
+ max-height: 2em;
820
+ vertical-align: middle;
821
+ }
822
+
823
+ .tk-replies {
824
+ max-height: 200px;
825
+ overflow: hidden;
826
+ position: relative;
827
+ margin-top: 0.65rem;
828
+ padding-left: 1rem;
829
+ border-left: 1px dashed var(--surface0);
830
+ }
831
+
832
+ .tk-replies .tk-comment {
833
+ margin-top: 0.75rem;
834
+ padding-bottom: 0;
835
+ }
836
+
837
+ .tk-replies .tk-comment:first-child {
838
+ margin-top: 0;
839
+ }
840
+
841
+ .tk-replies-expand {
842
+ max-height: none;
843
+ overflow: unset;
844
+ }
845
+
846
+ .tk-ruser {
847
+ color: var(--blue);
848
+ text-decoration: none;
849
+ transition: opacity 0.15s ease-out;
850
+ }
851
+
852
+ .tk-lightbox {
853
+ display: block;
854
+ position: fixed;
855
+ background-color: hsl(from var(--crust) h s l / 0.5);
856
+ inset: 0;
857
+ z-index: 999;
858
+ cursor: zoom-out;
859
+ }
860
+
861
+ .tk-lightbox-image {
862
+ min-width: 100px;
863
+ min-height: 30px;
864
+ width: auto;
865
+ height: auto;
866
+ max-width: 95%;
867
+ max-height: 95%;
868
+ position: absolute;
869
+ top: 50%;
870
+ left: 50%;
871
+ transform: translate(-50%, -50%);
872
+ background: linear-gradient(90deg, var(--surface0) 50%, var(--surface1) 0);
873
+ background-size: 40px 100%;
1013
874
  }
1014
875
 
1015
- @media screen and (max-width: 600px) {
1016
- #twikoo .OwO-items > .OwO-item {
1017
- width: 16%;
1018
- }
876
+ .tk-comments-title {
877
+ font-size: 1.25rem;
878
+ font-weight: 700;
879
+ margin-bottom: 1rem;
880
+ display: flex;
881
+ align-items: baseline;
882
+ justify-content: space-between;
1019
883
  }
1020
884
 
1021
- @media screen and (max-width: 460px) {
1022
- #twikoo .OwO-items > .OwO-item {
1023
- width: 20%;
1024
- }
885
+ .tk-comments-count.__hidden {
886
+ visibility: hidden;
1025
887
  }
1026
888
 
1027
- @media screen and (max-width: 400px) {
1028
- #twikoo .OwO-items > .OwO-item {
1029
- width: 25%;
1030
- }
889
+ .tk-comments-container {
890
+ min-height: 10rem;
891
+ display: flex;
892
+ flex-direction: column;
1031
893
  }
1032
894
 
1033
- @media screen and (max-width: 330px) {
1034
- #twikoo .OwO-items > .OwO-item {
1035
- width: 33%;
1036
- }
895
+ .tk-comments-no {
896
+ flex: 1;
897
+ text-align: center;
898
+ display: flex;
899
+ align-items: center;
900
+ justify-content: center;
1037
901
  }
1038
902
 
1039
- .el-button {
1040
- display: inline-block;
1041
- line-height: 1;
1042
- white-space: nowrap;
903
+ .tk-comments-error {
904
+ font-size: 0.75em;
905
+ color: var(--red);
906
+ }
907
+
908
+ .tk-icon.__comments {
909
+ display: inline-flex;
910
+ align-items: center;
911
+ justify-content: center;
912
+ vertical-align: sub;
913
+ margin-left: 0.5em;
914
+ height: 0.75em;
915
+ width: 0.75em;
916
+ line-height: 0;
1043
917
  cursor: pointer;
1044
- background: var(--base);
1045
- border: 1px solid var(--surface0);
1046
- color: var(--subtext1);
1047
- text-align: center;
1048
- box-sizing: border-box;
1049
- outline: 0;
1050
- margin: 0;
1051
- transition:
1052
- color 0.15s ease-out,
1053
- background-color 0.15s ease-out,
1054
- border-color 0.15s ease-out;
1055
- font-weight: 500;
1056
- user-select: none;
1057
- padding: 12px 20px;
1058
- font-size: 14px;
1059
- border-radius: 4px;
1060
- &:focus-visible {
1061
- border-color: var(--blue);
1062
- box-shadow: 0 0 0 2px hsl(from var(--blue) h s l / 0.25);
1063
- }
918
+ color: var(--blue);
919
+ transition: opacity 0.15s ease-out;
1064
920
  }
1065
921
 
1066
- .el-button + .el-button {
1067
- margin-left: 10px;
922
+ .tk-footer {
923
+ width: 100%;
924
+ text-align: end;
925
+ font-size: 0.75em;
926
+ color: var(--subtext0);
927
+ margin-top: 1em;
1068
928
  }
1069
929
 
1070
- .el-button.is-disabled,
1071
- .el-button.is-disabled:focus,
1072
- .el-button.is-disabled:hover {
1073
- color: var(--subtext1);
1074
- cursor: not-allowed;
1075
- background-image: none;
1076
- background-color: var(--mantle);
1077
- border-color: var(--surface0);
930
+ .tk-pagination,
931
+ .tk-pagination-pagers {
932
+ display: flex;
1078
933
  }
1079
934
 
1080
- .el-button--primary {
1081
- color: var(--base);
1082
- background-color: var(--blue);
1083
- border-color: var(--blue);
935
+ .tk-pagination {
936
+ width: 100%;
937
+ align-items: center;
938
+ justify-content: space-between;
939
+ flex-wrap: wrap;
1084
940
  }
1085
941
 
1086
- .el-button--mini,
1087
- .el-button--small {
1088
- font-size: 12px;
1089
- border-radius: 3px;
942
+ .tk-pagination-options {
943
+ display: flex;
944
+ align-items: center;
1090
945
  }
1091
946
 
1092
- .el-button--small,
1093
- .el-button--small.is-round {
1094
- padding: 9px 15px;
947
+ .tk-pagination-pager {
948
+ width: 2em;
949
+ height: 2em;
950
+ display: flex;
951
+ align-items: center;
952
+ justify-content: center;
953
+ cursor: pointer;
954
+ border-radius: 4px;
955
+ transition: background-color 0.15s ease-out;
1095
956
  }
1096
957
 
1097
- .el-input__inner,
1098
- .el-textarea__inner {
1099
- background-image: none;
958
+ .tk-pagination-pager.__current {
959
+ background-color: var(--blue);
960
+ color: var(--base);
961
+ pointer-events: none;
1100
962
  }
1101
963
 
1102
- .el-textarea {
1103
- position: relative;
1104
- display: inline-block;
1105
- width: 100%;
1106
- vertical-align: bottom;
1107
- font-size: 14px;
964
+ .tk-pagination .el-input {
965
+ width: 50px;
1108
966
  }
1109
967
 
1110
- .el-textarea .el-input__count {
1111
- color: var(--subtext0);
1112
- background: var(--base);
1113
- position: absolute;
1114
- font-size: 12px;
1115
- bottom: 5px;
1116
- right: 10px;
968
+ .tk-pagination .el-input .el-input__inner {
969
+ padding: 0;
970
+ height: 28px;
971
+ text-align: center;
972
+ appearance: textfield;
1117
973
  }
1118
974
 
1119
- .el-textarea.is-disabled .el-textarea__inner {
1120
- background-color: var(--mantle);
1121
- border-color: var(--surface0);
1122
- color: var(--subtext0);
1123
- cursor: not-allowed;
1124
- &::placeholder {
1125
- color: var(--subtext0);
1126
- }
975
+ .tk-pagination .el-input .el-input__inner::-webkit-inner-spin-button,
976
+ .tk-pagination .el-input .el-input__inner::-webkit-outer-spin-button {
977
+ appearance: none;
978
+ margin: 0;
1127
979
  }
1128
980
 
1129
- .el-textarea.is-exceed .el-textarea__inner {
1130
- border-color: var(--red);
981
+ .tk-admin-comment {
982
+ display: flex;
983
+ flex-direction: column;
984
+ align-items: center;
1131
985
  }
1132
986
 
1133
- .el-textarea.is-exceed .el-input__count {
1134
- color: var(--red);
987
+ .tk-admin-comment a {
988
+ color: currentColor;
989
+ text-decoration: underline;
1135
990
  }
1136
991
 
1137
- .el-input {
1138
- position: relative;
1139
- font-size: 14px;
1140
- display: inline-block;
992
+ .tk-admin-warn {
993
+ margin-bottom: 1em;
994
+ }
995
+
996
+ .tk-admin-comment-filter {
1141
997
  width: 100%;
998
+ display: flex;
999
+ align-items: center;
1000
+ justify-content: flex-start;
1142
1001
  }
1143
1002
 
1144
- .el-input::-webkit-scrollbar {
1145
- z-index: 11;
1146
- width: 6px;
1003
+ .tk-admin-comment-filter-keyword {
1004
+ flex: 1;
1147
1005
  }
1148
1006
 
1149
- .el-input::-webkit-scrollbar:horizontal {
1150
- height: 6px;
1007
+ .tk-admin-comment-filter-type {
1008
+ height: 32px;
1009
+ width: 50px;
1010
+ margin: 0 0.5em;
1011
+ padding-left: 0.5em;
1012
+ font-size: 1em;
1013
+ color: var(--text);
1014
+ background: var(--surface0);
1015
+ border-radius: 4px;
1016
+ position: relative;
1017
+ appearance: none;
1151
1018
  }
1152
1019
 
1153
- .el-input::-webkit-scrollbar-thumb {
1154
- border-radius: 5px;
1155
- width: 6px;
1156
- background: var(--overlay0);
1020
+ .tk-admin-comment-list {
1021
+ margin-top: 1em;
1157
1022
  }
1158
1023
 
1159
- .el-input::-webkit-scrollbar-corner {
1160
- background: var(--base);
1024
+ .tk-admin-comment-list,
1025
+ .tk-admin-comment-item {
1026
+ width: 100%;
1027
+ display: flex;
1028
+ flex-direction: column;
1029
+ justify-content: stretch;
1161
1030
  }
1162
1031
 
1163
- .el-input::-webkit-scrollbar-track {
1164
- background: var(--base);
1032
+ .tk-admin-comment-meta {
1033
+ display: flex;
1034
+ align-items: center;
1035
+ flex-wrap: wrap;
1036
+ margin-bottom: 0.5em;
1165
1037
  }
1166
1038
 
1167
- .el-input::-webkit-scrollbar-track-piece {
1168
- background: var(--base);
1169
- width: 6px;
1039
+ .tk-admin-comment .tk-avatar {
1040
+ margin-right: 0.5em;
1170
1041
  }
1171
1042
 
1172
- .el-input .el-input__clear {
1173
- color: var(--subtext0);
1174
- font-size: 14px;
1175
- cursor: pointer;
1176
- transition: color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1);
1043
+ .tk-admin-comment .tk-content {
1044
+ max-height: none;
1177
1045
  }
1178
1046
 
1179
- .el-input .el-input__clear:hover {
1180
- color: var(--text);
1047
+ .tk-admin-actions {
1048
+ display: flex;
1049
+ margin-bottom: 1em;
1050
+ border-bottom: 1px solid hsl(from var(--surface0) h s l / 0.5);
1051
+ button {
1052
+ font-size: 1em;
1053
+ padding: 0.25em 1em;
1054
+ margin: 0.5em 0;
1055
+ }
1181
1056
  }
1182
1057
 
1183
- .el-input .el-input__count {
1184
- height: 100%;
1185
- display: inline-flex;
1186
- align-items: center;
1187
- color: var(--subtext0);
1188
- font-size: 12px;
1058
+ .tk-admin-config-groups {
1059
+ overflow-y: auto;
1060
+ padding-right: 0.5em;
1189
1061
  }
1190
1062
 
1191
- .el-input-group__append .el-button,
1192
- .el-input-group__append .el-input,
1193
- .el-input-group__prepend .el-button,
1194
- .el-input-group__prepend .el-input,
1195
- .el-input__inner {
1196
- font-size: inherit;
1063
+ .tk-admin-config-group-title {
1064
+ margin-top: 1em;
1065
+ font-size: 1.25rem;
1066
+ font-weight: 700;
1197
1067
  }
1198
1068
 
1199
- .el-input .el-input__count .el-input__count-inner {
1200
- background: var(--base);
1201
- line-height: initial;
1202
- display: inline-block;
1203
- padding: 0 5px;
1069
+ .tk-admin-config-groups .tk-admin-config-group,
1070
+ .tk-admin-config-groups .tk-admin-config-group-title {
1071
+ background: transparent;
1204
1072
  }
1205
1073
 
1206
- .el-input__inner {
1207
- background-color: var(--base);
1208
- border-radius: 4px;
1209
- border: 1px solid hsl(from var(--surface1) h s l / 0.31);
1210
- box-sizing: border-box;
1211
- color: var(--text);
1212
- display: inline-block;
1213
- height: 40px;
1214
- line-height: 40px;
1215
- outline: 0;
1216
- padding: 0 15px;
1217
- transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1);
1218
- width: 100%;
1074
+ .tk-admin-config-item {
1075
+ display: grid;
1076
+ align-items: center;
1077
+ grid-template-columns: 30% 70%;
1078
+ margin-top: 1em;
1219
1079
  }
1220
1080
 
1221
- .el-input__prefix,
1222
- .el-input__suffix {
1223
- position: absolute;
1224
- top: 0;
1225
- transition: all 0.3s;
1226
- text-align: center;
1227
- height: 100%;
1228
- color: var(--subtext0);
1081
+ .tk-admin-config-title {
1082
+ text-align: right;
1083
+ margin-right: 1em;
1084
+ overflow: hidden;
1085
+ text-overflow: ellipsis;
1086
+ white-space: nowrap;
1229
1087
  }
1230
1088
 
1231
- .el-input__inner::placeholder {
1232
- color: var(--subtext0);
1089
+ .tk-admin-config-desc {
1090
+ margin-top: 0.5em;
1091
+ font-size: 0.75em;
1092
+ overflow-wrap: break-word;
1233
1093
  }
1234
1094
 
1235
- .el-input.is-active .el-input__inner {
1236
- border-color: var(--blue);
1237
- outline: 0;
1095
+ .tk-admin-config-actions {
1096
+ display: flex;
1097
+ align-items: center;
1098
+ justify-content: center;
1099
+ margin-top: 1em;
1238
1100
  }
1239
1101
 
1240
- .el-input__suffix {
1241
- right: 5px;
1242
- transition: all 0.3s;
1243
- pointer-events: none;
1102
+ .tk-admin-config-message {
1103
+ margin-top: 0.5em;
1104
+ text-align: center;
1244
1105
  }
1245
1106
 
1246
- .el-input__suffix-inner {
1247
- pointer-events: all;
1107
+ .tk-admin-config-email-test-desc {
1108
+ margin: 1em 0;
1248
1109
  }
1249
1110
 
1250
- .el-input__prefix {
1251
- left: 5px;
1252
- transition: all 0.3s;
1111
+ .tk-admin-import {
1112
+ display: flex;
1113
+ flex-direction: column;
1253
1114
  }
1254
1115
 
1255
- .el-input__icon {
1256
- height: 100%;
1257
- width: 25px;
1258
- text-align: center;
1259
- transition: all 0.3s;
1260
- line-height: 40px;
1116
+ .tk-admin-import-label {
1117
+ margin-top: 1em;
1118
+ font-size: 1.25rem;
1119
+ font-weight: 700;
1261
1120
  }
1262
1121
 
1263
- .el-input__icon:after {
1264
- content: "";
1265
- height: 100%;
1266
- width: 0;
1267
- display: inline-block;
1268
- vertical-align: middle;
1122
+ .tk-admin-import select,
1123
+ .tk-admin-import input,
1124
+ .tk-admin-import .el-button,
1125
+ .tk-admin-import .el-textarea {
1126
+ margin-top: 1em;
1269
1127
  }
1270
1128
 
1271
- .el-input__validateIcon {
1129
+ .tk-admin-container {
1130
+ position: absolute;
1131
+ top: 0;
1132
+ left: 0;
1133
+ width: 100%;
1134
+ height: 100%;
1135
+ overflow: hidden;
1272
1136
  pointer-events: none;
1273
1137
  }
1274
1138
 
1275
- .el-input.is-disabled .el-input__inner {
1139
+ .tk-admin {
1140
+ position: absolute;
1141
+ width: 100%;
1142
+ height: 100%;
1143
+ overflow-y: auto;
1144
+ pointer-events: all;
1276
1145
  background-color: var(--mantle);
1277
- border-color: var(--surface0);
1278
- color: var(--subtext0);
1279
- cursor: not-allowed;
1146
+ visibility: hidden;
1280
1147
  }
1281
1148
 
1282
- .el-input.is-disabled .el-input__inner::placeholder {
1283
- color: var(--subtext1);
1149
+ .tk-admin::-webkit-scrollbar {
1150
+ width: 5px;
1151
+ background-color: transparent;
1284
1152
  }
1285
1153
 
1286
- .el-input.is-disabled .el-input__icon {
1287
- cursor: not-allowed;
1154
+ .tk-admin::-webkit-scrollbar-track {
1155
+ background-color: transparent;
1288
1156
  }
1289
1157
 
1290
- .el-input.is-exceed .el-input__inner,
1291
- .el-input.is-exceed .el-input__suffix .el-input__count {
1292
- color: var(--red);
1158
+ .tk-admin::-webkit-scrollbar-thumb {
1159
+ background-color: var(--overlay0);
1293
1160
  }
1294
1161
 
1295
- .el-input--suffix .el-input__inner {
1296
- padding-right: 30px;
1162
+ .tk-admin.__show {
1163
+ left: 0;
1164
+ visibility: visible;
1297
1165
  }
1298
1166
 
1299
- .el-input--prefix .el-input__inner {
1300
- padding-left: 30px;
1167
+ .tk-admin-close {
1168
+ position: sticky;
1169
+ float: right;
1170
+ display: block;
1171
+ top: 0;
1172
+ right: 0;
1173
+ width: 1rem;
1174
+ height: 1rem;
1175
+ padding: 1rem;
1176
+ box-sizing: content-box;
1177
+ color: var(--base);
1178
+ cursor: pointer;
1179
+ transition: opacity 0.15s ease-out;
1301
1180
  }
1302
1181
 
1303
- .el-input--medium {
1304
- font-size: 14px;
1182
+ .tk-login,
1183
+ .tk-regist {
1184
+ display: flex;
1185
+ flex-direction: column;
1186
+ align-items: center;
1187
+ width: 100%;
1188
+ padding: 0 2rem;
1305
1189
  }
1306
1190
 
1307
- .el-input--medium .el-input__inner {
1308
- height: 36px;
1309
- line-height: 36px;
1191
+ .tk-login-title {
1192
+ font-size: 1.25rem;
1193
+ text-align: center;
1194
+ margin-top: 10rem;
1310
1195
  }
1311
1196
 
1312
- .el-input--medium .el-input__icon {
1313
- line-height: 36px;
1197
+ .tk-password,
1198
+ .tk-login-msg {
1199
+ width: 80%;
1200
+ text-align: center;
1201
+ margin-top: 1rem;
1314
1202
  }
1315
1203
 
1316
- .el-input--small {
1317
- font-size: 13px;
1204
+ .tk-password .el-input__inner {
1205
+ min-width: 100px;
1318
1206
  }
1319
1207
 
1320
- .el-input--small .el-input__inner {
1321
- height: 32px;
1322
- line-height: 32px;
1208
+ .tk-login-msg a {
1209
+ color: var(--base);
1210
+ margin-left: 1em;
1211
+ text-decoration: underline;
1323
1212
  }
1324
1213
 
1325
- .el-input--small .el-input__icon {
1326
- line-height: 32px;
1214
+ .tk-regist-button {
1215
+ margin-top: 1rem;
1327
1216
  }
1328
1217
 
1329
- .el-input--mini {
1330
- font-size: 12px;
1218
+ .tk-panel {
1219
+ padding: 2rem;
1331
1220
  }
1332
1221
 
1333
- .el-input--mini .el-input__inner {
1334
- height: 28px;
1335
- line-height: 28px;
1222
+ .tk-panel-title {
1223
+ font-size: 1.5rem;
1224
+ display: flex;
1225
+ align-items: flex-end;
1226
+ justify-content: space-between;
1336
1227
  }
1337
1228
 
1338
- .el-input--mini .el-input__icon {
1339
- line-height: 28px;
1229
+ .tk-panel-logout {
1230
+ color: var(--red);
1231
+ font-size: 1rem;
1232
+ text-decoration: underline;
1340
1233
  }
1341
1234
 
1342
- .el-input-group {
1343
- line-height: normal;
1344
- display: inline-table;
1345
- width: 100%;
1346
- border-collapse: separate;
1347
- border-spacing: 0;
1235
+ .tk-panel .tk-tabs {
1236
+ display: flex;
1237
+ margin-bottom: 1em;
1238
+ border-bottom: 1px solid var(--surface0);
1348
1239
  }
1349
1240
 
1350
- .el-input-group > .el-input__inner {
1351
- vertical-align: middle;
1352
- display: table-cell;
1241
+ .tk-panel .tk-tab {
1242
+ color: var(--subtext0);
1243
+ cursor: pointer;
1244
+ line-height: 2em;
1245
+ margin-right: 2em;
1246
+ margin-bottom: -2px;
1247
+ transition: color 0.15s ease-out;
1248
+ &:hover {
1249
+ color: var(--text);
1250
+ }
1353
1251
  }
1354
1252
 
1355
- .el-input-group__append,
1356
- .el-input-group__prepend {
1357
- display: table-cell;
1253
+ .tk-panel .tk-tab.__active {
1254
+ color: var(--blue);
1255
+ }
1256
+
1257
+ .twikoo {
1358
1258
  position: relative;
1359
- border-radius: 4px;
1360
- padding: 0 20px;
1361
- width: 1px;
1362
- white-space: nowrap;
1363
- color: var(--subtext1);
1364
- background-clip: padding-box;
1365
- background-color: hsl(from var(--surface1) h s l / 0.4);
1366
- border: 1px solid hsl(from var(--surface1) h s l / 0.6);
1367
1259
  }
1368
1260
 
1369
- .el-input-group--prepend .el-input__inner,
1370
- .el-input-group__append {
1371
- border-top-left-radius: 0;
1372
- border-bottom-left-radius: 0;
1261
+ .twikoo svg {
1262
+ fill: var(--subtext1);
1373
1263
  }
1374
1264
 
1375
- .el-input-group--append .el-input__inner,
1376
- .el-input-group__prepend {
1377
- border-top-right-radius: 0;
1378
- border-bottom-right-radius: 0;
1265
+ .tk-expand {
1266
+ cursor: pointer;
1267
+ padding: 0.75em;
1268
+ text-align: center;
1269
+ &:hover,
1270
+ &:active {
1271
+ background-color: var(--surface0);
1272
+ }
1379
1273
  }
1380
1274
 
1381
- .el-input-group__append:focus,
1382
- .el-input-group__prepend:focus {
1383
- outline: 0;
1275
+ .tk-content img {
1276
+ max-width: 300px;
1277
+ max-height: 300px;
1278
+ vertical-align: middle;
1279
+ cursor: zoom-in;
1384
1280
  }
1385
1281
 
1386
- .el-input-group__append .el-button,
1387
- .el-input-group__append .el-select,
1388
- .el-input-group__prepend .el-button,
1389
- .el-input-group__prepend .el-select {
1390
- display: inline-block;
1391
- margin: -10px -20px;
1282
+ .tk-owo-emotion,
1283
+ .twikoo .OwO-item img {
1284
+ width: 3em;
1285
+ height: auto;
1392
1286
  }
1393
1287
 
1394
- .el-input-group__append button.el-button,
1395
- .el-input-group__append div.el-select .el-input__inner,
1396
- .el-input-group__append div.el-select:hover .el-input__inner,
1397
- .el-input-group__prepend button.el-button,
1398
- .el-input-group__prepend div.el-select .el-input__inner,
1399
- .el-input-group__prepend div.el-select:hover .el-input__inner {
1400
- border-color: transparent;
1288
+ /* Theme overrides that intentionally sit above the base Element UI styles. */
1289
+ .twikoo .el-input__inner,
1290
+ .twikoo .el-textarea__inner {
1291
+ color: currentColor;
1401
1292
  background-color: transparent;
1402
- color: inherit;
1403
- border-top: 0;
1404
- border-bottom: 0;
1293
+ border-color: hsl(from var(--surface1) h s l / 0.31);
1294
+
1295
+ &:focus {
1296
+ border-color: var(--blue);
1297
+ }
1298
+
1299
+ &:focus-visible {
1300
+ box-shadow: 0 0 0 2px hsl(from var(--blue) h s l / 0.25);
1301
+ }
1405
1302
  }
1406
1303
 
1407
- .el-input-group__prepend {
1408
- border-right: 0;
1304
+ .twikoo .el-button:not(.el-button--primary):not(.el-button--text) {
1305
+ color: currentColor;
1306
+ background-color: hsl(from var(--surface1) h s l / 0.063);
1307
+ border-color: hsl(from var(--surface1) h s l / 0.31);
1409
1308
  }
1410
1309
 
1411
- .el-input-group__append {
1412
- border-left: 0;
1310
+ .el-button:not(.el-button--primary):not(.el-button--text):active,
1311
+ .el-button:not(.el-button--primary):not(.el-button--text):focus,
1312
+ .el-button:not(.el-button--primary):not(.el-button--text):hover {
1313
+ color: var(--blue);
1314
+ background-color: hsl(from var(--blue) h s l / 0.063);
1315
+ border-color: hsl(from var(--blue) h s l / 0.5);
1413
1316
  }
1414
1317
 
1415
- .el-input-group--append .el-select .el-input.is-focus .el-input__inner,
1416
- .el-input-group--prepend .el-select .el-input.is-focus .el-input__inner {
1417
- border-color: transparent;
1318
+ .el-button--primary.is-disabled,
1319
+ .el-button--primary.is-disabled:active,
1320
+ .el-button--primary.is-disabled:focus,
1321
+ .el-button--primary.is-disabled:hover {
1322
+ color: hsl(from var(--base) h s l / 0.63);
1323
+ background-color: hsl(from var(--blue) h s l / 0.5);
1324
+ border: 1px solid var(--surface0);
1418
1325
  }
1419
1326
 
1420
- .el-loading-parent--relative {
1421
- position: relative !important;
1327
+ .twikoo .el-loading-mask {
1328
+ background-color: transparent;
1329
+ backdrop-filter: opacity(20%);
1422
1330
  }
1423
1331
 
1424
- .el-loading-parent--hidden {
1425
- overflow: hidden !important;
1332
+ .twikoo .el-textarea .el-input__count {
1333
+ color: currentColor;
1334
+ background: transparent;
1426
1335
  }
1427
1336
 
1428
- .el-loading-mask {
1429
- position: absolute;
1430
- z-index: 2000;
1431
- background-color: hsl(from var(--base) h s l / 0.9);
1432
- margin: 0;
1433
- inset: 0;
1434
- transition: opacity 0.3s;
1337
+ .tk-admin-warn {
1338
+ padding: 1rem 1.5rem;
1339
+ background-color: var(--base);
1340
+ border-left: 0.5rem solid var(--peach);
1341
+ color: var(--yellow);
1342
+ align-self: stretch;
1435
1343
  }
1436
1344
 
1437
- .el-loading-mask.is-fullscreen {
1438
- position: fixed;
1345
+ /*!
1346
+ * OwO v1.0.2
1347
+ * Source: https://github.com/DIYgod/OwO/blob/master/dist/OwO.min.css
1348
+ * Author: DIYgod
1349
+ * Modified by: iMaeGoo
1350
+ * Released under the MIT License.
1351
+ */
1352
+ .OwO {
1353
+ user-select: none;
1354
+ .OwO-logo {
1355
+ width: 1.125em;
1356
+ display: flex;
1357
+ }
1439
1358
  }
1440
1359
 
1441
- .el-loading-spinner {
1442
- top: 50%;
1443
- margin-top: -21px;
1444
- width: 100%;
1445
- text-align: center;
1360
+ .OwO-body {
1361
+ display: none;
1446
1362
  position: absolute;
1447
- .el-loading-text {
1448
- color: var(--blue);
1449
- margin: 3px 0;
1450
- font-size: 14px;
1363
+ left: 0;
1364
+ right: 0;
1365
+ max-width: 500px;
1366
+ color: var(--text);
1367
+ background-color: var(--base);
1368
+ border: 1px solid var(--surface0);
1369
+ top: 2em;
1370
+ border-radius: var(--radius);
1371
+ z-index: 200;
1372
+
1373
+ .OwO-items {
1374
+ padding: 10px 0 10px 10px;
1375
+ margin: 0;
1376
+ overflow: auto;
1377
+ font-size: 0;
1451
1378
  }
1452
1379
 
1453
- .circular {
1454
- height: 42px;
1455
- width: 42px;
1456
- animation: loading-rotate 2s linear infinite;
1380
+ .OwO-item {
1381
+ list-style-type: none;
1382
+ padding: 5px 10px;
1383
+ display: inline-block;
1384
+ font-size: 16px;
1385
+ cursor: pointer;
1386
+ text-align: center;
1387
+ &:hover {
1388
+ background-color: var(--surface0);
1389
+ }
1390
+
1391
+ &:focus-visible {
1392
+ background-color: var(--surface0);
1393
+ outline: none;
1394
+ }
1457
1395
  }
1458
1396
 
1459
- .path {
1460
- animation: loading-dash 1.5s ease-in-out infinite;
1461
- stroke-dasharray: 90, 150;
1462
- stroke-dashoffset: 0;
1463
- stroke-width: 2;
1464
- stroke: var(--blue);
1465
- stroke-linecap: round;
1397
+ .OwO-items-image {
1398
+ .OwO-item {
1399
+ img {
1400
+ max-width: 100%;
1401
+ }
1402
+ }
1466
1403
  }
1467
1404
 
1468
- i {
1469
- color: var(--blue);
1405
+ .OwO-bar {
1406
+ width: 100%;
1407
+ border-top: 1px solid var(--surface0);
1408
+ .OwO-packages {
1409
+ margin: 0;
1410
+ padding: 0;
1411
+ font-size: 0;
1412
+ li {
1413
+ list-style-type: none;
1414
+ display: inline-block;
1415
+ line-height: 30px;
1416
+ font-size: 14px;
1417
+ padding: 0 10px;
1418
+ cursor: pointer;
1419
+ margin-right: 3px;
1420
+ &:nth-child(1) {
1421
+ border-radius: 0 0 0 3px;
1422
+ }
1423
+ }
1424
+
1425
+ .OwO-package-active,
1426
+ .OwO-packages:hover {
1427
+ color: var(--lavender);
1428
+ }
1429
+ }
1470
1430
  }
1471
1431
  }
1472
1432
 
1473
- .el-loading-mask.is-fullscreen .el-loading-spinner {
1474
- margin-top: -25px;
1433
+ .OwO.OwO-open .OwO-body {
1434
+ display: block;
1475
1435
  }
1476
1436
 
1477
- .el-loading-mask.is-fullscreen .el-loading-spinner .circular {
1478
- height: 50px;
1479
- width: 50px;
1437
+ @media screen and (max-width: 600px) {
1438
+ #twikoo .OwO-items > .OwO-item {
1439
+ width: 16%;
1440
+ }
1480
1441
  }
1481
1442
 
1482
- .el-loading-fade-enter,
1483
- .el-loading-fade-leave-active {
1484
- opacity: 0;
1443
+ @media screen and (max-width: 460px) {
1444
+ #twikoo .OwO-items > .OwO-item {
1445
+ width: 20%;
1446
+ }
1447
+ }
1448
+
1449
+ @media screen and (max-width: 400px) {
1450
+ #twikoo .OwO-items > .OwO-item {
1451
+ width: 25%;
1452
+ }
1453
+ }
1454
+
1455
+ @media screen and (max-width: 330px) {
1456
+ #twikoo .OwO-items > .OwO-item {
1457
+ width: 33%;
1458
+ }
1485
1459
  }
1486
1460
 
1487
1461
  @keyframes loading-rotate {
@@ -1507,6 +1481,36 @@
1507
1481
  }
1508
1482
  }
1509
1483
 
1484
+ /* Prism toolbar styles need to come after generic anchor and button rules. */
1485
+ .twikoo div.code-toolbar {
1486
+ position: relative;
1487
+ border-radius: 0.3em;
1488
+ > .toolbar {
1489
+ position: absolute;
1490
+ right: 4px;
1491
+ top: 4px;
1492
+ font-size: 0.8125rem;
1493
+ font-weight: 500;
1494
+ display: flex;
1495
+ > .toolbar-item {
1496
+ margin-left: 0.3em;
1497
+ > a,
1498
+ > button,
1499
+ > span {
1500
+ padding: 2px 4px;
1501
+ border-radius: 0.3em;
1502
+ }
1503
+
1504
+ > button {
1505
+ border: 1px solid hsl(from var(--surface1) h s l / 0.31);
1506
+ &:hover {
1507
+ cursor: pointer;
1508
+ }
1509
+ }
1510
+ }
1511
+ }
1512
+ }
1513
+
1510
1514
  @media (prefers-reduced-motion: reduce) {
1511
1515
  .tk-fade-in,
1512
1516
  .tk-expand,