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