pixelkiln 0.76.0 → 0.77.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.
@@ -8,7 +8,12 @@
8
8
  --checker:
9
9
  linear-gradient(45deg,#0000 25%,#7f7f7f22 25%,#7f7f7f22 75%,#0000 75%),
10
10
  linear-gradient(45deg,#0000 25%,#7f7f7f22 25%,#7f7f7f22 75%,#0000 75%);
11
+ /* What sprites sit on: the backdrop picker swaps these. */
12
+ --stage-bg: var(--panel-deep); --stage-pattern: var(--checker);
11
13
  }
14
+ body[data-backdrop="dark"] { --stage-bg:#0b0a08; --stage-pattern:none; }
15
+ body[data-backdrop="light"] { --stage-bg:#efe9dc; --stage-pattern:none; }
16
+ body[data-backdrop="custom"] { --stage-pattern:none; }
12
17
  * { box-sizing: border-box; }
13
18
  html { color-scheme: dark; }
14
19
  body { margin:0; background:var(--bg); color:var(--text);
@@ -79,10 +84,10 @@ section.project { border-bottom:1px solid var(--line-strong); background:var(--p
79
84
  .card:hover { border-color:var(--line-strong); }
80
85
  .card.active { border-color:var(--accent); box-shadow:0 0 0 2px color-mix(in srgb, var(--accent) 25%, transparent); }
81
86
  .card.ghost { border-style:dashed; background:transparent; }
82
- .cell { height:132px; display:grid; place-items:center; background:var(--panel-deep);
83
- background-image:var(--checker); background-size:12px 12px; background-position:0 0,6px 6px;
87
+ .cell { height:132px; display:grid; place-items:center; background-color:var(--stage-bg);
88
+ background-image:var(--stage-pattern); background-size:12px 12px; background-position:0 0,6px 6px;
84
89
  overflow:hidden; position:relative; padding:8px; }
85
- .card.ghost .cell { background-image:none; color:var(--dim); font-size:12px; }
90
+ .card.ghost .cell { background-image:none; background-color:var(--panel-deep); color:var(--dim); font-size:12px; }
86
91
  .cell img { image-rendering:pixelated; display:block; max-width:100%; max-height:100%; }
87
92
  .cell img.fit { width:auto; height:auto; object-fit:contain; }
88
93
  .cell .multi { display:grid; grid-template-columns:1fr 1fr; gap:4px; width:100%; height:100%; }
@@ -114,7 +119,7 @@ kbd { border:1px solid var(--line); border-bottom-width:2px; padding:1px 5px; fo
114
119
  .dhead .title .aid { font-size:16px; white-space:normal; word-break:break-all; }
115
120
  .dhead button { padding:5px 9px; }
116
121
  .dbody { padding:0 18px 40px; }
117
- .preview { margin:16px 0 10px; background:var(--panel-deep); background-image:var(--checker);
122
+ .preview { margin:16px 0 10px; background-color:var(--stage-bg); background-image:var(--stage-pattern);
118
123
  background-size:12px 12px; background-position:0 0,6px 6px; border:1px solid var(--line);
119
124
  min-height:200px; max-height:60vh; overflow:auto; display:grid; place-items:center; padding:12px; }
120
125
  .preview img { image-rendering:pixelated; display:block; }
@@ -125,7 +130,7 @@ kbd { border:1px solid var(--line); border-bottom-width:2px; padding:1px 5px; fo
125
130
  .zoom .grow { text-align:right; font-variant-numeric:tabular-nums; }
126
131
  .members { display:flex; gap:6px; overflow-x:auto; padding:10px 0 4px; }
127
132
  .members button { flex:none; padding:4px; display:flex; flex-direction:column; align-items:center; gap:3px;
128
- background:var(--panel-deep); background-image:var(--checker); background-size:8px 8px;
133
+ background-color:var(--stage-bg); background-image:var(--stage-pattern); background-size:8px 8px;
129
134
  background-position:0 0,4px 4px; }
130
135
  .members button.on { border-color:var(--accent); }
131
136
  .members img { image-rendering:pixelated; display:block; width:40px; height:40px; object-fit:contain; }
@@ -252,7 +257,7 @@ form.edit .pal { margin-top:4px; }
252
257
  .compare-body .chead .aid { font-size:14px; }
253
258
  .compare-body .chead .badges { display:flex; gap:6px; }
254
259
  .compare-body .chead .badges .sid { display:inline-block; }
255
- .compare-body .cimg { background:var(--panel-deep); background-image:var(--checker); background-size:12px 12px;
260
+ .compare-body .cimg { background-color:var(--stage-bg); background-image:var(--stage-pattern); background-size:12px 12px;
256
261
  background-position:0 0,6px 6px; border:1px solid var(--line); display:grid; place-items:center; padding:10px;
257
262
  min-height:120px; max-height:56vh; overflow:auto; }
258
263
  .compare-body .cimg img { image-rendering:pixelated; display:block; }
@@ -278,14 +283,14 @@ form.edit .pal { margin-top:4px; }
278
283
  .drawer .readonly-hint { margin-top:10px; font-size:12.5px; line-height:1.5; }
279
284
  .drawer .readonly-hint code { font:12px var(--mono); color:var(--text); }
280
285
  .pair { display:grid; grid-template-columns:1fr 1fr; gap:8px; margin:8px 0 10px; }
281
- .pair figure { margin:0; border:1px solid var(--line); background:var(--panel-deep); background-image:var(--checker);
286
+ .pair figure { margin:0; border:1px solid var(--line); background-color:var(--stage-bg); background-image:var(--stage-pattern);
282
287
  background-size:12px 12px; background-position:0 0,6px 6px; display:grid; place-items:center; padding:8px; min-height:96px; }
283
288
  .pair figure img { image-rendering:pixelated; display:block; max-width:100%; }
284
289
  .pair figcaption { font:11px/1.4 var(--mono); color:var(--dim); background:var(--panel); padding:2px 6px; margin-top:6px; }
285
290
  .versions { display:grid; gap:8px; margin:8px 0 4px; }
286
291
  .version { display:grid; grid-template-columns:auto 1fr auto; gap:6px 12px; align-items:center; border:1px solid var(--line);
287
292
  background:var(--panel-deep); padding:8px 10px; font-size:12.5px; }
288
- .version .thumb { width:64px; height:64px; display:grid; place-items:center; background-image:var(--checker); border:1px solid var(--line); }
293
+ .version .thumb { width:64px; height:64px; display:grid; place-items:center; background-color:var(--stage-bg); background-image:var(--stage-pattern); border:1px solid var(--line); }
289
294
  .version .thumb img { image-rendering:pixelated; max-width:64px; max-height:64px; }
290
295
  .version .thumb span { font:10.5px var(--mono); color:var(--dim); text-align:center; padding:4px; }
291
296
  .version .facts { display:grid; gap:2px; min-width:0; }
@@ -364,17 +369,17 @@ textarea.mono { font-family:var(--mono); font-size:11.5px; }
364
369
  .sheet.family-sheet .rbar b { font:650 12.5px/1.4 var(--mono); color:var(--text); }
365
370
  .family-tally { display:inline-flex; flex-wrap:wrap; gap:10px; margin-left:auto; }
366
371
  .family-tally .st { display:inline-flex; align-items:center; gap:5px; font:11.5px/1 var(--mono); color:var(--dim); }
367
- .family-body { padding:16px 18px 24px; display:grid; gap:20px; min-width:0; align-content:start; }
372
+ .family-body { padding:16px 18px 24px; display:grid; grid-template-columns:minmax(0, 1fr); gap:20px; min-width:0; align-content:start; }
368
373
  .family-body h3 { margin:0; font:650 12.5px/1 var(--mono); color:var(--accent-soft); }
369
374
  .family-tabs { display:flex; flex-wrap:wrap; gap:4px; margin-bottom:10px; }
370
375
  .family-tabs button { font:11.5px/1 var(--mono); padding:6px 9px; }
371
376
  .family-tabs button.on, .tt-rose button.on, .tt-controls button.on { border-color:var(--accent); color:var(--accent-soft); }
372
377
  .tt-row { display:flex; flex-wrap:wrap; gap:18px; align-items:center; }
373
- .tt-stage { width:288px; height:288px; display:grid; place-items:center; background:var(--panel-deep);
374
- background-image:var(--checker); background-size:16px 16px; background-position:0 0, 8px 8px;
378
+ .tt-stage { width:min(288px, 100%); aspect-ratio:1; display:grid; place-items:center; background-color:var(--stage-bg);
379
+ background-image:var(--stage-pattern); background-size:16px 16px; background-position:0 0, 8px 8px;
375
380
  border:1px solid var(--line); cursor:ew-resize; touch-action:none; user-select:none; }
376
381
  .tt-stage:focus-visible { outline:2px solid var(--accent-soft); }
377
- .tt-stage img { image-rendering:pixelated; pointer-events:none; -webkit-user-drag:none; }
382
+ .tt-stage img { image-rendering:pixelated; pointer-events:none; -webkit-user-drag:none; max-width:calc(100% - 16px); height:auto; }
378
383
  .tt-empty { color:var(--dim); font:11.5px/1.45 var(--mono); padding:18px; text-align:center; }
379
384
  .tt-side { display:grid; gap:10px; justify-items:start; }
380
385
  .tt-rose { display:grid; grid-template-columns:repeat(3, 38px); grid-auto-rows:32px; gap:3px; }
@@ -395,9 +400,9 @@ table.lg th.lg-name small { color:var(--dim); font-size:11px; }
395
400
  .col-on .lg-dir { color:var(--accent-soft); border-color:var(--accent); }
396
401
  td.col-on { background:rgba(255,107,53,.08); }
397
402
  .lg-cell { position:relative; width:76px; height:76px; padding:0; display:grid; place-items:center;
398
- background:var(--panel-deep); background-image:var(--checker); background-size:12px 12px; background-position:0 0, 6px 6px;
403
+ background-color:var(--stage-bg); background-image:var(--stage-pattern); background-size:12px 12px; background-position:0 0, 6px 6px;
399
404
  border:1px solid var(--line); border-bottom:2px solid var(--dim); }
400
- .lg-cell img { max-width:68px; max-height:68px; image-rendering:pixelated; }
405
+ .lg-cell img { max-width:68px; max-height:68px; image-rendering:pixelated; object-fit:contain; }
401
406
  .lg-cell.tone-ok { border-bottom-color:var(--ok); } .lg-cell.tone-warn { border-bottom-color:var(--warn); }
402
407
  .lg-cell.tone-bad { border-bottom-color:var(--bad); } .lg-cell.tone-cool { border-bottom-color:var(--cool); }
403
408
  .lg-cell.ghost img { opacity:.28; filter:grayscale(1); }
@@ -407,4 +412,31 @@ td.col-on { background:rgba(255,107,53,.08); }
407
412
  .fx-strip { display:flex; flex-wrap:wrap; gap:10px; margin-top:8px; }
408
413
  .fx-strip figure { margin:0; display:grid; gap:4px; justify-items:center; }
409
414
  .fx-strip figcaption { font-size:10.5px; color:var(--dim); }
410
- @media (max-width: 640px) { .tt-stage { width:220px; height:220px; } .lg-cell { width:56px; height:56px; } .lg-cell img { max-width:50px; max-height:50px; } }
415
+ @media (max-width: 900px) { .sheet.family-sheet { width:100vw; } }
416
+ @media (max-width: 640px) {
417
+ .tt-row { flex-direction:column; align-items:stretch; }
418
+ .tt-stage { width:100%; max-width:320px; }
419
+ .family-body { padding:12px 12px 20px; }
420
+ .sheet.family-sheet .rbar { flex-wrap:wrap; }
421
+ .lg-cell { width:56px; height:56px; } .lg-cell img { max-width:50px; max-height:50px; height:auto; object-fit:contain; }
422
+ }
423
+
424
+ /* ---- backdrop picker, loop player ---- */
425
+ .backdrop { display:inline-flex; align-items:center; gap:3px; }
426
+ .backdrop button { width:20px; height:20px; padding:0; border:1px solid var(--line-strong); }
427
+ .backdrop button.on, .backdrop input.on { outline:2px solid var(--accent); outline-offset:1px; }
428
+ .backdrop .bd-checker { background-color:var(--panel-deep); background-image:var(--checker); background-size:8px 8px; background-position:0 0, 4px 4px; }
429
+ .backdrop .bd-dark { background:#0b0a08; }
430
+ .backdrop .bd-light { background:#efe9dc; }
431
+ .backdrop input[type=color] { width:22px; height:22px; padding:0; border:1px solid var(--line-strong); background:none; cursor:pointer; }
432
+ .preview .stack { display:grid; place-items:center; }
433
+ .preview .stack > img { grid-area:1 / 1; }
434
+ .preview .stack > img.onion { opacity:.35; filter:saturate(.3); }
435
+ .preview img[hidden] { display:none; }
436
+ .frames-bar { display:flex; flex-wrap:wrap; align-items:center; gap:6px; margin:6px 0 10px; }
437
+ .frames-bar button { font:11.5px/1 var(--mono); padding:6px 9px; }
438
+ .frames-bar button.play { min-width:62px; }
439
+ .frames-bar input[type=range] { flex:1 1 120px; accent-color:var(--accent); }
440
+ .frames-bar .count { font:11.5px/1 var(--mono); color:var(--dim); min-width:44px; }
441
+ .frames-bar select { font:11.5px/1 var(--mono); padding:5px 6px; background:var(--panel-deep); border:1px solid var(--line); }
442
+ .frames-bar .chip { font-size:12px; color:var(--dim); display:inline-flex; align-items:center; gap:4px; }