Skip to content

Commit 5033ec2

Browse files
style: 優化手機點擊互動效果
1 parent a1ab923 commit 5033ec2

1 file changed

Lines changed: 64 additions & 9 deletions

File tree

public/style.css

Lines changed: 64 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,7 @@
8989
margin: 0;
9090
padding: 0;
9191
box-sizing: border-box;
92+
-webkit-tap-highlight-color: transparent;
9293
}
9394

9495
html {
@@ -279,8 +280,9 @@ body {
279280
font-size: 14px;
280281
font-weight: 500;
281282
cursor: pointer;
282-
transition: background-color var(--duration) var(--ease), box-shadow var(--duration) var(--ease);
283+
transition: transform var(--duration) var(--ease), background-color var(--duration) var(--ease), box-shadow var(--duration) var(--ease);
283284
box-shadow: none;
285+
touch-action: manipulation;
284286
}
285287

286288
.import-dropdown-btn:hover {
@@ -289,6 +291,7 @@ body {
289291
}
290292

291293
.import-dropdown-btn:active {
294+
transform: scale(0.96);
292295
background: var(--color-primary-muted);
293296
}
294297

@@ -305,6 +308,7 @@ body {
305308
font-weight: 600;
306309
cursor: pointer;
307310
transition: all var(--duration) var(--ease);
311+
touch-action: manipulation;
308312
}
309313

310314
.icon-btn:hover {
@@ -313,7 +317,7 @@ body {
313317
}
314318

315319
.icon-btn:active {
316-
transform: scale(0.98);
320+
transform: scale(0.96);
317321
}
318322

319323
.dropdown-icon,
@@ -372,14 +376,20 @@ body {
372376
width: 100%;
373377
text-align: left;
374378
cursor: pointer;
375-
transition: background var(--duration) var(--ease);
379+
transition: transform var(--duration) var(--ease), background var(--duration) var(--ease);
376380
color: var(--color-text-main);
381+
touch-action: manipulation;
377382
}
378383

379384
.dropdown-item:hover {
380385
background: var(--color-fill);
381386
}
382387

388+
.dropdown-item:active {
389+
transform: scale(0.98);
390+
background: var(--color-fill);
391+
}
392+
383393
.dropdown-item+.dropdown-item {
384394
border-top: 1px solid var(--color-border-subtle);
385395
}
@@ -479,6 +489,12 @@ body {
479489
position: relative;
480490
outline: none;
481491
-webkit-tap-highlight-color: transparent;
492+
touch-action: manipulation;
493+
transition: transform var(--duration) var(--ease);
494+
}
495+
496+
.tooltip-icon:active {
497+
transform: scale(0.96);
482498
}
483499

484500
.tooltip-icon::before {
@@ -547,7 +563,8 @@ body {
547563
display: flex;
548564
align-items: center;
549565
justify-content: center;
550-
transition: background-color var(--duration) var(--ease), color var(--duration) var(--ease);
566+
transition: transform var(--duration) var(--ease), background-color var(--duration) var(--ease), color var(--duration) var(--ease);
567+
touch-action: manipulation;
551568
}
552569

553570
.modal-close:hover {
@@ -556,6 +573,7 @@ body {
556573
}
557574

558575
.modal-close:active {
576+
transform: scale(0.92);
559577
background: var(--color-fill);
560578
}
561579

@@ -617,9 +635,10 @@ body {
617635
font-size: 14px;
618636
font-weight: 500;
619637
cursor: pointer;
620-
transition: background-color var(--duration) var(--ease), color var(--duration) var(--ease);
638+
transition: transform var(--duration) var(--ease), background-color var(--duration) var(--ease), color var(--duration) var(--ease);
621639
border: none;
622640
white-space: nowrap;
641+
touch-action: manipulation;
623642
}
624643

625644
.modal-btn.cancel {
@@ -631,6 +650,11 @@ body {
631650
background: var(--color-fill);
632651
}
633652

653+
.modal-btn.cancel:active {
654+
transform: scale(0.96);
655+
background: var(--color-fill);
656+
}
657+
634658
.modal-btn.confirm {
635659
background: var(--color-primary);
636660
color: var(--md-sys-color-on-primary);
@@ -641,6 +665,7 @@ body {
641665
}
642666

643667
.modal-btn.confirm:active {
668+
transform: scale(0.96);
644669
background: var(--color-primary-muted);
645670
}
646671

@@ -768,13 +793,18 @@ body {
768793
display: flex;
769794
align-items: center;
770795
justify-content: center;
771-
transition: color var(--duration) var(--ease);
796+
transition: transform var(--duration) var(--ease), color var(--duration) var(--ease);
797+
touch-action: manipulation;
772798
}
773799

774800
.toggle-password-btn:hover {
775801
color: var(--color-primary);
776802
}
777803

804+
.toggle-password-btn:active {
805+
transform: translateY(-50%) scale(0.90);
806+
}
807+
778808
/* Status message */
779809
.status-msg {
780810
margin-top: 10px;
@@ -798,6 +828,13 @@ body {
798828
border: none;
799829
box-shadow: var(--shadow-soft);
800830
flex-wrap: wrap;
831+
touch-action: manipulation;
832+
transition: transform var(--duration) var(--ease), background-color var(--duration) var(--ease), box-shadow var(--duration) var(--ease);
833+
}
834+
835+
.student-card:active {
836+
transform: scale(0.98);
837+
background-color: var(--color-surface-hover);
801838
}
802839

803840
.student-avatar {
@@ -957,16 +994,22 @@ body {
957994
padding: 20px 22px;
958995
border: none;
959996
box-shadow: var(--shadow-soft);
960-
transition: background-color var(--duration) var(--ease), box-shadow var(--duration) var(--ease);
997+
transition: transform var(--duration) var(--ease), background-color var(--duration) var(--ease), box-shadow var(--duration) var(--ease);
961998
position: relative;
962999
overflow: hidden;
1000+
touch-action: manipulation;
9631001
}
9641002

9651003
.score-card:hover {
9661004
background: var(--color-surface-hover);
9671005
box-shadow: var(--shadow-hover);
9681006
}
9691007

1008+
.score-card:active {
1009+
transform: scale(0.98);
1010+
background-color: var(--color-surface-hover);
1011+
}
1012+
9701013
.score-header {
9711014
display: flex;
9721015
justify-content: space-between;
@@ -1187,13 +1230,19 @@ body {
11871230
border-radius: var(--radius-lg);
11881231
border: 1px solid var(--color-border-subtle);
11891232
overflow: hidden;
1190-
transition: all var(--duration) var(--ease);
1233+
transition: transform var(--duration) var(--ease), border-color var(--duration) var(--ease), background-color var(--duration) var(--ease);
1234+
touch-action: manipulation;
11911235
}
11921236

11931237
.chart-card:hover {
11941238
border-color: var(--color-border);
11951239
}
11961240

1241+
.chart-card:active {
1242+
transform: scale(0.99);
1243+
background-color: var(--color-surface-hover);
1244+
}
1245+
11971246
.chart-header {
11981247
padding: 16px 22px;
11991248
border-bottom: 1px solid var(--color-border-subtle);
@@ -1376,13 +1425,19 @@ body {
13761425
border-radius: var(--radius-lg);
13771426
padding: 20px;
13781427
border: 1px solid var(--color-border-subtle);
1379-
transition: all var(--duration) var(--ease);
1428+
transition: transform var(--duration) var(--ease), border-color var(--duration) var(--ease), background-color var(--duration) var(--ease);
1429+
touch-action: manipulation;
13801430
}
13811431

13821432
.distribution-card:hover {
13831433
border-color: var(--color-border);
13841434
}
13851435

1436+
.distribution-card:active {
1437+
transform: scale(0.99);
1438+
background-color: var(--color-surface-hover);
1439+
}
1440+
13861441
.distribution-card h4 {
13871442
font-size: 14px;
13881443
font-weight: 600;

0 commit comments

Comments
 (0)