@somecat/epub-reader 0.1.1 → 0.1.4

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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@somecat/epub-reader",
3
- "version": "0.1.1",
3
+ "version": "0.1.4",
4
4
  "description": "A cross-framework EPUB ebook reader component library based on foliate-js",
5
5
  "license": "MIT",
6
6
  "author": "SomeCat <zt@somecat.cn>",
@@ -46,6 +46,7 @@
46
46
  "module": "./dist/index.js",
47
47
  "types": "./dist/index.d.ts",
48
48
  "scripts": {
49
+ "prepublishOnly": "npm run build",
49
50
  "build": "tsup && node scripts/copy-style.mjs",
50
51
  "dev:react": "pnpm -C playgrounds/react-demo dev",
51
52
  "dev:vue": "pnpm -C playgrounds/vue-demo dev",
package/style.css CHANGED
@@ -3,6 +3,11 @@
3
3
  --epub-reader-panel-fg: #1f2937;
4
4
  --epub-reader-border: rgba(0, 0, 0, 0.12);
5
5
  --epub-reader-accent: #2563eb;
6
+ --epub-reader-range-track: #e5e7eb;
7
+ --epub-reader-range-fill: #d1d5db;
8
+ --epub-reader-range-thumb-bg: #ffffff;
9
+ --epub-reader-range-thumb-fg: #111827;
10
+ --epub-reader-range-thumb-border: rgba(0, 0, 0, 0.08);
6
11
  --epub-reader-shadow: 0 10px 30px rgba(0, 0, 0, 0.2);
7
12
  --epub-reader-radius: 10px;
8
13
  --epub-reader-bottom-bar-height: 40px;
@@ -18,6 +23,11 @@
18
23
  --epub-reader-panel-fg: #e5e7eb;
19
24
  --epub-reader-border: rgba(255, 255, 255, 0.14);
20
25
  --epub-reader-accent: #60a5fa;
26
+ --epub-reader-range-track: #2a2a2a;
27
+ --epub-reader-range-fill: #3a3a3a;
28
+ --epub-reader-range-thumb-bg: #ffffff;
29
+ --epub-reader-range-thumb-fg: #111827;
30
+ --epub-reader-range-thumb-border: rgba(0, 0, 0, 0.12);
21
31
  --epub-reader-shadow: 0 10px 30px rgba(0, 0, 0, 0.5);
22
32
  }
23
33
 
@@ -27,10 +37,19 @@
27
37
  height: 100%;
28
38
  outline: none;
29
39
  overflow: hidden;
40
+ box-sizing: border-box;
41
+ }
42
+
43
+ .epub-reader *,
44
+ .epub-reader *::before,
45
+ .epub-reader *::after {
46
+ box-sizing: border-box;
30
47
  }
31
48
 
32
49
  .epub-reader__viewer {
33
50
  width: 100%;
51
+ padding-left: 80px;
52
+ padding-right: 80px;
34
53
  height: calc(100% - var(--epub-reader-bottom-bar-height));
35
54
  background: var(--epub-reader-panel-bg);
36
55
  transition: background-color 0.2s ease;
@@ -52,54 +71,93 @@
52
71
  }
53
72
 
54
73
  .epub-reader__panel {
55
- width: 88px;
56
- padding: 8px;
74
+ width: 44px;
75
+ padding: 4px;
57
76
  border: 1px solid var(--epub-reader-border);
58
77
  border-radius: var(--epub-reader-radius);
59
- background: color-mix(in srgb, var(--epub-reader-panel-bg) 92%, transparent);
78
+ background: color-mix(in srgb, var(--epub-reader-panel-bg) 85%, transparent);
60
79
  color: var(--epub-reader-panel-fg);
61
80
  box-shadow: var(--epub-reader-shadow);
62
- backdrop-filter: blur(10px);
81
+ backdrop-filter: blur(20px);
63
82
  display: flex;
64
83
  flex-direction: column;
65
- gap: 6px;
84
+ gap: 4px;
66
85
  align-items: stretch;
67
86
  }
68
87
 
