@dickpy/dsh-imagegen 1.5.5 → 1.5.7

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.
@@ -142,6 +142,68 @@
142
142
 
143
143
  .grid[data-mode="blank"] { background-image: none; }
144
144
 
145
+ .grid[data-mode="diagonal"] {
146
+ background-image: repeating-linear-gradient(45deg, color-mix(in srgb, var(--dsw-alias-label-primary) 8%, transparent) 0 1px, transparent 1px 16px);
147
+ }
148
+
149
+ .grid[data-mode="checker"] {
150
+ background-image:
151
+ conic-gradient(color-mix(in srgb, var(--dsw-alias-label-primary) 7%, transparent) 90deg, transparent 90deg 180deg, color-mix(in srgb, var(--dsw-alias-label-primary) 7%, transparent) 180deg 270deg, transparent 270deg);
152
+ background-size: 48px 48px;
153
+ }
154
+
155
+ .grid[data-mode="image"] { background-image: none; }
156
+
157
+ .gridScrim {
158
+ position: absolute;
159
+ inset: 0;
160
+ background: var(--dsw-alias-bg-layer-1);
161
+ opacity: 0.6;
162
+ }
163
+
164
+ /* ------------------------------------------------ background menu */
165
+
166
+ .backgroundMenu {
167
+ position: absolute;
168
+ transform: translate(-50%, -100%);
169
+ z-index: 45;
170
+ min-width: 168px;
171
+ padding: 5px;
172
+ border-radius: 11px;
173
+ border: 1px solid var(--dsw-alias-border-l1);
174
+ background: color-mix(in srgb, var(--dsw-alias-bg-layer-1) 96%, transparent);
175
+ box-shadow: 0 16px 40px rgb(15 23 42 / 20%);
176
+ display: flex;
177
+ flex-direction: column;
178
+ }
179
+
180
+ .backgroundMenu button {
181
+ display: flex;
182
+ align-items: center;
183
+ justify-content: space-between;
184
+ border: none;
185
+ border-radius: 7px;
186
+ background: transparent;
187
+ color: var(--dsw-alias-label-primary);
188
+ font-size: 12.5px;
189
+ padding: 7px 10px;
190
+ cursor: pointer;
191
+ text-align: left;
192
+ }
193
+
194
+ .backgroundMenu button:hover { background: var(--dsw-alias-interactive-bg-hover); }
195
+
196
+ .backgroundMenu button[data-active] {
197
+ color: var(--dsw-alias-brand-primary);
198
+ background: color-mix(in srgb, var(--dsw-alias-brand-primary) 12%, transparent);
199
+ }
200
+
201
+ .backgroundMenuDivider {
202
+ height: 1px;
203
+ margin: 4px 6px;
204
+ background: var(--dsw-alias-border-l1);
205
+ }
206
+
145
207
  .world {
146
208
  position: absolute;
147
209
  left: 0;
@@ -256,6 +318,33 @@
256
318
  display: block;
257
319
  }
258
320
 
321
+ .imageInfo {
322
+ position: absolute;
323
+ top: 6px;
324
+ z-index: 2;
325
+ padding: 3px 8px;
326
+ border-radius: 6px;
327
+ background: color-mix(in srgb, var(--dsw-alias-label-primary) 62%, transparent);
328
+ color: var(--dsw-alias-bg-layer-1);
329
+ font-size: 10.5px;
330
+ line-height: 1.4;
331
+ pointer-events: none;
332
+ backdrop-filter: blur(3px);
333
+ max-width: calc(100% - 90px);
334
+ overflow: hidden;
335
+ text-overflow: ellipsis;
336
+ white-space: nowrap;
337
+ }
338
+
339
+ .imageInfoLeft { left: 6px; font-weight: 600; }
340
+
341
+ .imageInfoRight {
342
+ right: 6px;
343
+ left: auto;
344
+ font-variant-numeric: tabular-nums;
345
+ opacity: 0.85;
346
+ }
347
+
259
348
  .nodeState,
260
349
  .nodeStateError {
261
350
  display: flex;
@@ -343,7 +432,53 @@
343
432
  backdrop-filter: blur(10px);
344
433
  }
345
434
 
346
- .dock .iconButton { width: 34px; height: 34px; }
435
+ .dock .iconButton {
436
+ position: relative;
437
+ overflow: hidden;
438
+ width: 40px;
439
+ height: 40px;
440
+ border-radius: 11px;
441
+ transition: transform 0.18s cubic-bezier(0.34, 1.9, 0.64, 1), background 0.15s ease, color 0.15s ease, box-shadow 0.18s ease;
442
+ }
443
+
444
+ /* water-wave sheen sweeping across + gentle lift on hover */
445
+ .dock .iconButton::before {
446
+ content: '';
447
+ position: absolute;
448
+ top: -4px;
449
+ bottom: -4px;
450
+ left: -150%;
451
+ width: 65%;
452
+ background: linear-gradient(105deg, transparent, color-mix(in srgb, currentColor 26%, transparent), transparent);
453
+ transform: skewX(-18deg);
454
+ opacity: 0;
455
+ pointer-events: none;
456
+ }
457
+
458
+ .dock .iconButton:not(:disabled):hover {
459
+ transform: translateY(calc(-3px - var(--dock-lift, 0px)));
460
+ box-shadow: 0 6px 14px color-mix(in srgb, var(--dsw-alias-label-primary) 20%, transparent);
461
+ }
462
+
463
+ .dock .iconButton:not(:disabled):hover::before {
464
+ animation: dockShine 0.55s ease forwards;
465
+ }
466
+
467
+ .dock .iconButton:not(:disabled):active {
468
+ transform: translateY(-1px) scale(0.96);
469
+ }
470
+
471
+ @keyframes dockShine {
472
+ 0% { left: -150%; opacity: 1; }
473
+ 100% { left: 170%; opacity: 1; }
474
+ }
475
+
476
+ .dock .iconButton[data-active] {
477
+ background: var(--dsw-alias-label-primary);
478
+ color: var(--dsw-alias-bg-layer-1);
479
+ }
480
+
481
+ .dock .iconButton[data-active]:hover { background: var(--dsw-alias-label-primary); color: var(--dsw-alias-bg-layer-1); }
347
482
 
348
483
  .dockDivider {
349
484
  width: 1px;
@@ -439,29 +574,30 @@
439
574
  /* ------------------------------------------------------ config node */
440
575
 
441
576
  .configNode {
442
- padding: 0 10px 10px;
577
+ padding: 0 14px 14px;
443
578
  cursor: grab;
444
579
  }
445
580
 
446
- .configNode .nodeHeader { padding: 7px 2px 5px; }
581
+ .configNode .nodeHeader { padding: 10px 2px 6px; font-size: 12px; }
447
582
 
448
583
  .configLinks {
449
584
  display: flex;
450
- margin: 2px 0 8px;
585
+ align-items: center;
586
+ margin: 4px 0 10px;
451
587
  flex: none;
452
588
  }
453
589
 
454
590
  .configLinks .composerChip {
455
- font-size: 10.5px;
456
- padding: 2px 8px;
591
+ font-size: 11px;
592
+ padding: 3px 10px;
457
593
  }
458
594
 
459
595
  .configHint {
460
596
  flex: 1;
461
597
  min-height: 0;
462
598
  margin: 0;
463
- font-size: 11px;
464
- line-height: 1.55;
599
+ font-size: 11.5px;
600
+ line-height: 1.7;
465
601
  color: var(--dsw-alias-label-tertiary);
466
602
  overflow: auto;
467
603
  }