hexo-theme-gnix 9.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 +5 -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 +283 -16
  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 +121 -32
  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 +1162 -98
  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 +1049 -1045
  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 -29
  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
- }
150
+ .el-input::-webkit-scrollbar:horizontal {
151
+ height: 6px;
152
+ }
239
153
 
240
- .tk-action-count {
241
- margin-left: 0.25rem;
242
- font-size: 0.75rem;
243
- height: 1.5rem;
244
- line-height: 1.5rem;
154
+ .el-input::-webkit-scrollbar-thumb {
155
+ border-radius: 5px;
156
+ width: 6px;
157
+ background: var(--overlay0);
245
158
  }
246
159
 
247
- .tk-main {
248
- flex: 1;
249
- width: 0;
160
+ .el-input::-webkit-scrollbar-corner {
161
+ background: var(--base);
250
162
  }
251
163
 
252
- .tk-meta {
253
- display: flex;
254
- align-items: baseline;
255
- gap: 0.5rem;
256
- flex-wrap: wrap;
164
+ .el-input::-webkit-scrollbar-track {
165
+ background: var(--base);
257
166
  }
258
167
 
259
- .tk-row {
260
- flex: 1;
261
- display: flex;
262
- flex-direction: row;
263
- justify-content: space-between;
168
+ .el-input::-webkit-scrollbar-track-piece {
169
+ background: var(--base);
170
+ width: 6px;
264
171
  }
265
172
 
266
- .tk-nick-link {
267
- color: inherit;
268
- text-decoration: none;
269
- transition: color 0.15s ease-out;
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);
270
178
  }
271
179
 
272
- .tk-replies .tk-nick-link {
273
- font-size: 0.9em;
180
+ .el-input .el-input__clear:hover {
181
+ color: var(--text);
274
182
  }
275
183
 
276
- .tk-nick-link:hover {
277
- color: var(--blue);
184
+ .el-input .el-input__count {
185
+ height: 100%;
186
+ display: inline-flex;
187
+ align-items: center;
188
+ color: var(--subtext0);
189
+ font-size: 12px;
278
190
  }
279
191
 
280
- .tk-actions {
281
- display: none;
282
- margin-left: 1em;
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;
283
198
  }
284
199
 
285
- .tk-comment:hover .tk-actions {
286
- display: inline;
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;
287
205
  }
288
206
 
289
- .tk-extras {
290
- display: flex;
291
- flex-wrap: wrap;
292
- gap: 12px;
293
- align-items: center;
294
- margin: 4px 0;
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);
213
+ display: inline-block;
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%;
295
220
  }
296
221
 
297
- .tk-extra {
298
- display: flex;
299
- 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;
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);
306
230
  }
307
231
 
308
- .tk-extra:hover {
309
- background: hsl(from var(--text) h s l / 0.06);
232
+ .el-input__inner::placeholder {
233
+ color: var(--subtext0);
310
234
  }
311
235
 
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;
236
+ .el-input.is-active .el-input__inner {
237
+ border-color: var(--blue);
238
+ outline: 0;
319
239
  }
320
240
 
321
- .tk-tag {
322
- 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;
241
+ .el-input__suffix {
242
+ right: 5px;
243
+ transition: all 0.3s;
244
+ pointer-events: none;
327
245
  }
328
246
 
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);
247
+ .el-input__suffix-inner {
248
+ pointer-events: all;
334
249
  }
335
250
 
336
- .tk-time {
337
- color: var(--subtext0);
251
+ .el-input__prefix {
252
+ left: 5px;
253
+ transition: all 0.3s;
338
254
  }
339
255
 
340
- .tk-comment {
341
- margin-top: 1rem;
342
- padding-bottom: 1rem;
343
- display: flex;
344
- flex-direction: row;
345
- word-break: break-word;
256
+ .el-input__icon {
257
+ height: 100%;
258
+ width: 25px;
259
+ text-align: center;
260
+ transition: all 0.3s;
261
+ line-height: 40px;
346
262
  }
347
263
 
348
- .tk-comment:last-child {
349
- padding-bottom: 0;
264
+ .el-input__icon:after {
265
+ content: "";
266
+ height: 100%;
267
+ width: 0;
268
+ display: inline-block;
269
+ vertical-align: middle;
350
270
  }
351
271
 
352
- .tk-content {
353
- margin-top: 0.5rem;
354
- overflow: hidden;
355
- max-height: 500px;
356
- position: relative;
357
- line-height: 1.75;
272
+ .el-input__validateIcon {
273
+ pointer-events: none;
358
274
  }
359
275
 
360
- .tk-content-expand {
361
- max-height: none;
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;
362
281
  }
363
282
 
364
- .tk-replies .tk-content {
365
- font-size: 0.9em;
283
+ .el-input.is-disabled .el-input__inner::placeholder {
284
+ color: var(--subtext1);
366
285
  }
367
286
 
368
- .tk-comment .vemoji {
369
- max-height: 2em;
370
- vertical-align: middle;
287
+ .el-input.is-disabled .el-input__icon {
288
+ cursor: not-allowed;
371
289
  }
372
290
 
373
- .tk-replies {
374
- max-height: 200px;
375
- overflow: hidden;
376
- position: relative;
377
- margin-top: 0.65rem;
378
- padding-left: 1rem;
379
- border-left: 1px dashed var(--surface0);
291
+ .el-input.is-exceed .el-input__inner,
292
+ .el-input.is-exceed .el-input__suffix .el-input__count {
293
+ color: var(--red);
380
294
  }
381
295
 
382
- .tk-replies .tk-comment {
383
- margin-top: 0.75rem;
384
- padding-bottom: 0;
296
+ .el-input--suffix .el-input__inner {
297
+ padding-right: 30px;
385
298
  }
386
299
 
387
- .tk-replies .tk-comment:first-child {
388
- margin-top: 0;
300
+ .el-input--prefix .el-input__inner {
301
+ padding-left: 30px;
389
302
  }
390
303
 
391
- .tk-replies-expand {
392
- max-height: none;
393
- overflow: unset;
304
+ .el-input--medium {
305
+ font-size: 14px;
394
306
  }
395
307
 
396
- .tk-ruser {
397
- color: var(--blue);
398
- text-decoration: none;
399
- transition: opacity 0.15s ease-out;
308
+ .el-input--medium .el-input__inner {
309
+ height: 36px;
310
+ line-height: 36px;
400
311
  }
401
312
 
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;
313
+ .el-input--medium .el-input__icon {
314
+ line-height: 36px;
409
315
  }
410
316
 
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%;
317
+ .el-input--small {
318
+ font-size: 13px;
424
319
  }
425
320
 
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;
321
+ .el-input--small .el-input__inner {
322
+ height: 32px;
323
+ line-height: 32px;
433
324
  }
434
325
 
435
- .tk-comments-count.__hidden {
436
- visibility: hidden;
326
+ .el-input--small .el-input__icon {
327
+ line-height: 32px;
437
328
  }
438
329
 
439
- .tk-comments-container {
440
- min-height: 10rem;
441
- display: flex;
442
- flex-direction: column;
330
+ .el-input--mini {
331
+ font-size: 12px;
443
332
  }
444
333
 
445
- .tk-comments-no {
446
- flex: 1;
447
- text-align: center;
448
- display: flex;
449
- align-items: center;
450
- justify-content: center;
334
+ .el-input--mini .el-input__inner {
335
+ height: 28px;
336
+ line-height: 28px;
451
337
  }
452
338
 
453
- .tk-comments-error {
454
- font-size: 0.75em;
455
- color: var(--red);
339
+ .el-input--mini .el-input__icon {
340
+ line-height: 28px;
456
341
  }
457
342
 
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;
343
+ .el-input-group {
344
+ line-height: normal;
345
+ display: inline-table;
346
+ width: 100%;
347
+ border-collapse: separate;
348
+ border-spacing: 0;
470
349
  }
471
350
 
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
- }
351
+ .el-input-group > .el-input__inner {
352
+ vertical-align: middle;
353
+ display: table-cell;
354
+ }
490
355
 
491
- > button {
492
- border: 1px solid hsl(from var(--surface1) h s l / 0.31);
493
- &:hover {
494
- cursor: pointer;
495
- }
496
- }
497
- }
498
- }
356
+ .el-input-group__append,
357
+ .el-input-group__prepend {
358
+ display: table-cell;
359
+ position: relative;
360
+ border-radius: 4px;
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);
499
368
  }
500
369
 
501
- .tk-footer {
502
- width: 100%;
503
- text-align: end;
504
- font-size: 0.75em;
505
- color: var(--subtext0);
506
- margin-top: 1em;
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;
507
374
  }
508
375
 
509
- .tk-pagination,
510
- .tk-pagination-pagers {
511
- display: flex;
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;
512
380
  }
513
381
 
514
- .tk-pagination {
515
- width: 100%;
516
- align-items: center;
517
- justify-content: space-between;
518
- flex-wrap: wrap;
382
+ .el-input-group__append:focus,
383
+ .el-input-group__prepend:focus {
384
+ outline: 0;
519
385
  }
520
386
 
521
- .tk-pagination-options {
522
- display: flex;
523
- align-items: center;
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;
524
393
  }
525
394
 
526
- .tk-pagination-pager {
527
- width: 2em;
528
- height: 2em;
529
- display: flex;
530
- align-items: center;
531
- justify-content: center;
532
- cursor: pointer;
533
- border-radius: 4px;
534
- transition: background-color 0.15s ease-out;
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;
535
406
  }
536
407
 
537
- .tk-pagination-pager.__current {
538
- background-color: var(--blue);
539
- color: var(--base);
540
- pointer-events: none;
408
+ .el-input-group__prepend {
409
+ border-right: 0;
541
410
  }
542
411
 
543
- .tk-pagination .el-input {
544
- width: 50px;
412
+ .el-input-group__append {
413
+ border-left: 0;
545
414
  }
546
415
 
547
- .tk-pagination .el-input .el-input__inner {
548
- padding: 0;
549
- height: 28px;
550
- text-align: center;
551
- appearance: textfield;
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;
552
419
  }
553
420
 
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;
421
+ .el-loading-parent--relative {
422
+ position: relative !important;
558
423
  }
559
424
 
560
- .tk-admin-comment {
561
- display: flex;
562
- flex-direction: column;
563
- align-items: center;
425
+ .el-loading-parent--hidden {
426
+ overflow: hidden !important;
564
427
  }
565
428
 
566
- .tk-admin-comment a {
567
- color: currentColor;
568
- text-decoration: underline;
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;
569
436
  }
570
437
 
571
- .tk-admin-warn {
572
- margin-bottom: 1em;
438
+ .el-loading-mask.is-fullscreen {
439
+ position: fixed;
573
440
  }
574
441
 
575
- .tk-admin-comment-filter {
442
+ .el-loading-spinner {
443
+ top: 50%;
444
+ margin-top: -21px;
576
445
  width: 100%;
577
- display: flex;
578
- align-items: center;
579
- justify-content: flex-start;
580
- }
446
+ text-align: center;
447
+ position: absolute;
448
+ .el-loading-text {
449
+ color: var(--blue);
450
+ margin: 3px 0;
451
+ font-size: 14px;
452
+ }
581
453
 
582
- .tk-admin-comment-filter-keyword {
583
- flex: 1;
584
- }
454
+ .circular {
455
+ height: 42px;
456
+ width: 42px;
457
+ animation: loading-rotate 2s linear infinite;
458
+ }
585
459
 
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;
597
- }
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
+ }
598
468
 
599
- .tk-admin-comment-list {
600
- margin-top: 1em;
469
+ i {
470
+ color: var(--blue);
471
+ }
601
472
  }
602
473
 
603
- .tk-admin-comment-list,
604
- .tk-admin-comment-item {
605
- width: 100%;
606
- display: flex;
607
- flex-direction: column;
608
- justify-content: stretch;
474
+ .el-loading-mask.is-fullscreen .el-loading-spinner {
475
+ margin-top: -25px;
609
476
  }
610
477
 
611
- .tk-admin-comment-meta {
612
- display: flex;
613
- align-items: center;
614
- flex-wrap: wrap;
615
- margin-bottom: 0.5em;
478
+ .el-loading-mask.is-fullscreen .el-loading-spinner .circular {
479
+ height: 50px;
480
+ width: 50px;
616
481
  }
617
482
 
618
- .tk-admin-comment .tk-avatar {
619
- margin-right: 0.5em;
483
+ .el-loading-fade-enter,
484
+ .el-loading-fade-leave-active {
485
+ opacity: 0;
620
486
  }
621
487
 
622
- .tk-admin-comment .tk-content {
623
- max-height: none;
488
+ /* Twikoo comment form, thread, pagination, and admin views. */
489
+ .tk-avatar {
490
+ flex-shrink: 0;
491
+ height: 2.5rem;
492
+ width: 2.5rem;
493
+ overflow: hidden;
494
+ text-align: center;
495
+ border-radius: 5px;
496
+ margin-right: 1rem;
624
497
  }
625
498
 
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;
634
- }
499
+ .tk-comment .tk-submit .tk-avatar,
500
+ .tk-replies .tk-avatar {
501
+ height: 2rem;
502
+ width: 2rem;
635
503
  }
636
504
 
637
- .tk-admin-config-groups {
638
- overflow-y: auto;
639
- padding-right: 0.5em;
505
+ .tk-avatar .tk-avatar-img {
506
+ height: 2.5rem;
507
+ color: var(--subtext0);
640
508
  }
641
509
 
642
- .tk-admin-config-group-title {
643
- margin-top: 1em;
644
- font-size: 1.25rem;
645
- font-weight: 700;
510
+ .tk-comment .tk-submit .tk-avatar .tk-avatar-img,
511
+ .tk-replies .tk-avatar .tk-avatar-img {
512
+ height: 2rem;
646
513
  }
647
514
 
648
- .tk-admin-config-groups .tk-admin-config-group,
649
- .tk-admin-config-groups .tk-admin-config-group-title {
650
- background: transparent;
515
+ .tk-avatar.tk-clickable {
516
+ cursor: pointer;
517
+ transition: opacity 0.2s ease-out;
518
+ &:hover {
519
+ opacity: 0.8;
520
+ }
651
521
  }
652
522
 
653
- .tk-admin-config-item {
654
- display: grid;
655
- align-items: center;
656
- grid-template-columns: 30% 70%;
657
- margin-top: 1em;
523
+ .tk-meta-input {
524
+ display: flex;
525
+ margin-bottom: 0.5rem;
658
526
  }
659
527
 
660
- .tk-admin-config-title {
661
- text-align: right;
662
- margin-right: 1em;
663
- overflow: hidden;
664
- text-overflow: ellipsis;
665
- white-space: nowrap;
528
+ .tk-meta-input .el-input {
529
+ width: calc((100% - 1rem) / 3);
530
+ flex: 1;
666
531
  }
667
532
 
668
- .tk-admin-config-desc {
669
- margin-top: 0.5em;
670
- font-size: 0.75em;
671
- overflow-wrap: break-word;
533
+ .tk-meta-input .el-input + .el-input {
534
+ margin-left: 0.5rem;
672
535
  }
673
536
 
674
- .tk-admin-config-actions {
675
- display: flex;
676
- align-items: center;
677
- justify-content: center;
678
- margin-top: 1em;
537
+ .tk-meta-input .el-input .el-input-group__prepend {
538
+ padding: 0 1rem;
679
539
  }
680
540
 
681
- .tk-admin-config-message {
682
- margin-top: 0.5em;
683
- text-align: center;
541
+ .tk-meta-input .el-input input:invalid {
542
+ border: 1px solid var(--red);
543
+ box-shadow: none;
684
544
  }
685
545
 
686
- .tk-admin-config-email-test-desc {
687
- margin: 1em 0;
546
+ @media screen and (max-width: 767px) {
547
+ .tk-meta-input {
548
+ flex-direction: column;
549
+ }
550
+
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
+ }
688
559
  }
689
560
 
690
- .tk-admin-import {
561
+ .tk-submit {
691
562
  display: flex;
692
563
  flex-direction: column;
564
+ margin-top: 1rem;
693
565
  }
694
566
 
695
- .tk-admin-import-label {
696
- margin-top: 1em;
697
- font-size: 1.25rem;
698
- font-weight: 700;
567
+ .tk-col {
568
+ flex: 1;
569
+ display: flex;
570
+ flex-direction: column;
699
571
  }
700
572
 
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;
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;
706
580
  }
707
581
 
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;
582
+ .tk-row-actions-start {
583
+ flex: 1;
584
+ display: flex;
585
+ align-items: center;
716
586
  }
717
587
 
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;
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;
726
597
  }
727
598
 
728
- .tk-admin::-webkit-scrollbar {
729
- width: 5px;
730
- background-color: transparent;
599
+ .tk-submit-action-icon.__markdown {
600
+ color: var(--surface0);
731
601
  }
732
602
 
733
- .tk-admin::-webkit-scrollbar-track {
734
- background-color: transparent;
603
+ .tk-error-message {
604
+ word-break: break-all;
605
+ color: var(--red);
606
+ font-size: 0.75em;
607
+ flex-shrink: 1;
735
608
  }
736
609
 
737
- .tk-admin::-webkit-scrollbar-thumb {
738
- background-color: var(--overlay0);
610
+ .tk-input-image {
611
+ display: none;
739
612
  }
740
613
 
741
- .tk-admin.__show {
742
- left: 0;
743
- visibility: visible;
614
+ .tk-input {
615
+ flex: 1;
744
616
  }
745
617
 
746
- .tk-admin-close {
747
- position: sticky;
748
- float: right;
749
- display: block;
750
- top: 0;
618
+ .tk-input .el-textarea__inner {
619
+ background-position: right bottom;
620
+ background-repeat: no-repeat;
621
+ }
622
+
623
+ .tk-turnstile-container {
624
+ position: absolute;
751
625
  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;
626
+ bottom: -75px;
627
+ z-index: 1;
759
628
  }
760
629
 
761
- .tk-login,
762
- .tk-regist {
630
+ .tk-turnstile {
763
631
  display: flex;
764
632
  flex-direction: column;
765
- align-items: center;
766
- width: 100%;
767
- padding: 0 2rem;
768
633
  }
769
634
 
770
- .tk-login-title {
771
- font-size: 1.25rem;
772
- text-align: center;
773
- margin-top: 10rem;
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;
774
642
  }
775
643
 
776
- .tk-password,
777
- .tk-login-msg {
778
- width: 80%;
779
- text-align: center;
780
- margin-top: 1rem;
644
+ .tk-fade-in {
645
+ animation: tkFadeIn 0.3s;
781
646
  }
782
647
 
783
- .tk-password .el-input__inner {
784
- min-width: 100px;
785
- }
648
+ @keyframes tkFadeIn {
649
+ 0% {
650
+ opacity: 0;
651
+ }
786
652
 
787
- .tk-login-msg a {
788
- color: var(--base);
789
- margin-left: 1em;
790
- text-decoration: underline;
653
+ to {
654
+ opacity: 1;
655
+ }
791
656
  }
792
657
 
793
- .tk-regist-button {
794
- margin-top: 1rem;
658
+ .tk-action {
659
+ display: flex;
660
+ align-items: center;
795
661
  }
796
662
 
797
- .tk-panel {
798
- padding: 2rem;
663
+ .tk-action-link {
664
+ margin-left: 0.5rem;
665
+ color: var(--blue);
666
+ text-decoration: none;
667
+ display: flex;
668
+ align-items: center;
799
669
  }
800
670
 
801
- .tk-panel-title {
802
- font-size: 1.5rem;
803
- display: flex;
804
- align-items: flex-end;
805
- justify-content: space-between;
671
+ .tk-action-icon {
672
+ display: inline-block;
673
+ height: 1em;
674
+ width: 1em;
675
+ line-height: 0;
676
+ color: var(--blue);
806
677
  }
807
678
 
808
- .tk-panel-logout {
809
- color: var(--red);
810
- font-size: 1rem;
811
- text-decoration: underline;
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;
812
683
  }
813
684
 
814
- .tk-panel .tk-tabs {
815
- display: flex;
816
- margin-bottom: 1em;
817
- border-bottom: 1px solid var(--surface0);
685
+ .tk-action-link.tk-liked .tk-action-icon-solid,
686
+ .tk-action-link:hover .tk-action-icon-solid {
687
+ display: block;
818
688
  }
819
689
 
820
- .tk-panel .tk-tab {
821
- color: var(--subtext0);
822
- cursor: pointer;
823
- line-height: 2em;
824
- margin-right: 2em;
825
- margin-bottom: -2px;
690
+ .tk-action-count {
691
+ margin-left: 0.25rem;
692
+ font-size: 0.75rem;
693
+ height: 1.5rem;
694
+ line-height: 1.5rem;
695
+ }
696
+
697
+ .tk-main {
698
+ flex: 1;
699
+ width: 0;
700
+ }
701
+
702
+ .tk-meta {
703
+ display: flex;
704
+ align-items: baseline;
705
+ gap: 0.5rem;
706
+ flex-wrap: wrap;
707
+ }
708
+
709
+ .tk-row {
710
+ flex: 1;
711
+ display: flex;
712
+ flex-direction: row;
713
+ justify-content: space-between;
714
+ }
715
+
716
+ .tk-nick-link {
717
+ color: inherit;
718
+ text-decoration: none;
826
719
  transition: color 0.15s ease-out;
827
- &:hover {
828
- color: var(--text);
829
- }
830
720
  }
831
721
 
832
- .tk-panel .tk-tab.__active {
833
- color: var(--blue);
722
+ .tk-replies .tk-nick-link {
723
+ font-size: 0.9em;
834
724
  }
835
725
 
836
- .twikoo {
837
- position: relative;
726
+ .tk-nick-link:hover {
727
+ color: var(--blue);
838
728
  }
839
729
 
840
- .twikoo svg {
841
- fill: var(--subtext1);
730
+ .tk-actions {
731
+ display: none;
732
+ margin-left: 1em;
842
733
  }
843
734
 
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
- }
735
+ .tk-comment:hover .tk-actions {
736
+ display: inline;
852
737
  }
853
738
 
854
- .tk-content img {
855
- max-width: 300px;
856
- max-height: 300px;
857
- vertical-align: middle;
858
- cursor: zoom-in;
739
+ .tk-extras {
740
+ display: flex;
741
+ flex-wrap: wrap;
742
+ gap: 12px;
743
+ align-items: center;
744
+ margin: 4px 0;
859
745
  }
860
746
 
861
- .tk-owo-emotion,
862
- .twikoo .OwO-item img {
863
- width: 3em;
864
- height: auto;
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;
865
756
  }
866
757
 
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);
758
+ .tk-extra:hover {
759
+ background: hsl(from var(--text) h s l / 0.06);
760
+ }
872
761
 
873
- &:focus {
874
- border-color: var(--blue);
875
- }
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;
769
+ }
876
770
 
877
- &:focus-visible {
878
- box-shadow: 0 0 0 2px hsl(from var(--blue) h s l / 0.25);
879
- }
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;
880
777
  }
881
778
 
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);
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);
886
784
  }
887
785
 
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 {
891
- 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);
786
+ .tk-time {
787
+ color: var(--subtext0);
894
788
  }
895
789
 
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);
790
+ .tk-comment {
791
+ margin-top: 1rem;
792
+ padding-bottom: 1rem;
793
+ display: flex;
794
+ flex-direction: row;
795
+ word-break: break-word;
903
796
  }
904
797
 
905
- .twikoo .el-loading-mask {
906
- background-color: transparent;
907
- backdrop-filter: opacity(20%);
798
+ .tk-comment:last-child {
799
+ padding-bottom: 0;
908
800
  }
909
801
 
910
- .twikoo .el-textarea .el-input__count {
911
- color: currentColor;
912
- background: transparent;
802
+ .tk-content {
803
+ margin-top: 0.5rem;
804
+ overflow: hidden;
805
+ max-height: 500px;
806
+ position: relative;
807
+ line-height: 1.75;
913
808
  }
914
809
 
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;
810
+ .tk-content-expand {
811
+ max-height: none;
921
812
  }
922
813
 
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
- }
814
+ .tk-replies .tk-content {
815
+ font-size: 0.9em;
816
+ }
936
817
 
937
- &.OwO-open .OwO-body {
938
- display: block;
939
- }
818
+ .tk-comment .vemoji {
819
+ max-height: 2em;
820
+ vertical-align: middle;
940
821
  }
941
822
 
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;
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
+ }
954
831
 
955
- .OwO-items {
956
- padding: 10px 0 10px 10px;
957
- margin: 0;
958
- overflow: auto;
959
- font-size: 0;
960
- }
832
+ .tk-replies .tk-comment {
833
+ margin-top: 0.75rem;
834
+ padding-bottom: 0;
835
+ }
961
836
 
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
- }
837
+ .tk-replies .tk-comment:first-child {
838
+ margin-top: 0;
839
+ }
972
840
 
973
- &:focus-visible {
974
- background-color: var(--surface0);
975
- outline: none;
976
- }
977
- }
841
+ .tk-replies-expand {
842
+ max-height: none;
843
+ overflow: unset;
844
+ }
978
845
 
979
- .OwO-items-image {
980
- .OwO-item {
981
- img {
982
- max-width: 100%;
983
- }
984
- }
985
- }
846
+ .tk-ruser {
847
+ color: var(--blue);
848
+ text-decoration: none;
849
+ transition: opacity 0.15s ease-out;
850
+ }
986
851
 
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
- }
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
+ }
1006
860
 
1007
- .OwO-package-active,
1008
- .OwO-packages:hover {
1009
- color: var(--lavender);
1010
- }
1011
- }
1012
- }
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,