@kurot/cli 3.5.0 → 3.6.1

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 (58) hide show
  1. package/CHANGELOG.md +116 -2
  2. package/README.md +54 -13
  3. package/dist/core/kui/skin-parts-declaration.d.ts.map +1 -1
  4. package/dist/core/kui/skin-parts-declaration.js +2 -1
  5. package/dist/core/kui/skin-parts-declaration.js.map +1 -1
  6. package/dist/core/plugins/compile-custom-namespaces.js +1 -1
  7. package/dist/core/plugins/compile-custom-namespaces.js.map +1 -1
  8. package/dist/core/plugins/compile-engine.js +3 -3
  9. package/dist/core/plugins/compile-engine.js.map +1 -1
  10. package/dist/core/plugins/copy-assets.d.ts +2 -0
  11. package/dist/core/plugins/copy-assets.d.ts.map +1 -1
  12. package/dist/core/plugins/copy-assets.js +3 -1
  13. package/dist/core/plugins/copy-assets.js.map +1 -1
  14. package/dist/utils/fs.d.ts +7 -1
  15. package/dist/utils/fs.d.ts.map +1 -1
  16. package/dist/utils/fs.js +10 -3
  17. package/dist/utils/fs.js.map +1 -1
  18. package/docs/ai-context.md +40 -9
  19. package/docs/architecture.md +7 -1
  20. package/docs/default-ui-skins.md +122 -0
  21. package/docs/game-template.md +47 -4
  22. package/docs/label-text-layout.md +3 -1
  23. package/docs/text-components.md +4 -1
  24. package/package.json +1 -1
  25. package/templates/empty/AGENTS.md +25 -0
  26. package/templates/empty/README.md +60 -0
  27. package/templates/game/AGENTS.md +30 -0
  28. package/templates/game/README.md +90 -0
  29. package/templates/game/resource/assets/ui/kui/kui.json +240 -0
  30. package/templates/game/resource/assets/ui/kui/kui.png +0 -0
  31. package/templates/game/resource/config/style.json +26 -4
  32. package/templates/game/resource/default.res.json +70 -3
  33. package/templates/game/resource/ui/skins/ButtonSkin.kui.xml +4 -4
  34. package/templates/game/resource/ui/skins/CheckBoxSkin.kui.xml +4 -4
  35. package/templates/game/resource/ui/skins/CloseButtonSkin.kui.xml +4 -0
  36. package/templates/game/resource/ui/skins/ComboBoxSkin.kui.xml +5 -5
  37. package/templates/game/resource/ui/skins/HScrollBarSkin.kui.xml +1 -1
  38. package/templates/game/resource/ui/skins/HSliderSkin.kui.xml +3 -3
  39. package/templates/game/resource/ui/skins/ItemRendererSkin.kui.xml +3 -3
  40. package/templates/game/resource/ui/skins/PanelSkin.kui.xml +5 -6
  41. package/templates/game/resource/ui/skins/ProgressBarSkin.kui.xml +4 -4
  42. package/templates/game/resource/ui/skins/RadioButtonSkin.kui.xml +4 -4
  43. package/templates/game/resource/ui/skins/TextInputSkin.kui.xml +4 -4
  44. package/templates/game/resource/ui/skins/ToggleButtonSkin.kui.xml +3 -3
  45. package/templates/game/resource/ui/skins/ToggleSwitchSkin.kui.xml +3 -3
  46. package/templates/game/resource/ui/skins/VScrollBarSkin.kui.xml +1 -1
  47. package/templates/game/resource/ui/skins/VSliderSkin.kui.xml +3 -3
  48. package/templates/game/src/Main.ts +1 -1
  49. package/templates/game/template/web/index.html +117 -34
  50. package/templates/game/template/web/logo.png +0 -0
  51. package/templates/game/resource/assets/ui/eui/eui.json +0 -24
  52. package/templates/game/resource/assets/ui/eui/eui.png +0 -0
  53. package/templates/game/resource/ui/skins/GroupSkin.kui.xml +0 -4
  54. package/templates/game/resource/ui/skins/ImageSkin.kui.xml +0 -4
  55. package/templates/game/resource/ui/skins/LabelSkin.kui.xml +0 -4
  56. package/templates/game/resource/ui/skins/ListSkin.kui.xml +0 -7
  57. package/templates/game/resource/ui/skins/TabBarSkin.kui.xml +0 -5
  58. package/templates/game/resource/ui/skins/ViewStackSkin.kui.xml +0 -4