69
88
  .epub-reader__btn {
70
89
  appearance: none;
71
- border: 1px solid var(--epub-reader-border);
90
+ border: 1px solid transparent;
72
91
  background: transparent;
73
92
  color: inherit;
74
- padding: 6px 8px;
75
- border-radius: 8px;
93
+ padding: 8px;
94
+ border-radius: 6px;
76
95
  font-size: 12px;
77
- line-height: 1;
96
+ line-height: 0;
78
97
  cursor: pointer;
79
98
  user-select: none;
99
+ transition: all 0.2s ease;
100
+ display: flex;
101
+ align-items: center;
102
+ justify-content: center;
103
+ }
104
+
105
+ .epub-reader__btn svg {
106
+ transition: transform 0.2s cubic-bezier(0.34, 1.56, 0.64, 1);
107
+ }
108
+
109
+ .epub-reader__btn:hover:not(:disabled) svg {
110
+ transform: scale(1.1);
111
+ }
112
+
113
+ .epub-reader__btn:active:not(:disabled) svg {
114
+ transform: scale(0.95);
115
+ }
116
+
117
+ .epub-reader__panel .epub-reader__btn svg {
118
+ width: 18px !important;
119
+ height: 18px !important;
120
+ min-width: 18px !important;
121
+ stroke-width: 1.8px;
80
122
  }
81
123
 
82
124
  .epub-reader__btn:disabled {
83
- opacity: 0.6;
125
+ opacity: 0.4;
84
126
  cursor: not-allowed;
85
127
  }
86
128
 
87
129
  .epub-reader__btn:hover:not(:disabled) {
88
- border-color: color-mix(in srgb, var(--epub-reader-accent) 60%, var(--epub-reader-border));
130
+ background: rgba(0, 0, 0, 0.04);
131
+ color: var(--epub-reader-accent);
132
+ }
133
+
134
+ .epub-reader__btn[aria-pressed='true'] {
135
+ background: rgba(0, 0, 0, 0.08);
136
+ color: var(--epub-reader-accent);
137
+ }
138
+
139
+ .epub-reader[data-theme='dark'] .epub-reader__btn:hover:not(:disabled) {
140
+ background: rgba(255, 255, 255, 0.08);
141
+ }
142
+
143
+ .epub-reader[data-theme='dark'] .epub-reader__btn[aria-pressed='true'] {
144
+ background: rgba(255, 255, 255, 0.12);
89
145
  }
90
146
 
91
147
  .epub-reader__divider {
92
148
  height: 1px;
93
149
  background: var(--epub-reader-border);
94
- margin: 2px 0;
150
+ margin: 4px 2px;
151
+ opacity: 0.6;
95
152
  }
96
153
 
97
154
  .epub-reader__font {
98
155
  text-align: center;
99
- font-size: 12px;
100
- font-weight: 700;
156
+ font-size: 10px;
157
+ font-weight: 600;
101
158
  color: var(--epub-reader-accent);
102
159
  padding: 2px 0;
160
+ transform: scale(0.9);
103
161
  }
104
162
 
105
163
  .epub-reader__overlay {
@@ -109,6 +167,44 @@
109
167
  z-index: 20;
110
168
  }
111
169
 
170
+ .epub-reader__loading {
171
+ position: absolute;
172
+ inset: 0;
173
+ z-index: 80;
174
+ display: flex;
175
+ flex-direction: column;
176
+ align-items: center;
177
+ justify-content: center;
178
+ gap: 10px;
179
+ background: color-mix(in srgb, var(--epub-reader-panel-bg) 65%, transparent);
180
+ backdrop-filter: blur(6px);
181
+ }
182
+
183
+ .epub-reader__spinner {
184
+ width: 28px;
185
+ height: 28px;
186
+ border-radius: 50%;
187
+ border: 3px solid var(--epub-reader-range-track);
188
+ border-top-color: var(--epub-reader-accent);
189
+ animation: epub-reader-spin 0.9s linear infinite;
190
+ }
191
+
192
+ .epub-reader__loading-text {
193
+ font-size: 12px;
194
+ font-weight: 700;
195
+ color: var(--epub-reader-panel-fg);
196
+ letter-spacing: 0.2px;
197
+ }
198
+
199
+ @keyframes epub-reader-spin {
200
+ from {
201
+ transform: rotate(0deg);
202
+ }
203
+ to {
204
+ transform: rotate(360deg);
205
+ }
206
+ }
207
+
112
208
  .epub-reader__drawer {
113
209
  position: absolute;
114
210
  top: 0;
@@ -170,7 +266,7 @@
170
266
  margin: 0;
171
267
  display: flex;
172
268
  flex-direction: column;
173
- gap: 4px;
269
+ gap: 2px;
174
270
  }
