// Cover.tsx —— 文章封面(独立于 Article,位于 TOC + 正文 + colophon 之上) // // 这一文件是 article-specific 的(跟 Article.tsx / sections/*.tsx 同等地位)。 // 主 Agent 在 Phase 4 First Spread 把下面的【封面内容区】替换成按 **主题 + 文章主旨** // 定制的设计。**外壳(3:4 比例、定位、PDF 分页)不要动**。 // // 硬约束(详见 references/cover.md): // 1. **3:4 比例固定(屏幕 + PDF)**:不要改 aspectRatio;打印时 .ra-cover 会自动 // 独占首页,保持屏幕版 3:4 构图以避免 Chromium print 裁切内部布局。 // 让内部元素用百分比 / aspect-ratio / inset 自适应,不要写绝对 px 高度。 // 2. **图文并茂**:必须有视觉元素 + 简短文字(标题 + 可选副题 / 小标签)。 // **禁止纯文字封面**。视觉用什么技术由你选(见约束 5)。 // 3. **主题忠实**:颜色 / 字号 / 字重 / 边框 / 律动**只能用 `--ra-*` token**。 // 切主题时封面要跟随刷新;不要写死颜色 / 字体名 / 像素字号。 // 4. **内容忠实**:封面的视觉主图与文字要呼应正文主旨(看一眼能猜出文章是讲什么的)。 // 5. **技术自由**:内联 SVG / CSS 几何 / Canvas / 复杂 React 组件 / 字体艺术 / 多层 // gradient / mask / clip-path / 任意组合 —— 任选,最终效果好就行。**唯一禁止**: // 远程图片(offline-first);base64 raster 仅当 Plan Checkpoint "配图模式" 是 // user-assets / ai-generated 才允许。 // 6. **封面不承担正文**:不要把 Lead 第一段、TOC、阅读时间塞进来 —— 封面只承担 // "识别 + 风格信号 + 引起阅读欲望",正文从下面的 Article 开始。 export function Cover() { return (
{/* ─── 封面内容区 · 在这里写 ─── 默认占位长这样: • 一层主题感的几何装饰(SVG 网格 + 一个 accent 圆 + 描边斜线) • 居中的占位标题、副题、小标签 构建时**替换为按文章 + 主题定制的封面**。占位是为了 "即使忘了替换,也不会渲染出一团乱",但**不能交付出去**。 */}
); } // ──────────────────────────────────────────────────────────────────── // 占位实现 —— 主 Agent 把 替换成本文真正的封面。 // 删掉这个 function 也行;保留它能让占位回退更友好。 // ──────────────────────────────────────────────────────────────────── function CoverPlaceholder() { return ( <> {/* 默认占位用了 SVG 是图省事,**不代表"应该用 SVG"** —— 你完全可以删掉这个 * ,换成 CSS 渐变层、Canvas、复杂 React 组件、字体艺术拼贴等任何能产生 * 漂亮视觉的方式。视觉技术由你选,效果好就行。 */} {/* 文字层 */}
COVER · 3 : 4 · 占位

按文章主旨 + 主题,在此处设计封面

先读 references/cover.md 与选定主题的 theme-profiles/<id>.md, 再替换 CoverPlaceholder 为本文专属的图文构图。视觉用什么技术(SVG / CSS / Canvas / 复杂 React 组件 / 任意混搭)由你选,效果好就行;唯一禁止远程图片。

); }