@open-press/core 1.1.4 → 1.2.1

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.
Files changed (51) hide show
  1. package/engine/cli.mjs +3 -3
  2. package/engine/commands/_shared.mjs +89 -13
  3. package/engine/commands/deploy.mjs +19 -4
  4. package/engine/commands/image.mjs +9 -3
  5. package/engine/commands/pdf.mjs +4 -1
  6. package/engine/output/chrome-pdf.mjs +102 -0
  7. package/engine/output/static-server.mjs +64 -17
  8. package/engine/react/document-export.mjs +22 -0
  9. package/package.json +1 -1
  10. package/src/openpress/app/OpenPressApp.tsx +5 -1
  11. package/src/openpress/app/OpenPressRuntime.tsx +85 -6
  12. package/src/openpress/reader/PageThumbnailsPanel.tsx +28 -5
  13. package/src/openpress/reader/PublicReaderPage.tsx +163 -74
  14. package/src/openpress/reader/SlidePresentationPage.tsx +37 -15
  15. package/src/openpress/reader/SlidePublicPage.tsx +332 -0
  16. package/src/openpress/reader/index.ts +1 -0
  17. package/src/openpress/reader/pageViewportScaleModel.ts +5 -3
  18. package/src/openpress/reader/usePageViewportScale.ts +9 -5
  19. package/src/openpress/reader/usePanelState.ts +14 -5
  20. package/src/openpress/shared/index.ts +1 -0
  21. package/src/openpress/shared/staticSearch.ts +174 -0
  22. package/src/openpress/workbench/Workbench.tsx +61 -176
  23. package/src/openpress/workbench/actions/DeploymentControl.tsx +1 -1
  24. package/src/openpress/workbench/actions/ExportControl.tsx +267 -0
  25. package/src/openpress/workbench/actions/SearchControl.tsx +32 -43
  26. package/src/openpress/workbench/actions/index.ts +1 -1
  27. package/src/openpress/workbench/actions/useDeploymentWorkbench.ts +21 -5
  28. package/src/openpress/workbench/hooks/useWorkbenchNavigation.ts +42 -0
  29. package/src/openpress/workbench/inspector/useInspectorComments.ts +6 -6
  30. package/src/openpress/workbench/project/ProjectEntryPanel.tsx +2 -278
  31. package/src/openpress/workbench/shell/WorkbenchShell.tsx +44 -18
  32. package/src/openpress/workbench/shell/WorkbenchToolbarActions.tsx +206 -0
  33. package/src/styles/openpress/app-shell.css +0 -83
  34. package/src/styles/openpress/print-route.css +1 -3
  35. package/src/styles/openpress/project-preview-panel.css +5 -783
  36. package/src/styles/openpress/public-viewer.css +7 -249
  37. package/src/styles/openpress/reader-runtime.css +0 -274
  38. package/src/styles/openpress/slide-presenter.css +150 -0
  39. package/src/styles/openpress/slide-public-viewer.css +222 -0
  40. package/src/styles/openpress/workbench-dialog.css +267 -0
  41. package/src/styles/openpress/workbench-export.css +154 -0
  42. package/src/styles/openpress/workbench-inline-editor.css +128 -0
  43. package/src/styles/openpress/workbench-panels.css +0 -88
  44. package/src/styles/openpress/workbench-search.css +257 -0
  45. package/src/styles/openpress/workbench-toolbar.css +422 -0
  46. package/src/styles/openpress/workbench.css +34 -1263
  47. package/src/styles/openpress/workspace-gallery.css +0 -5
  48. package/src/styles/openpress.css +7 -1
  49. package/vite.config.ts +66 -17
  50. package/src/openpress/workbench/actions/ExportImageControl.tsx +0 -96
  51. package/src/styles/openpress/media-workspace.css +0 -230
@@ -1,12 +1,3 @@
1
- .openpress-project-preview-panel {
2
- width: 100%;
3
- min-width: 0;
4
- min-height: 100%;
5
- overflow: hidden;
6
- background: #111312;
7
- color: #e8e8e4;
8
- }
9
-
10
1
  .openpress-project-panel {
11
2
  display: grid;
12
3
  gap: 18px;
@@ -30,23 +21,6 @@
30
21
  padding: 0;
31
22
  }
