@mideind/netskrafl-react 1.0.0-beta.9 → 1.0.2

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.
@@ -966,6 +966,8 @@ div.board {
966
966
  background-color: var(--container-bg-color);
967
967
  overflow: auto; /* Must be auto to allow panning/scrolling */
968
968
  width: 100%;
969
+ /* Prevent scroll from propagating to parent */
970
+ overscroll-behavior: contain;
969
971
  }
970
972
 
971
973
  div.tile {
@@ -1016,7 +1018,8 @@ div.board div.tile.extra-wide {
1016
1018
  div.tile.dragging {
1017
1019
  position: fixed;
1018
1020
  z-index: 10;
1019
- /* Note: We can't use variables here because this element
1021
+ font-family: var(--font-open-sans);
1022
+ /* Note: We can't use Netskrafl-specific variables here because this element
1020
1023
  becomes a child of the document body element when dragging, and
1021
1024
  the style variables are not in scope at the body level. */
1022
1025
  box-shadow: 3px 3px 3px 0 rgba(0, 0, 0, 0.2);
@@ -1322,7 +1325,7 @@ div.recallbtn {
1322
1325
  border-radius: 5px;
1323
1326
  cursor: pointer;
1324
1327
  width: 45px;
1325
- height: 41px;
1328
+ height: 48px;
1326
1329
  background-color: var(--triple-word-color);
1327
1330
  }
1328
1331
 
@@ -1343,7 +1346,7 @@ div.scramblebtn {
1343
1346
  border-radius: 5px;
1344
1347
  cursor: pointer;
1345
1348
  width: 45px;
1346
- height: 41px;
1349
+ height: 48px;
1347
1350
  background-color: var(--malfridur-accent);
1348
1351
  }
1349
1352
 
@@ -1633,6 +1636,8 @@ div.tabbed-page {
1633
1636
  overflow: hidden;
1634
1637
  font-size: 13px;
1635
1638
  line-height: 23px;
1639
+ /* Prevent scroll from propagating to parent */
1640
+ overscroll-behavior: contain;
1636
1641
  }
1637
1642
 
1638
1643
  div.tab-scroll-area {
@@ -2542,6 +2547,8 @@ div#main-tabs > div[role=tabpanel] {
2542
2547
  position: relative;
2543
2548
  top: -8px;
2544
2549
  height: 504px;
2550
+ /* Prevent scroll from propagating to parent */
2551
+ overscroll-behavior: contain;
2545
2552
  }
2546
2553
 
2547
2554
  div#main-tabs div.header-logo {
@@ -3021,6 +3028,8 @@ div #elolist {
3021
3028
  /* 11 lines @ 36px each */
3022
3029
  overflow-y: auto;
3023
3030
  overflow-x: hidden;
3031
+ /* Prevent scroll from propagating to parent */
3032
+ overscroll-behavior-y: contain;
3024
3033
  }
3025
3034
 
3026
3035
  div #gamelist {
@@ -3028,6 +3037,8 @@ div #gamelist {
3028
3037
  /* 13 lines @ 36px each */
3029
3038
  overflow-y: auto;
3030
3039
  overflow-x: hidden;
3040
+ /* Prevent scroll from propagating to parent */
3041
+ overscroll-behavior-y: contain;
3031
3042
  }
3032
3043
 
3033
3044
  div #recentlist {
@@ -3035,6 +3046,8 @@ div #recentlist {
3035
3046
  /* 11 lines @ 36px each */
3036
3047
  overflow-y: auto;
3037
3048
  overflow-x: hidden;
3049
+ /* Prevent scroll from propagating to parent */
3050
+ overscroll-behavior-y: contain;
3038
3051
  }
3039
3052
 
3040
3053
  div #usr-recent {
@@ -3042,6 +3055,8 @@ div #usr-recent {
3042
3055
  /* 12 lines @ 36px each */
3043
3056
  overflow-y: auto;
3044
3057
  overflow-x: hidden;
3058
+ /* Prevent scroll from propagating to parent */
3059
+ overscroll-behavior-y: contain;
3045
3060
  }
3046
3061
 
3047
3062
  div #chall-sent,
@@ -3050,6 +3065,8 @@ div #chall-received {
3050
3065
  /* 6 lines @ 36px each */
3051
3066
  overflow-y: auto;
3052
3067
  overflow-x: hidden;
3068
+ /* Prevent scroll from propagating to parent */
3069
+ overscroll-behavior-y: contain;
3053
3070
  }
3054
3071
 