175
271
 
176
272
  .epub-reader__toc-item {
@@ -180,16 +276,26 @@
180
276
  .epub-reader__toc-btn {
181
277
  width: 100%;
182
278
  text-align: left;
183
- padding: 8px 10px;
279
+ padding: 10px 12px;
184
280
  border-radius: 8px;
185
- border: 1px solid var(--epub-reader-border);
281
+ border: 1px solid transparent;
186
282
  background: transparent;
187
283
  color: inherit;
188
284
  cursor: pointer;
285
+ font-size: 14px;
286
+ line-height: 1.5;
287
+ transition: all 0.2s ease;
288
+ opacity: 0.85;
189
289
  }
190
290
 
191
291
  .epub-reader__toc-btn:hover {
192
- border-color: color-mix(in srgb, var(--epub-reader-accent) 60%, var(--epub-reader-border));
292
+ background: rgba(0, 0, 0, 0.04);
293
+ opacity: 1;
294
+ color: var(--epub-reader-accent);
295
+ }
296
+
297
+ .epub-reader[data-theme='dark'] .epub-reader__toc-btn:hover {
298
+ background: rgba(255, 255, 255, 0.08);
193
299
  }
194
300
 
195
301
  .epub-reader__toc-details {
@@ -197,20 +303,60 @@
197
303
  }
198
304
 
199
305
  .epub-reader__toc-summary {
200
- padding: 8px 10px;
306
+ padding: 10px 12px;
201
307
  border-radius: 8px;
202
308
  cursor: pointer;
203
- border: 1px solid var(--epub-reader-border);
309
+ border: 1px solid transparent;
204
310
  user-select: none;
311
+ font-size: 14px;
312
+ font-weight: 600;
313
+ list-style: none;
314
+ display: flex;
315
+ align-items: center;
316
+ justify-content: space-between;
317
+ transition: all 0.2s ease;
318
+ opacity: 0.9;
319
+ }
320
+
321
+ .epub-reader__toc-summary::-webkit-details-marker {
322
+ display: none;
323
+ }
324
+
325
+ .epub-reader__toc-summary::after {
326
+ content: '';
327
+ width: 6px;
328
+ height: 6px;
329
+ border-right: 1.5px solid currentColor;
330
+ border-bottom: 1.5px solid currentColor;
331
+ transform: rotate(-45deg);
332
+ transition: transform 0.2s ease;
333
+ opacity: 0.5;
334
+ margin-left: 8px;
335
+ }
336
+
337
+ .epub-reader__toc-details[open] > .epub-reader__toc-summary::after {
338
+ transform: rotate(45deg);
339
+ }
340
+
341
+ .epub-reader__toc-summary:hover {
342
+ background: rgba(0, 0, 0, 0.04);
343
+ color: var(--epub-reader-accent);
344
+ }
345
+
346
+ .epub-reader[data-theme='dark'] .epub-reader__toc-summary:hover {
347
+ background: rgba(255, 255, 255, 0.08);
205
348
  }
206
349
 
207
350
  .epub-reader__toc-details[open] > .epub-reader__toc-summary {
208
- border-color: color-mix(in srgb, var(--epub-reader-accent) 60%, var(--epub-reader-border));
351
+ font-weight: 700;
352
+ color: var(--epub-reader-accent);
209
353
  }
210
354
 
211
355
  .epub-reader__toc-details > .epub-reader__toc-list {
212
- padding-left: 12px;
213
- margin-top: 6px;
356
+ padding-left: 16px;
357
+ margin-top: 2px;
358
+ border-left: 1px solid var(--epub-reader-border);
359
+ margin-left: 12px;
214
360
  }
215
361
 
216
362
  .epub-reader__field {
@@ -363,6 +509,9 @@
363
509
  }
364
510
 
365
511
  .epub-reader[data-layout='mobile'] .epub-reader__viewer {
512
+ width: 100%;
513
+ padding-left: 0;
514
+ padding-right: 0;
366
515
  height: 100%;
367
516
  touch-action: pan-x;
368
517
  }
@@ -376,40 +525,83 @@
376
525
 
377
526
  .epub-reader__mbar {
378
527
  position: absolute;
379
- left: 10px;
380
- right: 10px;
381
- bottom: 0;
528
+ left: 16px;
529
+ right: 16px;
530
+ bottom: 16px;
382
531
  z-index: 15;
383
532
  display: flex;
384
533
  align-items: center;
534
+ justify-content: space-between;
385
535
  gap: 8px;
386
- padding: 10px;
536
+ padding: 6px;
387
537
  border: 1px solid var(--epub-reader-border);
388
- border-radius: calc(var(--epub-reader-radius) + 6px);
389
- background: color-mix(in srgb, var(--epub-reader-panel-bg) 92%, transparent);
538
+ border-radius: 24px;
539
+ background: color-mix(in srgb, var(--epub-reader-panel-bg) 85%, transparent);
390
540
  color: var(--epub-reader-panel-fg);
391
- box-shadow: var(--epub-reader-shadow);
392
- backdrop-filter: blur(10px);
393
- transform: translateY(calc(100% + 10px));
394
- transition: transform 0.2s ease;
541
+ box-shadow: 0 8px 32px rgba(0, 0, 0, 0.12);
542
+ backdrop-filter: blur(20px);
543
+ transform: translateY(calc(100% + 20px));
544
+ transition: transform 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);
545
+ }
546
+
547
+ .epub-reader__mbar-left {
548
+ flex: 1;
549
+ display: flex;
550
+ align-items: center;
551
+ gap: 8px;
552
+ min-width: 0;
553
+ }
554
+
555
+ .epub-reader__mbar-right {
556
+ display: flex;
557
+ align-items: center;
558
+ gap: 8px;
395
559
  }
