@robotical/martyblocksjr 4.2.9 → 4.2.11

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.
Files changed (55) hide show
  1. package/editions/free/src/30d09ba32a17082ef820.hex +26350 -0
  2. package/editions/free/src/app.bundle.js +1 -1
  3. package/editions/free/src/app.bundle.js.LICENSE.txt +15 -0
  4. package/editions/free/src/assets/blockicons/microbitbuttona.svg +7 -1
  5. package/editions/free/src/assets/blockicons/microbitbuttonab.svg +8 -1
  6. package/editions/free/src/assets/blockicons/microbitbuttonb.svg +7 -1
  7. package/editions/free/src/assets/blockicons/microbitdisplayclear.svg +9 -25
  8. package/editions/free/src/assets/blockicons/microbitdisplayhappy.svg +13 -31
  9. package/editions/free/src/assets/blockicons/microbitdisplayheart.svg +13 -37
  10. package/editions/free/src/assets/blockicons/microbitdisplaytext.svg +10 -25
  11. package/editions/free/src/assets/blockicons/microbittiltleft.svg +1 -1
  12. package/editions/free/src/assets/blockicons/microbittiltright.svg +1 -1
  13. package/editions/free/src/assets/connection/remove_extension-default.svg +5 -0
  14. package/editions/free/src/css/editor.css +248 -54
  15. package/editions/free/src/css/editorleftpanel.css +131 -33
  16. package/editions/free/src/css/librarymodal.css +32 -0
  17. package/editions/free/src/css/thumbs.css +24 -85
  18. package/editions/free/src/localizations/bg.json +12 -12
  19. package/editions/free/src/localizations/ca.json +12 -12
  20. package/editions/free/src/localizations/cs.json +12 -12
  21. package/editions/free/src/localizations/cy.json +12 -12
  22. package/editions/free/src/localizations/da.json +12 -12
  23. package/editions/free/src/localizations/de.json +12 -12
  24. package/editions/free/src/localizations/el.json +12 -12
  25. package/editions/free/src/localizations/en.json +34 -14
  26. package/editions/free/src/localizations/es.json +12 -12
  27. package/editions/free/src/localizations/fi.json +12 -12
  28. package/editions/free/src/localizations/fr.json +12 -12
  29. package/editions/free/src/localizations/it.json +12 -12
  30. package/editions/free/src/localizations/ja.json +12 -12
  31. package/editions/free/src/localizations/ko.json +12 -12
  32. package/editions/free/src/localizations/nl.json +12 -12
  33. package/editions/free/src/localizations/no.json +12 -12
  34. package/editions/free/src/localizations/pl.json +12 -12
  35. package/editions/free/src/localizations/pt-br.json +12 -12
  36. package/editions/free/src/localizations/pt.json +12 -12
  37. package/editions/free/src/localizations/sv.json +12 -12
  38. package/editions/free/src/localizations/th.json +12 -12
  39. package/editions/free/src/localizations/tr.json +12 -12
  40. package/editions/free/src/localizations/uk.json +12 -12
  41. package/editions/free/src/localizations/zh-cn.json +12 -12
  42. package/editions/free/src/localizations/zh-tw.json +12 -12
  43. package/package.json +4 -1
  44. package/scripts/prepare-microbit-hex.mjs +47 -0
  45. package/tests/BlockGuideRegistry.test.js +4 -2
  46. package/tests/MicroBitBlockDescriptions.test.js +28 -0
  47. package/tests/MicroBitBlockOptions.test.js +34 -0
  48. package/tests/MicroBitButtonIcons.test.js +24 -0
  49. package/tests/MicroBitDisplayIcons.test.js +64 -0
  50. package/tests/e2e/chromium-79-smoke.test.js +126 -10
  51. package/tests/e2e/duplicate-page.e2e.test.js +46 -21
  52. package/tests/e2e/marty-connection-ui.e2e.test.js +152 -4
  53. package/tests/e2e/microbit-updater.test.js +126 -0
  54. package/vitest.config.js +1 -0
  55. package/webpack.config.js +4 -0
