@mideind/netskrafl-react 2.3.1 → 2.5.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.
@@ -543,8 +543,17 @@ div.netskrafl-container * {
543
543
  }
544
544
 
545
545
  .netskrafl-container .ui-tabs .ui-tabs-nav .ui-tabs-anchor.sp {
546
- /* Single page version, mobile */
547
- min-width: 61px;
546
+ /* Single page version, mobile - 5 tabs must fit in 375px */
547
+ min-width: 64px;
548
+ padding-left: 4px;
549
+ padding-right: 4px;
550
+ }
551
+
552
+ .netskrafl-container .ui-tabs .ui-tabs-nav .ui-tabs-anchor.sp.narrow {
553
+ /* Narrower tab for settings (icon only, no legend on mobile) */
554
+ min-width: 36px;
555
+ padding-left: 4px;
556
+ padding-right: 4px;
548
557
  }
549
558
 
550
559
  .netskrafl-container .ui-tabs .ui-tabs-nav li.ui-tabs-active {
@@ -711,10 +720,138 @@ div.netskrafl-container * {
711
720
  display: none;
712
721
  }
713
722
 
723
+ /* Mobile-only classes: visible on mobile, hidden on desktop */
724
+
725
+ .netskrafl-container .mobile-only-list {
726
+ display: list-item;
727
+ }
728
+
714
729
  .netskrafl-container .upper {
715
730
  text-transform: uppercase;
716
731
  }
717
732
 
733
+ /* Settings tab styles */
734
+
735
+ .netskrafl-container .settings-tab {
736
+ padding: 12px;
737
+ }
738
+
739
+ .netskrafl-container .settings-header {
740
+ font-size: 18px;
741
+ font-weight: bold;
742
+ margin-bottom: 16px;
743
+ color: var(--header-color);
744
+ }
745
+
746
+ .netskrafl-container .settings-section {
747
+ margin-top: 20px;
748
+ }
749
+
750
+ .netskrafl-container .settings-section-title {
751
+ font-size: 14px;
752
+ font-weight: bold;
753
+ color: #666;
754
+ margin-top: 8px;
755
+ text-transform: uppercase;
756
+ }
757
+
758
+ .netskrafl-container .settings-row {
759
+ display: flex;
760
+ justify-content: space-between;
761
+ align-items: center;
762
+ padding: 12px 0;
763
+ border-bottom: 1px solid #e0e0e0;
764
+ }
765
+
766
+ .netskrafl-container .settings-label {
767
+ font-size: 16px;
768
+ }
769
+
770
+ .netskrafl-container .settings-explain {
771
+ font-size: 12px;
772
+ color: #888;
773
+ margin-top: 4px;
774
+ margin-bottom: 12px;
775
+ }
776
+
777
+ /* Sliding toggle switch - iOS/Material style */
778
+
779
+ .netskrafl-container .sliding-toggle {
780
+ position: relative;
781
+ display: inline-block;
782
+ width: 48px;
783
+ height: 28px;
784
+ background-color: #ccc;
785
+ border-radius: 14px;
786
+ cursor: pointer;
787
+ transition: background-color 0.2s ease;
788
+ flex-shrink: 0;
789
+ }
790
+
791
+ .netskrafl-container .sliding-toggle:focus {
792
+ outline: 2px solid var(--header-color);
793
+ outline-offset: 2px;
794
+ }
795
+
796
+ .netskrafl-container .sliding-toggle.on {
797
+ background-color: var(--header-color);
798
+ }
799
+
800
+ .netskrafl-container .sliding-toggle.disabled {
801
+ opacity: 0.5;
802
+ cursor: not-allowed;
803
+ }
804
+
805
+ .netskrafl-container .sliding-toggle-thumb {
806
+ position: absolute;
807
+ width: 24px;
808
+ height: 24px;
809
+ background: white;
810
+ border-radius: 50%;
811
+ top: 2px;
812
+ left: 2px;
813
+ transition: transform 0.2s ease;
814
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);
815
+ }
816
+
817
+ .netskrafl-container .sliding-toggle.on .sliding-toggle-thumb {
818
+ transform: translateX(20px);
819
+ }
820
+
821
+ /* Size variants */
822
+
823
+ .netskrafl-container .sliding-toggle.toggle-small {
824
+ width: 40px;
825
+ height: 22px;
826
+ border-radius: 11px;
827
+ }
828
+
829
+ .netskrafl-container .sliding-toggle.toggle-small .sliding-toggle-thumb {
830
+ width: 18px;
831
+ height: 18px;
832
+ border-radius: 50%;
833
+ }
834
+
835
+ .netskrafl-container .sliding-toggle.toggle-small.on .sliding-toggle-thumb {
836
+ transform: translateX(18px);
837
+ }
838
+
839
+ .netskrafl-container .sliding-toggle.toggle-large {
840
+ width: 60px;
841
+ height: 34px;
842
+ border-radius: 17px;
843
+ }
844
+
845
+ .netskrafl-container .sliding-toggle.toggle-large .sliding-toggle-thumb {
846
+ width: 30px;
847
+ height: 30px;
848
+ border-radius: 50%;
849
+ }
850
+
851
+ .netskrafl-container .sliding-toggle.toggle-large.on .sliding-toggle-thumb {
852
+ transform: translateX(26px);
853
+ }
854
+
718
855
  @media all and (max-width: 374px) and (orientation: portrait) {
719
856
  /* Scale down for phones narrower than the 375px design width */
720
857
  div.netskrafl-container {
@@ -726,9 +863,6 @@ div.netskrafl-container * {
726
863
 
727
864
  .netskrafl-container div.header-logo {
728
865
  display: block;
729
- float: left;
730
- padding-left: 4px;
731
- padding-top: 14px;
732
866
  }
733
867
 
734
868
  .netskrafl-container div.header-button {
@@ -740,7 +874,7 @@ div.netskrafl-container * {
740
874
  display: none;
741
875
  position: absolute;
742
876
  top: 28px;
743
- left: 28px;
877
+ left: 32px;
744
878
  width: 46px;
745
879
  }
746
880
 
@@ -769,16 +903,17 @@ div.netskrafl-container * {
769
903
  }
770
904
 
771
905
  .netskrafl-container div.logowrapper {
772
- display: inline-block;
773
- width: 11%;
774
- vertical-align: top;
906
+ display: flex;
907
+ flex: 11;
908
+ align-items: center;
909
+ justify-content: center;
775
910
  }
776
911
 
777
912
  .netskrafl-container div.playerwrapper {
778
- display: inline-block;
913
+ display: flex;
914
+ flex: 89;
779
915
  position: relative;
780
- width: 89%;
781
- padding-top: 4px;
916
+ padding-top: 0;
782
917
  }
783
918
 
784
919
  .netskrafl-container div.bag {
@@ -1841,14 +1976,14 @@ div.netskrafl-tile.dragging div.letterscore {
1841
1976
 
1842
1977
  .netskrafl-container div.leftplayer {
1843
1978
  display: inline-block;
1844
- width: 50%;
1979
+ flex: 50;
1845
1980
  text-align: left;
1846
1981
  border-radius: 4px 0 0 4px;
1847
1982
  }
1848
1983
 
1849
1984
  .netskrafl-container div.rightplayer {
1850
1985
  display: inline-block;
1851
- width: 50%;
1986
+ flex: 50;
1852
1987
  text-align: right;
1853
1988
  border-radius: 0 4px 4px 0;
1854
1989
  }
@@ -1992,7 +2127,7 @@ div.netskrafl-tile.dragging div.letterscore {
1992
2127
  visibility: hidden;
1993
2128
  position: fixed;
1994
2129
  left: 0;
1995
- top: 0;
2130
+ top: var(--header-size);
1996
2131
  width: 100%;
1997
2132
  height: 100%;
1998
2133
  z-index: 10;
@@ -5993,9 +6128,11 @@ div.netskrafl-container input[type="checkbox"] {
5993
6128
  }
5994
6129
  .netskrafl-container div.heading {
5995
6130
  height: auto;
6131
+ display: flex;
6132
+ flex-direction: row;
5996
6133
  }
5997
6134
  .netskrafl-container div.fairplay {
5998
- top: 21px;
6135
+ top: 18px;
5999
6136
  }
6000
6137
  .netskrafl-container span.fairplay-btn.large {
6001
6138
  /* This is shown in the board header */
@@ -6004,7 +6141,7 @@ div.netskrafl-container input[type="checkbox"] {
6004
6141
  padding-bottom: 6px;
6005
6142
  }
6006
6143
  .netskrafl-container div.right-area {
6007
- top: 37px;
6144
+ top: 36px;
6008
6145
  }
6009
6146
  .netskrafl-container div.right-tab {
6010
6147
  top: -32px;
@@ -6029,7 +6166,7 @@ div.netskrafl-container input[type="checkbox"] {
6029
6166
  left: 288px;
6030
6167
  }
6031
6168
  .netskrafl-container div.board-area {
6032
- top: 103px;
6169
+ top: 100px;
6033
6170
  }
6034
6171
  .netskrafl-container div #userlist,
6035
6172
  .netskrafl-container div #elolist {
@@ -6085,7 +6222,9 @@ div.netskrafl-container input[type="checkbox"] {
6085
6222
 
6086
6223
  /* ================= MOBILE LANDSCAPE UI ====================== */
6087
6224
 
6088
- @media all and (min-width: 667px) and (orientation: landscape) {
6225
+ @media all and (min-width: 667px) and (max-width: 1023px) and (
6226
+ orientation: landscape
6227
+ ) {
6089
6228
  /* Mobile screen, landscape mode (width >= 667px AND landscape orientation) */
6090
6229
  div.netskrafl-container {
6091
6230
  /* Reference width */
@@ -6095,6 +6234,22 @@ div.netskrafl-container input[type="checkbox"] {
6095
6234
  max-height: 686px;
6096
6235
  overflow-y: hidden;
6097
6236
  }
6237
+ .netskrafl-container div.header-logo {
6238
+ display: none;
6239
+ }
6240
+ .netskrafl-container div.netskrafl,
6241
+ .netskrafl-container div.gatadagsins {
6242
+ padding-top: 0;
6243
+ }
6244
+ .netskrafl-container div.rightarea {
6245
+ display: block;
6246
+ }
6247
+ .netskrafl-container .ui-tabs .ui-tabs-nav .ui-tabs-anchor.sp {
6248
+ /* Override tab width */
6249
+ min-width: 82px;
6250
+ padding-left: 12px;
6251
+ padding-right: 12px;
6252
+ }
6098
6253
  .netskrafl-container div.tabbed-page {
6099
6254
  width: 100%;
6100
6255
  }
@@ -6114,7 +6269,6 @@ div.netskrafl-container input[type="checkbox"] {
6114
6269
  }
6115
6270
  .netskrafl-container div.playerwrapper {
6116
6271
  width: 100%;
6117
- padding-top: 0;
6118
6272
  }
6119
6273
  .netskrafl-container div.fairplay {
6120
6274
  top: 8px;
@@ -6368,6 +6522,8 @@ div.netskrafl-container input[type="checkbox"] {
6368
6522
  .netskrafl-container .ui-tabs .ui-tabs-nav .ui-tabs-anchor.sp {
6369
6523
  /* Override tab width */
6370
6524
  min-width: 82px;
6525
+ padding-left: 12px;
6526
+ padding-right: 12px;
6371
6527
  }
6372
6528
  .netskrafl-container .ui-tabs .ui-tabs-nav li {
6373
6529
  box-shadow: none;
@@ -6415,7 +6571,7 @@ div.netskrafl-container input[type="checkbox"] {
6415
6571
  position: absolute;
6416
6572
  bottom: 52px;
6417
6573
  top: auto;
6418
- left: 28px;
6574
+ left: 26px;
6419
6575
  width: 50px;
6420
6576
  height: 50px;
6421
6577
  font-size: 46px;
@@ -6451,6 +6607,9 @@ div.netskrafl-container input[type="checkbox"] {
6451
6607
  .netskrafl-container div.get-help {
6452
6608
  width: auto;
6453
6609
  }
6610
+ .netskrafl-container div.game-container div.header-logo {
6611
+ display: none;
6612
+ }
6454
6613
  .netskrafl-container div.board-help {
6455
6614
  display: block;
6456
6615
  z-index: 2;
@@ -6486,6 +6645,7 @@ div.netskrafl-container input[type="checkbox"] {
6486
6645
  margin: 0;
6487
6646
  /* width should not be set here */
6488
6647
  height: 746px;
6648
+ top: 0;
6489
6649
  }
6490
6650
  .netskrafl-container div.board {
6491
6651
  position: absolute;
@@ -6515,6 +6675,9 @@ div.netskrafl-container input[type="checkbox"] {
6515
6675
  height: 34px;
6516
6676
  /* 32px + 2 * 1.0px */
6517
6677
  }
6678
+ .netskrafl-container table.bag-content td {
6679
+ width: 14px;
6680
+ }
6518
6681
  .netskrafl-container div.rack table.board {
6519
6682
  border-spacing: 4px;
6520
6683
  }
@@ -6786,6 +6949,10 @@ div.netskrafl-container input[type="checkbox"] {
6786
6949
  .netskrafl-container div.submitmove.error-shown {
6787
6950
  display: block;
6788
6951
  }
6952
+ .netskrafl-container div.submitmove#move-mobile {
6953
+ /* Hide mobile submit button in fullscreen mode */
6954
+ display: none;
6955
+ }
6789
6956
  /* To the left of the rack */
6790
6957
  .netskrafl-container .bottom-button {
6791
6958
  display: block;
@@ -7342,8 +7509,14 @@ div.netskrafl-container input[type="checkbox"] {
7342
7509
  .netskrafl-container .no-mobile-list {
7343
7510
  display: list-item;
7344
7511
  }
7512
+ /* Hide mobile-only elements on desktop */
7513
+ .netskrafl-container .mobile-only-list {
7514
+ display: none;
7515
+ }
7345
7516
  .netskrafl-container .tab-legend {
7346
7517
  font-weight: bold;
7518
+ display: inline;
7519
+ margin-left: 8px;
7347
7520
  }
7348
7521
  .netskrafl-container span#numgames,
7349
7522
  .netskrafl-container span#numchallenges {
@@ -7505,8 +7678,8 @@ div.netskrafl-container input[type="checkbox"] {
7505
7678
  }
7506
7679
  .netskrafl-container div#promo-form {
7507
7680
  position: relative;
7508
- top: auto;
7509
- left: auto;
7681
+ top: 80px;
7682
+ left: 128px;
7510
7683
  right: auto;
7511
7684
  bottom: auto;
7512
7685
  width: 768px;
@@ -8010,7 +8183,8 @@ div.gatadagsins-board-area.celebrate div.netskrafl-tile.netskrafl-racktile {
8010
8183
  .netskrafl-container .mobile-date-nav-container {
8011
8184
  display: flex;
8012
8185
  justify-content: center;
8013
- padding-bottom: 4px;
8186
+ /* Responsive padding: minimal on small screens, grows on taller screens */
8187
+ padding-bottom: clamp(4px, 1.5vh, 16px);
8014
8188
  }
8015
8189
 
8016
8190
  .netskrafl-container .mobile-date-nav-container .date-navigator {
@@ -8851,7 +9025,7 @@ div.gatadagsins-board-area.celebrate div.netskrafl-tile.netskrafl-racktile {
8851
9025
  /* ================= STATS VIEW STYLES =============== */
8852
9026
 
8853
9027
  .netskrafl-container .stats-view {
8854
- padding: 10px 10px;
9028
+ padding: 0 10px;
8855
9029
  }
8856
9030
 
8857
9031
  .netskrafl-container .stats-view.loading,
@@ -8867,14 +9041,14 @@ div.gatadagsins-board-area.celebrate div.netskrafl-tile.netskrafl-racktile {
8867
9041
  .netskrafl-container .stats-grid {
8868
9042
  display: flex;
8869
9043
  flex-direction: column;
8870
- gap: 15px;
9044
+ gap: 12px;
8871
9045
  }
8872
9046
 
8873
9047
  .netskrafl-container .stat-item {
8874
9048
  display: flex;
8875
9049
  align-items: center;
8876
- gap: 12px;
8877
- padding: 12px;
9050
+ gap: 10px;
9051
+ padding: 8px 10px;
8878
9052
  background-color: var(--board-background);
8879
9053
  border-radius: 8px;
8880
9054
  border-left: 6px solid transparent;
@@ -8932,6 +9106,37 @@ div.gatadagsins-board-area.celebrate div.netskrafl-tile.netskrafl-racktile {
8932
9106
  text-align: right;
8933
9107
  }
8934
9108
 
9109
+ /* Settings section at bottom of stats view */
9110
+
9111
+ .netskrafl-container .stats-settings {
9112
+ margin-top: 12px;
9113
+ padding-top: 12px;
9114
+ border-top: 1px solid var(--board-background);
9115
+ }
9116
+
9117
+ .netskrafl-container .stats-settings .settings-row {
9118
+ display: flex;
9119
+ justify-content: space-between;
9120
+ align-items: center;
9121
+ padding: 8px 12px;
9122
+ background-color: var(--board-background);
9123
+ border-radius: 8px;
9124
+ }
9125
+
9126
+ .netskrafl-container .stats-settings .settings-label {
9127
+ font-size: 13px;
9128
+ color: #666;
9129
+ font-family: var(--primary-font);
9130
+ }
9131
+
9132
+ .netskrafl-container .stats-settings .settings-explain {
9133
+ font-size: 11px;
9134
+ color: #999;
9135
+ margin-top: 8px;
9136
+ padding: 0 4px;
9137
+ line-height: 1.4;
9138
+ }
9139
+
8935
9140
  /* ================= LEADERBOARD VIEW STYLES =============== */
8936
9141
 
8937
9142
  .netskrafl-container .leaderboard-view {
@@ -9118,9 +9323,12 @@ div.gatadagsins-board-area.celebrate div.netskrafl-tile.netskrafl-racktile {
9118
9323
  border-radius: 8px;
9119
9324
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);
9120
9325
  width: 95%;
9121
- max-width: 500px;
9122
- max-height: 80vh;
9326
+ height: 80%;
9327
+ max-width: 400px;
9328
+ max-height: 768px;
9329
+ min-height: 500px;
9123
9330
  display: flex;
9331
+ align-items: center;
9124
9332
  flex-direction: column;
9125
9333
  overscroll-behavior: contain;
9126
9334
  touch-action: pan-y;
@@ -9131,6 +9339,7 @@ div.gatadagsins-board-area.celebrate div.netskrafl-tile.netskrafl-racktile {
9131
9339
  display: flex;
9132
9340
  flex-direction: column;
9133
9341
  height: 100%;
9342
+ width: 100%;
9134
9343
  }
9135
9344
 
9136
9345
  .netskrafl-container .modal-dialog.stats-modal .close {
@@ -9520,6 +9729,11 @@ div.gatadagsins-board-area.celebrate div.netskrafl-tile.netskrafl-racktile {
9520
9729
  gap: 18px;
9521
9730
  }
9522
9731
 
9732
+ /* Hide auto-zoom settings on desktop (not applicable) */
9733
+ .netskrafl-container .stats-settings {
9734
+ display: none;
9735
+ }
9736
+
9523
9737
  /* Desktop leaderboard view */
9524
9738
  .netskrafl-container .leaderboard-view {
9525
9739
  padding-top: 10px;