8989 margin : 0 ;
9090 padding : 0 ;
9191 box-sizing : border-box;
92+ -webkit-tap-highlight-color : transparent;
9293}
9394
9495html {
@@ -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