@jjlmoya/utils-creative 1.17.0 → 1.19.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.
@@ -0,0 +1,475 @@
1
+ .dr-root {
2
+ --dr-bg: #fff;
3
+ --dr-bg-muted: #f8fafc;
4
+ --dr-bg-card: #fff;
5
+ --dr-text: #0f172a;
6
+ --dr-text-muted: #64748b;
7
+ --dr-border: #e2e8f0;
8
+ --dr-primary: #7c3aed;
9
+ --dr-primary-light: #ede9fe;
10
+ --dr-primary-dark: #5b21b6;
11
+ --dr-accent: #f59e0b;
12
+ --dr-danger: #ef4444;
13
+ --dr-success: #10b981;
14
+ --dr-shadow-sm: 0 1px 3px rgba(0,0,0,0.08);
15
+ --dr-shadow-md: 0 4px 16px rgba(0,0,0,0.1);
16
+ --dr-shadow-lg: 0 8px 32px rgba(0,0,0,0.12);
17
+ --dr-radius: 1rem;
18
+ --dr-radius-sm: 0.5rem;
19
+
20
+ display: grid;
21
+ grid-template-columns: 1fr 1fr;
22
+ gap: 1.5rem;
23
+ max-width: 900px;
24
+ margin: 0 auto;
25
+ padding: 1rem;
26
+ }
27
+
28
+ .theme-dark .dr-root {
29
+ --dr-bg: #0f172a;
30
+ --dr-bg-muted: #1e293b;
31
+ --dr-bg-card: #1e293b;
32
+ --dr-text: #f1f5f9;
33
+ --dr-text-muted: #94a3b8;
34
+ --dr-border: #334155;
35
+ --dr-primary: #a78bfa;
36
+ --dr-primary-light: #2d1b69;
37
+ --dr-primary-dark: #7c3aed;
38
+ --dr-accent: #fbbf24;
39
+ --dr-shadow-sm: 0 1px 3px rgba(0,0,0,0.3);
40
+ --dr-shadow-md: 0 4px 16px rgba(0,0,0,0.4);
41
+ --dr-shadow-lg: 0 8px 32px rgba(0,0,0,0.5);
42
+ }
43
+
44
+ @media (max-width: 680px) {
45
+ .dr-root {
46
+ grid-template-columns: 1fr;
47
+ }
48
+ }
49
+
50
+ .dr-panel {
51
+ background: var(--dr-bg-card);
52
+ border: 1px solid var(--dr-border);
53
+ border-radius: var(--dr-radius);
54
+ box-shadow: var(--dr-shadow-md);
55
+ padding: 1.5rem;
56
+ display: flex;
57
+ flex-direction: column;
58
+ gap: 1.25rem;
59
+ }
60
+
61
+ .dr-label {
62
+ font-size: 0.75rem;
63
+ font-weight: 600;
64
+ text-transform: uppercase;
65
+ letter-spacing: 0.08em;
66
+ color: var(--dr-text-muted);
67
+ margin: 0 0 0.625rem;
68
+ }
69
+
70
+ .dr-dice-grid {
71
+ display: grid;
72
+ grid-template-columns: repeat(4, 1fr);
73
+ gap: 0.5rem;
74
+ }
75
+
76
+ .dr-die-btn {
77
+ display: flex;
78
+ align-items: center;
79
+ justify-content: center;
80
+ padding: 0.75rem 0.5rem;
81
+ background: var(--dr-bg-muted);
82
+ border: 1px solid var(--dr-border);
83
+ border-radius: var(--dr-radius-sm);
84
+ cursor: pointer;
85
+ transition: background 0.15s, border-color 0.15s, transform 0.1s;
86
+ color: var(--dr-primary);
87
+ font-size: 0.85rem;
88
+ font-weight: 700;
89
+ }
90
+
91
+ .dr-die-btn:hover {
92
+ background: var(--dr-primary-light);
93
+ border-color: var(--dr-primary);
94
+ transform: translateY(-2px);
95
+ }
96
+
97
+ .dr-die-btn:active {
98
+ transform: translateY(0);
99
+ }
100
+
101
+ .dr-pool-section {
102
+ border: 1px solid var(--dr-border);
103
+ border-radius: var(--dr-radius-sm);
104
+ padding: 0.875rem;
105
+ background: var(--dr-bg-muted);
106
+ }
107
+
108
+ .dr-pool-header {
109
+ display: flex;
110
+ justify-content: space-between;
111
+ align-items: center;
112
+ margin-bottom: 0.5rem;
113
+ }
114
+
115
+ .dr-pool-header .dr-label {
116
+ margin-bottom: 0;
117
+ }
118
+
119
+ .dr-clear-btn {
120
+ font-size: 0.7rem;
121
+ font-weight: 600;
122
+ color: var(--dr-text-muted);
123
+ background: none;
124
+ border: 1px solid var(--dr-border);
125
+ border-radius: 0.375rem;
126
+ padding: 0.2rem 0.5rem;
127
+ cursor: pointer;
128
+ transition: color 0.15s, border-color 0.15s;
129
+ }
130
+
131
+ .dr-clear-btn:hover {
132
+ color: var(--dr-danger);
133
+ border-color: var(--dr-danger);
134
+ }
135
+
136
+ .dr-pool-display {
137
+ display: flex;
138
+ flex-wrap: wrap;
139
+ gap: 0.5rem;
140
+ min-height: 2.5rem;
141
+ align-items: center;
142
+ }
143
+
144
+ .dr-pool-empty {
145
+ font-size: 0.8rem;
146
+ color: var(--dr-text-muted);
147
+ font-style: italic;
148
+ }
149
+
150
+ .dr-pool-chip {
151
+ display: flex;
152
+ align-items: center;
153
+ gap: 0.25rem;
154
+ background: var(--dr-primary-light);
155
+ border: 1px solid var(--dr-primary);
156
+ border-radius: 2rem;
157
+ padding: 0.2rem 0.5rem 0.2rem 0.75rem;
158
+ }
159
+
160
+ .dr-chip-label {
161
+ font-size: 0.8rem;
162
+ font-weight: 700;
163
+ color: var(--dr-primary);
164
+ }
165
+
166
+ .dr-chip-remove {
167
+ width: 1.125rem;
168
+ height: 1.125rem;
169
+ border-radius: 50%;
170
+ border: none;
171
+ background: var(--dr-primary);
172
+ color: #fff;
173
+ font-size: 0.8rem;
174
+ line-height: 1;
175
+ cursor: pointer;
176
+ display: flex;
177
+ align-items: center;
178
+ justify-content: center;
179
+ transition: background 0.15s;
180
+ padding: 0;
181
+ }
182
+
183
+ .dr-chip-remove:hover {
184
+ background: var(--dr-primary-dark);
185
+ }
186
+
187
+ .dr-modifier-section {
188
+ display: flex;
189
+ align-items: center;
190
+ justify-content: space-between;
191
+ }
192
+
193
+ .dr-modifier-controls {
194
+ display: flex;
195
+ align-items: center;
196
+ gap: 0.75rem;
197
+ background: var(--dr-bg-muted);
198
+ border: 1px solid var(--dr-border);
199
+ border-radius: 2rem;
200
+ padding: 0.25rem 0.5rem;
201
+ }
202
+
203
+ .dr-mod-btn {
204
+ width: 1.75rem;
205
+ height: 1.75rem;
206
+ border-radius: 50%;
207
+ border: 1px solid var(--dr-border);
208
+ background: var(--dr-bg-card);
209
+ color: var(--dr-text);
210
+ font-size: 1rem;
211
+ font-weight: 700;
212
+ cursor: pointer;
213
+ display: flex;
214
+ align-items: center;
215
+ justify-content: center;
216
+ transition: background 0.15s, border-color 0.15s;
217
+ line-height: 1;
218
+ padding: 0;
219
+ }
220
+
221
+ .dr-mod-btn:hover {
222
+ background: var(--dr-primary-light);
223
+ border-color: var(--dr-primary);
224
+ }
225
+
226
+ .dr-modifier-display {
227
+ min-width: 2rem;
228
+ text-align: center;
229
+ font-weight: 700;
230
+ font-size: 1rem;
231
+ color: var(--dr-text);
232
+ }
233
+
234
+ .dr-roll-btn {
235
+ display: flex;
236
+ align-items: center;
237
+ justify-content: center;
238
+ gap: 0.5rem;
239
+ width: 100%;
240
+ padding: 0.875rem;
241
+ background: linear-gradient(135deg, var(--dr-primary), var(--dr-primary-dark));
242
+ color: #fff;
243
+ border: none;
244
+ border-radius: var(--dr-radius-sm);
245
+ font-size: 1rem;
246
+ font-weight: 700;
247
+ cursor: pointer;
248
+ transition: opacity 0.2s, transform 0.1s;
249
+ box-shadow: 0 4px 12px rgba(124, 58, 237, 0.35);
250
+ margin-top: auto;
251
+ }
252
+
253
+ .dr-roll-btn:disabled {
254
+ opacity: 0.5;
255
+ cursor: not-allowed;
256
+ box-shadow: none;
257
+ }
258
+
259
+ .dr-roll-btn:not(:disabled):hover {
260
+ transform: translateY(-1px);
261
+ box-shadow: 0 6px 18px rgba(124, 58, 237, 0.45);
262
+ }
263
+
264
+ .dr-roll-btn:not(:disabled):active {
265
+ transform: translateY(0);
266
+ }
267
+
268
+ @keyframes dr-shake {
269
+ 0%, 100% { transform: rotate(0deg); }
270
+ 20% { transform: rotate(-15deg); }
271
+ 40% { transform: rotate(15deg); }
272
+ 60% { transform: rotate(-10deg); }
273
+ 80% { transform: rotate(10deg); }
274
+ }
275
+
276
+ .dr-rolling {
277
+ animation: dr-shake 0.4s ease-in-out;
278
+ }
279
+
280
+ .dr-results-panel {
281
+ display: flex;
282
+ flex-direction: column;
283
+ gap: 1.25rem;
284
+ }
285
+
286
+ .dr-result-card {
287
+ background: var(--dr-bg-card);
288
+ border: 1px solid var(--dr-border);
289
+ border-radius: var(--dr-radius);
290
+ box-shadow: var(--dr-shadow-md);
291
+ padding: 1.5rem;
292
+ min-height: 12rem;
293
+ display: flex;
294
+ align-items: center;
295
+ justify-content: center;
296
+ }
297
+
298
+ .dr-result-empty {
299
+ display: flex;
300
+ flex-direction: column;
301
+ align-items: center;
302
+ gap: 0.5rem;
303
+ color: var(--dr-text-muted);
304
+ }
305
+
306
+ .dr-result-empty p {
307
+ font-size: 0.9rem;
308
+ margin: 0;
309
+ }
310
+
311
+ .dr-result-content {
312
+ width: 100%;
313
+ flex-direction: column;
314
+ align-items: center;
315
+ gap: 1rem;
316
+ }
317
+
318
+ .dr-total-area {
319
+ display: flex;
320
+ flex-direction: column;
321
+ align-items: center;
322
+ gap: 0.25rem;
323
+ }
324
+
325
+ .dr-total-label {
326
+ font-size: 0.75rem;
327
+ font-weight: 600;
328
+ text-transform: uppercase;
329
+ letter-spacing: 0.08em;
330
+ color: var(--dr-text-muted);
331
+ }
332
+
333
+ .dr-total-val {
334
+ font-size: 4rem;
335
+ font-weight: 900;
336
+ color: var(--dr-primary);
337
+ line-height: 1;
338
+ }
339
+
340
+ .dr-roll-expr {
341
+ font-size: 0.8rem;
342
+ color: var(--dr-text-muted);
343
+ font-style: italic;
344
+ }
345
+
346
+ .dr-dice-results {
347
+ display: flex;
348
+ flex-wrap: wrap;
349
+ gap: 0.5rem;
350
+ justify-content: center;
351
+ }
352
+
353
+ .dr-result-pip {
354
+ display: flex;
355
+ flex-direction: column;
356
+ align-items: center;
357
+ gap: 0.15rem;
358
+ padding: 0.5rem 0.75rem;
359
+ background: var(--dr-bg-muted);
360
+ border: 2px solid var(--dr-border);
361
+ border-radius: var(--dr-radius-sm);
362
+ min-width: 3rem;
363
+ transition: border-color 0.2s;
364
+ }
365
+
366
+ .dr-pip-max {
367
+ border-color: var(--dr-success);
368
+ background: rgba(16, 185, 129, 0.1);
369
+ }
370
+
371
+ .dr-pip-min {
372
+ border-color: var(--dr-danger);
373
+ background: rgba(239, 68, 68, 0.1);
374
+ }
375
+
376
+ .dr-pip-val {
377
+ font-size: 1.25rem;
378
+ font-weight: 800;
379
+ color: var(--dr-text);
380
+ line-height: 1;
381
+ }
382
+
383
+ .dr-pip-die {
384
+ font-size: 0.65rem;
385
+ color: var(--dr-text-muted);
386
+ font-weight: 600;
387
+ }
388
+
389
+ .dr-history-section {
390
+ background: var(--dr-bg-card);
391
+ border: 1px solid var(--dr-border);
392
+ border-radius: var(--dr-radius);
393
+ box-shadow: var(--dr-shadow-sm);
394
+ padding: 1.25rem;
395
+ flex: 1;
396
+ }
397
+
398
+ .dr-history-header {
399
+ display: flex;
400
+ justify-content: space-between;
401
+ align-items: center;
402
+ margin-bottom: 0.75rem;
403
+ }
404
+
405
+ .dr-history-header .dr-label {
406
+ margin-bottom: 0;
407
+ }
408
+
409
+ .dr-history-list {
410
+ display: flex;
411
+ flex-direction: column;
412
+ gap: 0.375rem;
413
+ max-height: 220px;
414
+ overflow-y: auto;
415
+ }
416
+
417
+ .dr-history-list::-webkit-scrollbar {
418
+ width: 4px;
419
+ }
420
+
421
+ .dr-history-list::-webkit-scrollbar-thumb {
422
+ background: var(--dr-border);
423
+ border-radius: 2px;
424
+ }
425
+
426
+ .dr-history-empty {
427
+ font-size: 0.8rem;
428
+ color: var(--dr-text-muted);
429
+ font-style: italic;
430
+ text-align: center;
431
+ margin: 1rem 0;
432
+ }
433
+
434
+ .dr-history-item {
435
+ display: grid;
436
+ grid-template-columns: 1fr auto auto;
437
+ align-items: center;
438
+ gap: 0.75rem;
439
+ padding: 0.4rem 0.6rem;
440
+ background: var(--dr-bg-muted);
441
+ border-radius: var(--dr-radius-sm);
442
+ font-size: 0.8rem;
443
+ animation: dr-fadein 0.2s ease-out;
444
+ }
445
+
446
+ @keyframes dr-fadein {
447
+ from {
448
+ opacity: 0;
449
+ transform: translate-y(-4px);
450
+ }
451
+
452
+ to {
453
+ opacity: 1;
454
+ transform: translateY(0);
455
+ }
456
+ }
457
+
458
+ .dr-hist-expr {
459
+ color: var(--dr-text-muted);
460
+ font-size: 0.75rem;
461
+ overflow: hidden;
462
+ text-overflow: ellipsis;
463
+ white-space: nowrap;
464
+ }
465
+
466
+ .dr-hist-result {
467
+ font-weight: 800;
468
+ font-size: 1rem;
469
+ color: var(--dr-primary);
470
+ }
471
+
472
+ .dr-hist-time {
473
+ font-size: 0.7rem;
474
+ color: var(--dr-text-muted);
475
+ }