396
560
 
397
561
  .epub-reader__mbar.is-visible {
398
- transform: translateY(-4px);
562
+ transform: translateY(0);
399
563
  }
400
564
 
401
565
  .epub-reader__mbar .epub-reader__btn {
402
- flex: 1 1 0;
403
- text-align: center;
404
- padding: 10px 8px;
405
- font-size: 13px;
566
+ height: 44px;
567
+ border-radius: 18px;
568
+ background: transparent;
569
+ border: none;
570
+ display: flex;
571
+ align-items: center;
572
+ justify-content: center;
573
+ color: inherit;
574
+ opacity: 0.7;
575
+ transition: all 0.2s ease;
576
+ }
577
+
578
+ .epub-reader__mbar-left .epub-reader__btn {
579
+ flex: 1;
580
+ }
581
+
582
+ .epub-reader__mbar .epub-reader__btn[aria-pressed='true'] {
583
+ background: var(--epub-reader-accent);
584
+ color: #fff;
585
+ opacity: 1;
586
+ box-shadow: 0 4px 12px color-mix(in srgb, var(--epub-reader-accent) 40%, transparent);
587
+ }
588
+
589
+ .epub-reader__mbar .epub-reader__btn:active {
590
+ transform: scale(0.92);
406
591
  }
407
592
 
408
593
  .epub-reader__moverlay {
409
594
  position: absolute;
410
595
  inset: 0;
411
- background: rgba(0, 0, 0, 0.35);
596
+ background: rgba(0, 0, 0, 0.4);
597
+ backdrop-filter: blur(2px);
412
598
  z-index: 20;
599
+ opacity: 0;
600
+ animation: fadeIn 0.2s forwards;
601
+ }
602
+
603
+ @keyframes fadeIn {
604
+ to { opacity: 1; }
413
605
  }
414
606
 
415
607
  .epub-reader__msheet {
@@ -417,18 +609,19 @@
417
609
  left: 0;
418
610
  right: 0;
419
611
  bottom: 0;
420
- height: 60%;
421
- max-height: calc(100% - 70px);
612
+ height: auto;
613
+ max-height: 70%;
422
614
  background: var(--epub-reader-panel-bg);
423
615
  color: var(--epub-reader-panel-fg);
424
616
  border-top: 1px solid var(--epub-reader-border);
425
- border-top-left-radius: calc(var(--epub-reader-radius) + 10px);
426
- border-top-right-radius: calc(var(--epub-reader-radius) + 10px);
617
+ border-top-left-radius: 24px;
618
+ border-top-right-radius: 24px;
427
619
  transform: translateY(100%);
428
- transition: transform 0.25s ease;
620
+ transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1);
429
621
  z-index: 30;
430
622
  display: flex;
431
623
  flex-direction: column;
624
+ box-shadow: 0 -4px 24px rgba(0, 0, 0, 0.1);
432
625
  pointer-events: none;