@@ -0,0 +1,240 @@
1
+ {
2
+ "file": "kui.png",
3
+ "frames": {
4
+ "button_disabled": {
5
+ "x": 142,
6
+ "y": 6,
7
+ "w": 96,
8
+ "h": 96
9
+ },
10
+ "button_down": {
11
+ "x": 246,
12
+ "y": 6,
13
+ "w": 96,
14
+ "h": 96
15
+ },
16
+ "button_up": {
17
+ "x": 350,
18
+ "y": 6,
19
+ "w": 96,
20
+ "h": 96
21
+ },
22
+ "checkbox_disabled": {
23
+ "x": 198,
24
+ "y": 358,
25
+ "w": 56,
26
+ "h": 56
27
+ },
28
+ "checkbox_down": {
29
+ "x": 246,
30
+ "y": 286,
31
+ "w": 56,
32
+ "h": 56
33
+ },
34
+ "checkbox_selected": {
35
+ "x": 302,
36
+ "y": 214,
37
+ "w": 56,
38
+ "h": 56
39
+ },
40
+ "checkbox_selected_disabled": {
41
+ "x": 198,
42
+ "y": 422,
43
+ "w": 56,
44
+ "h": 56
45
+ },
46
+ "checkbox_selected_down": {
47
+ "x": 366,
48
+ "y": 214,
49
+ "w": 56,
50
+ "h": 56
51
+ },
52
+ "checkbox_up": {
53
+ "x": 430,
54
+ "y": 214,
55
+ "w": 56,
56
+ "h": 56
57
+ },
58
+ "chevron": {
59
+ "x": 326,
60
+ "y": 470,
61
+ "w": 32,
62
+ "h": 32
63
+ },
64
+ "chevron_disabled": {
65
+ "x": 366,
66
+ "y": 470,
67
+ "w": 32,
68
+ "h": 32
69
+ },
70
+ "chevron_open": {
71
+ "x": 406,
72
+ "y": 406,
73
+ "w": 32,
74
+ "h": 32
75
+ },
76
+ "close_disabled": {
77
+ "x": 230,
78
+ "y": 214,
79
+ "w": 64,
80
+ "h": 64
81
+ },
82
+ "close_down": {
83
+ "x": 126,
84
+ "y": 358,
85
+ "w": 64,
86
+ "h": 64
87
+ },
88
+ "close_up": {
89
+ "x": 126,
90
+ "y": 430,
91
+ "w": 64,
92
+ "h": 64
93
+ },
94
+ "panel": {
95
+ "x": 6,
96
+ "y": 6,
97
+ "w": 128,
98
+ "h": 128
99
+ },
100
+ "progress": {
101
+ "x": 262,
102
+ "y": 478,
103
+ "w": 24,
104
+ "h": 24
105
+ },
106
+ "progress_track": {
107
+ "x": 294,
108
+ "y": 478,
109
+ "w": 24,
110
+ "h": 24
111
+ },
112
+ "radio_disabled": {
113
+ "x": 262,
114
+ "y": 350,
115
+ "w": 56,
116
+ "h": 56
117
+ },
118
+ "radio_down": {
119
+ "x": 310,
120
+ "y": 278,
121
+ "w": 56,
122
+ "h": 56
123
+ },
124
+ "radio_selected": {
125
+ "x": 262,
126
+ "y": 414,
127
+ "w": 56,
128
+ "h": 56
129
+ },
130
+ "radio_selected_disabled": {
131
+ "x": 374,
132
+ "y": 278,
133
+ "w": 56,
134
+ "h": 56
135
+ },
136
+ "radio_selected_down": {
137
+ "x": 438,
138
+ "y": 278,
139
+ "w": 56,
140
+ "h": 56
141
+ },
142
+ "radio_up": {
143
+ "x": 326,
144
+ "y": 342,
145
+ "w": 56,
146
+ "h": 56
147
+ },
148
+ "scroll_thumb": {
149
+ "x": 390,
150
+ "y": 446,
151
+ "w": 16,
152
+ "h": 16
153
+ },
154
+ "slider_thumb": {
155
+ "x": 326,
156
+ "y": 406,
157
+ "w": 56,
158
+ "h": 56
159
+ },
160
+ "slider_thumb_disabled": {
161
+ "x": 390,
162
+ "y": 342,
163
+ "w": 56,
164
+ "h": 56
165
+ },
166
+ "surface_disabled_selected": {
167
+ "x": 142,
168
+ "y": 110,
169
+ "w": 96,
170
+ "h": 96
171
+ },
172
+ "surface_down": {
173
+ "x": 6,
174
+ "y": 142,
175
+ "w": 96,
176
+ "h": 96
177
+ },
178
+ "surface_selected": {
179
+ "x": 246,
180
+ "y": 110,
181
+ "w": 96,
182
+ "h": 96
183
+ },
184
+ "surface_selected_down": {
185
+ "x": 350,
186
+ "y": 110,
187
+ "w": 96,
188
+ "h": 96
189
+ },
190
+ "surface_up": {
191
+ "x": 6,
192
+ "y": 246,
193
+ "w": 96,
194
+ "h": 96
195
+ },
196
+ "switch_disabled_off": {
197
+ "x": 6,
198
+ "y": 350,
199
+ "w": 112,
200
+ "h": 64
201
+ },
202
+ "switch_disabled_on": {
203
+ "x": 6,
204
+ "y": 422,
205
+ "w": 112,
206
+ "h": 64
207
+ },
208
+ "switch_handle": {
209
+ "x": 454,
210
+ "y": 342,
211
+ "w": 48,
212
+ "h": 48
213
+ },
214
+ "switch_handle_disabled": {
215
+ "x": 454,
216
+ "y": 398,
217
+ "w": 48,
218
+ "h": 48
219
+ },
220
+ "switch_off": {
221
+ "x": 110,
222
+ "y": 214,
223
+ "w": 112,
224
+ "h": 64
225
+ },
226
+ "switch_on": {
227
+ "x": 126,
228
+ "y": 286,
229
+ "w": 112,
230
+ "h": 64
231
+ },
232
+ "track": {
233
+ "x": 198,
234
+ "y": 486,
235
+ "w": 16,
236
+ "h": 16
237
+ }
238
+ },
239
+ "resolution": 2
240
+ }
@@ -4,13 +4,35 @@
4
4
  "default": "primary",