@@ -168,8 +168,39 @@ div.frame {
168
168
  cursor: default;
169
169
  }
170
170
 
171
- .pageactionrow.delete-mode .duplicatepage {
172
- visibility: hidden;
171
+ .deletepage {
172
+ appearance: none;
173
+ position: absolute;
174
+ right: 0;
175
+ bottom: 0;
176
+ width: ${24 * scaleMultiplier}px;
177
+ height: ${24 * scaleMultiplier}px;
178
+ padding: 0;
179
+ border: 0;
180
+ border-radius: 50%;
181
+ background: url('../assets/ui/closeit.svg') no-repeat center;
182
+ background-size: 100.5%;
183
+ cursor: pointer;
184
+ opacity: 0.55;
185
+ pointer-events: auto;
186
+ transition: opacity 0.15s ease, transform 0.1s ease;
187
+ -webkit-user-select: none;
188
+ }
189
+
190
+ .deletepage:hover:not(:disabled),
191
+ .deletepage:focus-visible:not(:disabled) {
192
+ filter: brightness(1.08);
193
+ opacity: 1;
194
+ }
195
+
196
+ .deletepage:active:not(:disabled) {
197
+ opacity: 1;
198
+ transform: scale(0.94);
199
+ }
200
+
201
+ .deletepage:disabled {
202
+ opacity: 0.24;
203
+ cursor: default;
173
204
  }
174
205
 
175
206
  .duplicatepageicon,
@@ -301,22 +332,6 @@ div.frame {
301
332
  background-size: 65%;
302
333
  }
303
334
 
304
- .deletethumb {
305
- position: relative;
306
- margin: ${css_vh(-3.9)} ${css_vh(0)} ${css_vh(0)};
307
- width: ${css_vh(5.86)};
308
- height: ${css_vh(5.73)};
309
- background: url('../assets/ui/closeit.svg');
310
- background-size: 100.5%; /* webview pixelates the image unless we do this */
311
- visibility: hidden;
312
- z-index: 5;
313
- -webkit-user-select: none;
314
- }
315
-
316
- .deletethumb.on {visibility: visible; }
317
-
318
- .deletethumb.off {visibility: hidden; }
319
-
320
335
  .circle {
321
336
  position: absolute;
322
337
  width: ${css_vh(2.6)};
@@ -436,8 +451,8 @@ div.frame {
436
451
  position: relative;
437
452
  margin: ${css_vh(0)} ${css_vh(0)} ${css_vh(0)};
438
453
  height: ${64 * scaleMultiplier}px;
439
- /* width: ${659 * scaleMultiplier}px; */
440
- width: 85%;
454
+ /* Keep a fixed, height-scaled lane for undo/redo instead of a viewport percentage. */
455
+ width: calc(100% - ${120 * scaleMultiplier}px);
441
456
  z-index:4;
442
457
  overflow: hidden;
443
458
  }
@@ -487,52 +502,65 @@ div.frame {
487
502
 
488
503
  /* Palette animations */
489
504
 
490
- .deleteasset {
505
+ .delete-recorded-sound {
506
+ appearance: none;
491
507
  position: absolute;
492
- /* margin: ${css_vh(-13.02)} ${css_vh(0)} ${css_vh(0)}; */
493
- top: 0; /* top: 0 seems to work better than negative margin as it's not affected by the height of the image which can be variable */
494
- width: ${css_vh(5.86)};
495
- height: ${css_vh(5.73)};
496
- background: url('../assets/ui/closeit.svg');
508
+ width: ${css_vh(4.69)};
509
+ height: ${css_vh(4.69)};
510
+ padding: 0;
511
+ border: 0;
512
+ border-radius: 50%;
513
+ background: url('../assets/ui/closeit.svg') no-repeat center;
497
514
  background-size: 100.5%; /* webview pixelates the image unless we do this */
498
515
  z-index: 5;
516
+ cursor: pointer;
517
+ opacity: 0.55;
518
+ transition: opacity 0.15s ease, transform 0.1s ease;
499
519
  -webkit-user-select: none;
500
520
  }
501
521
 
502
- /* Palette animations */
522
+ .delete-recorded-sound:hover,
523
+ .delete-recorded-sound:focus-visible {
524
+ filter: brightness(1.08);
525
+ opacity: 1;
526
+ }
503
527
 
504
- .deletesound {
505
- position: absolute;
506
- margin: ${css_vh(-0.78)} ${css_vh(-0.78)} ${css_vh(0)};
507
- width: ${css_vh(5.86)};
508
- height: ${css_vh(5.73)};
509
- background: url('../assets/ui/closeit.svg');
510
- background-size: 100.5%; /* webview pixelates the image unless we do this */
511
- z-index: 5;
512
- zoom: 75%;
513
- -webkit-user-select: none;
528
+ .delete-recorded-sound:active {
529
+ opacity: 1;
530
+ transform: scale(0.94);
514
531
  }
515
532
 
516
- .deletesprite {
533
+ .textsprite-delete-button {
534
+ appearance: none;
517
535
  position: absolute;
518
- margin: ${css_vh(0)} ${css_vh(0)} ${css_vh(0)};
519
- width: 45px;
520
- height: 44px;
521
- background: url('../assets/ui/closeit.svg');
536
+ top: -18px;
537
+ width: 36px;
538
+ height: 36px;
539
+ padding: 0;
540
+ border: 0;
541
+ border-radius: 50%;
542
+ background: url('../assets/ui/closeit.svg') no-repeat center;
522
543
  background-size: 100.5%; /* webview pixelates the image unless we do this */
523
544
  z-index: 5;
545
+ cursor: pointer;
546
+ opacity: 0.55;
547
+ transition: opacity 0.15s ease, transform 0.1s ease;
524
548
  -webkit-user-select: none;
525
549
  }
526
550
 
527
- .deletetext {
528
- position: absolute;
529
- margin: ${css_vh(-2.08)} ${css_vh(-4.17)} ${css_vh(0)};
530
- width: ${css_vh(5.86)};
531
- height: ${css_vh(5.73)};
532
- background: url('../assets/ui/closeit.svg');
533
- background-size: 100.5%; /* webview pixelates the image unless we do this */
534
- z-index: 5;
535
- -webkit-user-select: none;
551
+ .textsprite-delete-button:hover,
552
+ .textsprite-delete-button:focus-visible {
553
+ filter: brightness(1.08);
554
+ opacity: 1;
555
+ }
556
+
557
+ .textsprite-delete-button:active {
558
+ opacity: 1;
559
+ transform: scale(0.94);
560
+ }
561
+
562
+ .stage.fullscreen .textsprite-delete-button {
563
+ display: none;
536
564
  }
537
565
 
538
566
  .shakeme{
@@ -949,6 +977,172 @@ z-index: 5;
949
977
  outline-offset: 3px;
950
978
  }
951
979
 
980
+ /* micro:bit connection and software installer */
981
+ .microBitConnectionDialog {
982
+ position: fixed;
983
+ left: 50%;
984
+ top: 50%;
985
+ width: ${css_vh(56)};
986
+ min-height: ${css_vh(31)};
987
+ transform: translate(-50%, -50%);
988
+ z-index: 12000;
989
+ box-sizing: border-box;
990
+ padding: ${css_vh(3.2)} ${css_vh(3.4)} ${css_vh(3)};
991
+ border: 3px solid #F4AD46;
992
+ border-radius: 16px;
993
+ background: #FEDF8F;
994
+ box-shadow: 0 ${css_vh(0.65)} ${css_vh(2.2)} rgba(0, 0, 0, 0.32);
995
+ font-family: 'Lato Regular';
996
+ }
997
+
998
+ .microBitConnectionDialog.fade {
999
+ display: none;
1000
+ opacity: 0;
1001
+ }
1002
+
1003
+ .microBitConnectionDialog.fade.in {
1004
+ display: block;
1005
+ opacity: 1;
1006
+ }
1007
+
1008
+ .microBitConnectionDialogClose {
1009
+ position: absolute;
1010
+ right: ${css_vh(1.1)};
1011
+ top: ${css_vh(1.1)};
1012
+ width: ${css_vh(4.3)};
1013
+ height: ${css_vh(4.3)};
1014
+ border: 0;
1015
+ padding: 0;
1016
+ background: url('../assets/ui/closeit.svg') no-repeat center center;
1017
+ background-size: 100%;
1018
+ cursor: pointer;
1019
+ -webkit-tap-highlight-color: transparent;
1020
+ }
1021
+
1022
+ .microBitConnectionDialogClose:disabled {
1023
+ cursor: default;
1024
+ opacity: 0.45;
1025
+ }
1026
+
1027
+ .microBitConnectionDialogTitle {
1028
+ color: #315F7B;
1029
+ font-size: ${css_vh(3.4)};
1030
+ font-weight: bold;
1031
+ line-height: ${css_vh(4)};
1032
+ text-align: center;
1033
+ text-shadow: 0 ${css_vh(0.13)} #fff;
1034
+ }
1035
+
1036
+ .microBitConnectionDialogBody {
1037
+ display: flex;
1038
+ flex-direction: column;
1039
+ align-items: center;
1040
+ min-height: ${css_vh(17)};
1041
+ padding-top: ${css_vh(1.6)};
1042
+ text-align: center;
1043
+ }
1044
+
1045
+ .microBitConnectionDialogIcon {
1046
+ display: flex;
1047
+ align-items: center;
1048
+ justify-content: center;
1049
+ width: ${css_vh(8)};
1050
+ height: ${css_vh(8)};
1051
+ border-radius: 50%;
1052
+ background: #F9CF37;
1053
+ }
1054
+
1055
+ .microBitConnectionDialogIcon svg {
1056
+ width: ${css_vh(6.3)};
1057
+ height: ${css_vh(6.3)};
1058
+ }
1059
+
1060
+ .microBitConnectionDialogMessage {
1061
+ max-width: ${css_vh(45)};
1062
+ margin-top: ${css_vh(1.2)};
1063
+ color: #315F7B;
1064
+ font-size: ${css_vh(1.9)};
1065
+ line-height: ${css_vh(2.6)};
1066
+ }
1067
+
1068
+ .microBitConnectionDialogProgress {
1069
+ display: none;
1070
+ flex-direction: column;
1071
+ align-items: center;
1072
+ width: min(100%, ${css_vh(38)});
1073
+ margin-top: ${css_vh(1.5)};
1074
+ }
1075
+
1076
+ .microBitConnectionDialogProgressBar {
1077
+ width: 100%;
1078
+ height: ${css_vh(1.5)};
1079
+ accent-color: #5D9CC8;
1080
+ }
1081
+
1082
+ .microBitConnectionDialogProgressLabel {
1083
+ margin-top: ${css_vh(0.5)};
1084
+ color: #315F7B;
1085
+ font-size: ${css_vh(1.65)};
1086
+ font-weight: bold;
1087
+ }
1088
+
1089
+ .microBitConnectionDialogError {
1090
+ display: none;
1091
+ max-width: ${css_vh(45)};
1092
+ margin-top: ${css_vh(1)};
1093
+ padding: ${css_vh(0.8)} ${css_vh(1)};
1094
+ border-radius: 8px;
1095
+ background: #FFF5D9;
1096
+ color: #9E1F28;
1097
+ font-size: ${css_vh(1.45)};
1098
+ line-height: ${css_vh(2)};
1099
+ overflow-wrap: anywhere;
1100
+ }
1101
+
1102
+ .microBitConnectionDialogHelp {
1103
+ display: none;
1104
+ margin-top: ${css_vh(1)};
1105
+ color: #255E83;
1106
+ font-size: ${css_vh(1.6)};
1107
+ font-weight: bold;
1108
+ }
1109
+
1110
+ .microBitConnectionDialogActions {
1111
+ display: flex;
1112
+ justify-content: flex-end;
1113
+ gap: ${css_vh(1)};
1114
+ margin-top: ${css_vh(1.3)};
1115
+ }
1116
+
1117
+ .microBitConnectionDialogButton {
1118
+ min-width: ${css_vh(10)};
1119
+ min-height: ${css_vh(4.2)};
1120
+ padding: ${css_vh(0.5)} ${css_vh(1.3)};
1121
+ border: 2px solid #315F7B;
1122
+ border-radius: 10px;
1123
+ color: #fff;
1124
+ font-family: 'Lato Regular';
1125
+ font-size: ${css_vh(1.7)};
1126
+ font-weight: bold;
1127
+ cursor: pointer;
1128
+ -webkit-tap-highlight-color: transparent;
1129
+ }
1130
+
1131
+ .microBitConnectionDialogButton.secondary {
1132
+ background: #5D9CC8;
1133
+ }
1134
+
1135
+ .microBitConnectionDialogButton.primary {
1136
+ background: #2E9E66;
1137
+ }
1138
+
1139
+ .microBitConnectionDialogClose:focus-visible,
1140
+ .microBitConnectionDialogButton:focus-visible,
1141
+ .microBitConnectionDialogHelp:focus-visible {
1142
+ outline: 3px solid #133C46;
1143
+ outline-offset: 3px;
1144
+ }
1145
+
952
1146
  /* parental gate */
953
1147
  .parentalgate {
954
1148
  position: fixed;
@@ -1534,9 +1728,9 @@ form.projectname {
1534
1728
  }
1535
1729
 
1536
1730
  *.microbitMatrixCell.on {
1537
- background: #35C1DF;
1538
- border-color: #1F8EA6;
1539
- box-shadow: inset 0 2px 0 rgba(255, 255, 255, 0.45), 0 0 0 2px rgba(255, 255, 255, 0.22);
1731
+ background: #FFFFFF;
1732
+ border-color: #C8CDD8;
1733
+ box-shadow: inset 0 2px 0 rgba(65, 71, 87, 0.12), 0 0 0 2px rgba(65, 71, 87, 0.35);
1540
1734
  }
1541
1735
 
1542
1736
  *.microbitMatrixCell:active {
@@ -29,7 +29,7 @@
29
29
  border-radius: 10px;
30
30
  border: 3px solid #F4AD46;
31
31
 
32
- width: ${css_vh(22.8)};
32
+ width: ${css_vh(34)};
33
33
  height: ${css_vh(12)};
34
34
 
35
35
  padding: 8px 4px;
@@ -69,20 +69,14 @@
69
69
  }
70
70
 
71
71
  .extensionAddButton {
72
- position: absolute;
73
- right: -${css_vh(1.45)};
74
- bottom: -${css_vh(1.45)};
75
- z-index: 5;
76
- width: ${css_vh(5)};
77
- height: ${css_vh(5)};
78
- background: transparent;
79
- border: 0;
80
- display: none !important;
72
+ flex: 1 1 0;
73
+ min-width: 0;
74
+ width: auto;
75
+ height: 100%;
76
+ display: flex;
81
77
  justify-content: center;
82
78
  align-items: center;
83
- cursor: pointer;
84
79
  padding: 0;
85
- -webkit-tap-highlight-color: transparent;
86
80
  }
87
81
 
88
82
  .extensionAddIcon {
@@ -113,6 +107,39 @@
113
107
  transform: translateY(${css_vh(0.13)});
114
108
  }
115
109
 
110
+ .microBitRemoveButton {
111
+ box-sizing: border-box;
112
+ position: absolute;
113
+ right: -${css_vh(0.9)};
114
+ top: -${css_vh(0.9)};
115
+ z-index: 6;
116
+ width: ${css_vh(3.4)};
117
+ height: ${css_vh(3.4)};
118
+ display: none;
119
+ align-items: center;
120
+ justify-content: center;
121
+ padding: 0;
122
+ border: 0;
123
+ border-radius: 50%;
124
+ background: url('../assets/connection/remove_extension-default.svg') no-repeat center center;
125
+ background-size: 100%;
126
+ cursor: pointer;
127
+ -webkit-tap-highlight-color: transparent;
128
+ }
129
+
130
+ .microBitRemoveIcon {
131
+ display: none;
132
+ }
133
+
134
+ .microBitRemoveButton:focus-visible {
135
+ outline: ${css_vh(0.3)} solid #133C46;
136
+ outline-offset: ${css_vh(0.15)};
137
+ }
138
+
139
+ .microBitRemoveButton:active {
140
+ transform: translateY(${css_vh(0.13)});
141
+ }
142
+
116
143
  .connectButtonConnected {
117
144
  /* background: #4bfaa3; */
118
145
  display: grid;
@@ -168,10 +195,58 @@
168
195
  height: ${css_vh(3)};
169
196
  background-image: url('../assets/connection/disconnect_btn-default.svg');
170
197
  }
198
+
199
+ #microBitConnectionButton .connectedButtonContainer {
200
+ position: static;
201
+ width: ${css_vh(8)};
202
+ height: ${css_vh(1.8)};
203
+ display: flex;
204
+ align-items: center;
205
+ justify-content: center;
206
+ align-self: center;
207
+ justify-self: center;
208
+ border-radius: ${css_vh(0.9)};
209
+ background-color: #f173a6;
210
+ background-image: none;
211
+ color: #fff;
212
+ font-family: 'Lato Regular';
213
+ font-size: ${css_vh(0.9)};
214
+ font-weight: bold;
215
+ line-height: 1;
216
+ }
217
+
218
+ #microBitConnectionButton.connectButtonConnected {
219
+ grid-template-rows:
220
+ minmax(0, 2.4fr)
221
+ minmax(0, 0.85fr)
222
+ minmax(0, 1fr);
223
+ }
224
+
225
+ #microBitConnectionButton.connectButtonConnected .connectIcon {
226
+ width: ${css_vh(4.4)};
227
+ height: ${css_vh(4.4)};
228
+ }
229
+
230
+ #microBitConnectionButton .batteryAndSignalContainer {
231
+ display: none;
232
+ }
233
+
234
+ #microBitConnectionButton .raftNameConnectButton {
235
+ width: auto;
236
+ min-width: ${css_vh(4.8)};
237
+ height: ${css_vh(1.55)};
238
+ justify-content: center;
239
+ text-align: center;
240
+ }
171
241
  @media (hover: hover) and (pointer: fine) {
172
242
  .connectButton:hover .connectedButtonContainer {
173
243
  background-image: url('../assets/connection/disconnect_btn-hover.svg');
174
244
  }
245
+
246
+ #microBitConnectionButton:hover .connectedButtonContainer {
247
+ background-color: #e71167;
248
+ background-image: none;
249
+ }
175
250
  }
176
251
 
177
252
  .raftNameConnectButton {
@@ -287,7 +362,7 @@
287
362
  top: 0px;
288
363
  right: 0;
289
364
  width: ${css_vh(1.04)};
290
- height: ${css_vh(25.63)};
365
+ height: ${css_vh(39.58)};
291
366
  background: rgba(255,255,255,0.5);
292
367
  touch-action: none;
293
368
  z-index: 8;
@@ -319,7 +394,7 @@
319
394
  padding: 0px;
320
395
  top: ${css_vh(14.75)};
321
396
  left: ${css_vh(7.55)};
322
- width: ${css_vh(33.85)};
397
+ width: ${css_vh(27.34)};
323
398
  overflow-x: hidden;
324
399
  }
325
400
 
@@ -330,8 +405,8 @@
330
405
  display: block;
331
406
  overflow-y: scroll;
332
407
  overflow-x: hidden;
333
- width: ${css_vh(33.85)};
334
- max-height: ${css_vh(25.63)};
408
+ width: ${css_vh(27.34)};
409
+ max-height: ${css_vh(39.58)};
335
410
  }
336
411
 
337
412
  .spritethumbs::-webkit-scrollbar {
@@ -345,6 +420,23 @@
345
420
  width: ${css_vh(29.95)};
346
421
  }
347
422
 
423
+ #library .spritethumbs .spriteactions {
424
+ position: absolute;
425
+ top: 0;
426
+ left: ${css_vh(2.34)};
427
+ width: ${css_vh(29.95)};
428
+ z-index: 7;
429
+ pointer-events: none;
430
+ }
431
+
432
+ .spriteactionrow {
433
+ position: relative;
434
+ width: ${css_vh(23.18)};
435
+ height: ${css_vh(10.16)};
436
+ margin: 0 0 ${css_vh(-0.39)};
437
+ pointer-events: none;
438
+ }
439
+
348
440
  #library .addsprite {
