@open-press/cli 0.8.0 → 1.1.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.
Files changed (250) hide show
  1. package/README.md +33 -23
  2. package/dist/cli.js +320 -252
  3. package/package.json +9 -8
  4. package/template/core/AGENTS.md +0 -126
  5. package/template/core/CHANGELOG.md +0 -215
  6. package/template/core/README.md +0 -40
  7. package/template/core/engine/cli.mjs +0 -96
  8. package/template/core/engine/commands/_shared.mjs +0 -177
  9. package/template/core/engine/commands/deploy.mjs +0 -31
  10. package/template/core/engine/commands/dev.mjs +0 -49
  11. package/template/core/engine/commands/doctor.mjs +0 -229
  12. package/template/core/engine/commands/export.mjs +0 -8
  13. package/template/core/engine/commands/init.mjs +0 -24
  14. package/template/core/engine/commands/inspect.mjs +0 -35
  15. package/template/core/engine/commands/pdf.mjs +0 -26
  16. package/template/core/engine/commands/preview.mjs +0 -26
  17. package/template/core/engine/commands/render.mjs +0 -17
  18. package/template/core/engine/commands/replace.mjs +0 -41
  19. package/template/core/engine/commands/search.mjs +0 -33
  20. package/template/core/engine/commands/typecheck.mjs +0 -5
  21. package/template/core/engine/commands/upgrade.mjs +0 -159
  22. package/template/core/engine/commands/validate.mjs +0 -17
  23. package/template/core/engine/document-export.mjs +0 -15
  24. package/template/core/engine/init.mjs +0 -90
  25. package/template/core/engine/output/chrome-pdf.d.mts +0 -34
  26. package/template/core/engine/output/chrome-pdf.mjs +0 -358
  27. package/template/core/engine/output/deploy-sync.mjs +0 -15
  28. package/template/core/engine/output/fonts.mjs +0 -62
  29. package/template/core/engine/output/katex-assets.mjs +0 -45
  30. package/template/core/engine/output/page-block.mjs +0 -30
  31. package/template/core/engine/output/pdf-media.mjs +0 -45
  32. package/template/core/engine/output/public-assets.mjs +0 -19
  33. package/template/core/engine/output/static-server.mjs +0 -532
  34. package/template/core/engine/react/caption-numbering.mjs +0 -73
  35. package/template/core/engine/react/comment-endpoint.d.mts +0 -11
  36. package/template/core/engine/react/comment-endpoint.mjs +0 -102
  37. package/template/core/engine/react/comment-marker.mjs +0 -374
  38. package/template/core/engine/react/document-entry.mjs +0 -324
  39. package/template/core/engine/react/document-export.mjs +0 -373
  40. package/template/core/engine/react/http-json.mjs +0 -24
  41. package/template/core/engine/react/mdx-compile.mjs +0 -599
  42. package/template/core/engine/react/measurement-css.mjs +0 -136
  43. package/template/core/engine/react/object-entities.mjs +0 -119
  44. package/template/core/engine/react/pagination/allocator.mjs +0 -122
  45. package/template/core/engine/react/pagination/regions.mjs +0 -81
  46. package/template/core/engine/react/pagination-constants.mjs +0 -3
  47. package/template/core/engine/react/pagination.mjs +0 -9
  48. package/template/core/engine/react/pipeline/allocate.mjs +0 -251
  49. package/template/core/engine/react/pipeline/final-render.mjs +0 -94
  50. package/template/core/engine/react/pipeline/frame-measurement.mjs +0 -302
  51. package/template/core/engine/react/pipeline/press-tree.mjs +0 -135
  52. package/template/core/engine/react/project-asset-endpoint.d.mts +0 -10
  53. package/template/core/engine/react/project-asset-endpoint.mjs +0 -361
  54. package/template/core/engine/react/section-css.mjs +0 -56
  55. package/template/core/engine/react/source-edit-endpoint.d.mts +0 -10
  56. package/template/core/engine/react/source-edit-endpoint.mjs +0 -75
  57. package/template/core/engine/react/sources/heading-numbering.mjs +0 -132
  58. package/template/core/engine/react/sources/mdx-resolver.mjs +0 -439
  59. package/template/core/engine/react/style-discovery.mjs +0 -142
  60. package/template/core/engine/runtime/config.d.mts +0 -40
  61. package/template/core/engine/runtime/config.mjs +0 -175
  62. package/template/core/engine/runtime/file-utils.mjs +0 -106
  63. package/template/core/engine/runtime/file-walk.mjs +0 -22
  64. package/template/core/engine/runtime/inspection.mjs +0 -328
  65. package/template/core/engine/runtime/issue-report.mjs +0 -44
  66. package/template/core/engine/runtime/path-utils.mjs +0 -20
  67. package/template/core/engine/runtime/source-text-tools.d.mts +0 -102
  68. package/template/core/engine/runtime/source-text-tools.mjs +0 -832
  69. package/template/core/engine/runtime/source-workspace.mjs +0 -159
  70. package/template/core/engine/runtime/validation.mjs +0 -174
  71. package/template/core/index.html +0 -13
  72. package/template/core/openpress.config.mjs +0 -12
  73. package/template/core/package.json +0 -91
  74. package/template/core/src/main.tsx +0 -16
  75. package/template/core/src/openpress/app/OpenPressApp.tsx +0 -140
  76. package/template/core/src/openpress/app/OpenPressRuntime.tsx +0 -94
  77. package/template/core/src/openpress/app/index.ts +0 -2
  78. package/template/core/src/openpress/core/Frame.tsx +0 -78
  79. package/template/core/src/openpress/core/FrameContext.tsx +0 -24
  80. package/template/core/src/openpress/core/MdxArea.tsx +0 -34
  81. package/template/core/src/openpress/core/Press.tsx +0 -34
  82. package/template/core/src/openpress/core/cn.ts +0 -4
  83. package/template/core/src/openpress/core/index.tsx +0 -40
  84. package/template/core/src/openpress/core/primitives.tsx +0 -44
  85. package/template/core/src/openpress/core/types.ts +0 -191
  86. package/template/core/src/openpress/core/useSource.ts +0 -28
  87. package/template/core/src/openpress/document-model/anchorMapModel.ts +0 -27
  88. package/template/core/src/openpress/document-model/documentIndexes.ts +0 -329
  89. package/template/core/src/openpress/document-model/documentTypes.ts +0 -138
  90. package/template/core/src/openpress/document-model/index.ts +0 -6
  91. package/template/core/src/openpress/document-model/objectEntityModel.ts +0 -51
  92. package/template/core/src/openpress/document-model/projectIdentityModel.ts +0 -15
  93. package/template/core/src/openpress/document-model/reactDocumentMetadataModel.ts +0 -27
  94. package/template/core/src/openpress/manuscript/index.tsx +0 -238
  95. package/template/core/src/openpress/mdx/index.ts +0 -88
  96. package/template/core/src/openpress/numbering/index.ts +0 -294
  97. package/template/core/src/openpress/reader/PublicReaderPage.tsx +0 -267
  98. package/template/core/src/openpress/reader/ReaderNavigationPanel.tsx +0 -123
  99. package/template/core/src/openpress/reader/index.ts +0 -10
  100. package/template/core/src/openpress/reader/pageViewportScaleModel.ts +0 -73
  101. package/template/core/src/openpress/reader/readerPageRegistry.ts +0 -41
  102. package/template/core/src/openpress/reader/readerPageRoute.ts +0 -21
  103. package/template/core/src/openpress/reader/readerScroll.ts +0 -92
  104. package/template/core/src/openpress/reader/readerStateModel.ts +0 -15
  105. package/template/core/src/openpress/reader/readerTypes.ts +0 -4
  106. package/template/core/src/openpress/reader/usePageViewportScale.ts +0 -119
  107. package/template/core/src/openpress/reader/usePanelState.ts +0 -56
  108. package/template/core/src/openpress/reader/useReaderHashSync.ts +0 -61
  109. package/template/core/src/openpress/reader/useReaderKeyboardNav.ts +0 -48
  110. package/template/core/src/openpress/reader/useReaderRuntime.ts +0 -146
  111. package/template/core/src/openpress/reader/useReaderScrollAnchor.ts +0 -64
  112. package/template/core/src/openpress/shared/Panel.tsx +0 -77
  113. package/template/core/src/openpress/shared/frameScheduler.ts +0 -32
  114. package/template/core/src/openpress/shared/index.ts +0 -4
  115. package/template/core/src/openpress/shared/numberUtils.ts +0 -3
  116. package/template/core/src/openpress/shared/runtimeMode.ts +0 -11
  117. package/template/core/src/openpress/workbench/Workbench.tsx +0 -407
  118. package/template/core/src/openpress/workbench/actions/DeploymentControl.tsx +0 -157
  119. package/template/core/src/openpress/workbench/actions/PageZoomControl.tsx +0 -182
  120. package/template/core/src/openpress/workbench/actions/SearchControl.tsx +0 -345
  121. package/template/core/src/openpress/workbench/actions/deploymentStatusModel.ts +0 -112
  122. package/template/core/src/openpress/workbench/actions/index.ts +0 -5
  123. package/template/core/src/openpress/workbench/actions/useDeploymentWorkbench.ts +0 -136
  124. package/template/core/src/openpress/workbench/dialog/WorkbenchDialog.tsx +0 -72
  125. package/template/core/src/openpress/workbench/dialog/index.ts +0 -1
  126. package/template/core/src/openpress/workbench/document/components/DocumentPanel.tsx +0 -127
  127. package/template/core/src/openpress/workbench/document/components/InlineSourceEditorLayer.tsx +0 -207
  128. package/template/core/src/openpress/workbench/document/components/ReaderStage.tsx +0 -9
  129. package/template/core/src/openpress/workbench/document/hooks/useDocumentWorkbenchModel.ts +0 -34
  130. package/template/core/src/openpress/workbench/document/hooks/useInlineDocumentEditor.ts +0 -525
  131. package/template/core/src/openpress/workbench/document/index.ts +0 -10
  132. package/template/core/src/openpress/workbench/index.ts +0 -2
  133. package/template/core/src/openpress/workbench/inspector/InlineInspectorLayer.tsx +0 -459
  134. package/template/core/src/openpress/workbench/inspector/index.ts +0 -5
  135. package/template/core/src/openpress/workbench/inspector/inlineCommentModel.ts +0 -125
  136. package/template/core/src/openpress/workbench/inspector/inspectorGeometryModel.ts +0 -160
  137. package/template/core/src/openpress/workbench/inspector/inspectorModel.ts +0 -408
  138. package/template/core/src/openpress/workbench/inspector/useInspectorComments.ts +0 -248
  139. package/template/core/src/openpress/workbench/mentions/MentionSuggestionList.tsx +0 -41
  140. package/template/core/src/openpress/workbench/mentions/index.ts +0 -2
  141. package/template/core/src/openpress/workbench/mentions/useComposerMentions.ts +0 -185
  142. package/template/core/src/openpress/workbench/panels/Panel.tsx +0 -1
  143. package/template/core/src/openpress/workbench/panels/PendingCommentsPanel.tsx +0 -76
  144. package/template/core/src/openpress/workbench/panels/WorkbenchControlPanel.tsx +0 -29
  145. package/template/core/src/openpress/workbench/panels/index.ts +0 -3
  146. package/template/core/src/openpress/workbench/project/ProjectEntryPanel.tsx +0 -523
  147. package/template/core/src/openpress/workbench/project/ProjectPreviewDialog.tsx +0 -35
  148. package/template/core/src/openpress/workbench/project/index.ts +0 -2
  149. package/template/core/src/openpress/workbench/project/projectPreviewTypes.ts +0 -11
  150. package/template/core/src/openpress/workbench/project/projectSourceModel.ts +0 -24
  151. package/template/core/src/openpress/workbench/shell/WorkbenchShell.tsx +0 -167
  152. package/template/core/src/openpress/workbench/shell/index.ts +0 -1
  153. package/template/core/src/openpress/workbench/workbenchFormatters.ts +0 -120
  154. package/template/core/src/openpress/workbench/workbenchTypes.ts +0 -35
  155. package/template/core/src/styles/openpress/app-shell.css +0 -251
  156. package/template/core/src/styles/openpress/media-workspace.css +0 -230
  157. package/template/core/src/styles/openpress/print-route.css +0 -184
  158. package/template/core/src/styles/openpress/project-preview-panel.css +0 -924
  159. package/template/core/src/styles/openpress/public-viewer.css +0 -688
  160. package/template/core/src/styles/openpress/reader-runtime.css +0 -980
  161. package/template/core/src/styles/openpress/responsive.css +0 -245
  162. package/template/core/src/styles/openpress/workbench-panels.css +0 -594
  163. package/template/core/src/styles/openpress/workbench.css +0 -1255
  164. package/template/core/src/styles/openpress.css +0 -14
  165. package/template/core/src/vite-env.d.ts +0 -9
  166. package/template/core/tsconfig.json +0 -40
  167. package/template/core/vite.config.ts +0 -584
  168. package/template/packs/academic-paper/document/chapters/01-introduction/content/01-introduction.mdx +0 -35
  169. package/template/packs/academic-paper/document/chapters/02-methods/content/01-methods.mdx +0 -50
  170. package/template/packs/academic-paper/document/chapters/03-results-and-discussion/content/01-results.mdx +0 -47
  171. package/template/packs/academic-paper/document/chapters/04-acknowledgment/content/01-acknowledgment.mdx +0 -26
  172. package/template/packs/academic-paper/document/chapters/05-references/content/01-references.mdx +0 -32
  173. package/template/packs/academic-paper/document/components/ChapterOpenerVisual/index.tsx +0 -76
  174. package/template/packs/academic-paper/document/components/Page.tsx +0 -60
  175. package/template/packs/academic-paper/document/components/TokenSwatchGrid/index.tsx +0 -46
  176. package/template/packs/academic-paper/document/components/TokenSwatchGrid/style.css +0 -63
  177. package/template/packs/academic-paper/document/components/TypeSpecimen/index.tsx +0 -38
  178. package/template/packs/academic-paper/document/components/TypeSpecimen/style.css +0 -111
  179. package/template/packs/academic-paper/document/design.md +0 -279
  180. package/template/packs/academic-paper/document/index.tsx +0 -123
  181. package/template/packs/academic-paper/document/media/README.md +0 -13
  182. package/template/packs/academic-paper/document/media/figure-placeholder.svg +0 -9
  183. package/template/packs/academic-paper/document/openpress.config.mjs +0 -26
  184. package/template/packs/academic-paper/document/theme/README.md +0 -11
  185. package/template/packs/academic-paper/document/theme/base/page-contract.css +0 -522
  186. package/template/packs/academic-paper/document/theme/base/print.css +0 -93
  187. package/template/packs/academic-paper/document/theme/base/typography.css +0 -333
  188. package/template/packs/academic-paper/document/theme/fonts.css +0 -3
  189. package/template/packs/academic-paper/document/theme/page-surfaces/back-cover.css +0 -43
  190. package/template/packs/academic-paper/document/theme/page-surfaces/chapter-opener.css +0 -205
  191. package/template/packs/academic-paper/document/theme/page-surfaces/cover.css +0 -294
  192. package/template/packs/academic-paper/document/theme/page-surfaces/toc.css +0 -149
  193. package/template/packs/academic-paper/document/theme/patterns/_chart-frame.css +0 -49
  194. package/template/packs/academic-paper/document/theme/patterns/figure-grid.css +0 -68
  195. package/template/packs/academic-paper/document/theme/patterns/table-utilities.css +0 -66
  196. package/template/packs/academic-paper/document/theme/shell/reader-controls.css +0 -761
  197. package/template/packs/academic-paper/document/theme/tokens.css +0 -80
  198. package/template/packs/academic-paper/openpress.config.mjs +0 -5
  199. package/template/packs/claude-document/document/chapters/01-document-shape/content/01-document-shape.mdx +0 -51
  200. package/template/packs/claude-document/document/chapters/02-review-loop/content/01-review-loop.mdx +0 -31
  201. package/template/packs/claude-document/document/components/ChapterOpenerVisual.tsx +0 -96
  202. package/template/packs/claude-document/document/components/Page.tsx +0 -37
  203. package/template/packs/claude-document/document/design.md +0 -142
  204. package/template/packs/claude-document/document/index.tsx +0 -94
  205. package/template/packs/claude-document/document/media/README.md +0 -13
  206. package/template/packs/claude-document/document/openpress.config.mjs +0 -26
  207. package/template/packs/claude-document/document/theme/README.md +0 -15
  208. package/template/packs/claude-document/document/theme/base/page-contract.css +0 -525
  209. package/template/packs/claude-document/document/theme/base/print.css +0 -93
  210. package/template/packs/claude-document/document/theme/base/typography.css +0 -612
  211. package/template/packs/claude-document/document/theme/fonts.css +0 -4
  212. package/template/packs/claude-document/document/theme/page-surfaces/back-cover.css +0 -72
  213. package/template/packs/claude-document/document/theme/page-surfaces/chapter-opener.css +0 -236
  214. package/template/packs/claude-document/document/theme/page-surfaces/cover.css +0 -309
  215. package/template/packs/claude-document/document/theme/page-surfaces/toc.css +0 -225
  216. package/template/packs/claude-document/document/theme/patterns/_chart-frame.css +0 -53
  217. package/template/packs/claude-document/document/theme/patterns/figure-grid.css +0 -68
  218. package/template/packs/claude-document/document/theme/patterns/table-utilities.css +0 -66
  219. package/template/packs/claude-document/document/theme/shell/reader-controls.css +0 -789
  220. package/template/packs/claude-document/document/theme/tokens.css +0 -89
  221. package/template/packs/claude-document/openpress.config.mjs +0 -5
  222. package/template/packs/editorial-monograph/document/chapters/01-product-and-use-cases/content/01-product-and-use-cases.mdx +0 -31
  223. package/template/packs/editorial-monograph/document/chapters/02-workflow/content/01-workflow.mdx +0 -89
  224. package/template/packs/editorial-monograph/document/chapters/03-agent-skills-contributors/content/01-agent-skills-contributors.mdx +0 -51
  225. package/template/packs/editorial-monograph/document/chapters/04-validation-deploy/content/01-validation-deploy.mdx +0 -39
  226. package/template/packs/editorial-monograph/document/components/ChapterOpenerVisual/index.tsx +0 -76
  227. package/template/packs/editorial-monograph/document/components/Page.tsx +0 -37
  228. package/template/packs/editorial-monograph/document/components/TokenSwatchGrid/index.tsx +0 -46
  229. package/template/packs/editorial-monograph/document/components/TokenSwatchGrid/style.css +0 -63
  230. package/template/packs/editorial-monograph/document/components/TypeSpecimen/index.tsx +0 -38
  231. package/template/packs/editorial-monograph/document/components/TypeSpecimen/style.css +0 -111
  232. package/template/packs/editorial-monograph/document/design.md +0 -279
  233. package/template/packs/editorial-monograph/document/index.tsx +0 -97
  234. package/template/packs/editorial-monograph/document/media/README.md +0 -13
  235. package/template/packs/editorial-monograph/document/openpress.config.mjs +0 -26
  236. package/template/packs/editorial-monograph/document/theme/README.md +0 -11
  237. package/template/packs/editorial-monograph/document/theme/base/page-contract.css +0 -505
  238. package/template/packs/editorial-monograph/document/theme/base/print.css +0 -93
  239. package/template/packs/editorial-monograph/document/theme/base/typography.css +0 -336
  240. package/template/packs/editorial-monograph/document/theme/fonts.css +0 -3
  241. package/template/packs/editorial-monograph/document/theme/page-surfaces/back-cover.css +0 -43
  242. package/template/packs/editorial-monograph/document/theme/page-surfaces/chapter-opener.css +0 -205
  243. package/template/packs/editorial-monograph/document/theme/page-surfaces/cover.css +0 -147
  244. package/template/packs/editorial-monograph/document/theme/page-surfaces/toc.css +0 -149
  245. package/template/packs/editorial-monograph/document/theme/patterns/_chart-frame.css +0 -49
  246. package/template/packs/editorial-monograph/document/theme/patterns/figure-grid.css +0 -68
  247. package/template/packs/editorial-monograph/document/theme/patterns/table-utilities.css +0 -66
  248. package/template/packs/editorial-monograph/document/theme/shell/reader-controls.css +0 -761
  249. package/template/packs/editorial-monograph/document/theme/tokens.css +0 -80
  250. package/template/packs/editorial-monograph/openpress.config.mjs +0 -5