5
5
  "families": {
6
6
  "primary": {
7
- "fallback": ["Arial", "sans-serif"],
7
+ "fallback": [
8
+ "Arial",
9
+ "sans-serif"
10
+ ],
8
11
  "faces": [
9
- { "url": "assets/fonts/ChakraPetch-Regular.ttf", "weight": 400 },
10
- { "url": "assets/fonts/ChakraPetch-Bold.ttf", "weight": 700 }
12
+ {
13
+ "url": "assets/fonts/ChakraPetch-Regular.ttf",
14
+ "weight": 400
15
+ },
16
+ {
17
+ "url": "assets/fonts/ChakraPetch-Bold.ttf",
18
+ "weight": 700
19
+ }
11
20
  ]
12
21
  }
13
22
  }
14
23
  },
15
- "colors": { "disabled-text": "#999999" }
24
+ "colors": {
25
+ "disabled-text": "#7C8799",
26
+ "brand": "#1487E8",
27
+ "brand-pressed": "#0874CF",
28
+ "on-brand": "#071D30",
29
+ "canvas": "#EDF3FC",
30
+ "surface": "#FFFFFF",
31
+ "soft": "#F1F5FC",
32
+ "edge": "#DBE5F2",
33
+ "text": "#18273E",
34
+ "muted-text": "#64748B",
35
+ "disabled": "#EEF1F6",
36
+ "selected": "#E4F2FF"
37
+ }
16
38
  }