349
441
  position: relative;
350
442
  display: inline-block;
@@ -461,28 +553,34 @@
461
553
  background-size: 100% 100%;
462
554
  }
463
555
 
464
- .spritethumb.on .deletespritethumb {
556
+ .deletespritethumb {
557
+ appearance: none;
465
558
  position: absolute;
466
- margin: 0px 0px 0px;
467
- left: 0px;
468
- width: ${css_vh(5.86)};
469
- height: ${css_vh(5.73)};
470
- background: url('../assets/ui/closeit.svg');
559
+ top: ${css_vh(0.39)};
560
+ right: ${css_vh(0.52)};
561
+ width: ${css_vh(3.13)};
562
+ height: ${css_vh(3.13)};
563
+ padding: 0;
564
+ border: 0;
565
+ border-radius: 50%;
566
+ background: url('../assets/ui/closeit.svg') no-repeat center;
471
567
  background-size: 100.5%; /* webview pixelates the image unless we do this */
472
- z-index: 5;
568
+ cursor: pointer;
569
+ opacity: 0.55;
570
+ pointer-events: auto;
571
+ transition: opacity 0.15s ease, transform 0.1s ease;
473
572
  -webkit-user-select: none;
474
573
  }
475
574
 
476
- .spritethumb.off .deletespritethumb {
477
- position: absolute;
478
- margin: 0px 0px 0px;
479
- left: 0px;
480
- width: ${css_vh(5.86)};
481
- height: ${css_vh(5.73)};
482
- background: url('../assets/ui/closeit.svg');
483
- background-size: 100.5%; /* webview pixelates the image unless we do this */
484
- z-index: 5;
485
- -webkit-user-select: none;
575
+ .deletespritethumb:hover,
576
+ .deletespritethumb:focus-visible {
577
+ filter: brightness(1.08);
578
+ opacity: 1;
579
+ }
580
+
581
+ .deletespritethumb:active {
582
+ opacity: 1;
583
+ transform: scale(0.94);
486
584
  }
487
585
 
488
586
  .spritethumb .icon{
@@ -200,6 +200,7 @@ hr.bigdivide{
200
200
  }
201
201
 
202
202
  .assetbox {
203
+ position: relative;
203
204
  display: inline-block;
204
205
  vertical-align: top;
205
206
  width: ${css_vh(17.84)};
@@ -208,6 +209,37 @@ hr.bigdivide{
208
209
  padding: ${css_vh(0.65)};
209
210
  }
210
211
 
212
+ .asset-delete-button {
213
+ appearance: none;
214
+ position: absolute;
215
+ top: ${css_vh(0.39)};
216
+ right: ${css_vh(0.39)};
217
+ width: ${css_vh(3.13)};
218
+ height: ${css_vh(3.13)};
219
+ padding: 0;
220
+ border: 0;
221
+ border-radius: 50%;
222
+ background: url('../assets/ui/closeit.svg') no-repeat center;
223
+ background-size: 100.5%;
224
+ cursor: pointer;
225
+ opacity: 0.55;
226
+ pointer-events: auto;
227
+ transition: opacity 0.15s ease, transform 0.1s ease;
228
+ z-index: 20;
229
+ -webkit-user-select: none;
230
+ }
231
+
232
+ .asset-delete-button:hover,
233
+ .asset-delete-button:focus-visible {
234
+ filter: brightness(1.08);
235
+ opacity: 1;
236
+ }
237
+
238
+ .asset-delete-button:active {
239
+ opacity: 1;
240
+ transform: scale(0.94);
241
+ }
242
+
211
243
  .assetbox.off {
212
244
  background: url('../assets/paint/thumbOff.png') no-repeat center top;
213
245
  background-size: 100%;