433
626
  }
434
627
 
@@ -438,23 +631,74 @@
438
631
  }
439
632
 
440
633
  .epub-reader__msheet-header {
634
+ position: relative;
441
635
  display: flex;
442
636
  align-items: center;
443
637
  justify-content: space-between;
444
- gap: 8px;
445
- padding: 12px 12px 10px;
446
- border-bottom: 1px solid var(--epub-reader-border);
638
+ padding: 22px 20px 16px;
639
+ border-bottom: 1px solid color-mix(in srgb, var(--epub-reader-border) 60%, transparent);
640
+ }
641
+
642
+ /* 拖拽手柄视觉提示 */
643
+ .epub-reader__msheet-header::before {
644
+ content: '';
645
+ position: absolute;
646
+ top: 8px;
647
+ left: 50%;
648
+ transform: translateX(-50%);
649
+ width: 36px;
650
+ height: 4px;
651
+ background: var(--epub-reader-panel-fg);
652
+ border-radius: 2px;
653
+ opacity: 0.15;
654
+ }
655
+
656
+ .epub-reader[data-theme='dark'] .epub-reader__msheet-header::before {
657
+ opacity: 0.2;
658
+ background: #fff;
447
659
  }
448
660
 
449
661
  .epub-reader__msheet-title {
450
- font-size: 14px;
451
- font-weight: 800;
662
+ font-size: 17px;
663
+ font-weight: 700;
664
+ opacity: 0.95;
665
+ letter-spacing: -0.01em;
666
+ }
667
+
668
+ .epub-reader__msheet-header .epub-reader__btn {
669
+ width: 28px;
670
+ height: 28px;
671
+ min-height: 0;
672
+ padding: 0;
673
+ border-radius: 50%;
674
+ background: rgba(0, 0, 0, 0.05);
675
+ color: var(--epub-reader-panel-fg);
676
+ }
677
+
678
+ .epub-reader__msheet-header .epub-reader__btn:hover {
679
+ background: rgba(0, 0, 0, 0.1);
680
+ }
681
+
682
+ .epub-reader[data-theme='dark'] .epub-reader__msheet-header .epub-reader__btn {
683
+ background: rgba(255, 255, 255, 0.1);
684
+ }
685
+
686
+ .epub-reader[data-theme='dark'] .epub-reader__msheet-header .epub-reader__btn:hover {
687
+ background: rgba(255, 255, 255, 0.15);
688
+ }
689
+
690
+ .epub-reader__msheet-header .epub-reader__btn svg {
691
+ width: 16px !important;
692
+ height: 16px !important;
693
+ min-width: 16px !important;
452
694
  }
453
695
 
454
696
  .epub-reader__msheet-body {
455
- padding: 12px;
456
- overflow: auto;
457
- flex: 1;
697
+ padding: 20px;
698
+ overflow-y: auto;
699
+ overflow-x: hidden;
700
+ overscroll-behavior: contain;
701
+ -webkit-overflow-scrolling: touch;
458
702
  }
459
703
 