@@ -1,15 +1,82 @@
1
1
  {
2
2
  "groups": [
3
3
  {
4
- "keys": "eui,locale_json,lang_en_US_properties",
4
+ "keys": "kui,locale_json,lang_en_US_properties",
5
5
  "name": "preload"
6
6
  }
7
7
  ],
8
8
  "resources": [
9
9
  {
10
- "name": "eui",
10
+ "name": "kui",
11
11
  "type": "sheet",
12
- "url": "assets/ui/eui/eui.json"
12
+ "url": "assets/ui/kui/kui.json",
13
+ "subkeys": {
14
+ "button_up": {
15
+ "scale9grid": "16,16,16,16"
16
+ },
17
+ "button_down": {
18
+ "scale9grid": "16,16,16,16"
19
+ },
20
+ "button_disabled": {
21
+ "scale9grid": "16,16,16,16"
22
+ },
23
+ "surface_up": {
24
+ "scale9grid": "16,16,16,16"
25
+ },
26
+ "surface_down": {
27
+ "scale9grid": "16,16,16,16"
28
+ },
29
+ "surface_selected": {
30
+ "scale9grid": "16,16,16,16"
31
+ },
32
+ "surface_selected_down": {
33
+ "scale9grid": "16,16,16,16"
34
+ },
35
+ "surface_disabled_selected": {
36
+ "scale9grid": "16,16,16,16"
37
+ },
38
+ "panel": {
39
+ "scale9grid": "24,24,16,16"
40
+ },
41
+ "track": {
42
+ "scale9grid": "3,3,2,2"
43
+ },
44
+ "progress_track": {
45
+ "scale9grid": "5,5,2,2"
46
+ },
47
+ "progress": {
48
+ "scale9grid": "5,5,2,2"
49
+ },
50
+ "scroll_thumb": {
51
+ "scale9grid": "3,3,2,2"
52
+ },
53
+ "checkbox_up": {},
54
+ "checkbox_down": {},
55
+ "checkbox_disabled": {},
56
+ "checkbox_selected": {},
57
+ "checkbox_selected_down": {},
58
+ "checkbox_selected_disabled": {},
59
+ "radio_up": {},
60
+ "radio_down": {},
61
+ "radio_disabled": {},
62
+ "radio_selected": {},
63
+ "radio_selected_down": {},
64
+ "radio_selected_disabled": {},
65
+ "slider_thumb": {},
66
+ "slider_thumb_disabled": {},
67
+ "switch_off": {},
68
+ "switch_on": {},
69
+ "switch_disabled_off": {},
70
+ "switch_disabled_on": {},
71
+ "switch_handle": {},
72
+ "switch_handle_disabled": {},
73
+ "chevron": {},
74
+ "chevron_open": {},
75
+ "chevron_disabled": {},
76
+ "close_up": {},
77
+ "close_down": {},
78
+ "close_disabled": {}
79
+ }
13
80
  },
14
81
  {
15
82
  "name": "locale_json",
@@ -1,6 +1,6 @@
1
1
  <?xml version="1.0" encoding="utf-8"?>
2
- <Skin xmlns="https://kurot.dev/ui/1" class="skins.ButtonSkin" states="disabled,down,up" minHeight="50" minWidth="100">
3
- <Image height="100%" scale9Grid="1,3,8,8" source="button_up_png" width="100%" alpha.disabled="0.5" source.down="button_down_png" />
4
- <Label id="labelDisplay" bottom="8" left="8" right="8" size="20" textAlign="center" textColor="#FFFFFF" textColor.disabled="@style:colors:disabled-text" top="8" verticalAlign="middle" />
5
- <Image id="iconDisplay" horizontalCenter="0" verticalCenter="0" />
2
+ <Skin xmlns="https://kurot.dev/ui/1" class="skins.ButtonSkin" states="disabled,down,up" minHeight="48" minWidth="96">
3
+ <Image height="100%" width="100%" source="kui.button_up" source.down="kui.button_down" source.disabled="kui.button_disabled" touchEnabled="false" />
4
+ <Label id="labelDisplay" left="16" right="16" top="10" bottom="10" size="18" bold="true" multiline="false" textFit="shrink" minFontSize="14" textAlign="center" verticalAlign="middle" textColor="@style:colors:on-brand" textColor.disabled="@style:colors:disabled-text" top.down="12" bottom.down="8" />
5
+ <Image id="iconDisplay" horizontalCenter="0" verticalCenter="0" verticalCenter.down="2" />
6
6
  </Skin>
@@ -1,10 +1,10 @@
1
1
  <?xml version="1.0" encoding="utf-8"?>
2
- <Skin xmlns="https://kurot.dev/ui/1" class="skins.CheckBoxSkin" states="disabled,disabledAndSelected,down,downAndSelected,up,upAndSelected">
2
+ <Skin xmlns="https://kurot.dev/ui/1" class="skins.CheckBoxSkin" states="disabled,disabledAndSelected,down,downAndSelected,up,upAndSelected" minHeight="44">
3
3
  <Group height="100%" width="100%">
4
4
  <layout>
5
- <HorizontalLayout verticalAlign="middle" />
5
+ <HorizontalLayout gap="10" paddingTop="8" paddingBottom="8" verticalAlign="middle" />
6
6
  </layout>
7
- <Image alpha="1" fillMode="scale" source="checkbox_unselect_png" alpha.disabled="0.5" source.disabledAndSelected="checkbox_select_disabled_png" alpha.down="0.7" source.downAndSelected="checkbox_select_down_png" source.upAndSelected="checkbox_select_up_png" />
8
- <Label id="labelDisplay" size="20" textAlign="center" textColor="#707070" verticalAlign="middle" />
7
+ <Image width="28" height="28" source="kui.checkbox_up" source.down="kui.checkbox_down" source.disabled="kui.checkbox_disabled" source.disabledAndSelected="kui.checkbox_selected_disabled" source.downAndSelected="kui.checkbox_selected_down" source.upAndSelected="kui.checkbox_selected" />
8
+ <Label id="labelDisplay" size="18" multiline="false" textColor="@style:colors:text" textColor.disabled="@style:colors:disabled-text" textColor.disabledAndSelected="@style:colors:disabled-text" verticalAlign="middle" />
9
9
  </Group>
10
10
  </Skin>
@@ -0,0 +1,4 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <Skin xmlns="https://kurot.dev/ui/1" class="skins.CloseButtonSkin" states="disabled,down,up" minWidth="44" minHeight="44">
3
+ <Image width="32" height="32" horizontalCenter="0" verticalCenter="0" source="kui.close_up" source.down="kui.close_down" source.disabled="kui.close_disabled" />
4
+ </Skin>
@@ -1,9 +1,9 @@
1
1
  <?xml version="1.0" encoding="utf-8"?>
2
- <Skin xmlns="https://kurot.dev/ui/1" class="skins.ComboBoxSkin" states="disabled,normal,open" minHeight="36" minWidth="100">
3
- <Rect fillColor="#1A1A2E" height="36" strokeColor="#0F3460" strokeWeight="1" width="100%" fillColor.disabled="#16213E" strokeColor.disabled="#4A5459" fillColor.open="#16213E" strokeColor.open="#6C5CE7" />
4
- <Label id="labelDisplay" height="36" left="10" right="36" size="14" textColor="#DFE6E9" top="0" verticalAlign="middle" textColor.disabled="@style:colors:disabled-text" />
5
- <Label height="36" right="4" size="10" text="▼" textAlign="center" textColor="#636E72" top="0" verticalAlign="middle" width="24" textColor.open="#6C5CE7" />
6
- <Scroller id="dropDown" height="180" left="0" right="0" top="36" visible="false">
2
+ <Skin xmlns="https://kurot.dev/ui/1" class="skins.ComboBoxSkin" states="disabled,normal,open" minHeight="48" minWidth="160">
3
+ <Image height="48" top="0" width="100%" source="kui.surface_up" source.disabled="kui.button_disabled" source.open="kui.surface_selected" />
4
+ <Label id="labelDisplay" height="48" left="14" right="42" size="18" multiline="false" textFit="shrink" minFontSize="14" textColor="@style:colors:text" top="0" verticalAlign="middle" textColor.disabled="@style:colors:disabled-text" />
5
+ <Image height="16" width="16" right="14" top="16" source="kui.chevron" source.open="kui.chevron_open" source.disabled="kui.chevron_disabled" />
6
+ <Scroller id="dropDown" height="180" left="0" right="0" top="54" visible="false" includeInLayout="false">
7
7
  <List id="list" height="180" width="100%" />
8
8
  </Scroller>
9
9
  </Skin>
@@ -1,4 +1,4 @@
1
1
  <?xml version="1.0" encoding="utf-8"?>
2
2
  <Skin xmlns="https://kurot.dev/ui/1" class="skins.HScrollBarSkin" minHeight="8" minWidth="20">
3
- <Image id="thumb" height="8" scale9Grid="3,3,2,2" source="roundthumb_png" verticalCenter="0" width="30" />
3
+ <Image id="thumb" height="8" source="kui.scroll_thumb" verticalCenter="0" width="30" />
4
4
  </Skin>
@@ -1,5 +1,5 @@
1
1
  <?xml version="1.0" encoding="utf-8"?>
2
- <Skin xmlns="https://kurot.dev/ui/1" class="skins.HSliderSkin" minHeight="8" minWidth="20">
3
- <Image id="track" height="6" scale9Grid="1,1,4,4" source="track_sb_png" verticalCenter="0" width="100%" />
4
- <Image id="thumb" source="thumb_png" verticalCenter="0" />
2
+ <Skin xmlns="https://kurot.dev/ui/1" class="skins.HSliderSkin" states="disabled" minHeight="44" minWidth="80">
3
+ <Image id="track" height="8" source="kui.track" verticalCenter="0" width="100%" />
4
+ <Image id="thumb" width="28" height="28" source="kui.slider_thumb" source.disabled="kui.slider_thumb_disabled" verticalCenter="0" />
5
5
  </Skin>
@@ -1,5 +1,5 @@
1
1
  <?xml version="1.0" encoding="utf-8"?>
2
- <Skin xmlns="https://kurot.dev/ui/1" class="skins.ItemRendererSkin" states="disabled,down,up" minHeight="50" minWidth="100">
3
- <Image height="100%" scale9Grid="1,3,8,8" source="button_up_png" width="100%" alpha.disabled="0.5" source.down="button_down_png" />
4
- <Label id="labelDisplay" bottom="8" left="8" right="8" size="20" textAlign="center" textColor="#FFFFFF" top="8" verticalAlign="middle" />
2
+ <Skin xmlns="https://kurot.dev/ui/1" class="skins.ItemRendererSkin" states="disabled,down,up,downAndSelected,upAndSelected" minHeight="48" minWidth="96">
3
+ <Image height="100%" width="100%" source="kui.surface_up" source.down="kui.surface_down" source.disabled="kui.button_disabled" source.downAndSelected="kui.surface_selected_down" source.upAndSelected="kui.surface_selected" touchEnabled="false" />
4
+ <Label id="labelDisplay" bottom="10" left="14" right="14" top="10" size="18" multiline="false" textFit="shrink" minFontSize="14" textAlign="left" textColor="@style:colors:text" textColor.disabled="@style:colors:disabled-text" verticalAlign="middle" />
5
5
  </Skin>
@@ -1,9 +1,8 @@
1
1
  <?xml version="1.0" encoding="utf-8"?>
2
- <Skin xmlns="https://kurot.dev/ui/1" class="skins.PanelSkin" minHeight="230" minWidth="450">
3
- <Image bottom="0" left="0" right="0" scale9Grid="2,2,12,12" source="border_png" top="0" />
4
- <Group id="moveArea" height="45" left="0" right="0" top="0">
5
- <Image bottom="0" left="0" right="0" scale9Grid="2,2,12,12" source="header_png" top="0" />
6
- <Label id="titleDisplay" left="15" right="5" size="20" textColor="#FFFFFF" verticalCenter="0" wordWrap="false" />
2
+ <Skin xmlns="https://kurot.dev/ui/1" class="skins.PanelSkin" minHeight="160" minWidth="240">
3
+ <Image bottom="0" left="0" right="0" source="kui.panel" top="0" touchEnabled="false" />
4
+ <Group id="moveArea" height="56" left="0" right="0" top="0">
5
+ <Label id="titleDisplay" left="20" right="60" size="20" bold="true" textColor="@style:colors:text" verticalCenter="0" verticalAlign="middle" multiline="false" textFit="shrink" minFontSize="16" />
7
6
  </Group>
8
- <Button id="closeButton" bottom="5" horizontalCenter="0" label="close" />
7
+ <Button id="closeButton" top="6" right="8" width="44" height="44" skinName="skins.CloseButtonSkin" />
9
8
  </Skin>
@@ -1,6 +1,6 @@
1
1
  <?xml version="1.0" encoding="utf-8"?>
2
- <Skin xmlns="https://kurot.dev/ui/1" class="skins.ProgressBarSkin" minHeight="18" minWidth="30">
3
- <Image height="100%" scale9Grid="1,1,4,4" source="track_pb_png" verticalCenter="0" width="100%" />
4
- <Image id="thumb" height="100%" scale9Grid="1,1,4,4" source="thumb_pb_png" width="100%" />
5
- <Label id="labelDisplay" horizontalCenter="0" size="15" textAlign="center" textColor="#707070" verticalAlign="middle" verticalCenter="0" />
2
+ <Skin xmlns="https://kurot.dev/ui/1" class="skins.ProgressBarSkin" minHeight="44" minWidth="80">
3
+ <Image height="12" source="kui.progress_track" verticalCenter="8" width="100%" />
4
+ <Image id="thumb" height="12" source="kui.progress" verticalCenter="8" width="100%" />
5
+ <Label id="labelDisplay" top="0" right="0" size="14" textAlign="right" textColor="@style:colors:muted-text" />
6
6
  </Skin>
@@ -1,10 +1,10 @@
1
1
  <?xml version="1.0" encoding="utf-8"?>
2
- <Skin xmlns="https://kurot.dev/ui/1" class="skins.RadioButtonSkin" states="disabled,disabledAndSelected,down,downAndSelected,up,upAndSelected">
2
+ <Skin xmlns="https://kurot.dev/ui/1" class="skins.RadioButtonSkin" states="disabled,disabledAndSelected,down,downAndSelected,up,upAndSelected" minHeight="44">
3
3
  <Group height="100%" width="100%">
4
4
  <layout>
5
- <HorizontalLayout verticalAlign="middle" />
5
+ <HorizontalLayout gap="10" paddingTop="8" paddingBottom="8" verticalAlign="middle" />
6
6
  </layout>
7
- <Image alpha="1" fillMode="scale" source="radiobutton_unselect_png" alpha.disabled="0.5" source.disabledAndSelected="radiobutton_select_disabled_png" alpha.down="0.7" source.downAndSelected="radiobutton_select_down_png" source.upAndSelected="radiobutton_select_up_png" />
8
- <Label id="labelDisplay" size="20" textAlign="center" textColor="#707070" verticalAlign="middle" />
7
+ <Image width="28" height="28" source="kui.radio_up" source.down="kui.radio_down" source.disabled="kui.radio_disabled" source.disabledAndSelected="kui.radio_selected_disabled" source.downAndSelected="kui.radio_selected_down" source.upAndSelected="kui.radio_selected" />
8
+ <Label id="labelDisplay" size="18" multiline="false" textColor="@style:colors:text" textColor.disabled="@style:colors:disabled-text" textColor.disabledAndSelected="@style:colors:disabled-text" verticalAlign="middle" />
9
9
  </Group>
10
10
  </Skin>
@@ -1,6 +1,6 @@
1
1
  <?xml version="1.0" encoding="utf-8"?>
2
- <Skin xmlns="https://kurot.dev/ui/1" class="skins.TextInputSkin" states="disabled,disabledWithPrompt,normal,normalWithPrompt" minHeight="40" minWidth="300">
3
- <Rect fillColor="#FFFFFF" height="100%" width="100%" alpha.disabled="0.5" />
4
- <EditableText id="textDisplay" height="24" left="10" right="10" size="20" textColor="#000000" verticalAlign="middle" verticalCenter="0" textColor.disabled="@style:colors:disabled-text" />
5
- <Label id="promptDisplay" height="24" left="10" multiline="false" right="10" size="20" textColor="#A9A9A9" touchEnabled="false" verticalAlign="middle" verticalCenter="0" visible="false" wordWrap="false" visible.disabledWithPrompt="true" visible.normalWithPrompt="true" />
2
+ <Skin xmlns="https://kurot.dev/ui/1" class="skins.TextInputSkin" states="disabled,disabledWithPrompt,normal,normalWithPrompt" minHeight="48" minWidth="160">
3
+ <Image height="100%" width="100%" source="kui.surface_up" source.disabled="kui.button_disabled" source.disabledWithPrompt="kui.button_disabled" touchEnabled="false" />
4
+ <EditableText id="textDisplay" height="28" left="14" right="14" size="18" textColor="@style:colors:text" verticalAlign="middle" verticalCenter="0" textColor.disabled="@style:colors:disabled-text" textColor.disabledWithPrompt="@style:colors:disabled-text" />
5
+ <Label id="promptDisplay" height="28" left="14" right="14" size="18" multiline="false" textColor="@style:colors:muted-text" textColor.disabledWithPrompt="@style:colors:disabled-text" touchEnabled="false" verticalAlign="middle" verticalCenter="0" visible="false" visible.disabledWithPrompt="true" visible.normalWithPrompt="true" />
6
6
  </Skin>
@@ -1,5 +1,5 @@
1
1
  <?xml version="1.0" encoding="utf-8"?>
2
- <Skin xmlns="https://kurot.dev/ui/1" class="skins.ToggleButtonSkin" states="disabled,disabledAndSelected,down,downAndSelected,up,upAndSelected" minHeight="50" minWidth="100">
3
- <Rect fillColor="#636E72" height="100%" strokeColor="#4A5459" strokeWeight="1" width="100%" fillColor.disabled="#2D3436" fillColor.disabledAndSelected="#2D3436" fillColor.down="#4A5459" fillColor.downAndSelected="#5A4BD1" fillColor.upAndSelected="#6C5CE7" />
4
- <Label id="labelDisplay" bottom="8" left="8" right="8" size="16" textAlign="center" textColor="#DFE6E9" top="8" verticalAlign="middle" textColor.disabled="@style:colors:disabled-text" textColor.upAndSelected="#FFFFFF" />
2
+ <Skin xmlns="https://kurot.dev/ui/1" class="skins.ToggleButtonSkin" states="disabled,disabledAndSelected,down,downAndSelected,up,upAndSelected" minHeight="48" minWidth="96">
3
+ <Image height="100%" width="100%" source="kui.surface_up" source.down="kui.surface_down" source.disabled="kui.button_disabled" source.disabledAndSelected="kui.surface_disabled_selected" source.downAndSelected="kui.surface_selected_down" source.upAndSelected="kui.surface_selected" touchEnabled="false" />
4
+ <Label id="labelDisplay" bottom="10" left="16" right="16" top="10" size="18" bold="true" multiline="false" textFit="shrink" minFontSize="14" textAlign="center" textColor="@style:colors:text" verticalAlign="middle" textColor.disabled="@style:colors:disabled-text" textColor.disabledAndSelected="@style:colors:disabled-text" />
5
5
  </Skin>
@@ -1,5 +1,5 @@
1
1
  <?xml version="1.0" encoding="utf-8"?>
2
- <Skin xmlns="https://kurot.dev/ui/1" class="skins.ToggleSwitchSkin" states="disabled,disabledAndSelected,down,downAndSelected,up,upAndSelected">
3
- <Image source="on_png" source.disabled="off_png" source.down="off_png" source.up="off_png" />
4
- <Image horizontalCenter="-18" source="handle_png" verticalCenter="0" horizontalCenter.disabledAndSelected="18" horizontalCenter.downAndSelected="18" horizontalCenter.upAndSelected="18" />
2
+ <Skin xmlns="https://kurot.dev/ui/1" class="skins.ToggleSwitchSkin" states="disabled,disabledAndSelected,down,downAndSelected,up,upAndSelected" width="56" height="44" minWidth="56" minHeight="44">
3
+ <Image width="56" height="32" horizontalCenter="0" verticalCenter="0" source="kui.switch_off" source.disabled="kui.switch_disabled_off" source.disabledAndSelected="kui.switch_disabled_on" source.downAndSelected="kui.switch_on" source.upAndSelected="kui.switch_on" />
4
+ <Image width="24" height="24" horizontalCenter="-12" verticalCenter="0" source="kui.switch_handle" source.disabled="kui.switch_handle_disabled" source.disabledAndSelected="kui.switch_handle_disabled" horizontalCenter.disabledAndSelected="12" horizontalCenter.downAndSelected="12" horizontalCenter.upAndSelected="12" />
5
5
  </Skin>
@@ -1,4 +1,4 @@
1
1
  <?xml version="1.0" encoding="utf-8"?>
2
2
  <Skin xmlns="https://kurot.dev/ui/1" class="skins.VScrollBarSkin" minHeight="20" minWidth="8">
3
- <Image id="thumb" height="30" horizontalCenter="0" scale9Grid="3,3,2,2" source="roundthumb_png" width="8" />
3
+ <Image id="thumb" height="30" horizontalCenter="0" source="kui.scroll_thumb" width="8" />
4
4
  </Skin>
@@ -1,5 +1,5 @@
1
1
  <?xml version="1.0" encoding="utf-8"?>
2
- <Skin xmlns="https://kurot.dev/ui/1" class="skins.VSliderSkin" minHeight="30" minWidth="25">
3
- <Image id="track" height="100%" horizontalCenter="0" scale9Grid="1,1,4,4" source="track_png" width="7" />
4
- <Image id="thumb" horizontalCenter="0" source="thumb_png" />
2
+ <Skin xmlns="https://kurot.dev/ui/1" class="skins.VSliderSkin" states="disabled" minHeight="80" minWidth="44">
3
+ <Image id="track" height="100%" horizontalCenter="0" source="kui.track" width="8" />
4
+ <Image id="thumb" width="28" height="28" horizontalCenter="0" source="kui.slider_thumb" source.disabled="kui.slider_thumb_disabled" />
5
5
  </Skin>
@@ -88,7 +88,7 @@ class Main extends UILayer {
88
88
  /**
89
89
  * Create the game scene.
90
90
  *
91
- * Build a responsive view with EUI components and constraint-based layout.
91
+ * Build a responsive view with Kurot UI components and constraint-based layout.
92
92
  */
93
93
  private _createGameScene(): void {
94
94
  // Responsive background