32
23
 
33
- .openpress-project-tool-header {
34
- display: flex;
35
- align-items: center;
36
- justify-content: space-between;
37
- min-width: 0;
38
- }
39
-
40
- .openpress-project-tool-header span {
41
- color: rgb(190 196 202 / 58%);
42
- font-family: var(--openpress-font-mono);
43
- font-size: 10px;
44
- font-weight: 650;
45
- line-height: 1;
46
- letter-spacing: 0.04em;
47
- text-transform: uppercase;
48
- }
49
-
50
24
  .openpress-project-asset-list,
51
25
  .openpress-project-component-mention-list {
52
26
  display: grid;
@@ -125,11 +99,6 @@
125
99
  stroke-width: 1.7;
126
100
  }
127
101
 
128
- /* Backdrop / panel / header / close styles now come from the shared
129
- .openpress-workbench-dialog* class family. Only project-preview-specific
130
- pieces (rename/delete pill actions, body preview surface, footer forms +
131
- comment composer) live in this file. */
132
-
133
102
  .openpress-project-preview-dialog__body {
134
103
  min-width: 0;
135
104
  min-height: 0;
@@ -165,760 +134,13 @@
165
134
  min-width: min-content;
166
135
  }
167
136
 
168
-
169
- .openpress-project-markdown-header dt {
170
- color: rgb(175 181 188 / 64%);
171
- font-size: 10px;
172
- font-weight: 650;
173
- line-height: 1;
174
- letter-spacing: 0;
175
- text-transform: uppercase;
176
- }
177
-
178
- .openpress-project-entry-list {
179
- position: relative;
180
- min-height: 0;
181
- padding: 4px 18px 18px 30px;
182
- }
183
-
184
- .openpress-project-bookmarks {
185
- height: 100%;
186
- overflow: auto;
187
- scrollbar-width: none;
188
- }
189
-
190
- .openpress-project-bookmarks::-webkit-scrollbar {
191
- width: 0;
192
- height: 0;
193
- display: none;
194
- }
195
-
196
- .openpress-project-entry {
197
- width: 100%;
198
- min-width: 0;
199
- }
200
-
201
- .openpress-project-entry.bookmark-h2 {
202
- grid-template-columns: 34px minmax(0, 1fr);
203
- align-items: center;
204
- padding: 8px 0;
205
- color: rgb(150 156 163 / 72%);
206
- font-family: var(--openpress-font-serif);
207
- font-size: 14px;
208
- line-height: 1.42;
209
- }
210
-
211
- .openpress-project-entry:hover,
212
- .openpress-project-entry.is-active {
213
- color: rgb(242 242 240 / 94%);
214
- }
215
-
216
- .openpress-project-entry .bookmark-index {
217
- display: inline-flex;
218
- align-items: center;
219
- justify-content: flex-start;
220
- color: rgb(160 166 173 / 58%);
221
- }
222
-
223
- .openpress-project-entry.is-active .bookmark-index,
224
- .openpress-project-entry--gallery.is-active .bookmark-index,
225
- .openpress-project-entry--components.is-active .bookmark-index {
226
- color: #d7a034;
137
+ .openpress-workbench-dialog.openpress-project-preview-dialog {
138
+ width: min(860px, calc(100vw - 56px));
227
139
  }
228
140
 
229
- .openpress-project-entry-icon svg {
230
- width: 14px;
231
- height: 14px;
232
- stroke-width: 1.8;
233
- }
234
-
235
- .openpress-project-entry .bookmark-title {
236
- min-width: 0;
237
- overflow: visible;
238
- color: inherit;
239
- letter-spacing: 0;
240
- white-space: normal;
241
- overflow-wrap: anywhere;
242
- -webkit-line-clamp: unset;
243
- }
244
-
245
- .openpress-project-visual-system,
246
- .openpress-project-markdown-viewer,
247
- .openpress-project-gallery-viewer,
248
- .openpress-project-data-viewer,
249
- .openpress-project-component-viewer {
250
- min-width: 0;
251
- height: 100%;
252
- min-height: 100%;
253
- display: grid;
254
- grid-template-rows: auto minmax(0, 1fr);
255
- gap: 18px;
256
- overflow: hidden;
257
- padding: 24px;
258
- }
259
-
260
- .openpress-project-section-header,
261
- .openpress-project-markdown-header {
262
- min-width: 0;
263
- display: grid;
264
- gap: 8px;
265
- padding-bottom: 18px;
266
- border-bottom: 1px solid rgb(255 255 255 / 10%);
267
- }
268
-
269
- .openpress-project-section-header {
270
- grid-template-columns: minmax(0, 1fr) auto;
271
- gap: 18px;
272
- align-items: end;
273
- }
274
-
275
- .openpress-project-section-header--minimal {
276
- grid-template-columns: minmax(0, 1fr);
277
- gap: 0;
278
- padding-bottom: 4px;
279
- border-bottom: 0;
280
- }
281
-
282
- .openpress-project-section-header > div {
283
- min-width: 0;
284
- }
285
-
286
- .openpress-project-section-header p {
287
- margin: 0 0 6px;
288
- color: #d7a034;
289
- font-size: 10px;
290
- font-weight: 650;
291
- line-height: 1;
292
- letter-spacing: 0.08em;
293
- text-transform: uppercase;
294
- }
295
-
296
- .openpress-project-section-header span {
297
- display: block;
298
- margin-top: 7px;
299
- color: rgb(184 190 196 / 72%);
300
- font-size: 12px;
301
- line-height: 1.45;
302
- overflow-wrap: anywhere;
303
- }
304
-
305
- .openpress-project-section-header dl {
306
- display: flex;
307
- flex-wrap: wrap;
308
- justify-content: flex-end;
309
- gap: 10px;
310
- margin: 0;
311
- }
312
-
313
- .openpress-project-section-header dl div {
314
- display: inline-grid;
315
- min-width: 74px;
316
- gap: 5px;
317
- border: 1px solid rgb(255 255 255 / 10%);
318
- padding: 8px 10px;
319
- background: rgb(255 255 255 / 3%);
320
- }
321
-
322
- .openpress-project-section-header dt {
323
- color: rgb(175 181 188 / 64%);
324
- font-size: 10px;
325
- font-weight: 650;
326
- line-height: 1;
327
- letter-spacing: 0;
328
- text-transform: uppercase;
329
- }
330
-
331
- .openpress-project-section-header dd {
332
- margin: 0;
333
- color: rgb(245 245 241 / 88%);
334
- font-size: 13px;
335
- font-variant-numeric: tabular-nums;
336
- line-height: 1;
337
- }
338
-
339
- .openpress-project-section-header h2,
340
- .openpress-project-markdown-header h2 {
341
- margin: 0;
342
- color: rgb(248 248 244 / 96%);
343
- font-size: clamp(22px, 2.4vw, 34px);
344
- font-weight: 560;
345
- line-height: 1.05;
346
- overflow-wrap: anywhere;
347
- }
348
-
349
- .openpress-project-section-header--minimal h2 {
350
- font-family: var(--openpress-font-serif);
351
- font-size: clamp(24px, 2vw, 30px);
352
- font-weight: 420;
353
- letter-spacing: 0;
354
- }
355
-
356
- .openpress-project-entry .bookmark-title {
357
- display: grid;
358
- gap: 2px;
359
- line-height: 1.28;
360
- }
361
-
362
- .openpress-project-entry .bookmark-title > span,
363
- .openpress-project-entry .bookmark-title > small {
364
- display: block;
365
- }
366
-
367
- .openpress-project-entry .bookmark-title small {
368
- color: rgb(150 156 163 / 58%);
369
- font-family: var(--openpress-font-body);
370
- font-size: 10px;
371
- font-weight: 500;
372
- line-height: 1.2;
373
- }
374
-
375
- .openpress-project-entry.is-active .bookmark-title small {
376
- color: rgb(215 160 52 / 78%);
377
- }
378
-
379
- .openpress-project-visual-grid {
380
- display: grid;
381
- grid-template-columns: minmax(280px, 0.95fr) minmax(320px, 1.25fr);
382
- align-content: start;
383
- gap: 28px;
384
- min-height: 0;
385
- overflow: auto;
386
- padding-right: 2px;
387
- }
388
-
389
- .openpress-project-visual-card {
390
- min-width: 0;
391
- border-top: 1px solid rgb(255 255 255 / 10%);
392
- padding-top: 18px;
393
- background: transparent;
394
- }
395
-
396
- .openpress-project-visual-card header {
397
- display: grid;
398
- gap: 5px;
399
- margin-bottom: 14px;
400
- }
401
-
402
- .openpress-project-visual-card header span {
403
- color: rgb(170 176 183 / 58%);
404
- font-size: 10px;
405
- font-weight: 650;
406
- line-height: 1;
407
- letter-spacing: 0.04em;
408
- text-transform: uppercase;
409
- }
410
-
411
- .openpress-project-visual-card header strong {
412
- color: rgb(242 242 240 / 92%);
413
- font-family: var(--openpress-font-serif);
414
- font-size: 18px;
415
- font-weight: 520;
416
- line-height: 1.2;
417
- }
418
-
419
- .openpress-project-visual-card--typography {
420
- grid-row: span 2;
421
- }
422
-
423
- .openpress-project-type-specimen {
424
- display: grid;
425
- gap: 10px;
426
- border: 1px solid rgb(29 40 50 / 10%);
427
- padding: 22px 24px;
428
- background: var(--openpress-color-document);
429
- color: var(--openpress-color-body);
430
- }
431
-
432
- .openpress-project-type-specimen .openpress-project-type-kicker {
433
- margin: 0;
434
- color: var(--openpress-color-muted);
435
- font-family: var(--openpress-font-mono);
436
- font-size: 10px;
437
- line-height: 1.2;
438
- letter-spacing: 0.08em;
439
- text-transform: uppercase;
440
- }
441
-
442
- .openpress-project-type-specimen h2,
443
- .openpress-project-type-specimen h3,
444
- .openpress-project-type-specimen h4,
445
- .openpress-project-type-specimen p {
446
- margin: 0;
447
- }
448
-
449
- .openpress-project-type-specimen h2 {
450
- color: var(--openpress-color-ink);
451
- font-family: var(--openpress-font-serif);
452
- font-size: 38px;
453
- font-weight: 420;
454
- line-height: 0.98;
455
- letter-spacing: 0;
456
- }
457
-
458
- .openpress-project-type-specimen h3 {
459
- color: var(--openpress-color-ink);
460
- font-family: var(--openpress-font-serif);
461
- font-size: 20px;
462
- font-weight: 420;
463
- line-height: 1.25;
464
- }
465
-
466
- .openpress-project-type-specimen h4 {
467
- color: var(--openpress-color-muted);
468
- font-size: 13px;
469
- font-weight: 560;
470
- line-height: 1.35;
471
- }
472
-
473
- .openpress-project-type-specimen p:not(.openpress-project-type-kicker) {
474
- color: var(--openpress-color-body);
475
- font-size: 13px;
476
- line-height: 1.8;
477
- }
478
-
479
- .openpress-project-type-specimen code {
480
- width: fit-content;
481
- border: 1px solid var(--openpress-color-line);
482
- padding: 5px 7px;
483
- background: var(--openpress-color-block);
484
- color: var(--openpress-color-ink);
485
- font-family: var(--openpress-font-mono);
486
- font-size: 12px;
487
- }
488
-
489
- .openpress-project-swatch-grid {
490
- display: grid;
491
- grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
492
- gap: 14px 16px;
493
- }
494
-
495
- .openpress-project-swatch {
496
- display: grid;
497
- grid-template-columns: 42px minmax(0, 1fr);
498
- grid-template-areas:
499
- "chip label"
500
- "chip token";
501
- gap: 4px 10px;
502
- align-items: center;
503
- min-width: 0;
504
- }
505
-
506
- .openpress-project-swatch-chip {
507
- grid-area: chip;
508
- width: 38px;
509
- height: 38px;
510
- border: 1px solid rgb(255 255 255 / 18%);
511
- background: var(--openpress-project-swatch);
512
- }
513
-
514
- .openpress-project-swatch strong {
515
- grid-area: label;
516
- color: rgb(242 242 240 / 92%);
517
- font-size: 12px;
518
- font-weight: 560;
519
- line-height: 1.2;
520
- }
521
-
522
- .openpress-project-swatch code {
523
- grid-area: token;
524
- min-width: 0;
525
- border: 0;
526
- padding: 0;
527
- background: transparent;
528
- color: rgb(170 176 183 / 62%);
529
- font-family: var(--openpress-font-mono);
530
- font-size: 10px;
531
- line-height: 1.25;
532
- overflow-wrap: anywhere;
533
- }
534
-
535
- .openpress-project-surface-preview {
141
+ .openpress-workbench-dialog.openpress-project-preview-dialog .openpress-workbench-dialog__footer {
536
142
  display: grid;
537
143
  gap: 12px;
538
- }
539
-
540
- .openpress-project-surface-paper,
541
- .openpress-project-surface-block {
542
- display: grid;
543
- gap: 5px;
544
- min-height: 82px;
545
- align-content: center;
546
- border: 1px solid rgb(29 40 50 / 10%);
547
- padding: 18px;
548
- color: var(--openpress-color-body);
549
- }
550
-
551
- .openpress-project-surface-paper {
552
- background-color: var(--openpress-color-document);
553
- background-image: var(--openpress-paper-texture);
554
- background-position: var(--openpress-paper-texture-position);
555
- background-size: var(--openpress-paper-texture-size);
556
- }
557
-
558
- .openpress-project-surface-block {
559
- background: var(--openpress-color-block);
560
- }
561
-
562
- .openpress-project-surface-paper span,
563
- .openpress-project-surface-block span {
564
- color: var(--openpress-color-ink);
565
- font-size: 13px;
566
- font-weight: 650;
567
- line-height: 1.2;
568
- }
569
-
570
- .openpress-project-surface-paper p,
571
- .openpress-project-surface-block p {
572
- margin: 0;
573
- color: var(--openpress-color-muted);
574
- font-size: 12px;
575
- line-height: 1.55;
576
- }
577
-
578
- .openpress-project-markdown-header p {
579
- margin: 0;
580
- color: rgb(184 190 196 / 72%);
581
- font-size: 12px;
582
- line-height: 1.45;
583
- overflow-wrap: anywhere;
584
- }
585
-
586
- .openpress-project-markdown-header dl {
587
- display: flex;
588
- flex-wrap: wrap;
589
- gap: 10px;
590
- margin: 8px 0 0;
591
- }
592
-
593
- .openpress-project-markdown-header dl div {
594
- display: inline-grid;
595
- grid-template-columns: auto auto;
596
- gap: 8px;
597
- align-items: baseline;
598
- border: 1px solid rgb(255 255 255 / 10%);
599
- padding: 6px 9px;
600
- }
601
-
602
- .openpress-project-markdown-header dd {
603
- margin: 0;
604
- color: rgb(245 245 241 / 88%);
605
- font-size: 12px;
606
- font-variant-numeric: tabular-nums;
607
- line-height: 1;
608
- }
609
-
610
- .openpress-project-markdown-source {
611
- min-width: 0;
612
- min-height: 0;
613
- margin: 0;
614
- overflow: auto;
615
- border: 1px solid rgb(255 255 255 / 12%);
616
- padding: 22px;
617
- background: #f4f0e7;
618
- color: #1f2326;
619
- font-family: "SFMono-Regular", Consolas, "Liberation Mono", monospace;
620
- font-size: 12.5px;
621
- line-height: 1.68;
622
- white-space: pre-wrap;
623
- overflow-wrap: anywhere;
624
- }
625
-
626
- .openpress-project-markdown-source code {
627
- font: inherit;
628
- }
629
-
630
- .openpress-project-data-list {
631
- display: grid;
632
- align-content: start;
633
- gap: 16px;
634
- min-height: 0;
635
- overflow: auto;
636
- padding-right: 2px;
637
- }
638
-
639
- .openpress-project-component-list-header {
640
- padding-bottom: 0;
641
- border-bottom: 0;
642
- }
643
-
644
- .openpress-project-component-list {
645
- display: grid;
646
- grid-template-columns: minmax(0, 1fr);
647
- align-content: start;
648
- gap: 22px;
649
- min-height: 0;
650
- overflow: auto;
651
- padding-right: 2px;
652
- }
653
-
654
- .openpress-project-component-preview-row {
655
- display: grid;
656
- gap: 10px;
657
- min-width: 0;
658
- margin: 0;
659
- }
660
-
661
- .openpress-project-component-preview-row figcaption {
662
- display: flex;
663
- align-items: center;
664
- justify-content: space-between;
665
- gap: 12px;
666
- min-width: 0;
667
- color: rgb(242 242 240 / 90%);
668
- font-family: var(--openpress-font-mono);
669
- font-size: 11px;
670
- line-height: 1.2;
671
- }
672
-
673
- .openpress-project-component-preview-row figcaption span {
674
- min-width: 0;
675
- overflow: hidden;
676
- text-overflow: ellipsis;
677
- white-space: nowrap;
678
- }
679
-
680
- .openpress-project-component-preview-row figcaption small {
681
- flex-shrink: 0;
682
- color: rgb(170 176 183 / 62%);
683
- font: inherit;
684
- }
685
-
686
- .openpress-project-component-preview {
687
- display: block;
688
- min-width: 0;
689
- min-height: 260px;
690
- max-height: 520px;
691
- overflow: auto;
692
- border: 1px solid rgb(255 255 255 / 12%);
693
- padding: 18px;
694
- background: #f7f9fb;
695
- color: var(--openpress-color-ink, #1f2d3d);
696
- }
697
-
698
- .openpress-project-component-preview [data-openpress-component] {
699
- max-width: 100%;
700
- }
701
-
702
- .openpress-project-data-card {
703
- display: grid;
704
- gap: 12px;
705
- min-width: 0;
706
- border: 1px solid rgb(255 255 255 / 10%);
707
- padding: 14px;
708
- background: rgb(255 255 255 / 3%);
709
- }
710
-
711
- .openpress-project-data-card header {
712
- display: grid;
713
- grid-template-columns: 26px minmax(0, 1fr);
714
- gap: 10px;
715
- align-items: start;
716
- min-width: 0;
717
- }
718
-
719
- .openpress-project-data-card header svg {
720
- width: 16px;
721
- height: 16px;
722
- margin-top: 2px;
723
- color: #d7a034;
724
- stroke-width: 1.8;
725
- }
726
-
727
- .openpress-project-data-card h3 {
728
- margin: 0;
729
- color: rgb(242 242 240 / 92%);
730
- font-size: 13px;
731
- font-weight: 560;
732
- line-height: 1.3;
733
- overflow-wrap: anywhere;
734
- }
735
-
736
- .openpress-project-data-card p {
737
- margin: 4px 0 0;
738
- color: rgb(184 190 196 / 72%);
739
- font-size: 12px;
740
- line-height: 1.35;
741
- overflow-wrap: anywhere;
742
- }
743
-
744
- .openpress-project-data-preview {
745
- min-width: 0;
746
- border: 1px solid rgb(255 255 255 / 10%);
747
- padding: 14px;
748
- background: rgb(255 255 255 / 3%);
749
- }
750
-
751
- .openpress-project-data-preview--empty {
752
- color: rgb(170 176 183 / 62%);
753
- font-size: 12px;
754
- }
755
-
756
- .openpress-project-data-chart-preview {
757
- border: 0;
758
- padding: 0;
759
- background: transparent;
760
- }
761
-
762
- .openpress-project-data-chart-preview .chart-frame {
763
- margin: 0;
764
- color: var(--openpress-color-ink);
765
- }
766
-
767
- .openpress-project-data-chart-preview .cost-donut__layout {
768
- width: min(86%, 154mm);
769
- }
770
-
771
- .openpress-project-data-chart-preview .revenue-line-chart__svg {
772
- max-height: none;
773
- }
774
-
775
- .openpress-project-data-raw {
776
- min-width: 0;
777
- }
778
-
779
- .openpress-project-data-raw summary {
780
- cursor: pointer;
781
- color: rgb(184 190 196 / 72%);
782
- font-size: 11px;
783
- line-height: 1.2;
784
- }
785
-
786
- .openpress-project-data-raw pre {
787
- min-width: 0;
788
- max-height: 320px;
789
- margin: 10px 0 0;
790
- overflow: auto;
791
- border: 1px solid rgb(255 255 255 / 10%);
792
- padding: 12px;
793
- background: #f4f0e7;
794
- color: #1f2326;
795
- font-family: "SFMono-Regular", Consolas, "Liberation Mono", monospace;
796
- font-size: 11.5px;
797
- line-height: 1.55;
798
- white-space: pre-wrap;
799
- overflow-wrap: anywhere;
800
- }
801
-
802
- .openpress-project-data-card code {
803
- font: inherit;
804
- }
805
-
806
- .openpress-project-media-sections {
807
- display: grid;
808
- align-content: start;
809
- gap: 28px;
810
- min-height: 0;
811
- overflow: auto;
812
- padding-right: 2px;
813
- }
814
-
815
- .openpress-project-media-section {
816
- display: grid;
817
- gap: 12px;
818
- min-width: 0;
819
- }
820
-
821
- .openpress-project-media-section-header {
822
- display: flex;
823
- align-items: baseline;
824
- justify-content: space-between;
825
- min-width: 0;
826
- border-bottom: 1px solid rgb(255 255 255 / 10%);
827
- padding-bottom: 8px;
828
- }
829
-
830
- .openpress-project-media-section-header h3 {
831
- margin: 0;
832
- color: rgb(238 238 234 / 90%);
833
- font-size: 13px;
834
- font-weight: 560;
835
- line-height: 1.2;
836
- letter-spacing: 0;
837
- }
838
-
839
- .openpress-project-media-gallery {
840
- display: grid;
841
- grid-template-columns: repeat(auto-fill, minmax(190px, 1fr));
842
- gap: 16px;
843
- min-width: 0;
844
- }
845
-
846
- .openpress-project-media-card {
847
- display: grid;
848
- gap: 10px;
849
- align-content: start;
850
- min-width: 0;
851
- margin: 0;
852
- }
853
-
854
- .openpress-project-media-card img {
855
- width: 100%;
856
- aspect-ratio: 16 / 10;
857
- object-fit: cover;
858
- border: 1px solid rgb(255 255 255 / 10%);
859
- background: rgb(255 255 255 / 4%);
860
- }
861
-
862
- .openpress-project-media-card[data-unused="true"] img {
863
- opacity: 0.42;
864
- filter: grayscale(0.7);
865
- }
866
-
867
- .openpress-project-media-card figcaption {
868
- display: grid;
869
- min-width: 0;
870
- }
871
-
872
- .openpress-project-media-card strong {
873
- min-width: 0;
874
- color: rgb(242 242 240 / 92%);
875
- font-size: 12px;
876
- font-weight: 520;
877
- line-height: 1.35;
878
- overflow-wrap: anywhere;
879
- }
880
-
881
- .openpress-project-media-section-empty {
882
- margin: 0;
883
- color: rgb(170 176 183 / 62%);
884
- font-size: 12px;
885
- line-height: 1.45;
886
- }
887
-
888
- .openpress-project-empty {
889
- width: min(980px, 100%);
890
- margin: 0 auto;
891
- padding: 28px 24px;
892
- color: rgb(170 176 183 / 70%);
893
- font-size: 13px;
894
- }
895
-
896
- @media (max-width: 900px) {
897
- .openpress-project-section-header {
898
- grid-template-columns: 1fr;
899
- align-items: start;
900
- }
901
-
902
- .openpress-project-section-header dl {
903
- justify-content: flex-start;
904
- }
905
-
906
- .openpress-project-visual-system,
907
- .openpress-project-markdown-viewer,
908
- .openpress-project-gallery-viewer,
909
- .openpress-project-component-viewer {
910
- padding: 18px 14px calc(80px + env(safe-area-inset-bottom));
911
- }
912
-
913
- .openpress-project-visual-grid {
914
- grid-template-columns: 1fr;
915
- }
916
-
917
- .openpress-project-visual-card--typography {
918
- grid-row: auto;
919
- }
920
-
921
- .openpress-project-component-list {
922
- grid-template-columns: 1fr;
923
- }
144
+ justify-content: stretch;
145
+ align-items: stretch;
924
146
  }