3055
3072
  div.games {
@@ -5626,7 +5643,7 @@ a.nodecorate:hover {
5626
5643
 
5627
5644
  a.iconlink:link {
5628
5645
  text-decoration: none;
5629
- color: var(--header-color);
5646
+ color: var(--malfridur-accent);
5630
5647
  }
5631
5648
 
5632
5649
  a.iconlink:visited {
@@ -5685,6 +5702,13 @@ div#tabs-3 li {
5685
5702
  padding: auto;
5686
5703
  }
5687
5704
 
5705
+ /* Base help container styles - applies to all viewports */
5706
+
5707
+ div.help-container {
5708
+ /* Prevent scroll from propagating to parent */
5709
+ overscroll-behavior: contain;
5710
+ }
5711
+
5688
5712
  div.help-container ol li {
5689
5713
  font-weight: bold;
5690
5714
  }
@@ -6264,12 +6288,17 @@ div.signup-header {
6264
6288
  left: 28px;
6265
6289
  width: 50px;
6266
6290
  height: 50px;
6267
- font-size: 40px;
6291
+ font-size: 46px;
6268
6292
  text-align: center;
6269
6293
  }
6270
6294
  div.info:hover {
6271
6295
  animation: expand 0.4s;
6272
6296
  }
6297
+ div.gatadagsins div.info {
6298
+ top: 40px;
6299
+ left: 26px;
6300
+ bottom: auto;
6301
+ }
6273
6302
  div.login-error {
6274
6303
  position: absolute;
6275
6304
  padding-left: 12px;
@@ -7534,6 +7563,8 @@ div.signup-header {
7534
7563
  height: 612px;
7535
7564
  overflow: auto;
7536
7565
  padding-right: 24px;
7566
+ /* Maintain scroll containment (inherited from base, but explicit for clarity) */
7567
+ overscroll-behavior: contain;
7537
7568
  }
7538
7569
  div.twoletter-area {
7539
7570
  font-size: 16px;
@@ -7551,6 +7582,183 @@ div.signup-header {
7551
7582
 
7552
7583
  /* ================= GÁTA DAGSINS STYLES =============== */
7553
7584
 
7585
+ /* Help dialog styles - Mobile-first approach */
7586
+
7587
+ .modal-dialog.gatadagsins-help {
7588
+ visibility: visible;
7589
+ position: fixed;
7590
+ top: 50%;
7591
+ left: 50%;
7592
+ transform: translate(-50%, -50%);
7593
+ z-index: 10000;
7594
+ background: white;
7595
+ border-radius: 8px;
7596
+ box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);
7597
+ width: 95%;
7598
+ max-height: 90vh;
7599
+ display: flex;
7600
+ flex-direction: column;
7601
+ }
7602
+
7603
+ .modal-dialog.gatadagsins-help .modal-content {
7604
+ display: flex;
7605
+ flex-direction: column;
7606
+ height: 100%;
7607
+ }
7608
+
7609
+ .modal-dialog.gatadagsins-help .modal-header {
7610
+ padding: 15px;
7611
+ border-bottom: 1px solid #e0e0e0;
7612
+ display: flex;
7613
+ justify-content: space-between;
7614
+ align-items: center;
7615
+ }
7616
+
7617
+ .modal-dialog.gatadagsins-help .modal-header h2 {
7618
+ margin: 0;
7619
+ font-size: 20px;
7620
+ color: #333;
7621
+ }
7622
+
7623
+ .modal-dialog.gatadagsins-help .modal-header .close {
7624
+ background: none;
7625
+ border: none;
7626
+ font-size: 28px;
7627
+ cursor: pointer;
7628
+ padding: 0;
7629
+ width: 30px;
7630
+ height: 30px;
7631
+ display: flex;
7632
+ align-items: center;
7633
+ justify-content: center;
7634
+ color: #999;
7635
+ }
7636
+
7637
+ .modal-dialog.gatadagsins-help .modal-header .close:hover {
7638
+ color: #333;
7639
+ }
7640
+
7641
+ .modal-dialog.gatadagsins-help .modal-body {
7642
+ padding: 15px;
7643
+ overflow-y: auto;
7644
+ flex: 1;
7645
+ /* Prevent scroll from propagating to parent */
7646
+ overscroll-behavior-y: contain;
7647
+ }
7648
+
7649
+ .modal-dialog.gatadagsins-help .modal-body h3 {
7650
+ margin-top: 20px;
7651
+ margin-bottom: 10px;
7652
+ font-size: 16px;
7653
+ color: #333;
7654
+ }
7655
+
7656
+ .modal-dialog.gatadagsins-help .modal-body h3:first-child {
7657
+ margin-top: 0;
7658
+ }
7659
+
7660
+ .modal-dialog.gatadagsins-help .modal-body p {
7661
+ margin: 10px 0;
7662
+ line-height: 1.6;
7663
+ color: #555;
7664
+ font-size: 14px;
7665
+ }
7666
+
7667
+ .modal-dialog.gatadagsins-help .modal-body ul {
7668
+ margin: 10px 0;
7669
+ padding-left: 25px;
7670
+ }
7671
+
7672
+ .modal-dialog.gatadagsins-help .modal-body li {
7673
+ margin: 8px 0;
7674
+ line-height: 1.6;
7675
+ color: #555;
7676
+ font-size: 14px;
7677
+ }
7678
+
7679
+ .modal-dialog.gatadagsins-help .modal-body a {
7680
+ color: #4a90e2;
7681
+ text-decoration: none;
7682
+ }
7683
+
7684
+ .modal-dialog.gatadagsins-help .modal-body a:hover {
7685
+ text-decoration: underline;
7686
+ }
7687
+
7688
+ .modal-dialog.gatadagsins-help .modal-footer {
7689
+ padding: 15px;
7690
+ border-top: 1px solid #e0e0e0;
7691
+ text-align: right;
7692
+ }
7693
+
7694
+ .modal-dialog.gatadagsins-help .btn {
7695
+ padding: 16px 22px;
7696
+ font-size: 14px;
7697
+ border-radius: 4px;
7698
+ border: none;
7699
+ cursor: pointer;
7700
+ font-weight: 700;
7701
+ height: auto;
7702
+ min-height: auto;
7703
+ }
7704
+
7705
+ .modal-dialog.gatadagsins-help .btn-primary {
7706
+ background-color: #4a90e2;
7707
+ color: white;
7708
+ }
7709
+
7710
+ .modal-dialog.gatadagsins-help .btn-primary:hover {
7711
+ background-color: #357abd;
7712
+ }
7713
+
7714
+ /* Modal backdrop */
7715
+
7716
+ .modal-backdrop {
7717
+ position: fixed;
7718
+ top: 0;
7719
+ left: 0;
7720
+ width: 100%;
7721
+ height: 100%;
7722
+ background-color: rgba(0, 0, 0, 0.5);
7723
+ z-index: 9999;
7724
+ }
7725
+
7726
+ /* Larger screen adjustments */
7727
+
7728
+ @media (min-width: 601px) {
7729
+ .modal-dialog.gatadagsins-help {
7730
+ max-width: 600px;
7731
+ width: 90%;
7732
+ max-height: 80vh;
7733
+ }
7734
+
7735
+ .modal-dialog.gatadagsins-help .modal-header {
7736
+ padding: 20px;
7737
+ }
7738
+
7739
+ .modal-dialog.gatadagsins-help .modal-header h2 {
7740
+ font-size: 24px;
7741
+ }
7742
+
7743
+ .modal-dialog.gatadagsins-help .modal-body {
7744
+ padding: 20px;
7745
+ /* Inherit the overscroll behavior from mobile */
7746
+ }
7747
+
7748
+ .modal-dialog.gatadagsins-help .modal-body h3 {
7749
+ font-size: 18px;
7750
+ }
7751
+
7752
+ .modal-dialog.gatadagsins-help .modal-body p,
7753
+ .modal-dialog.gatadagsins-help .modal-body li {
7754
+ font-size: 15px;
7755
+ }
7756
+
7757
+ .modal-dialog.gatadagsins-help .modal-footer {
7758
+ padding: 15px 20px;
7759
+ }
7760
+ }
7761
+
7554
7762
  /* Mobile styles for Gáta Dagsins */
7555
7763
 
7556
7764
  div#gatadagsins-background {
@@ -7619,7 +7827,7 @@ div.gatadagsins-container table.board {
7619
7827
  }
7620
7828
 
7621
7829
  div.gatadagsins-rack-area {
7622
- flex: 0 0 100px;
7830
+ flex: 0 0 80px;
7623
7831
  display: flex;
7624
7832
  flex-direction: row;
7625
7833
  justify-content: space-evenly;
@@ -7648,7 +7856,7 @@ div.gatadagsins-container div.rack {
7648
7856
 
7649
7857
  div.gatadagsins-container div.recallbtn {
7650
7858
  position: relative;
7651
- margin: 0 5px;
7859
+ margin-left: 8px;
7652
7860
  display: flex;
7653
7861
  bottom: auto;
7654
7862
  left: auto;
@@ -7657,7 +7865,7 @@ div.gatadagsins-container div.recallbtn {
7657
7865
 
7658
7866
  div.gatadagsins-container div.scramblebtn {
7659
7867
  position: relative;
7660
- margin: 0 5px;
7868
+ margin-left: 8px;
7661
7869
  display: flex;
7662
7870
  bottom: auto;
7663
7871
  left: auto;
@@ -7747,6 +7955,8 @@ div.gatadagsins-thermometer-column {
7747
7955
  height: 100%;
7748
7956
  width: 100%;
7749
7957
  align-items: center;
7958
+ padding-left: 8px;
7959
+ padding-right: 8px;
7750
7960
  }
7751
7961
 
7752
7962
  .thermometer-best-score {
@@ -7867,12 +8077,13 @@ div.gatadagsins-thermometer-column {
7867
8077
  }
7868
8078
  }
7869
8079
 
8080
+ /* Horizontal thermometer */
8081
+
7870
8082
  .thermometer-body {
7871
8083
  position: relative;
7872
8084
  align-self: center;
7873
8085
  width: 100%;
7874
8086
  height: 40px;
7875
- margin: 0;
7876
8087
  border-radius: 20px;
7877
8088
  overflow: visible;
7878
8089
  }
@@ -7908,6 +8119,48 @@ div.gata-dagsins-score.cold {
7908
8119
  background-color: var(--cold);
7909
8120
  }
7910
8121
 
8122
+ /* Celebratory wobble-pulse animation for the score circle */
8123
+
8124
+ @keyframes celebrateScore {
8125
+ 0%, 100% {
8126
+ transform: rotate(0deg) scale(1);
8127
+ box-shadow: 0 0 15px rgba(249, 115, 6, 0.4);
8128
+ }
8129
+ 12.5% {
8130
+ transform: rotate(0deg) scale(1.15); /* -10 */
8131
+ box-shadow: 0 0 25px rgba(249, 115, 6, 0.6);
8132
+ }
8133
+ 25% {
8134
+ transform: rotate(0deg) scale(1.1); /* 10 */
8135
+ box-shadow: 0 0 20px rgba(249, 115, 6, 0.5);
8136
+ }
8137
+ 37.5% {
8138
+ transform: rotate(0deg) scale(1.18); /* -6 */
8139
+ box-shadow: 0 0 30px rgba(249, 115, 6, 0.7);
8140
+ }
8141
+ 50% {
8142
+ transform: rotate(0deg) scale(1.12); /* 6 */
8143
+ box-shadow: 0 0 22px rgba(249, 115, 6, 0.5);
8144
+ }
8145
+ 62.5% {
8146
+ transform: rotate(0deg) scale(1.08); /* -4 */
8147
+ box-shadow: 0 0 18px rgba(249, 115, 6, 0.4);
8148
+ }
8149
+ 75% {
8150
+ transform: rotate(0deg) scale(1.05); /* 2 */
8151
+ box-shadow: 0 0 16px rgba(249, 115, 6, 0.35);
8152
+ }
8153
+ 87.5% {
8154
+ transform: rotate(0deg) scale(1.02); /* -2 */
8155
+ box-shadow: 0 0 15px rgba(249, 115, 6, 0.3);
8156
+ }
8157
+ }
8158
+
8159
+ div.gata-dagsins-score.hot.celebrate {
8160
+ animation: celebrateScore 2.5s ease-in-out infinite;
8161
+ transform-origin: center center;
8162
+ }
8163
+
7911
8164
  .thermometer-current-circle {
7912
8165
  color: white;
7913
8166
  border: 3px solid white;
@@ -8002,6 +8255,7 @@ div.gata-dagsins-score.cold {
8002
8255
  font-size: 14px;
8003
8256
  margin-left: 8px;
8004
8257
  white-space: nowrap;
8258
+ display: none; /* Not displayed on mobile */
8005
8259
  }
8006
8260
 
8007
8261
  /* Animation for gentle pulsing effect */
@@ -8043,8 +8297,11 @@ div.gata-dagsins-score.cold {
8043
8297
  /* Restore vertical thermometer layout on desktop */
8044
8298
  .thermometer-container {
8045
8299
  flex-direction: column;
8300
+ padding-left: 0;
8301
+ padding-right: 0;
8046
8302
  }
8047
8303
 
8304
+ /* Vertical thermometer */
8048
8305
  .thermometer-body {
8049
8306
  width: 40px;
8050
8307
  height: 100%;
@@ -8088,10 +8345,15 @@ div.gata-dagsins-score.cold {
8088
8345
  padding-right: 10px;
8089
8346
  padding-left: 10px;
8090
8347
  }
8348
+
8349
+ .thermometer-move-overlay .thermometer-move-coord {
8350
+ display: block;
8351
+ }
8352
+
8091
8353
  div.gatadagsins-container {
8092
8354
  height: 680px;
8093
8355
  }
8094
-
8356
+
8095
8357
  div.gatadagsins-container div.board {
8096
8358
  /* 16 x 34 pixels, i.e. 15 rows/columns plus row/column id */
8097
8359
  height: 544px;
@@ -8136,6 +8398,8 @@ div.gata-dagsins-score.cold {
8136
8398
  div.gatadagsins-container div.recallbtn {
8137
8399
  width: 64px;
8138
8400
  height: 45px;
8401
+ margin-left: 5px;
8402
+ margin-right: 5px;
8139
8403
  }
8140
8404
 
8141
8405
  }