@@ -1,505 +0,0 @@
1
- @page {
2
- size: var(--openpress-page-width) var(--openpress-page-height);
3
- margin: var(--openpress-page-margin);
4
- }
5
-
6
- * {
7
- box-sizing: border-box;
8
- }
9
-
10
- html {
11
- background: var(--openpress-color-app-bg);
12
- scroll-behavior: smooth;
13
- }
14
-
15
- body {
16
- margin: 0;
17
- color: var(--openpress-color-text-on-dark);
18
- background: #1a1a1a;
19
- font-family: var(--openpress-font-body);
20
- font-size: var(--openpress-text-md);
21
- line-height: var(--openpress-leading-body);
22
- -webkit-print-color-adjust: exact;
23
- print-color-adjust: exact;
24
- touch-action: manipulation;
25
- -webkit-tap-highlight-color: transparent;
26
- }
27
-
28
- .reader-app {
29
- display: grid;
30
- grid-template-rows: 56px minmax(0, 1fr);
31
- grid-template-columns: 200px minmax(0, 1fr) 340px;
32
- grid-template-areas:
33
- "nav nav nav"
34
- "left main right";
35
- min-height: 100vh;
36
- height: 100vh;
37
- overflow: hidden;
38
- transition: grid-template-columns 240ms cubic-bezier(0.22, 0.61, 0.36, 1);
39
- }
40
-
41
- button,
42
- .reader-stage {
43
- outline: none;
44
- }
45
-
46
- body.exporting .reader-page,
47
- body.exporting .reader-page.is-active {
48
- animation: none !important;
49
- transform: none !important;
50
- transition: none !important;
51
- }
52
-
53
- button:focus,
54
- .reader-stage:focus {
55
- outline: none;
56
- }
57
-
58
- button:focus-visible {
59
- outline: 1px solid rgba(255, 255, 255, 0.4);
60
- outline-offset: 2px;
61
- }
62
-
63
- .reader-app.is-closed-left {
64
- grid-template-columns: 0 minmax(0, 1fr) 340px;
65
- }
66
-
67
- .reader-app.is-closed-right {
68
- grid-template-columns: 200px minmax(0, 1fr) 0;
69
- }
70
-
71
- .reader-app.is-closed-left.is-closed-right {
72
- grid-template-columns: 0 minmax(0, 1fr) 0;
73
- }
74
-
75
- .reader-app.is-closed-left .reader-thumb-strip,
76
- .reader-app.is-closed-right .reader-side-nav {
77
- display: none;
78
- }
79
-
80
- .reader-navbar {
81
- grid-area: nav;
82
- display: grid;
83
- grid-template-columns: 1fr auto 1fr;
84
- align-items: center;
85
- padding: 0 24px;
86
- gap: 24px;
87
- border-bottom: 1px solid rgba(255, 255, 255, 0.08);
88
- background: rgba(22, 22, 22, 0.6);
89
- position: relative;
90
- }
91
-
92
- .navbar-section {
93
- display: flex;
94
- align-items: center;
95
- gap: 12px;
96
- min-width: 0;
97
- }
98
-
99
- .navbar-left {
100
- justify-self: start;
101
- }
102
-
103
- .navbar-right {
104
- justify-self: end;
105
- }
106
-
107
- .navbar-brand {
108
- display: flex;
109
- align-items: baseline;
110
- gap: 14px;
111
- color: var(--openpress-color-text-on-dark);
112
- min-width: 0;
113
- }
114
-
115
- .navbar-icon {
116
- display: flex;
117
- align-items: center;
118
- justify-content: center;
119
- width: 32px;
120
- height: 32px;
121
- padding: 0;
122
- background: transparent;
123
- border: 0;
124
- color: var(--openpress-color-text-placeholder);
125
- font-size: 16px;
126
- line-height: 1;
127
- cursor: pointer;
128
- opacity: 0.6;
129
- transition: opacity 150ms ease, color 150ms ease;
130
- }
131
-
132
- .navbar-icon:hover {
133
- opacity: 1;
134
- color: var(--openpress-color-text-on-dark);
135
- }
136
-
137
- .navbar-icon[aria-pressed="false"] {
138
- opacity: 0.35;
139
- }
140
-
141
- .navbar-hints {
142
- justify-self: center;
143
- display: flex;
144
- align-items: center;
145
- gap: 10px;
146
- color: var(--openpress-color-text-placeholder);
147
- font-size: 11px;
148
- letter-spacing: 0.1em;
149
- opacity: 0.7;
150
- }
151
-
152
- .navbar-hints .navbar-sep {
153
- color: var(--openpress-color-border-strong);
154
- }
155
-
156
- .navbar-icon-hamburger {
157
- flex-direction: column;
158
- gap: 4px;
159
- width: 36px;
160
- height: 36px;
161
- }
162
-
163
- .navbar-icon-hamburger span {
164
- display: block;
165
- width: 16px;
166
- height: 1px;
167
- background: currentColor;
168
- transition: transform 180ms ease, opacity 180ms ease;
169
- }
170
-
171
- .navbar-icon-hamburger[aria-pressed="true"] span:nth-child(1) {
172
- transform: translateY(0);
173
- }
174
-
175
- .navbar-icon-hamburger[aria-pressed="false"] span {
176
- opacity: 0.6;
177
- }
178
-
179
-
180
- .navbar-mark {
181
- font-family: var(--openpress-font-serif);
182
- font-size: 18px;
183
- font-weight: 400;
184
- letter-spacing: 0.02em;
185
- }
186
-
187
- .navbar-sub {
188
- font-size: 11px;
189
- color: var(--openpress-color-text-placeholder);
190
- letter-spacing: 0.1em;
191
- }
192
-
193
- .navbar-actions {
194
- display: flex;
195
- gap: 8px;
196
- justify-self: end;
197
- }
198
-
199
- .navbar-btn {
200
- height: 32px;
201
- padding: 0 14px;
202
- background: transparent;
203
- border: 1px solid rgba(255, 255, 255, 0.18);
204
- color: var(--openpress-color-text-secondary);
205
- font-family: inherit;
206
- font-size: 11px;
207
- letter-spacing: 0.1em;
208
- cursor: pointer;
209
- transition: border-color 150ms, color 150ms;
210
- }
211
-
212
- .navbar-btn:hover {
213
- border-color: rgba(255, 255, 255, 0.45);
214
- color: var(--openpress-color-text-on-dark);
215
- }
216
-
217
- .navbar-menu-btn {
218
- display: none;
219
- width: 36px;
220
- height: 36px;
221
- background: transparent;
222
- border: 0;
223
- color: var(--openpress-color-text-secondary);
224
- font-family: inherit;
225
- font-size: 22px;
226
- line-height: 1;
227
- cursor: pointer;
228
- padding: 0;
229
- letter-spacing: 0.08em;
230
- }
231
-
232
- .navbar-menu-btn:hover {
233
- color: var(--openpress-color-text-on-dark);
234
- }
235
-
236
- .mobile-menu {
237
- position: fixed;
238
- inset: 0;
239
- z-index: 30;
240
- display: flex;
241
- align-items: flex-end;
242
- animation: mobile-menu-in 180ms ease-out both;
243
- }
244
-
245
- .mobile-menu[hidden] {
246
- display: none;
247
- }
248
-
249
- @keyframes mobile-menu-in {
250
- from { opacity: 0; }
251
- to { opacity: 1; }
252
- }
253
-
254
- .mobile-menu-backdrop {
255
- position: absolute;
256
- inset: 0;
257
- background: rgba(15, 15, 15, 0.55);
258
- -webkit-backdrop-filter: blur(8px);
259
- backdrop-filter: blur(8px);
260
- }
261
-
262
- .mobile-menu-sheet {
263
- position: relative;
264
- z-index: 1;
265
- width: 100%;
266
- padding: 14px;
267
- padding-bottom: calc(14px + env(safe-area-inset-bottom));
268
- display: flex;
269
- flex-direction: column;
270
- gap: 8px;
271
- animation: mobile-menu-sheet-in 220ms cubic-bezier(0.22, 0.61, 0.36, 1) both;
272
- }
273
-
274
- @keyframes mobile-menu-sheet-in {
275
- from { transform: translateY(12px); opacity: 0; }
276
- to { transform: translateY(0); opacity: 1; }
277
- }
278
-
279
- .mobile-menu-item,
280
- .mobile-menu-cancel {
281
- width: 100%;
282
- height: 54px;
283
- font-family: inherit;
284
- font-size: 15px;
285
- letter-spacing: 0.06em;
286
- color: var(--openpress-color-text-on-dark);
287
- cursor: pointer;
288
- padding: 0;
289
- }
290
-
291
- .mobile-menu-item {
292
- background: rgba(40, 40, 40, 0.85);
293
- -webkit-backdrop-filter: blur(20px);
294
- backdrop-filter: blur(20px);
295
- border: 1px solid rgba(255, 255, 255, 0.08);
296
- }
297
-
298
- .mobile-menu-item:active {
299
- background: rgba(60, 60, 60, 0.92);
300
- }
301
-
302
- .mobile-menu-cancel {
303
- margin-top: 4px;
304
- background: rgba(70, 70, 70, 0.88);
305
- -webkit-backdrop-filter: blur(20px);
306
- backdrop-filter: blur(20px);
307
- border: 0;
308
- letter-spacing: 0.08em;
309
- font-weight: 500;
310
- }
311
-
312
- .reader-stage {
313
- grid-area: main;
314
- min-width: 0;
315
- min-height: 0;
316
- display: flex;
317
- align-items: flex-start;
318
- justify-content: center;
319
- overflow: auto;
320
- overscroll-behavior: contain;
321
- scroll-behavior: smooth;
322
- container-type: inline-size;
323
- scrollbar-width: thin;
324
- scrollbar-color: rgba(255, 255, 255, 0.18) transparent;
325
- }
326
-
327
- .reader-stage::-webkit-scrollbar {
328
- width: 8px;
329
- height: 8px;
330
- }
331
-
332
- .reader-stage::-webkit-scrollbar-track {
333
- background: transparent;
334
- }
335
-
336
- .reader-stage::-webkit-scrollbar-thumb {
337
- background: rgba(255, 255, 255, 0.15);
338
- border-radius: 0;
339
- border: 2px solid transparent;
340
- background-clip: padding-box;
341
- }
342
-
343
- .reader-stage::-webkit-scrollbar-thumb:hover {
344
- background: rgba(255, 255, 255, 0.28);
345
- background-clip: padding-box;
346
- border: 2px solid transparent;
347
- }
348
-
349
- .reader-stage::-webkit-scrollbar-corner {
350
- background: transparent;
351
- }
352
-
353
- .reader-pages {
354
- min-height: 0;
355
- width: 100%;
356
- height: auto;
357
- display: flex;
358
- flex-direction: column;
359
- align-items: center;
360
- gap: 28px;
361
- padding: 32px 24px 48px;
362
- --reader-page-width: min(var(--openpress-page-width), calc(100cqw - 48px));
363
- }
364
-
365
- .reader-pages.is-spread {
366
- --reader-page-width: min(var(--openpress-page-width), calc((100cqw - 84px) / 2));
367
- }
368
-
369
- .reader-spread {
370
- display: grid;
371
- grid-template-columns: minmax(0, var(--reader-page-width));
372
- justify-content: center;
373
- gap: 28px;
374
- width: 100%;
375
- }
376
-
377
- .reader-spread.has-two {
378
- grid-template-columns: repeat(2, minmax(0, var(--reader-page-width)));
379
- }
380
-
381
- .reader-page {
382
- display: none;
383
- position: relative;
384
- width: var(--reader-page-width, var(--openpress-page-width));
385
- height: calc(var(--reader-page-width, var(--openpress-page-width)) * var(--openpress-page-height) / var(--openpress-page-width));
386
- --page-margin-x: clamp(28px, 5cqw, 48px);
387
- --page-margin-top: clamp(28px, 5cqw, 48px);
388
- --page-margin-bottom: clamp(18px, 3cqw, 28px);
389
- --page-header-height: clamp(12px, 1.9cqw, 20px);
390
- --page-footer-height: clamp(18px, 2.6cqw, 26px);
391
- --page-frame-gap: clamp(8px, 1.4cqw, 14px);
392
- overflow: hidden;
393
- color: var(--openpress-color-ink);
394
- background: var(--openpress-color-document);
395
- container-type: inline-size;
396
- box-shadow: 0 18px 44px rgba(0, 0, 0, 0.22);
397
- transition: box-shadow 180ms ease;
398
- }
399
-
400
- .reader-app.is-ready .reader-page,
401
- .reader-page.measurement {
402
- display: block;
403
- }
404
-
405
- .page-frame {
406
- width: 100%;
407
- height: 100%;
408
- min-height: inherit;
409
- display: grid;
410
- grid-template-rows: var(--page-header-height) minmax(0, 1fr) var(--page-footer-height);
411
- row-gap: var(--page-frame-gap);
412
- padding: var(--page-margin-top) var(--page-margin-x) var(--page-margin-bottom);
413
- background: var(--openpress-color-document);
414
- }
415
-
416
- .reader-page.no-footer .page-frame {
417
- grid-template-rows: var(--page-header-height) minmax(0, 1fr);
418
- }
419
-
420
- .reader-page.no-footer .page-footer {
421
- display: none;
422
- }
423
-
424
- .page-header,
425
- .page-footer {
426
- min-width: 0;
427
- overflow: hidden;
428
- }
429
-
430
- .page-header {
431
- display: flex;
432
- align-items: flex-start;
433
- color: var(--openpress-color-muted);
434
- font-size: clamp(7pt, 1.2cqw, 8pt);
435
- letter-spacing: 0.1em;
436
- opacity: 0.62;
437
- pointer-events: none;
438
- }
439
-
440
- .page-body {
441
- min-width: 0;
442
- min-height: 0;
443
- overflow: visible;
444
- }
445
-
446
- .page-footer {
447
- display: flex;
448
- justify-content: space-between;
449
- align-items: baseline;
450
- gap: 12px;
451
- font-size: clamp(7pt, 1.25cqw, 8pt);
452
- color: var(--openpress-color-muted);
453
- letter-spacing: 0.1em;
454
- opacity: 0.7;
455
- pointer-events: none;
456
- }
457
-
458
- .page-footer .footer-left {
459
- flex: 1;
460
- min-width: 0;
461
- overflow: hidden;
462
- text-overflow: ellipsis;
463
- white-space: nowrap;
464
- }
465
-
466
- .page-footer .footer-right {
467
- font-variant-numeric: tabular-nums;
468
- letter-spacing: 0.14em;
469
- flex-shrink: 0;
470
- }
471
-
472
- @media screen and (max-width: 767px) {
473
- .page-footer {
474
- font-size: clamp(5.5pt, 1.4cqw, 7pt);
475
- }
476
- }
477
-
478
- .reader-page.measurement {
479
- display: block !important;
480
- position: absolute;
481
- left: -99999px;
482
- top: 0;
483
- visibility: hidden;
484
- box-shadow: none;
485
- outline: 0;
486
- transform: none !important;
487
- }
488
-
489
- .reader-page.is-active.page-in-forward {
490
- animation: page-in-fwd 280ms cubic-bezier(0.33, 1, 0.68, 1) both;
491
- }
492
-
493
- .reader-page.is-active.page-in-backward {
494
- animation: page-in-bwd 280ms cubic-bezier(0.33, 1, 0.68, 1) both;
495
- }
496
-
497
- @keyframes page-in-fwd {
498
- 0% { opacity: 0; transform: translateX(10px); }
499
- 100% { opacity: 1; transform: translateX(0); }
500
- }
501
-
502
- @keyframes page-in-bwd {
503
- 0% { opacity: 0; transform: translateX(-10px); }
504
- 100% { opacity: 1; transform: translateX(0); }
505
- }
@@ -1,93 +0,0 @@
1
- @media print {
2
- html,
3
- body {
4
- background: #fff;
5
- }
6
-
7
- .reader-app {
8
- display: block;
9
- height: auto;
10
- overflow: visible;
11
- grid-template-columns: none !important;
12
- grid-template-rows: none !important;
13
- grid-template-areas: none !important;
14
- }
15
-
16
- .reader-navbar,
17
- .reader-side-nav,
18
- .reader-thumb-strip,
19
- .reader-thumbs,
20
- .reader-page.measurement {
21
- display: none !important;
22
- }
23
-
24
- .reader-stage,
25
- .reader-pages {
26
- display: block;
27
- padding: 0;
28
- perspective: none;
29
- width: auto;
30
- height: auto;
31
- background: #fff;
32
- }
33
-
34
- .reader-page,
35
- .reader-page.is-active,
36
- .reader-page--cover.is-active,
37
- .reader-page--back-cover.is-active {
38
- display: block;
39
- width: auto;
40
- aspect-ratio: auto;
41
- max-height: none;
42
- overflow: visible;
43
- box-shadow: none;
44
- outline: 0;
45
- margin: 0;
46
- break-after: auto;
47
- animation: none !important;
48
- transform: none !important;
49
- }
50
-
51
- .reader-page--cover,
52
- .reader-page--toc,
53
- .reader-page--content,
54
- .reader-page--back-cover {
55
- padding: 0;
56
- }
57
-
58
- .reader-page--toc {
59
- break-before: page;
60
- }
61
-
62
- .reader-page--back-cover {
63
- break-before: page;
64
- }
65
-
66
- .reader-page--content .page-body > h2:first-child {
67
- break-before: page;
68
- break-after: avoid;
69
- }
70
-
71
- h2,
72
- h3,
73
- h4 {
74
- break-after: avoid;
75
- }
76
-
77
- figure,
78
- table,
79
- .toc-list {
80
- break-inside: avoid;
81
- }
82
-
83
- .toc-list a {
84
- display: grid;
85
- grid-template-columns: 10mm 1fr 14mm;
86
- gap: 4mm;
87
- align-items: baseline;
88
- }
89
-
90
- a {
91
- color: inherit;
92
- }
93
- }