@mideind/netskrafl-react 3.2.1 → 3.2.3

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.
@@ -387,6 +387,7 @@ div.netskrafl-container {
387
387
  --board-cell-border-radius: 2.5px;
388
388
  --board-cell-border-width-lg: 2px;
389
389
  --board-cell-border-radius-lg: 3.5px;
390
+ --selection-outline-radius: 3.5px;
390
391
  --board-cell-border-color: white;
391
392
  --board-tile-line-height-lg: 30px;
392
393
  --tab-background: #f3f3f6;
@@ -504,6 +505,7 @@ div.netskrafl-container.legacy-colors {
504
505
  --board-cell-border-radius: 0;
505
506
  --board-cell-border-width-lg: 1px;
506
507
  --board-cell-border-radius-lg: 0;
508
+ --selection-outline-radius: 3.5px;
507
509
  --board-cell-border-color: #e8e8e8;
508
510
  --board-tile-line-height-lg: 32px;
509
511
 
@@ -778,7 +780,6 @@ div.netskrafl-container.legacy-colors div.board div.letterscore {
778
780
  /* Rack tile overrides for mobile */
779
781
 
780
782
  div.netskrafl-container.legacy-colors div.rack div.netskrafl-tile {
781
- line-height: 34px;
782
783
  margin-left: 0;
783
784
  padding-right: 0;
784
785
  }
@@ -2320,18 +2321,6 @@ div.netskrafl-tile.dragging div.letterscore {
2320
2321
  }
2321
2322
  }
2322
2323
 
2323
- @-webkit-keyframes expand {
2324
- 0% {
2325
- transform: scale(1);
2326
- }
2327
- 40% {
2328
- transform: scale(1.05);
2329
- }
2330
- 100% {
2331
- transform: scale(1);
2332
- }
2333
- }
2334
-
2335
2324
  @keyframes slidein {
2336
2325
  0% {
2337
2326
  transform: scale(0);
@@ -2341,15 +2330,6 @@ div.netskrafl-tile.dragging div.letterscore {
2341
2330
  }
2342
2331
  }
2343
2332
 
2344
- @-webkit-keyframes slidein {
2345
- 0% {
2346
- transform: scale(0);
2347
- }
2348
- 100% {
2349
- transform: scale(1);
2350
- }
2351
- }
2352
-
2353
2333
  .netskrafl-container div.login-btn-large {
2354
2334
  text-align: center;
2355
2335
  font-size: 19px;
@@ -2506,7 +2486,6 @@ div.netskrafl-tile.dragging div.letterscore {
2506
2486
  .netskrafl-container div.right-tab.chat-alert > span.glyphicon {
2507
2487
  color: var(--cancel-button);
2508
2488
  animation: redBlink 1s infinite;
2509
- -webkit-animation: redBlink 1s infinite;
2510
2489
  }
2511
2490
 
2512
2491
  .netskrafl-container div.right-area {
@@ -2891,21 +2870,6 @@ div.netskrafl-tile.dragging div.letterscore {
2891
2870
  }
2892
2871
  }
2893
2872
 
2894
- @-webkit-keyframes colorPulseMobile {
2895
- 0% {
2896
- transform: scale(1);
2897
- }
2898
- 40% {
2899
- transform: scale(1.3);
2900
- }
2901
- 60% {
2902
- transform: scale(1.3);
2903
- }
2904
- 100% {
2905
- transform: scale(1);
2906
- }
2907
- }
2908
-
2909
2873
  .netskrafl-container span.score-mobile {
2910
2874
  display: inline-block;
2911
2875
  font-weight: 400;
@@ -2915,7 +2879,6 @@ div.netskrafl-tile.dragging div.letterscore {
2915
2879
 
2916
2880
  .netskrafl-container div.submitmove#move-mobile.word-great span.score-mobile {
2917
2881
  animation: colorPulseMobile 1.5s infinite;
2918
- -webkit-animation: colorPulseMobile 1.5s infinite;
2919
2882
  }
2920
2883
 
2921
2884
  .netskrafl-container div.submitmove#move-mobile span.glyphicon {
@@ -3753,128 +3716,6 @@ div.netskrafl-racktile {
3753
3716
  }
3754
3717
  }
3755
3718
 
3756
- @-webkit-keyframes selBlink {
3757
- 0% {
3758
- color: white;
3759
- background-color: var(--cancel-button);
3760
- border-color: var(--cancel-button);
3761
- }
3762
- 45% {
3763
- color: white;
3764
- background-color: var(--cancel-button);
3765
- border-color: var(--cancel-button);
3766
- }
3767
- 50% {
3768
- color: black;
3769
- background-color: white;
3770
- border-color: white;
3771
- }
3772
- 95% {
3773
- color: black;
3774
- background-color: white;
3775
- border-color: white;
3776
- }
3777
- 100% {
3778
- color: white;
3779
- background-color: var(--cancel-button);
3780
- border-color: var(--cancel-button);
3781
- }
3782
- }
3783
-
3784
- @keyframes selBlank {
3785
- 0% {
3786
- color: white;
3787
- background-color: var(--cancel-button);
3788
- border-color: var(--cancel-button);
3789
- }
3790
- 45% {
3791
- color: white;
3792
- background-color: var(--cancel-button);
3793
- border-color: var(--cancel-button);
3794
- }
3795
- 50% {
3796
- color: var(--blank-tile);
3797
- background-color: white;
3798
- border-color: white;
3799
- }
3800
- 95% {
3801
- color: var(--blank-tile);
3802
- background-color: white;
3803
- border-color: white;
3804
- }
3805
- 100% {
3806
- color: white;
3807
- background-color: var(--cancel-button);
3808
- border-color: var(--cancel-button);
3809
- }
3810
- }
3811
-
3812
- @-webkit-keyframes selBlank {
3813
- 0% {
3814
- color: white;
3815
- background-color: var(--cancel-button);
3816
- border-color: var(--cancel-button);
3817
- }
3818
- 45% {
3819
- color: white;
3820
- background-color: var(--cancel-button);
3821
- border-color: var(--cancel-button);
3822
- }
3823
- 50% {
3824
- color: var(--blank-tile);
3825
- background-color: white;
3826
- border-color: white;
3827
- }
3828
- 95% {
3829
- color: var(--blank-tile);
3830
- background-color: white;
3831
- border-color: white;
3832
- }
3833
- 100% {
3834
- color: white;
3835
- background-color: var(--cancel-button);
3836
- border-color: var(--cancel-button);
3837
- }
3838
- }
3839
-
3840
- /* Text-only animation for tiles (background handled by parent td) */
3841
-
3842
- @keyframes selBlinkText {
3843
- 0% {
3844
- color: white;
3845
- }
3846
- 45% {
3847
- color: white;
3848
- }
3849
- 50% {
3850
- color: black;
3851
- }
3852
- 95% {
3853
- color: black;
3854
- }
3855
- 100% {
3856
- color: white;
3857
- }
3858
- }
3859
-
3860
- @keyframes selBlankText {
3861
- 0% {
3862
- color: white;
3863
- }
3864
- 45% {
3865
- color: white;
3866
- }
3867
- 50% {
3868
- color: var(--blank-tile);
3869
- }
3870
- 95% {
3871
- color: var(--blank-tile);
3872
- }
3873
- 100% {
3874
- color: white;
3875
- }
3876
- }
3877
-
3878
3719
  @keyframes redBlink {
3879
3720
  0% {
3880
3721
  opacity: 1;
@@ -3893,24 +3734,6 @@ div.netskrafl-racktile {
3893
3734
  }
3894
3735
  }
3895
3736
 
3896
- @-webkit-keyframes redBlink {
3897
- 0% {
3898
- opacity: 1;
3899
- }
3900
- 30% {
3901
- opacity: 1;
3902
- }
3903
- 50% {
3904
- opacity: 0;
3905
- }
3906
- 70% {
3907
- opacity: 1;
3908
- }
3909
- 100% {
3910
- opacity: 1;
3911
- }
3912
- }
3913
-
3914
3737
  @keyframes opacityBlink {
3915
3738
  0% {
3916
3739
  opacity: 1;
@@ -3929,24 +3752,6 @@ div.netskrafl-racktile {
3929
3752
  }
3930
3753
  }
3931
3754
 
3932
- @-webkit-keyframes opacityBlink {
3933
- 0% {
3934
- opacity: 1;
3935
- }
3936
- 25% {
3937
- opacity: 1;
3938
- }
3939
- 75% {
3940
- opacity: 1;
3941
- }
3942
- 80% {
3943
- opacity: 0.1;
3944
- }
3945
- 100% {
3946
- opacity: 0.1;
3947
- }
3948
- }
3949
-
3950
3755
  .netskrafl-container div.sel {
3951
3756
  background-color: transparent;
3952
3757
  color: inherit;
@@ -3963,7 +3768,6 @@ div.netskrafl-blanktile.sel {
3963
3768
  .netskrafl-container div.board td:has(> div.sel),
3964
3769
  .netskrafl-container table.board td:has(> div.sel) {
3965
3770
  animation: selBlink 1.2s infinite;
3966
- -webkit-animation: selBlink 1.2s infinite;
3967
3771
  }
3968
3772
 
3969
3773
  /* Make the parent td match the background of an exchange-selected tile */
@@ -3973,8 +3777,12 @@ div.rack td:has(> div.netskrafl-xchgsel) {
3973
3777
  border-color: var(--human-color);
3974
3778
  }
3975
3779
 
3976
- .netskrafl-container td.sel {
3780
+ .netskrafl-container table.board td.sel,
3781
+ .netskrafl-container div.rack td.sel {
3977
3782
  outline: var(--cancel-button) solid 3px;
3783
+ border-radius: var(--selection-outline-radius);
3784
+ position: relative;
3785
+ z-index: 1;
3978
3786
  }
3979
3787
 
3980
3788
  /* Container focus styling - remove default outline */
@@ -4047,15 +3855,6 @@ div.netskrafl-xchgsel {
4047
3855
  }
4048
3856
  }
4049
3857
 
4050
- @-webkit-keyframes fresh-appear {
4051
- 0% {
4052
- opacity: 0;
4053
- }
4054
- 100% {
4055
- opacity: 1;
4056
- }
4057
- }
4058
-
4059
3858
  div.netskrafl-freshtile {
4060
3859
  color: white;
4061
3860
  background-color: var(--autoplayer-color);
@@ -4064,10 +3863,6 @@ div.netskrafl-freshtile {
4064
3863
  animation-duration: 100ms;
4065
3864
  animation-delay: 0s;
4066
3865
  animation-fill-mode: forwards;
4067
- -webkit-animation-name: fresh-appear;
4068
- -webkit-animation-duration: 100ms;
4069
- -webkit-animation-delay: 0s;
4070
- -webkit-animation-fill-mode: forwards;
4071
3866
  }
4072
3867
 
4073
3868
  .netskrafl-container div.highlight0 {
@@ -4657,26 +4452,8 @@ div.highlight1.netskrafl-blanktile {
4657
4452
  }
4658
4453
  }
4659
4454
 
4660
- @-webkit-keyframes colorPulse {
4661
- 0% {
4662
- color: var(--ok-button);
4663
- }
4664
- 40% {
4665
- color: var(--cancel-button);
4666
- transform: scale(1.05);
4667
- }
4668
- 60% {
4669
- color: var(--cancel-button);
4670
- transform: scale(1.05);
4671
- }
4672
- 100% {
4673
- color: var(--ok-button);
4674
- }
4675
- }
4676
-
4677
4455
  .netskrafl-container div.score.word-great {
4678
4456
  animation: colorPulse 1.5s infinite;
4679
- -webkit-animation: colorPulse 1.5s infinite;
4680
4457
  border-color: var(--ok-button);
4681
4458
  }
4682
4459
 
@@ -5966,12 +5743,10 @@ div.highlight1.netskrafl-blanktile {
5966
5743
 
5967
5744
  .netskrafl-container .blink {
5968
5745
  animation: opacityBlink 1s infinite;
5969
- -webkit-animation: opacityBlink 1s infinite;
5970
5746
  }
5971
5747
 
5972
5748
  .netskrafl-container .opp-ready {
5973
5749
  animation: opacityBlink 1s infinite;
5974
- -webkit-animation: opacityBlink 1s infinite;
5975
5750
  }
5976
5751
 
5977
5752
  .netskrafl-container a.opp-ready:link,
@@ -7062,19 +6837,27 @@ div.netskrafl-container input[type="checkbox"] {
7062
6837
  text-indent: -4px;
7063
6838
  }
7064
6839
  div.rack div.netskrafl-tile {
7065
- /* Fill the entire rack slot content area */
6840
+ /* Fill the entire rack slot. Font size and line height are
6841
+ set on the inner .tileletter div, not here, to prevent the
6842
+ tile's font metrics from inflating the table cell height
6843
+ beyond its declared size (table cells treat height as a
6844
+ minimum determined partly by the content's font strut). */
7066
6845
  display: block;
7067
6846
  box-sizing: border-box;
7068
- font-size: 24px;
7069
- line-height: 32px;
6847
+ font-size: 0;
6848
+ line-height: 0;
7070
6849
  height: 100%;
7071
6850
  width: 100%;
7072
6851
  padding: 0;
7073
6852
  margin: 0;
6853
+ }
6854
+ div.rack div.netskrafl-tile .tileletter {
6855
+ font-size: 24px;
6856
+ line-height: 32px;
7074
6857
  text-indent: -3px;
7075
6858
  }
7076
- div.rack div.netskrafl-tile.netskrafl-wide,
7077
- div.rack div.netskrafl-tile.netskrafl-extra-wide {
6859
+ div.rack div.netskrafl-tile.netskrafl-wide .tileletter,
6860
+ div.rack div.netskrafl-tile.netskrafl-extra-wide .tileletter {
7078
6861
  /* Wide character tile */
7079
6862
  text-indent: -6px;
7080
6863
  }
@@ -7100,7 +6883,7 @@ div.netskrafl-container input[type="checkbox"] {
7100
6883
  }
7101
6884
  div.rack div.letterscore {
7102
6885
  left: auto;
7103
- right: 1px;
6886
+ right: 2px;
7104
6887
  bottom: 1px;
7105
6888
  }
7106
6889
  div.netskrafl-tile.netskrafl-wide div.letterscore,
@@ -7112,7 +6895,7 @@ div.netskrafl-container input[type="checkbox"] {
7112
6895
  div.rack div.netskrafl-tile.netskrafl-wide div.letterscore,
7113
6896
  div.rack div.netskrafl-tile.netskrafl-extra-wide div.letterscore {
7114
6897
  /* Adjust letter score position for wide tiles */
7115
- right: 1px;
6898
+ right: 2px;
7116
6899
  left: auto;
7117
6900
  }
7118
6901
  div.netskrafl-tile.dragging div.letterscore {
@@ -7173,6 +6956,8 @@ div.netskrafl-container input[type="checkbox"] {
7173
6956
  max-width: 34px;
7174
6957
  height: 34px;
7175
6958
  width: 34px;
6959
+ /* Override board cell border-width that leaks in via table.board td */
6960
+ border-width: 0;
7176
6961
  border-color: var(--rack-slot-background);
7177
6962
  background-color: var(--rack-slot-background);
7178
6963
  box-shadow: 2px 2px 4px 0 var(--rack-shadow);
@@ -8255,6 +8040,54 @@ div.netskrafl-container input[type="checkbox"] {
8255
8040
  div.netskrafl-container.legacy-colors div.board div.netskrafl-tile {
8256
8041
  line-height: var(--board-tile-line-height-lg);
8257
8042
  }
8043
+ /* No box-shadow on rack slots in legacy scheme */
8044
+ div.netskrafl-container.legacy-colors div.rack td {
8045
+ box-shadow: none;
8046
+ }
8047
+ }
8048
+
8049
+ /* Disable blinking/flashing animations for users who prefer reduced motion */
8050
+
8051
+ @media (prefers-reduced-motion: reduce) {
8052
+ .netskrafl-container .blinking {
8053
+ animation: none;
8054
+ }
8055
+ .netskrafl-container table.board td.center:empty::before {
8056
+ animation: none;
8057
+ }
8058
+ .netskrafl-container td.keyboard-target::after {
8059
+ animation: none;
8060
+ opacity: 0.8;
8061
+ }
8062
+ .netskrafl-container div.rack td:has(> div.sel),
8063
+ .netskrafl-container div.board td:has(> div.sel),
8064
+ .netskrafl-container table.board td:has(> div.sel) {
8065
+ animation: none;
8066
+ background-color: var(--cancel-button);
8067
+ border-color: var(--cancel-button);
8068
+ color: white;
8069
+ }
8070
+ .netskrafl-container .blink {
8071
+ animation: none;
8072
+ }
8073
+ .netskrafl-container .opp-ready {
8074
+ animation: none;
8075
+ }
8076
+ .netskrafl-container div.right-tab.chat-alert > span.glyphicon {
8077
+ animation: none;
8078
+ }
8079
+ .netskrafl-container div.opp-turn.flashing {
8080
+ animation: none;
8081
+ }
8082
+ .netskrafl-container div.score.word-great {
8083
+ animation: none;
8084
+ }
8085
+ .netskrafl-container div.submitmove#move-mobile.word-great span.score-mobile {
8086
+ animation: none;
8087
+ }
8088
+ .netskrafl-container div.animated-netskrafl-logo {
8089
+ animation: none;
8090
+ }
8258
8091
  }
8259
8092
 
8260
8093
  /* ================= GÁTA DAGSINS STYLES =============== */
@@ -10240,3 +10073,11 @@ div.gatadagsins-board-area.celebrate div.netskrafl-tile.netskrafl-racktile {
10240
10073
  flex: 1;
10241
10074
  }
10242
10075
  }
10076
+
10077
+ /* Disable blinking/flashing animations for users who prefer reduced motion */
10078
+
10079
+ @media (prefers-reduced-motion: reduce) {
10080
+ .netskrafl-container .thermometer-current-score.this-player .thermometer-current-circle {
10081
+ animation: none;
10082
+ }
10083
+ }