@rpgjs/ui-css 5.0.0-alpha.30

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.
@@ -0,0 +1,347 @@
1
+ .rpg-ui-main-menu {
2
+ width: 100%;
3
+ height: 100%;
4
+ padding: 32px;
5
+ box-sizing: border-box;
6
+ display: flex;
7
+ align-items: center;
8
+ justify-content: center;
9
+ position: relative;
10
+ }
11
+
12
+ .rpg-ui-main-menu-layout {
13
+ display: flex;
14
+ gap: 16px;
15
+ align-items: stretch;
16
+ width: min(960px, 100%);
17
+ }
18
+
19
+ .rpg-ui-main-menu-left {
20
+ width: 220px;
21
+ }
22
+
23
+ .rpg-ui-main-menu-right {
24
+ flex: 1;
25
+ display: flex;
26
+ flex-direction: column;
27
+ gap: 12px;
28
+ }
29
+
30
+ .rpg-ui-main-menu-status-card {
31
+ display: grid;
32
+ grid-template-columns: repeat(2, minmax(0, 1fr));
33
+ gap: 12px;
34
+ }
35
+
36
+ .rpg-ui-main-menu-status-block {
37
+ background: rgba(0, 0, 0, 0.25);
38
+ border-radius: var(--rpg-ui-radius-sm);
39
+ padding: 12px;
40
+ border: 1px solid var(--rpg-ui-border);
41
+ }
42
+
43
+ .rpg-ui-main-menu-status-label {
44
+ font-size: var(--rpg-ui-font-size-sm);
45
+ color: var(--rpg-ui-text-muted);
46
+ }
47
+
48
+ .rpg-ui-main-menu-status-value {
49
+ font-size: var(--rpg-ui-font-size-lg);
50
+ font-weight: bold;
51
+ }
52
+
53
+ .rpg-ui-main-menu-status-bar {
54
+ margin-top: 8px;
55
+ height: 8px;
56
+ background: rgba(0, 0, 0, 0.35);
57
+ border-radius: 999px;
58
+ overflow: hidden;
59
+ }
60
+
61
+ .rpg-ui-main-menu-status-bar-fill {
62
+ height: 100%;
63
+ background: var(--rpg-ui-accent);
64
+ width: 0%;
65
+ }
66
+
67
+ .rpg-ui-main-menu-status-bar-fill.hp {
68
+ background: var(--rpg-ui-health-gradient);
69
+ }
70
+
71
+ .rpg-ui-main-menu-status-bar-fill.sp {
72
+ background: var(--rpg-ui-mana-gradient);
73
+ }
74
+
75
+ .rpg-ui-main-menu-status-bar-fill.exp {
76
+ background: var(--rpg-ui-xp-gradient);
77
+ }
78
+
79
+ .rpg-ui-main-menu-section-title {
80
+ font-weight: bold;
81
+ color: var(--rpg-ui-accent);
82
+ text-transform: uppercase;
83
+ letter-spacing: 0.04em;
84
+ }
85
+
86
+ .rpg-ui-main-menu-status {
87
+ display: none;
88
+ }
89
+
90
+ .rpg-ui-main-menu-status-line {
91
+ font-size: var(--rpg-ui-font-size-sm);
92
+ }
93
+
94
+ .rpg-ui-main-menu-params {
95
+ display: grid;
96
+ grid-template-columns: repeat(2, minmax(0, 1fr));
97
+ gap: 8px 16px;
98
+ }
99
+
100
+ .rpg-ui-main-menu-param {
101
+ display: flex;
102
+ justify-content: space-between;
103
+ font-size: var(--rpg-ui-font-size-sm);
104
+ color: var(--rpg-ui-text);
105
+ }
106
+
107
+ .rpg-ui-main-menu-content {
108
+ display: flex;
109
+ justify-content: center;
110
+ align-items: stretch;
111
+ }
112
+
113
+ .rpg-ui-menu-panel {
114
+ width: min(860px, 100%);
115
+ margin: 0 auto;
116
+ display: flex;
117
+ flex-direction: column;
118
+ gap: 12px;
119
+ padding: 16px;
120
+ }
121
+
122
+ .rpg-ui-main-menu-overlay {
123
+ position: absolute;
124
+ inset: 0;
125
+ display: flex;
126
+ align-items: center;
127
+ justify-content: center;
128
+ z-index: 5;
129
+ }
130
+
131
+ .rpg-ui-main-menu-overlay-backdrop {
132
+ position: absolute;
133
+ inset: 0;
134
+ background: rgba(0, 0, 0, 0.6);
135
+ }
136
+
137
+ .rpg-ui-main-menu-overlay-content {
138
+ position: absolute;
139
+ z-index: 1;
140
+ width: min(760px, 90%);
141
+ top: 0;
142
+ }
143
+
144
+ .rpg-ui-menu-panel-header {
145
+ font-weight: bold;
146
+ text-transform: uppercase;
147
+ color: var(--rpg-ui-accent);
148
+ }
149
+
150
+ .rpg-ui-menu-panel-body {
151
+ display: grid;
152
+ grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr);
153
+ gap: 16px;
154
+ }
155
+
156
+ .rpg-ui-menu-panel-body-stacked {
157
+ display: flex;
158
+ flex-direction: column;
159
+ gap: 16px;
160
+ }
161
+
162
+ .rpg-ui-menu-panel-list-full {
163
+ width: 100%;
164
+ }
165
+
166
+ .rpg-ui-menu-panel-hero {
167
+ display: flex;
168
+ gap: 12px;
169
+ align-items: flex-start;
170
+ }
171
+
172
+ .rpg-ui-menu-panel-hero-icon {
173
+ width: 48px;
174
+ height: 48px;
175
+ border-radius: var(--rpg-ui-radius-sm);
176
+ background: rgba(0, 0, 0, 0.35);
177
+ border: 2px solid var(--rpg-ui-border);
178
+ display: flex;
179
+ align-items: center;
180
+ justify-content: center;
181
+ font-size: 20px;
182
+ overflow: hidden;
183
+ }
184
+
185
+ .rpg-ui-menu-panel-hero-icon > * {
186
+ width: 100% !important;
187
+ height: 100% !important;
188
+ background-size: cover !important;
189
+ background-position: center !important;
190
+ }
191
+
192
+ .rpg-ui-menu-panel-list {
193
+ min-height: 240px;
194
+ }
195
+
196
+ .rpg-ui-menu-panel-details {
197
+ display: flex;
198
+ flex-direction: column;
199
+ gap: 8px;
200
+ }
201
+
202
+ .rpg-ui-menu-panel-details-title {
203
+ font-weight: bold;
204
+ font-size: var(--rpg-ui-font-size-lg);
205
+ }
206
+
207
+ .rpg-ui-menu-panel-details-desc {
208
+ color: var(--rpg-ui-text-muted);
209
+ font-size: var(--rpg-ui-font-size-sm);
210
+ }
211
+
212
+ .rpg-ui-menu-panel-details-meta {
213
+ display: flex;
214
+ gap: 12px;
215
+ font-size: var(--rpg-ui-font-size-sm);
216
+ }
217
+
218
+ .rpg-ui-equip-hint {
219
+ margin-top: 8px;
220
+ font-size: var(--rpg-ui-font-size-sm);
221
+ color: var(--rpg-ui-text-muted);
222
+ }
223
+
224
+ .rpg-ui-equip-stats {
225
+ display: grid;
226
+ gap: 8px;
227
+ margin-top: 8px;
228
+ }
229
+
230
+ .rpg-ui-equip-stat {
231
+ display: grid;
232
+ grid-template-columns: minmax(0, 1fr) auto;
233
+ gap: 8px;
234
+ align-items: center;
235
+ padding: 6px 10px;
236
+ border-radius: var(--rpg-ui-radius-sm);
237
+ border: 1px solid var(--rpg-ui-border);
238
+ background: rgba(0, 0, 0, 0.2);
239
+ font-size: var(--rpg-ui-font-size-sm);
240
+ }
241
+
242
+ .rpg-ui-equip-stat.positive {
243
+ color: var(--rpg-ui-success);
244
+ }
245
+
246
+ .rpg-ui-equip-stat.negative {
247
+ color: var(--rpg-ui-danger);
248
+ }
249
+
250
+ .rpg-ui-equip-stat-current {
251
+ grid-column: span 2;
252
+ color: var(--rpg-ui-text-muted);
253
+ font-size: calc(var(--rpg-ui-font-size-sm) * 0.9);
254
+ }
255
+
256
+ .rpg-ui-equip-modal {
257
+ position: absolute;
258
+ inset: 0;
259
+ display: flex;
260
+ align-items: center;
261
+ justify-content: center;
262
+ background: rgba(0, 0, 0, 0.55);
263
+ backdrop-filter: blur(4px);
264
+ z-index: 6;
265
+ }
266
+
267
+ .rpg-ui-equip-modal-card {
268
+ width: min(760px, 92%);
269
+ padding: 16px;
270
+ border-radius: var(--rpg-ui-radius-md);
271
+ background: var(--rpg-ui-surface);
272
+ border: 2px solid var(--rpg-ui-border);
273
+ box-shadow: var(--rpg-ui-shadow-lg);
274
+ display: grid;
275
+ grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
276
+ gap: 16px;
277
+ }
278
+
279
+ .rpg-ui-equip-modal-list {
280
+ min-height: 260px;
281
+ }
282
+
283
+ .rpg-ui-equip-modal-details {
284
+ display: flex;
285
+ flex-direction: column;
286
+ gap: 8px;
287
+ }
288
+
289
+ .rpg-ui-equip-modal-empty {
290
+ padding: 24px 12px;
291
+ text-align: center;
292
+ color: var(--rpg-ui-text-muted);
293
+ }
294
+
295
+ .rpg-ui-menu-item.disabled {
296
+ opacity: 0.5;
297
+ pointer-events: none;
298
+ }
299
+
300
+ .rpg-ui-menu-confirm {
301
+ position: absolute;
302
+ inset: 0;
303
+ display: flex;
304
+ align-items: center;
305
+ justify-content: center;
306
+ background: rgba(0, 0, 0, 0.45);
307
+ backdrop-filter: blur(4px);
308
+ }
309
+
310
+ .rpg-ui-menu-confirm-card {
311
+ min-width: 280px;
312
+ padding: 16px;
313
+ border-radius: var(--rpg-ui-radius-md);
314
+ background: var(--rpg-ui-surface);
315
+ border: 2px solid var(--rpg-ui-border);
316
+ box-shadow: var(--rpg-ui-shadow-lg);
317
+ text-align: center;
318
+ }
319
+
320
+ .rpg-ui-menu-confirm-title {
321
+ font-weight: bold;
322
+ margin-bottom: 12px;
323
+ }
324
+
325
+ .rpg-ui-menu-confirm-actions {
326
+ display: flex;
327
+ gap: 12px;
328
+ justify-content: center;
329
+ }
330
+
331
+ .rpg-ui-menu-confirm-btn {
332
+ padding: 6px 14px;
333
+ border-radius: var(--rpg-ui-radius-sm);
334
+ border: 1px solid var(--rpg-ui-border);
335
+ background: var(--rpg-ui-accent);
336
+ color: var(--rpg-ui-bg);
337
+ cursor: pointer;
338
+ }
339
+
340
+ .rpg-ui-menu-confirm-btn[data-selected="true"] {
341
+ box-shadow: 0 0 0 2px var(--rpg-ui-border-light);
342
+ }
343
+
344
+ .rpg-ui-menu-confirm-btn-secondary {
345
+ background: transparent;
346
+ color: var(--rpg-ui-text);
347
+ }
@@ -0,0 +1,107 @@
1
+ .rpg-ui-menu {
2
+ background: var(--rpg-ui-surface);
3
+ border: 4px solid var(--rpg-ui-border);
4
+ border-radius: var(--rpg-ui-radius-md);
5
+ padding: 8px;
6
+ box-shadow: var(--rpg-ui-shadow-lg);
7
+ display: flex;
8
+ flex-direction: column;
9
+ gap: 4px;
10
+ min-width: 200px;
11
+ }
12
+
13
+ .rpg-ui-menu-tabs {
14
+ display: flex;
15
+ gap: 6px;
16
+ margin-bottom: 8px;
17
+ }
18
+
19
+ .rpg-ui-menu-tab {
20
+ padding: 6px 10px;
21
+ border-radius: var(--rpg-ui-radius-sm);
22
+ border: 1px solid var(--rpg-ui-border);
23
+ background: rgba(0, 0, 0, 0.2);
24
+ color: var(--rpg-ui-text-muted);
25
+ cursor: pointer;
26
+ font-size: var(--rpg-ui-font-size-sm);
27
+ }
28
+
29
+ .rpg-ui-menu-tab.active {
30
+ color: var(--rpg-ui-text);
31
+ border-color: var(--rpg-ui-accent);
32
+ background: rgba(0, 0, 0, 0.35);
33
+ box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.1);
34
+ }
35
+
36
+ .rpg-ui-menu-header {
37
+ text-align: center;
38
+ color: var(--rpg-ui-accent);
39
+ font-weight: bold;
40
+ padding-bottom: 8px;
41
+ margin-bottom: 4px;
42
+ border-bottom: 2px solid var(--rpg-ui-border-dark);
43
+ text-transform: uppercase;
44
+ text-shadow: 1px 1px 0 #000;
45
+ }
46
+
47
+ .rpg-ui-menu-item {
48
+ padding: 8px 16px;
49
+ cursor: pointer;
50
+ color: var(--rpg-ui-text-muted);
51
+ transition: all 0.2s ease;
52
+ position: relative;
53
+ background: rgba(0, 0, 0, 0.2);
54
+ border: 1px solid transparent;
55
+ }
56
+
57
+ .rpg-ui-menu-row {
58
+ display: flex;
59
+ justify-content: space-between;
60
+ align-items: center;
61
+ gap: 12px;
62
+ }
63
+
64
+ .rpg-ui-menu-row-main {
65
+ display: flex;
66
+ align-items: center;
67
+ gap: 10px;
68
+ min-width: 0;
69
+ }
70
+
71
+ .rpg-ui-menu-row-icon {
72
+ width: 28px;
73
+ height: 28px;
74
+ display: flex;
75
+ align-items: center;
76
+ justify-content: center;
77
+ flex: 0 0 auto;
78
+ }
79
+
80
+ .rpg-ui-menu-row-icon > * {
81
+ width: 24px;
82
+ height: 24px;
83
+ }
84
+
85
+ .rpg-ui-menu-row-end {
86
+ color: var(--rpg-ui-text);
87
+ font-weight: bold;
88
+ }
89
+
90
+ .rpg-ui-menu-item:hover,
91
+ .rpg-ui-menu-item[data-selected="true"] {
92
+ background: rgba(0, 0, 0, 0.35);
93
+ color: var(--rpg-ui-text);
94
+ font-weight: bold;
95
+ padding-left: 24px;
96
+ box-shadow: inset 0 0 10px rgba(255, 255, 255, 0.3);
97
+ border-color: var(--rpg-ui-border-light);
98
+ }
99
+
100
+ .rpg-ui-menu-item:hover::before,
101
+ .rpg-ui-menu-item[data-selected="true"]::before {
102
+ content: "►";
103
+ position: absolute;
104
+ left: 8px;
105
+ color: var(--rpg-ui-accent);
106
+ animation: rpg-shake 0.5s ease infinite alternate;
107
+ }
@@ -0,0 +1,47 @@
1
+ .rpg-ui-panel,
2
+ .rpg-ui-window {
3
+ background: var(--rpg-ui-surface);
4
+ border: 4px solid var(--rpg-ui-border);
5
+ border-radius: var(--rpg-ui-radius-sm);
6
+ padding: var(--rpg-ui-spacing-lg);
7
+ box-shadow:
8
+ inset 0 0 0 2px var(--rpg-ui-border-dark),
9
+ inset 0 0 20px rgba(0, 0, 0, 0.5),
10
+ var(--rpg-ui-shadow);
11
+ position: relative;
12
+ color: var(--rpg-ui-text);
13
+ }
14
+
15
+ /* Decorative corners (optional, can be added with pseudo-elements if needed) */
16
+ .rpg-ui-panel::after {
17
+ content: "";
18
+ position: absolute;
19
+ top: 2px;
20
+ left: 2px;
21
+ right: 2px;
22
+ bottom: 2px;
23
+ border: 1px solid var(--rpg-ui-border-light);
24
+ pointer-events: none;
25
+ opacity: 0.3;
26
+ }
27
+
28
+ .rpg-ui-window {
29
+ padding-top: calc(var(--rpg-ui-spacing-lg) + 24px);
30
+ }
31
+
32
+ .rpg-ui-window-title {
33
+ position: absolute;
34
+ top: -12px;
35
+ left: 50%;
36
+ transform: translateX(-50%);
37
+ background: var(--rpg-ui-border);
38
+ color: var(--rpg-ui-bg);
39
+ padding: 4px 16px;
40
+ border: 2px solid var(--rpg-ui-border-light);
41
+ font-weight: bold;
42
+ font-family: var(--rpg-ui-font);
43
+ text-transform: uppercase;
44
+ box-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);
45
+ white-space: nowrap;
46
+ z-index: 1;
47
+ }
@@ -0,0 +1,100 @@
1
+ .rpg-ui-save-load {
2
+ width: min(720px, 100%);
3
+ margin: 0 auto;
4
+ padding: 24px;
5
+ background: var(--rpg-ui-surface);
6
+ border: 4px solid var(--rpg-ui-border);
7
+ border-radius: var(--rpg-ui-radius-lg);
8
+ box-shadow: var(--rpg-ui-shadow-lg);
9
+ display: flex;
10
+ flex-direction: column;
11
+ gap: 16px;
12
+ }
13
+
14
+ .rpg-ui-save-load-header {
15
+ display: flex;
16
+ flex-direction: column;
17
+ gap: 4px;
18
+ }
19
+
20
+ .rpg-ui-save-load-title {
21
+ font-size: var(--rpg-ui-font-size-xl);
22
+ font-weight: bold;
23
+ color: var(--rpg-ui-text);
24
+ }
25
+
26
+ .rpg-ui-save-load-subtitle {
27
+ font-size: var(--rpg-ui-font-size-sm);
28
+ color: var(--rpg-ui-text-muted);
29
+ }
30
+
31
+ .rpg-ui-save-load-list {
32
+ display: flex;
33
+ flex-direction: column;
34
+ gap: 12px;
35
+ }
36
+
37
+ .rpg-ui-save-load-slot {
38
+ position: relative;
39
+ display: flex;
40
+ flex-direction: column;
41
+ gap: 8px;
42
+ padding: 16px 20px 16px 36px;
43
+ border-radius: var(--rpg-ui-radius-md);
44
+ border: 2px solid var(--rpg-ui-border);
45
+ background: var(--rpg-ui-surface-light);
46
+ color: var(--rpg-ui-text);
47
+ cursor: pointer;
48
+ outline: none;
49
+ transition: background 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease;
50
+ }
51
+
52
+ .rpg-ui-save-load-slot::before {
53
+ content: "";
54
+ position: absolute;
55
+ left: 12px;
56
+ top: 18px;
57
+ width: 10px;
58
+ height: 10px;
59
+ border-radius: 50%;
60
+ background: transparent;
61
+ box-shadow: none;
62
+ }
63
+
64
+ .rpg-ui-save-load-slot-index {
65
+ font-size: var(--rpg-ui-font-size-lg);
66
+ font-weight: bold;
67
+ }
68
+
69
+ .rpg-ui-save-load-slot-meta {
70
+ display: grid;
71
+ grid-template-columns: repeat(2, minmax(0, 1fr));
72
+ gap: 4px 16px;
73
+ }
74
+
75
+ .rpg-ui-save-load-slot-line {
76
+ font-size: var(--rpg-ui-font-size-sm);
77
+ color: var(--rpg-ui-text);
78
+ }
79
+
80
+ .rpg-ui-save-load-slot-empty {
81
+ font-size: var(--rpg-ui-font-size-sm);
82
+ color: var(--rpg-ui-text-muted);
83
+ }
84
+
85
+ .rpg-ui-save-load-slot.active,
86
+ .rpg-ui-save-load-slot:focus {
87
+ border-color: var(--rpg-ui-accent);
88
+ background: rgba(0, 0, 0, 0.35);
89
+ box-shadow: 0 0 0 2px rgba(0, 0, 0, 0.2);
90
+ }
91
+
92
+ .rpg-ui-save-load-slot.active::before,
93
+ .rpg-ui-save-load-slot:focus::before {
94
+ background: var(--rpg-ui-accent);
95
+ box-shadow: 0 0 10px rgba(0, 229, 255, 0.6);
96
+ }
97
+
98
+ .rpg-ui-save-load-slot.empty {
99
+ opacity: 0.75;
100
+ }
@@ -0,0 +1,70 @@
1
+ .rpg-ui-stats {
2
+ display: flex;
3
+ flex-direction: column;
4
+ gap: 8px;
5
+ background: rgba(0, 0, 0, 0.2);
6
+ padding: 12px;
7
+ border-radius: var(--rpg-ui-radius-md);
8
+ border: 1px solid var(--rpg-ui-border-dark);
9
+ }
10
+
11
+ .rpg-ui-stat {
12
+ display: flex;
13
+ justify-content: space-between;
14
+ align-items: center;
15
+ padding: 4px 0;
16
+ border-bottom: 1px dashed rgba(255, 255, 255, 0.1);
17
+ }
18
+
19
+ .rpg-ui-stat:last-child {
20
+ border-bottom: none;
21
+ }
22
+
23
+ .rpg-ui-stat-label {
24
+ color: var(--rpg-ui-text-muted);
25
+ }
26
+
27
+ .rpg-ui-stat-value {
28
+ color: var(--rpg-ui-text);
29
+ font-weight: bold;
30
+ font-family: var(--rpg-ui-font-mono);
31
+ }
32
+
33
+ .rpg-ui-stat-change {
34
+ font-size: 12px;
35
+ margin-left: 8px;
36
+ }
37
+
38
+ .rpg-ui-stat-change[data-type="positive"] {
39
+ color: var(--rpg-ui-success);
40
+ }
41
+
42
+ .rpg-ui-stat-change[data-type="negative"] {
43
+ color: var(--rpg-ui-danger);
44
+ }
45
+
46
+ /* Stat Bar Container (for combining label + bar + value) */
47
+ .rpg-ui-stat-bar-container {
48
+ display: flex;
49
+ align-items: center;
50
+ gap: 8px;
51
+ margin-bottom: 4px;
52
+ }
53
+
54
+ .rpg-ui-stat-bar-container .rpg-ui-stat-label {
55
+ width: 30px;
56
+ font-size: 12px;
57
+ font-weight: bold;
58
+ }
59
+
60
+ .rpg-ui-stat-bar-container .rpg-ui-bar {
61
+ flex: 1;
62
+ margin-bottom: 0;
63
+ height: 16px;
64
+ }
65
+
66
+ .rpg-ui-stat-bar-container .rpg-ui-stat-value {
67
+ width: 40px;
68
+ text-align: right;
69
+ font-size: 12px;
70
+ }