460
704
  .epub-reader__mprogress {
@@ -466,6 +710,45 @@
466
710
 
467
711
  .epub-reader__mprogress .epub-reader__range {
468
712
  width: 100%;
713
+ appearance: none;
714
+ -webkit-appearance: none;
715
+ height: 12px;
716
+ border-radius: 999px;
717
+ outline: none;
718
+ background: var(--epub-reader-range-track);
719
+ }
720
+
721
+ .epub-reader__mprogress .epub-reader__range::-webkit-slider-runnable-track {
722
+ height: 12px;
723
+ border-radius: 999px;
724
+ background: var(--epub-reader-range-track);
725
+ }
726
+
727
+ .epub-reader__mprogress .epub-reader__range::-webkit-slider-thumb {
728
+ appearance: none;
729
+ -webkit-appearance: none;
730
+ width: 22px;
731
+ height: 22px;
732
+ border-radius: 50%;
733
+ background: var(--epub-reader-range-thumb-bg);
734
+ border: 1px solid var(--epub-reader-range-thumb-border);
735
+ box-shadow: 0 8px 16px rgba(0, 0, 0, 0.12);
736
+ margin-top: -5px;
737
+ }
738
+
739
+ .epub-reader__mprogress .epub-reader__range::-moz-range-track {
740
+ height: 12px;
741
+ border-radius: 999px;
742
+ background: var(--epub-reader-range-track);
743
+ }
744
+
745
+ .epub-reader__mprogress .epub-reader__range::-moz-range-thumb {
746
+ width: 22px;
747
+ height: 22px;
748
+ border-radius: 50%;
749
+ background: var(--epub-reader-range-thumb-bg);
750
+ border: 1px solid var(--epub-reader-range-thumb-border);
751
+ box-shadow: 0 8px 16px rgba(0, 0, 0, 0.12);
469
752
  }
470
753
 
471
754
  .epub-reader__mprogress-percent {
@@ -480,3 +763,109 @@
480
763
  justify-content: center;
481
764
  gap: 12px;
482
765
  }
766
+
767
+ .epub-reader__msettings {
768
+ display: flex;
769
+ flex-direction: column;
770
+ gap: 12px;
771
+ }
772
+
773
+ .epub-reader__msettings .epub-reader__btn {
774
+ width: 100%;
775
+ }
776
+
777
+ .epub-reader__mfont-range {
778
+ display: flex;
779
+ align-items: center;
780
+ gap: 12px;
781
+ width: 100%;
782
+ }
783
+
784
+ .epub-reader__mfont-slider {
785
+ position: relative;
786
+ flex: 1;
787
+ height: 44px;
788
+ display: flex;
789
+ align-items: center;
790
+ touch-action: none;
791
+ }
792
+
793
+ .epub-reader__mfont-slider .epub-reader__range {
794
+ appearance: none;
795
+ -webkit-appearance: none;
796
+ width: 100%;
797
+ height: 12px;
798
+ border-radius: 999px;
799
+ outline: none;
800
+ background: var(--epub-reader-range-track);
801
+ }
802
+
803
+ .epub-reader__mfont-slider .epub-reader__range::-webkit-slider-runnable-track {
804
+ height: 12px;
805
+ border-radius: 999px;
806
+ background: var(--epub-reader-range-track);
807
+ }
808
+
809
+ .epub-reader__mfont-slider .epub-reader__range::-webkit-slider-thumb {
810
+ appearance: none;
811
+ -webkit-appearance: none;
812
+ width: 34px;
813
+ height: 34px;
814
+ border-radius: 50%;
815
+ background: transparent;
816
+ border: none;
817
+ margin-top: -11px;
818
+ }
819
+
820
+ .epub-reader__mfont-slider .epub-reader__range::-moz-range-track {
821
+ height: 12px;
822
+ border-radius: 999px;
823
+ background: var(--epub-reader-range-track);
824
+ }
825
+
826
+ .epub-reader__mfont-slider .epub-reader__range::-moz-range-thumb {
827
+ width: 34px;
828
+ height: 34px;
829
+ border-radius: 50%;
830
+ background: transparent;
831
+ border: none;
832
+ }
833
+
834
+ .epub-reader__mfont-thumb {
835
+ position: absolute;
836
+ top: 50%;
837
+ transform: translate(-50%, -50%);
838
+ border-radius: 50%;
839
+ background: var(--epub-reader-range-thumb-bg);
840
+ color: var(--epub-reader-range-thumb-fg);
841
+ font-size: 12px;
842
+ font-weight: 900;
843
+ display: flex;
844
+ align-items: center;
845
+ justify-content: center;
846
+ box-shadow: 0 10px 22px rgba(0, 0, 0, 0.14);
847
+ border: 2px solid var(--epub-reader-range-thumb-border);
848
+ pointer-events: none;
849
+ will-change: left;
850
+ transition: left 80ms linear, transform 120ms cubic-bezier(0.34, 1.56, 0.64, 1);
851
+ }
852
+
853
+ .epub-reader__mfont-slider.is-dragging .epub-reader__mfont-thumb {
854
+ transition: none;
855
+ transform: translate(-50%, -50%) scale(1.06);
856
+ }
857
+
858
+ .epub-reader__mfont-a {
859
+ font-weight: 800;
860
+ color: var(--epub-reader-panel-fg);
861
+ }
862
+
863
+ .epub-reader__mfont-a.is-small {
864
+ font-size: 12px;
865
+ opacity: 0.7;
866
+ }
867
+
868
+ .epub-reader__mfont-a.is-big {
869
+ font-size: 18px;
870
+ opacity: 0.9;
871
+ }