diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml new file mode 100644 index 0000000..0be526c --- /dev/null +++ b/.github/workflows/deploy.yml @@ -0,0 +1,50 @@ +name: Deploy to GitHub Pages + +on: + push: + branches: [main] + workflow_dispatch: + +permissions: + contents: read + pages: write + id-token: write + +concurrency: + group: pages + cancel-in-progress: true + +jobs: + build: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - uses: pnpm/action-setup@v4 + with: + version: 9 + + - uses: actions/setup-node@v4 + with: + node-version: 20 + cache: pnpm + + - run: pnpm install --frozen-lockfile + + - run: pnpm build + env: + NEXT_PUBLIC_BASE_PATH: /newspaperui + + - uses: actions/upload-pages-artifact@v3 + with: + path: packages/docs/out + + deploy: + needs: build + runs-on: ubuntu-latest + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + steps: + - id: deployment + uses: actions/deploy-pages@v4 diff --git a/.gitignore b/.gitignore index d7ebfb4..36d444b 100644 --- a/.gitignore +++ b/.gitignore @@ -43,3 +43,7 @@ coverage # Misc .cache .temp + +# IDE / tools +.playwright-mcp/ +screenshots/ diff --git a/.playwright-mcp/page-2026-05-19T12-57-35-241Z.yml b/.playwright-mcp/page-2026-05-19T12-57-35-241Z.yml deleted file mode 100644 index 9793a92..0000000 --- a/.playwright-mcp/page-2026-05-19T12-57-35-241Z.yml +++ /dev/null @@ -1,102 +0,0 @@ -- generic [ref=e2]: - - navigation [ref=e3]: - - generic [ref=e4]: - - link "NewspaperUI" [ref=e5] [cursor=pointer]: - - /url: / - - paragraph [ref=e6]: 报纸布局组件库 - - generic [ref=e7]: - - link "概览" [ref=e9] [cursor=pointer]: - - /url: / - - link "栅格系统" [ref=e11] [cursor=pointer]: - - /url: /grid-system - - generic [ref=e12]: - - link "核心组件" [ref=e13] [cursor=pointer]: - - /url: /components - - generic [ref=e14]: - - link "Article" [ref=e15] [cursor=pointer]: - - /url: /components/article - - link "Layer" [ref=e16] [cursor=pointer]: - - /url: /components/layer - - link "媒体组件" [ref=e17] [cursor=pointer]: - - /url: /components/media - - link "文本组件" [ref=e19] [cursor=pointer]: - - /url: /text - - link "主题系统" [ref=e21] [cursor=pointer]: - - /url: /theme - - generic [ref=e22]: - - link "示例" [ref=e23] [cursor=pointer]: - - /url: /examples - - generic [ref=e24]: - - link "跨栏布局" [ref=e25] [cursor=pointer]: - - /url: /examples/spanning - - link "响应式布局" [ref=e26] [cursor=pointer]: - - /url: /examples/responsive - - main [ref=e27]: - - generic [ref=e29]: - - heading "NewspaperUI" [level=1] [ref=e30] - - paragraph [ref=e31]: 生产级报纸布局组件库,参考 InDesign 设计理念,支持 24 列栅格、跨栏、视觉权重和主题系统。 - - heading "设计理念" [level=2] [ref=e32] - - paragraph [ref=e33]: NewspaperUI 借鉴专业排版软件 InDesign 的设计思想,为 Web 应用提供报纸风格的布局能力。 组件设计遵循少而精、职责明确、无冗余、无歧义的原则。 - - heading "核心特性" [level=2] [ref=e34] - - list [ref=e35]: - - listitem [ref=e36]: - - strong [ref=e37]: 24 列栅格系统 - - text: "- 灵活的栅格布局,支持精确的列控制" - - listitem [ref=e38]: - - strong [ref=e39]: 跨栏布局 - - text: "- 内容可以跨越多列,实现复杂的报纸排版" - - listitem [ref=e40]: - - strong [ref=e41]: 视觉权重系统 - - text: "- High/Medium/Low 三级权重,自动映射字体大小和样式" - - listitem [ref=e42]: - - strong [ref=e43]: 主题系统 - - text: "- 基于 CSS Variables,支持主题切换和自定义" - - listitem [ref=e44]: - - strong [ref=e45]: 响应式设计 - - text: "- 小屏自动调整为 12-16 列,保持良好的阅读体验" - - listitem [ref=e46]: - - strong [ref=e47]: 浮动 Layer - - text: "- 支持绝对定位的浮动元素,如广告、拉引等" - - heading "快速开始" [level=2] [ref=e48] - - heading "安装" [level=3] [ref=e49] - - code [ref=e51]: pnpm add @newspaperui/components @newspaperui/theme - - heading "基础使用" [level=3] [ref=e52] - - generic [ref=e53]: - - generic [ref=e54]: - - heading "简单的报纸布局" [level=3] [ref=e55] - - paragraph [ref=e56]: 使用 Layout 和 Section 创建基础的栅格布局 - - generic [ref=e58]: - - article [ref=e60]: - - heading "主要新闻标题" [level=1] [ref=e61] - - paragraph [ref=e62]: 这是一篇重要的新闻内容,使用 High 权重的标题和正文文本。 - - generic [ref=e63]: - - article [ref=e64]: - - heading "次要新闻" [level=1] [ref=e65] - - paragraph [ref=e66]: 这是另一篇新闻,使用 Medium 权重。 - - article [ref=e67]: - - heading "更多新闻" [level=1] [ref=e68] - - paragraph [ref=e69]: 更多内容在这里展示。 - - button "查看代码" [ref=e71] [cursor=pointer] - - heading "下一步" [level=2] [ref=e72] - - paragraph [ref=e73]: 探索文档了解更多功能: - - list [ref=e74]: - - listitem [ref=e75]: - - link "栅格系统" [ref=e76] [cursor=pointer]: - - /url: /grid-system - - text: "- 了解 24 列栅格的工作原理" - - listitem [ref=e77]: - - link "核心组件" [ref=e78] [cursor=pointer]: - - /url: /components/article - - text: "- 学习 Article、Layer 等核心组件" - - listitem [ref=e79]: - - link "文本组件" [ref=e80] [cursor=pointer]: - - /url: /text - - text: "- 掌握视觉权重系统" - - listitem [ref=e81]: - - link "主题系统" [ref=e82] [cursor=pointer]: - - /url: /theme - - text: "- 自定义主题和样式" - - listitem [ref=e83]: - - link "示例" [ref=e84] [cursor=pointer]: - - /url: /examples/spanning - - text: "- 查看完整的布局示例" \ No newline at end of file diff --git a/.playwright-mcp/page-2026-05-19T13-08-10-670Z.yml b/.playwright-mcp/page-2026-05-19T13-08-10-670Z.yml deleted file mode 100644 index e570a82..0000000 --- a/.playwright-mcp/page-2026-05-19T13-08-10-670Z.yml +++ /dev/null @@ -1,13 +0,0 @@ -- generic [active]: - - generic [ref=e5] [cursor=pointer]: - - button "Open Next.js Dev Tools" [ref=e6]: - - img [ref=e7] - - generic [ref=e10]: - - button "Open issues overlay" [ref=e11]: - - generic [ref=e12]: - - generic [ref=e13]: "0" - - generic [ref=e14]: "1" - - generic [ref=e15]: Issue - - button "Collapse issues badge" [ref=e16]: - - img [ref=e17] - - alert [ref=e19] \ No newline at end of file diff --git a/.playwright-mcp/page-2026-05-19T13-08-18-501Z.yml b/.playwright-mcp/page-2026-05-19T13-08-18-501Z.yml deleted file mode 100644 index f499c80..0000000 --- a/.playwright-mcp/page-2026-05-19T13-08-18-501Z.yml +++ /dev/null @@ -1,102 +0,0 @@ -- generic [ref=e2]: - - navigation [ref=e3]: - - generic [ref=e4]: - - link "NewspaperUI" [ref=e5] [cursor=pointer]: - - /url: / - - paragraph [ref=e6]: 报纸布局组件库 - - generic [ref=e7]: - - link "概览" [ref=e9] [cursor=pointer]: - - /url: / - - link "栅格系统" [ref=e11] [cursor=pointer]: - - /url: /grid-system - - generic [ref=e12]: - - link "核心组件" [ref=e13] [cursor=pointer]: - - /url: /components - - generic [ref=e14]: - - link "Article" [ref=e15] [cursor=pointer]: - - /url: /components/article - - link "Layer" [ref=e16] [cursor=pointer]: - - /url: /components/layer - - link "媒体组件" [ref=e17] [cursor=pointer]: - - /url: /components/media - - link "文本组件" [ref=e19] [cursor=pointer]: - - /url: /text - - link "主题系统" [ref=e21] [cursor=pointer]: - - /url: /theme - - generic [ref=e22]: - - link "示例" [ref=e23] [cursor=pointer]: - - /url: /examples - - generic [ref=e24]: - - link "跨栏布局" [ref=e25] [cursor=pointer]: - - /url: /examples/spanning - - link "响应式布局" [ref=e26] [cursor=pointer]: - - /url: /examples/responsive - - main [ref=e27]: - - generic [ref=e29]: - - heading "NewspaperUI" [level=1] [ref=e30] - - paragraph [ref=e31]: 生产级报纸布局组件库,参考 InDesign 设计理念,支持 24 列栅格、跨栏、视觉权重和主题系统。 - - heading "设计理念" [level=2] [ref=e32] - - paragraph [ref=e33]: NewspaperUI 借鉴专业排版软件 InDesign 的设计思想,为 Web 应用提供报纸风格的布局能力。 组件设计遵循少而精、职责明确、无冗余、无歧义的原则。 - - heading "核心特性" [level=2] [ref=e34] - - list [ref=e35]: - - listitem [ref=e36]: - - strong [ref=e37]: 24 列栅格系统 - - text: "- 灵活的栅格布局,支持精确的列控制" - - listitem [ref=e38]: - - strong [ref=e39]: 跨栏布局 - - text: "- 内容可以跨越多列,实现复杂的报纸排版" - - listitem [ref=e40]: - - strong [ref=e41]: 视觉权重系统 - - text: "- High/Medium/Low 三级权重,自动映射字体大小和样式" - - listitem [ref=e42]: - - strong [ref=e43]: 主题系统 - - text: "- 基于 CSS Variables,支持主题切换和自定义" - - listitem [ref=e44]: - - strong [ref=e45]: 响应式设计 - - text: "- 小屏自动调整为 12-16 列,保持良好的阅读体验" - - listitem [ref=e46]: - - strong [ref=e47]: 浮动 Layer - - text: "- 支持绝对定位的浮动元素,如广告、拉引等" - - heading "快速开始" [level=2] [ref=e48] - - heading "安装" [level=3] [ref=e49] - - code [ref=e51]: pnpm add @newspaperui/components @newspaperui/theme - - heading "基础使用" [level=3] [ref=e52] - - generic [ref=e53]: - - generic [ref=e54]: - - heading "简单的报纸布局" [level=3] [ref=e55] - - paragraph [ref=e56]: 使用 Layout 和 Section 创建基础的栅格布局 - - generic [ref=e58]: - - article [ref=e60]: - - heading "主要新闻标题" [level=1] [ref=e61] - - paragraph [ref=e62]: 这是一篇重要的新闻内容,使用 High 权重的标题和正文文本。 - - generic [ref=e63]: - - article [ref=e64]: - - heading "次要新闻" [level=2] [ref=e65] - - paragraph [ref=e66]: 这是另一篇新闻,使用 Medium 权重。 - - article [ref=e67]: - - heading "更多新闻" [level=2] [ref=e68] - - paragraph [ref=e69]: 更多内容在这里展示。 - - button "查看代码" [ref=e71] - - heading "下一步" [level=2] [ref=e72] - - paragraph [ref=e73]: 探索文档了解更多功能: - - list [ref=e74]: - - listitem [ref=e75]: - - link "栅格系统" [ref=e76] [cursor=pointer]: - - /url: /grid-system - - text: "- 了解 24 列栅格的工作原理" - - listitem [ref=e77]: - - link "核心组件" [ref=e78] [cursor=pointer]: - - /url: /components/article - - text: "- 学习 Article、Layer 等核心组件" - - listitem [ref=e79]: - - link "文本组件" [ref=e80] [cursor=pointer]: - - /url: /text - - text: "- 掌握视觉权重系统" - - listitem [ref=e81]: - - link "主题系统" [ref=e82] [cursor=pointer]: - - /url: /theme - - text: "- 自定义主题和样式" - - listitem [ref=e83]: - - link "示例" [ref=e84] [cursor=pointer]: - - /url: /examples/spanning - - text: "- 查看完整的布局示例" \ No newline at end of file diff --git a/.playwright-mcp/page-2026-05-19T14-59-29-094Z.yml b/.playwright-mcp/page-2026-05-19T14-59-29-094Z.yml deleted file mode 100644 index 822c5b4..0000000 --- a/.playwright-mcp/page-2026-05-19T14-59-29-094Z.yml +++ /dev/null @@ -1,74 +0,0 @@ -- generic [active] [ref=e1]: - - generic [ref=e2]: - - banner [ref=e3]: - - generic [ref=e5]: Late City Edition - - heading "The Daily Chronicle" [level=1] [ref=e6] - - generic [ref=e7]: - - generic [ref=e8]: Vol. CXLIX · No. 51,895 - - generic [ref=e9]: Tuesday, May 19, 2026 - - generic [ref=e10]: $4.00 - - generic [ref=e12]: - - article [ref=e13]: - - generic [ref=e14]: Inside Today - - heading "Senate Approves Climate Resolution After Months of Debate" [level=3] [ref=e15] - - paragraph [ref=e17]: The unanimous vote concludes a contentious legislative session marked by partisan disputes and last-minute amendments. Page A6. - - separator [ref=e18] - - heading "Tech Sector Gains as Inflation Eases" [level=3] [ref=e19] - - paragraph [ref=e21]: Major indices climbed for a fifth consecutive session as new data showed price growth slowing across consumer goods. Business B1. - - separator [ref=e22] - - heading "Drought Conditions Worsen Across the Plains" [level=3] [ref=e23] - - paragraph [ref=e25]: Officials in seven states have requested federal disaster relief as reservoir levels reach historic lows. National A12. - - separator [ref=e26] - - heading "New Exhibit Opens at the Metropolitan" [level=3] [ref=e27] - - paragraph [ref=e29]: A retrospective of mid-century textile design draws record opening crowds. Arts C3. - - article [ref=e30]: - - generic [ref=e32]: Capitol · Breaking - - heading "Historic Accord Reshapes Continental Trade After Marathon Session" [level=1] [ref=e33] - - paragraph [ref=e34]: Negotiators emerge with sweeping framework on tariffs, labor, and emissions; ratification expected within weeks - - generic [ref=e35]: - - generic [ref=e36]: By Eleanor Whitcombe and Marcus Reyes - - generic [ref=e37]: · - - generic [ref=e38]: 5 min read - - figure "Negotiators applaud after the final draft was approved Monday evening at the Continental Conference Center. Photograph by Jane Doe / Pool" [ref=e39]: - - img "Diplomats applaud after the final draft was approved" [ref=e40] - - generic [ref=e41]: - - text: Negotiators applaud after the final draft was approved Monday evening at the Continental Conference Center. - - generic [ref=e42]: Photograph by Jane Doe / Pool - - generic [ref=e43]: - - paragraph [ref=e44]: Brussels — After eleven consecutive days of negotiation that several participants described as the most demanding in a generation, delegates from twenty-three nations announced on Monday a sweeping framework to reorganize commerce across the continent. The accord, which still requires ratification by member parliaments, would harmonize tariff schedules, set common labor standards, and bind signatories to a shared emissions pathway through 2040. - - paragraph [ref=e45]: Officials briefed on the talks said the breakthrough came shortly before midnight, when a dispute over agricultural subsidies was resolved with a side letter granting transitional relief to producers in five smaller economies. The chief negotiator, Margarethe Lindqvist, called the outcome “a long argument that finally became a conversation.” - - paragraph [ref=e46]: The framework’s most consequential provisions target heavy industry. Cement, steel, and chemical producers would face a graduated carbon levy beginning in 2028, with revenues recycled into a continental investment fund for low-carbon manufacturing. Industry associations expressed cautious support, while environmental groups praised the levy’s binding architecture but warned that the timeline gives polluters too much room to delay. - - paragraph [ref=e47]: Markets reacted with measured optimism. The continental composite index closed up 1.2 percent, led by capital-goods makers expected to benefit from infrastructure investment. The currency strengthened against the dollar by 0.7 percent. Bond yields, which had climbed throughout the negotiations on fiscal-stability concerns, retreated to levels seen before the talks began. - - paragraph [ref=e48]: Domestic political reaction was mixed. The accord’s labor provisions, which establish minimum standards for paid leave and collective bargaining, drew immediate praise from union federations and equally immediate concern from chambers of commerce. The chairman of the Federation of Industries warned that small firms would struggle with compliance costs absent transitional support. - - paragraph [ref=e49]: Parliamentary leaders in three capitals signaled that ratification could occur before the summer recess. Two governments, however, indicated that they would seek public referenda before committing, a process likely to extend into the autumn. Analysts at the Centre for Trade Studies estimated that full implementation, even on the most expedited timeline, would require at least eighteen months. - - paragraph [ref=e50]: "For ordinary travelers and consumers, the immediate effects will be modest. Border procedures and product standards remain governed by existing arrangements pending ratification. The longer arc is what matters: a continent of historically fractious neighbors agreeing on a single set of rules for the most consequential decade in living memory." - - complementary [ref=e51]: - - paragraph [ref=e52]: A long argument that finally became a conversation. - - generic [ref=e53]: — Margarethe Lindqvist, Chief Negotiator - - generic [ref=e54]: - - paragraph [ref=e55]: The accord’s signing ceremony, originally scheduled for last Friday, was delayed three times as drafters reconciled competing texts on dispute resolution. The final compromise establishes an arbitration panel of nine jurists, three appointed by each of the bloc’s three regional groupings, with binding authority over commercial disputes exceeding twenty million units. - - paragraph [ref=e56]: Critics on the populist right denounced the framework as an erosion of national sovereignty, while critics on the left argued that the labor floor was set too low to meaningfully protect workers in tighter regulatory regimes. Both camps signaled that ratification battles would be fierce, particularly in legislatures with narrow majorities. - - article [ref=e57]: - - generic [ref=e58]: Foreign Desk - - heading "Coastal Nations Pledge Joint Action on Maritime Pollution" [level=2] [ref=e59] - - paragraph [ref=e60]: Pact follows years of stalled regional talks and a cascade of recent shipping accidents. - - generic [ref=e61]: By Tomás Almeida - - generic [ref=e62]: - - paragraph [ref=e63]: Lisbon — Eleven coastal nations announced a binding compact to coordinate cleanup operations and harmonize liability rules for vessels exceeding fifty thousand tons. The agreement establishes a shared rapid-response fund and creates a regional inspectorate empowered to detain non-compliant ships in any signatory port. - - paragraph [ref=e64]: Maritime industry groups received the news with caution. A spokesperson for the Continental Shipping Council acknowledged that “stronger common rules are overdue” but warned that implementation costs could fall disproportionately on smaller operators. - - paragraph [ref=e65]: The compact takes effect on January 1, pending technical annexes. Environmental observers described the pact as the most consequential maritime accord in a decade. - - article [ref=e67]: - - generic [ref=e68]: National · Investigation - - heading "Records Reveal Years of Overlooked Warnings at Aging Reservoirs" [level=2] [ref=e69] - - paragraph [ref=e70]: Internal inspection memoranda, obtained through public records requests, suggest that structural concerns flagged repeatedly by field engineers were not escalated to senior staff. - - generic [ref=e71]: By Ravi Nair, Anita Kowalski, and Charles Weston - - generic [ref=e72]: - - paragraph [ref=e73]: Sacramento — A six-month review of more than four thousand pages of inspection records, interviews with twenty-three current and former engineers, and reconstructions of three near-failure incidents reveals a pattern of unheeded warnings about the structural integrity of mid-twentieth-century earthen dams across the western states. - - paragraph [ref=e74]: The records show that field engineers documented concerns about seepage, erosion, and spillway capacity in repeated annual assessments dating back at least fifteen years. In several instances, those concerns were rated “moderate” in the field reports but downgraded to “low” by the time they reached senior officials. The pattern was particularly pronounced at three facilities serving regions of more than two million residents. - - paragraph [ref=e75]: Officials at the Department of Water Resources, asked to review excerpts of the records, said in a written statement that “every reservoir under our oversight has been deemed safe for current operations” but did not specifically address the discrepancies between field and final ratings. The agency declined to make senior staff available for interviews. - - paragraph [ref=e76]: The findings come amid renewed scrutiny of aging infrastructure following the partial collapse of an earthen embankment in March that displaced more than fifteen hundred residents. Federal inspectors who responded to that incident found the proximate cause to be precisely the type of seepage concern that field engineers had flagged in three of the past four annual assessments. - - paragraph [ref=e77]: The investigative review found that of forty-seven reservoirs surveyed, sixteen had at least one instance in which a “moderate” or “high” field rating was downgraded before reaching senior management. In nine cases, the downgrades persisted for three or more consecutive years. None of the affected facilities have publicly disclosed the discrepancies. - - paragraph [ref=e78]: Engineering professional associations have, in recent years, called for an independent review of inspection workflows in the western states. A spokesperson for the Society of Hydraulic Engineers said the Society was “deeply concerned” by the patterns described and would convene a working group to examine reform options. - - button "Open Next.js Dev Tools" [ref=e84] [cursor=pointer]: - - img [ref=e85] - - alert [ref=e88] \ No newline at end of file diff --git a/.playwright-mcp/page-2026-05-19T14-59-57-959Z.yml b/.playwright-mcp/page-2026-05-19T14-59-57-959Z.yml deleted file mode 100644 index 822c5b4..0000000 --- a/.playwright-mcp/page-2026-05-19T14-59-57-959Z.yml +++ /dev/null @@ -1,74 +0,0 @@ -- generic [active] [ref=e1]: - - generic [ref=e2]: - - banner [ref=e3]: - - generic [ref=e5]: Late City Edition - - heading "The Daily Chronicle" [level=1] [ref=e6] - - generic [ref=e7]: - - generic [ref=e8]: Vol. CXLIX · No. 51,895 - - generic [ref=e9]: Tuesday, May 19, 2026 - - generic [ref=e10]: $4.00 - - generic [ref=e12]: - - article [ref=e13]: - - generic [ref=e14]: Inside Today - - heading "Senate Approves Climate Resolution After Months of Debate" [level=3] [ref=e15] - - paragraph [ref=e17]: The unanimous vote concludes a contentious legislative session marked by partisan disputes and last-minute amendments. Page A6. - - separator [ref=e18] - - heading "Tech Sector Gains as Inflation Eases" [level=3] [ref=e19] - - paragraph [ref=e21]: Major indices climbed for a fifth consecutive session as new data showed price growth slowing across consumer goods. Business B1. - - separator [ref=e22] - - heading "Drought Conditions Worsen Across the Plains" [level=3] [ref=e23] - - paragraph [ref=e25]: Officials in seven states have requested federal disaster relief as reservoir levels reach historic lows. National A12. - - separator [ref=e26] - - heading "New Exhibit Opens at the Metropolitan" [level=3] [ref=e27] - - paragraph [ref=e29]: A retrospective of mid-century textile design draws record opening crowds. Arts C3. - - article [ref=e30]: - - generic [ref=e32]: Capitol · Breaking - - heading "Historic Accord Reshapes Continental Trade After Marathon Session" [level=1] [ref=e33] - - paragraph [ref=e34]: Negotiators emerge with sweeping framework on tariffs, labor, and emissions; ratification expected within weeks - - generic [ref=e35]: - - generic [ref=e36]: By Eleanor Whitcombe and Marcus Reyes - - generic [ref=e37]: · - - generic [ref=e38]: 5 min read - - figure "Negotiators applaud after the final draft was approved Monday evening at the Continental Conference Center. Photograph by Jane Doe / Pool" [ref=e39]: - - img "Diplomats applaud after the final draft was approved" [ref=e40] - - generic [ref=e41]: - - text: Negotiators applaud after the final draft was approved Monday evening at the Continental Conference Center. - - generic [ref=e42]: Photograph by Jane Doe / Pool - - generic [ref=e43]: - - paragraph [ref=e44]: Brussels — After eleven consecutive days of negotiation that several participants described as the most demanding in a generation, delegates from twenty-three nations announced on Monday a sweeping framework to reorganize commerce across the continent. The accord, which still requires ratification by member parliaments, would harmonize tariff schedules, set common labor standards, and bind signatories to a shared emissions pathway through 2040. - - paragraph [ref=e45]: Officials briefed on the talks said the breakthrough came shortly before midnight, when a dispute over agricultural subsidies was resolved with a side letter granting transitional relief to producers in five smaller economies. The chief negotiator, Margarethe Lindqvist, called the outcome “a long argument that finally became a conversation.” - - paragraph [ref=e46]: The framework’s most consequential provisions target heavy industry. Cement, steel, and chemical producers would face a graduated carbon levy beginning in 2028, with revenues recycled into a continental investment fund for low-carbon manufacturing. Industry associations expressed cautious support, while environmental groups praised the levy’s binding architecture but warned that the timeline gives polluters too much room to delay. - - paragraph [ref=e47]: Markets reacted with measured optimism. The continental composite index closed up 1.2 percent, led by capital-goods makers expected to benefit from infrastructure investment. The currency strengthened against the dollar by 0.7 percent. Bond yields, which had climbed throughout the negotiations on fiscal-stability concerns, retreated to levels seen before the talks began. - - paragraph [ref=e48]: Domestic political reaction was mixed. The accord’s labor provisions, which establish minimum standards for paid leave and collective bargaining, drew immediate praise from union federations and equally immediate concern from chambers of commerce. The chairman of the Federation of Industries warned that small firms would struggle with compliance costs absent transitional support. - - paragraph [ref=e49]: Parliamentary leaders in three capitals signaled that ratification could occur before the summer recess. Two governments, however, indicated that they would seek public referenda before committing, a process likely to extend into the autumn. Analysts at the Centre for Trade Studies estimated that full implementation, even on the most expedited timeline, would require at least eighteen months. - - paragraph [ref=e50]: "For ordinary travelers and consumers, the immediate effects will be modest. Border procedures and product standards remain governed by existing arrangements pending ratification. The longer arc is what matters: a continent of historically fractious neighbors agreeing on a single set of rules for the most consequential decade in living memory." - - complementary [ref=e51]: - - paragraph [ref=e52]: A long argument that finally became a conversation. - - generic [ref=e53]: — Margarethe Lindqvist, Chief Negotiator - - generic [ref=e54]: - - paragraph [ref=e55]: The accord’s signing ceremony, originally scheduled for last Friday, was delayed three times as drafters reconciled competing texts on dispute resolution. The final compromise establishes an arbitration panel of nine jurists, three appointed by each of the bloc’s three regional groupings, with binding authority over commercial disputes exceeding twenty million units. - - paragraph [ref=e56]: Critics on the populist right denounced the framework as an erosion of national sovereignty, while critics on the left argued that the labor floor was set too low to meaningfully protect workers in tighter regulatory regimes. Both camps signaled that ratification battles would be fierce, particularly in legislatures with narrow majorities. - - article [ref=e57]: - - generic [ref=e58]: Foreign Desk - - heading "Coastal Nations Pledge Joint Action on Maritime Pollution" [level=2] [ref=e59] - - paragraph [ref=e60]: Pact follows years of stalled regional talks and a cascade of recent shipping accidents. - - generic [ref=e61]: By Tomás Almeida - - generic [ref=e62]: - - paragraph [ref=e63]: Lisbon — Eleven coastal nations announced a binding compact to coordinate cleanup operations and harmonize liability rules for vessels exceeding fifty thousand tons. The agreement establishes a shared rapid-response fund and creates a regional inspectorate empowered to detain non-compliant ships in any signatory port. - - paragraph [ref=e64]: Maritime industry groups received the news with caution. A spokesperson for the Continental Shipping Council acknowledged that “stronger common rules are overdue” but warned that implementation costs could fall disproportionately on smaller operators. - - paragraph [ref=e65]: The compact takes effect on January 1, pending technical annexes. Environmental observers described the pact as the most consequential maritime accord in a decade. - - article [ref=e67]: - - generic [ref=e68]: National · Investigation - - heading "Records Reveal Years of Overlooked Warnings at Aging Reservoirs" [level=2] [ref=e69] - - paragraph [ref=e70]: Internal inspection memoranda, obtained through public records requests, suggest that structural concerns flagged repeatedly by field engineers were not escalated to senior staff. - - generic [ref=e71]: By Ravi Nair, Anita Kowalski, and Charles Weston - - generic [ref=e72]: - - paragraph [ref=e73]: Sacramento — A six-month review of more than four thousand pages of inspection records, interviews with twenty-three current and former engineers, and reconstructions of three near-failure incidents reveals a pattern of unheeded warnings about the structural integrity of mid-twentieth-century earthen dams across the western states. - - paragraph [ref=e74]: The records show that field engineers documented concerns about seepage, erosion, and spillway capacity in repeated annual assessments dating back at least fifteen years. In several instances, those concerns were rated “moderate” in the field reports but downgraded to “low” by the time they reached senior officials. The pattern was particularly pronounced at three facilities serving regions of more than two million residents. - - paragraph [ref=e75]: Officials at the Department of Water Resources, asked to review excerpts of the records, said in a written statement that “every reservoir under our oversight has been deemed safe for current operations” but did not specifically address the discrepancies between field and final ratings. The agency declined to make senior staff available for interviews. - - paragraph [ref=e76]: The findings come amid renewed scrutiny of aging infrastructure following the partial collapse of an earthen embankment in March that displaced more than fifteen hundred residents. Federal inspectors who responded to that incident found the proximate cause to be precisely the type of seepage concern that field engineers had flagged in three of the past four annual assessments. - - paragraph [ref=e77]: The investigative review found that of forty-seven reservoirs surveyed, sixteen had at least one instance in which a “moderate” or “high” field rating was downgraded before reaching senior management. In nine cases, the downgrades persisted for three or more consecutive years. None of the affected facilities have publicly disclosed the discrepancies. - - paragraph [ref=e78]: Engineering professional associations have, in recent years, called for an independent review of inspection workflows in the western states. A spokesperson for the Society of Hydraulic Engineers said the Society was “deeply concerned” by the patterns described and would convene a working group to examine reform options. - - button "Open Next.js Dev Tools" [ref=e84] [cursor=pointer]: - - img [ref=e85] - - alert [ref=e88] \ No newline at end of file diff --git a/.playwright-mcp/page-2026-05-19T15-27-09-291Z.yml b/.playwright-mcp/page-2026-05-19T15-27-09-291Z.yml deleted file mode 100644 index 57c74bb..0000000 --- a/.playwright-mcp/page-2026-05-19T15-27-09-291Z.yml +++ /dev/null @@ -1,39 +0,0 @@ -- generic [active] [ref=e1]: - - generic [ref=e2]: - - banner [ref=e3]: - - heading "Die Frankfurter Zeitung" [level=1] [ref=e5] - - generic [ref=e6]: - - generic [ref=e7]: Nr. 117 · 142. Jahrgang - - generic [ref=e8]: Dienstag, 19. Mai 2026 - - generic [ref=e9]: € 3,80 - - generic [ref=e11]: - - article [ref=e12]: - - generic [ref=e13]: Im Blatt - - heading "Bundestag billigt Klimapaket nach langer Debatte" [level=3] [ref=e14] - - paragraph [ref=e16]: Die einstimmige Abstimmung beendet eine umstrittene Sitzungsperiode. Politik, Seite 4. - - separator [ref=e17] - - heading "Industrie sieht in Reform Chance und Risiko" [level=3] [ref=e18] - - paragraph [ref=e20]: Verbände begrüßen die Pläne, mahnen aber Übergangsfristen für kleinere Betriebe an. Wirtschaft, Seite 9. - - article [ref=e21]: - - generic [ref=e22]: Politik · Eilmeldung - - heading "Historischer Pakt nach langem Verhandlungsmarathon beschlossen" [level=1] [ref=e23] - - paragraph [ref=e24]: Delegierte aus dreiundzwanzig Nationen einigen sich auf einen Rahmen für Zölle, Arbeit und Emissionen - - generic [ref=e25]: Von Eleonore Witkomm und Markus Reyes - - 'figure "Die Delegationen applaudieren nach der Verabschiedung des Schlussdokuments am Montagabend. Foto: Jane Doe / Pool" [ref=e26]': - - img "Verhandlungsführer am Konferenztisch" [ref=e27] - - generic [ref=e28]: - - text: Die Delegationen applaudieren nach der Verabschiedung des Schlussdokuments am Montagabend. - - generic [ref=e29]: "Foto: Jane Doe / Pool" - - generic [ref=e30]: - - paragraph [ref=e31]: Brüssel — Nach elf aufeinanderfolgenden Verhandlungstagen, die mehrere Teilnehmer als die anstrengendsten einer Generation bezeichneten, haben Delegierte aus dreiundzwanzig Nationen am Montag einen umfassenden Rahmen vorgelegt, der den Handel auf dem gesamten Kontinent neu ordnen soll. - - paragraph [ref=e32]: Das Abkommen, das noch von den nationalen Parlamenten ratifiziert werden muss, würde Zollordnungen harmonisieren, gemeinsame Arbeitsstandards setzen und die Unterzeichner auf einen geteilten Emissionspfad bis 2040 verpflichten. Beamte, die in die Gespräche eingeweiht waren, sagten, der Durchbruch sei kurz vor Mitternacht gekommen. - - paragraph [ref=e33]: Die Märkte reagierten mit verhaltenem Optimismus. Der kontinentale Composite-Index schloss mit einem Plus von 1,2 Prozent. Die Währung legte gegenüber dem Dollar um 0,7 Prozent zu. Anleiherenditen, die während der Verhandlungen wegen fiskalischer Sorgen gestiegen waren, kehrten auf das Niveau vor Beginn der Gespräche zurück. - - complementary [ref=e34]: - - paragraph [ref=e35]: Ein langer Streit, der schließlich zum Gespräch wurde. - - generic [ref=e36]: — Margarethe Lindqvist, Chefverhandlerin - - generic [ref=e37]: - - paragraph [ref=e38]: Das Rahmenabkommen sieht eine schrittweise CO₂-Abgabe für Schwerindustrie ab 2028 vor. Einnahmen sollen in einen Investitionsfonds für klimafreundliche Fertigung fließen. - - paragraph [ref=e39]: Parlamentarische Führer in drei Hauptstädten signalisierten, dass die Ratifizierung noch vor der Sommerpause erfolgen könnte. Zwei Regierungen kündigten an, vorher Volksabstimmungen abhalten zu wollen. - - button "Open Next.js Dev Tools" [ref=e45] [cursor=pointer]: - - img [ref=e46] - - alert [ref=e49] \ No newline at end of file diff --git a/.playwright-mcp/page-2026-05-19T15-27-23-515Z.yml b/.playwright-mcp/page-2026-05-19T15-27-23-515Z.yml deleted file mode 100644 index 57c74bb..0000000 --- a/.playwright-mcp/page-2026-05-19T15-27-23-515Z.yml +++ /dev/null @@ -1,39 +0,0 @@ -- generic [active] [ref=e1]: - - generic [ref=e2]: - - banner [ref=e3]: - - heading "Die Frankfurter Zeitung" [level=1] [ref=e5] - - generic [ref=e6]: - - generic [ref=e7]: Nr. 117 · 142. Jahrgang - - generic [ref=e8]: Dienstag, 19. Mai 2026 - - generic [ref=e9]: € 3,80 - - generic [ref=e11]: - - article [ref=e12]: - - generic [ref=e13]: Im Blatt - - heading "Bundestag billigt Klimapaket nach langer Debatte" [level=3] [ref=e14] - - paragraph [ref=e16]: Die einstimmige Abstimmung beendet eine umstrittene Sitzungsperiode. Politik, Seite 4. - - separator [ref=e17] - - heading "Industrie sieht in Reform Chance und Risiko" [level=3] [ref=e18] - - paragraph [ref=e20]: Verbände begrüßen die Pläne, mahnen aber Übergangsfristen für kleinere Betriebe an. Wirtschaft, Seite 9. - - article [ref=e21]: - - generic [ref=e22]: Politik · Eilmeldung - - heading "Historischer Pakt nach langem Verhandlungsmarathon beschlossen" [level=1] [ref=e23] - - paragraph [ref=e24]: Delegierte aus dreiundzwanzig Nationen einigen sich auf einen Rahmen für Zölle, Arbeit und Emissionen - - generic [ref=e25]: Von Eleonore Witkomm und Markus Reyes - - 'figure "Die Delegationen applaudieren nach der Verabschiedung des Schlussdokuments am Montagabend. Foto: Jane Doe / Pool" [ref=e26]': - - img "Verhandlungsführer am Konferenztisch" [ref=e27] - - generic [ref=e28]: - - text: Die Delegationen applaudieren nach der Verabschiedung des Schlussdokuments am Montagabend. - - generic [ref=e29]: "Foto: Jane Doe / Pool" - - generic [ref=e30]: - - paragraph [ref=e31]: Brüssel — Nach elf aufeinanderfolgenden Verhandlungstagen, die mehrere Teilnehmer als die anstrengendsten einer Generation bezeichneten, haben Delegierte aus dreiundzwanzig Nationen am Montag einen umfassenden Rahmen vorgelegt, der den Handel auf dem gesamten Kontinent neu ordnen soll. - - paragraph [ref=e32]: Das Abkommen, das noch von den nationalen Parlamenten ratifiziert werden muss, würde Zollordnungen harmonisieren, gemeinsame Arbeitsstandards setzen und die Unterzeichner auf einen geteilten Emissionspfad bis 2040 verpflichten. Beamte, die in die Gespräche eingeweiht waren, sagten, der Durchbruch sei kurz vor Mitternacht gekommen. - - paragraph [ref=e33]: Die Märkte reagierten mit verhaltenem Optimismus. Der kontinentale Composite-Index schloss mit einem Plus von 1,2 Prozent. Die Währung legte gegenüber dem Dollar um 0,7 Prozent zu. Anleiherenditen, die während der Verhandlungen wegen fiskalischer Sorgen gestiegen waren, kehrten auf das Niveau vor Beginn der Gespräche zurück. - - complementary [ref=e34]: - - paragraph [ref=e35]: Ein langer Streit, der schließlich zum Gespräch wurde. - - generic [ref=e36]: — Margarethe Lindqvist, Chefverhandlerin - - generic [ref=e37]: - - paragraph [ref=e38]: Das Rahmenabkommen sieht eine schrittweise CO₂-Abgabe für Schwerindustrie ab 2028 vor. Einnahmen sollen in einen Investitionsfonds für klimafreundliche Fertigung fließen. - - paragraph [ref=e39]: Parlamentarische Führer in drei Hauptstädten signalisierten, dass die Ratifizierung noch vor der Sommerpause erfolgen könnte. Zwei Regierungen kündigten an, vorher Volksabstimmungen abhalten zu wollen. - - button "Open Next.js Dev Tools" [ref=e45] [cursor=pointer]: - - img [ref=e46] - - alert [ref=e49] \ No newline at end of file diff --git a/.playwright-mcp/page-2026-05-19T15-28-19-300Z.yml b/.playwright-mcp/page-2026-05-19T15-28-19-300Z.yml deleted file mode 100644 index b0f8a84..0000000 --- a/.playwright-mcp/page-2026-05-19T15-28-19-300Z.yml +++ /dev/null @@ -1,309 +0,0 @@ -- generic [ref=e2]: - - complementary [ref=e3]: - - link "NewspaperUI" [ref=e4] [cursor=pointer]: - - /url: / - - generic [ref=e5]: Production Newspaper Components - - navigation [ref=e6]: - - list [ref=e7]: - - listitem [ref=e8]: - - link "概览 / 头版" [ref=e9] [cursor=pointer]: - - /url: / - - listitem [ref=e10]: - - link "栅格系统" [ref=e11] [cursor=pointer]: - - /url: /grid-system - - listitem [ref=e12]: - - link "布局组件" [ref=e13] [cursor=pointer]: - - /url: /components/article - - list [ref=e14]: - - listitem [ref=e15]: - - link "Masthead" [ref=e16] [cursor=pointer]: - - /url: /components/masthead - - listitem [ref=e17]: - - link "Article + Layer" [ref=e18] [cursor=pointer]: - - /url: /components/article - - listitem [ref=e19]: - - link "Rule 分隔线" [ref=e20] [cursor=pointer]: - - /url: /components/rule - - listitem [ref=e21]: - - link "文本组件" [ref=e22] [cursor=pointer]: - - /url: /text - - listitem [ref=e23]: - - link "媒体组件" [ref=e24] [cursor=pointer]: - - /url: /components/media - - listitem [ref=e25]: - - link "主题与颜色" [ref=e26] [cursor=pointer]: - - /url: /theme - - listitem [ref=e27]: - - link "示例" [ref=e28] [cursor=pointer]: - - /url: /examples/spanning - - list [ref=e29]: - - listitem [ref=e30]: - - link "跨栏布局" [ref=e31] [cursor=pointer]: - - /url: /examples/spanning - - listitem [ref=e32]: - - link "响应式" [ref=e33] [cursor=pointer]: - - /url: /examples/responsive - - listitem [ref=e34]: - - link "Blackletter 头版" [ref=e35] [cursor=pointer]: - - /url: /examples/blackletter-frontpage - - main [ref=e36]: - - article [ref=e39]: - - heading "文本组件" [level=1] [ref=e40] - - paragraph [ref=e41]: 从 Headline 到 Caption 的完整文本谱系。每个组件按视觉权重映射到字体、字号、字重、 行高与颜色 token,避免硬编码样式。 - - heading "Headline 三档" [level=2] [ref=e42] - - generic [ref=e43]: - - heading "High / Medium / Low" [level=3] [ref=e45] - - generic [ref=e47]: - - generic [ref=e48]: - - generic [ref=e49]: weight="High" - - heading "A Quiet Revolution in the Treasury Forecast" [level=3] [ref=e50] - - generic [ref=e51]: - - generic [ref=e52]: weight="Medium" - - heading "Whitehall Confirms Infrastructure Review" [level=3] [ref=e53] - - generic [ref=e54]: - - generic [ref=e55]: weight="Low" - - 'heading "Briefing: regional rail commitments" [level=3] [ref=e56]' - - heading "Subhead 两档" [level=2] [ref=e57] - - generic [ref=e58]: - - heading "High / Medium" [level=3] [ref=e60] - - generic [ref=e62]: - - paragraph [ref=e63]: A measured recalibration of regional priorities is expected to define the chancellor’s autumn agenda. - - paragraph [ref=e64]: Officials emphasized that the headline figures should be read as a planning envelope rather than a binding allocation. - - heading "Kicker" [level=2] [ref=e65] - - generic [ref=e66]: - - heading "朱红 small-caps,挂在 Headline 上方" [level=3] [ref=e68] - - generic [ref=e70]: - - generic [ref=e71]: POLITICS · WHITEHALL - - heading "A Standing Technical Commission, Quietly Proposed" [level=3] [ref=e72] - - heading "BodyText 多栏文字流" [level=2] [ref=e73] - - generic [ref=e74]: - - generic [ref=e75]: - - heading "单栏" [level=3] [ref=e76] - - paragraph [ref=e77]: 默认形态,适合中等宽度的文章正文。 - - generic [ref=e79]: - - paragraph [ref=e80]: Whitehall officials confirmed late Tuesday that the long-anticipated review of national infrastructure funding will be tabled before the recess. The 248-page document, drafted across three departments, recommends a recalibration of regional priorities and a measured shift toward rail electrification. Critics inside the cabinet caution that the timing risks overshadowing the chancellor's autumn statement, while supporters describe the proposals as the most coherent strategic blueprint in a generation. - - paragraph [ref=e81]: Markets responded cautiously through the morning session. The pound traded sideways against the dollar, gilts firmed by three basis points, and the FTSE 100 closed marginally lower as defensive sectors absorbed the day's modest outflows. Analysts at three of the City's largest houses framed the move as a holding pattern, awaiting further detail on the spending envelope rather than a verdict on its substance. - - generic [ref=e82]: - - generic [ref=e83]: - - heading "三栏 + 首字下沉" [level=3] [ref=e84] - - paragraph [ref=e85]: "开启 columns={3} 与 dropCap,第一段首字母自动下沉占 2-3 行。" - - generic [ref=e87]: - - paragraph [ref=e88]: Whitehall officials confirmed late Tuesday that the long-anticipated review of national infrastructure funding will be tabled before the recess. The 248-page document, drafted across three departments, recommends a recalibration of regional priorities and a measured shift toward rail electrification. Critics inside the cabinet caution that the timing risks overshadowing the chancellor's autumn statement, while supporters describe the proposals as the most coherent strategic blueprint in a generation. - - paragraph [ref=e89]: Markets responded cautiously through the morning session. The pound traded sideways against the dollar, gilts firmed by three basis points, and the FTSE 100 closed marginally lower as defensive sectors absorbed the day's modest outflows. Analysts at three of the City's largest houses framed the move as a holding pattern, awaiting further detail on the spending envelope rather than a verdict on its substance. - - paragraph [ref=e90]: In Manchester, regional officials greeted the announcement with measured optimism. "We have lobbied for this kind of clarity for the better part of a decade," said one senior figure who requested anonymity to discuss internal deliberations. The mayor's office is expected to issue a formal response by week's end, focusing on commitments to the trans-Pennine corridor and the long-deferred upgrade of suburban tram capacity. - - paragraph [ref=e91]: "Beyond the immediate fiscal arithmetic, the review's most consequential proposal may be its quietest: a standing technical commission, modeled on Australia's Infrastructure Australia, to depoliticize project sequencing. Whether that body acquires teeth — or settles into the advisory torpor that has consumed earlier attempts — will be determined by the legislation expected in the spring." - - button "查看代码" [ref=e93] [cursor=pointer] - - generic [ref=e94]: - - generic [ref=e95]: - - heading "两栏(无 dropCap)" [level=3] [ref=e96] - - paragraph [ref=e97]: "columns={2},栏间细线由 nui-column-rule 提供。" - - generic [ref=e99]: - - paragraph [ref=e100]: Whitehall officials confirmed late Tuesday that the long-anticipated review of national infrastructure funding will be tabled before the recess. The 248-page document, drafted across three departments, recommends a recalibration of regional priorities and a measured shift toward rail electrification. Critics inside the cabinet caution that the timing risks overshadowing the chancellor's autumn statement, while supporters describe the proposals as the most coherent strategic blueprint in a generation. - - paragraph [ref=e101]: Markets responded cautiously through the morning session. The pound traded sideways against the dollar, gilts firmed by three basis points, and the FTSE 100 closed marginally lower as defensive sectors absorbed the day's modest outflows. Analysts at three of the City's largest houses framed the move as a holding pattern, awaiting further detail on the spending envelope rather than a verdict on its substance. - - paragraph [ref=e102]: In Manchester, regional officials greeted the announcement with measured optimism. "We have lobbied for this kind of clarity for the better part of a decade," said one senior figure who requested anonymity to discuss internal deliberations. The mayor's office is expected to issue a formal response by week's end, focusing on commitments to the trans-Pennine corridor and the long-deferred upgrade of suburban tram capacity. - - heading "Quote 引用" [level=2] [ref=e103] - - generic [ref=e104]: - - heading "block / inline 对照" [level=3] [ref=e106] - - generic [ref=e108]: - - blockquote [ref=e109]: We have lobbied for this kind of clarity for the better part of a decade. - - paragraph [ref=e111]: - - text: 按一位资深内阁人士的说法,这份评估 - - emphasis [ref=e112]: 是一个时代以来最连贯的战略蓝图 - - text: ,但能否落地仍取决于春季立法。 - - heading "Byline / Dateline / Caption" [level=2] [ref=e113] - - generic [ref=e114]: - - heading "元信息组件" [level=3] [ref=e116] - - generic [ref=e118]: - - generic [ref=e119]: - - generic [ref=e120]: BY ALICE SMITH - - text: LONDON — - - figure "A view of the Treasury terrace at dusk; the new commission will report here from May. Photograph by Jane Doe" [ref=e121]: - - generic [ref=e123]: - - text: A view of the Treasury terrace at dusk; the new commission will report here from May. - - generic [ref=e124]: Photograph by Jane Doe - - heading "视觉权重映射表" [level=2] [ref=e125] - - paragraph [ref=e127]: - - text: 下表从 - - code [ref=e128]: visualWeights - - text: 数据动态生成,反映组件实际渲染时所用的 token。修改 theme 后表格自动同步。 - - table [ref=e130]: - - rowgroup [ref=e131]: - - row "组件 权重 字体 字号 字重 行高 颜色" [ref=e132]: - - columnheader "组件" [ref=e133] - - columnheader "权重" [ref=e134] - - columnheader "字体" [ref=e135] - - columnheader "字号" [ref=e136] - - columnheader "字重" [ref=e137] - - columnheader "行高" [ref=e138] - - columnheader "颜色" [ref=e139] - - rowgroup [ref=e140]: - - row "Masthead Standard --font-family-masthead 56px 700 1 --nui-text-primary" [ref=e141]: - - cell "Masthead" [ref=e142] - - cell "Standard" [ref=e143] - - cell "--font-family-masthead" [ref=e144]: - - code [ref=e145]: "--font-family-masthead" - - cell "56px" [ref=e146] - - cell "700" [ref=e147] - - cell "1" [ref=e148] - - cell "--nui-text-primary" [ref=e149]: - - code [ref=e150]: "--nui-text-primary" - - row "Headline High --font-family-display 48px 600 1.05 --nui-text-primary" [ref=e151]: - - cell "Headline" [ref=e152] - - cell "High" [ref=e153] - - cell "--font-family-display" [ref=e154]: - - code [ref=e155]: "--font-family-display" - - cell "48px" [ref=e156] - - cell "600" [ref=e157] - - cell "1.05" [ref=e158] - - cell "--nui-text-primary" [ref=e159]: - - code [ref=e160]: "--nui-text-primary" - - row "Headline Medium --font-family-headline 32px 600 1.1 --nui-text-primary" [ref=e161]: - - cell "Headline" [ref=e162] - - cell "Medium" [ref=e163] - - cell "--font-family-headline" [ref=e164]: - - code [ref=e165]: "--font-family-headline" - - cell "32px" [ref=e166] - - cell "600" [ref=e167] - - cell "1.1" [ref=e168] - - cell "--nui-text-primary" [ref=e169]: - - code [ref=e170]: "--nui-text-primary" - - row "Headline Low --font-family-headline 22px 500 1.2 --nui-text-body" [ref=e171]: - - cell "Headline" [ref=e172] - - cell "Low" [ref=e173] - - cell "--font-family-headline" [ref=e174]: - - code [ref=e175]: "--font-family-headline" - - cell "22px" [ref=e176] - - cell "500" [ref=e177] - - cell "1.2" [ref=e178] - - cell "--nui-text-body" [ref=e179]: - - code [ref=e180]: "--nui-text-body" - - row "Subhead High --font-family-headline 18px 500 1.3 --nui-text-secondary" [ref=e181]: - - cell "Subhead" [ref=e182] - - cell "High" [ref=e183] - - cell "--font-family-headline" [ref=e184]: - - code [ref=e185]: "--font-family-headline" - - cell "18px" [ref=e186] - - cell "500" [ref=e187] - - cell "1.3" [ref=e188] - - cell "--nui-text-secondary" [ref=e189]: - - code [ref=e190]: "--nui-text-secondary" - - row "Subhead Medium --font-family-headline 16px 400 1.35 --nui-text-secondary" [ref=e191]: - - cell "Subhead" [ref=e192] - - cell "Medium" [ref=e193] - - cell "--font-family-headline" [ref=e194]: - - code [ref=e195]: "--font-family-headline" - - cell "16px" [ref=e196] - - cell "400" [ref=e197] - - cell "1.35" [ref=e198] - - cell "--nui-text-secondary" [ref=e199]: - - code [ref=e200]: "--nui-text-secondary" - - row "Kicker Standard --font-family-meta 12px 600 1.2 --nui-accent-primary" [ref=e201]: - - cell "Kicker" [ref=e202] - - cell "Standard" [ref=e203] - - cell "--font-family-meta" [ref=e204]: - - code [ref=e205]: "--font-family-meta" - - cell "12px" [ref=e206] - - cell "600" [ref=e207] - - cell "1.2" [ref=e208] - - cell "--nui-accent-primary" [ref=e209]: - - code [ref=e210]: "--nui-accent-primary" - - row "BodyText High --font-family-body 16px 400 1.6 --nui-text-body" [ref=e211]: - - cell "BodyText" [ref=e212] - - cell "High" [ref=e213] - - cell "--font-family-body" [ref=e214]: - - code [ref=e215]: "--font-family-body" - - cell "16px" [ref=e216] - - cell "400" [ref=e217] - - cell "1.6" [ref=e218] - - cell "--nui-text-body" [ref=e219]: - - code [ref=e220]: "--nui-text-body" - - row "BodyText Medium --font-family-body 15px 400 1.55 --nui-text-body" [ref=e221]: - - cell "BodyText" [ref=e222] - - cell "Medium" [ref=e223] - - cell "--font-family-body" [ref=e224]: - - code [ref=e225]: "--font-family-body" - - cell "15px" [ref=e226] - - cell "400" [ref=e227] - - cell "1.55" [ref=e228] - - cell "--nui-text-body" [ref=e229]: - - code [ref=e230]: "--nui-text-body" - - row "BodyText Low --font-family-body 13px 400 1.5 --nui-text-secondary" [ref=e231]: - - cell "BodyText" [ref=e232] - - cell "Low" [ref=e233] - - cell "--font-family-body" [ref=e234]: - - code [ref=e235]: "--font-family-body" - - cell "13px" [ref=e236] - - cell "400" [ref=e237] - - cell "1.5" [ref=e238] - - cell "--nui-text-secondary" [ref=e239]: - - code [ref=e240]: "--nui-text-secondary" - - row "Quote High --font-family-body 17px 400 1.55 --nui-text-quote" [ref=e241]: - - cell "Quote" [ref=e242] - - cell "High" [ref=e243] - - cell "--font-family-body" [ref=e244]: - - code [ref=e245]: "--font-family-body" - - cell "17px" [ref=e246] - - cell "400" [ref=e247] - - cell "1.55" [ref=e248] - - cell "--nui-text-quote" [ref=e249]: - - code [ref=e250]: "--nui-text-quote" - - row "Quote Medium --font-family-body 15px 400 1.5 --nui-text-quote" [ref=e251]: - - cell "Quote" [ref=e252] - - cell "Medium" [ref=e253] - - cell "--font-family-body" [ref=e254]: - - code [ref=e255]: "--font-family-body" - - cell "15px" [ref=e256] - - cell "400" [ref=e257] - - cell "1.5" [ref=e258] - - cell "--nui-text-quote" [ref=e259]: - - code [ref=e260]: "--nui-text-quote" - - row "PullQuote High --font-family-display 26px 600 1.2 --nui-text-primary" [ref=e261]: - - cell "PullQuote" [ref=e262] - - cell "High" [ref=e263] - - cell "--font-family-display" [ref=e264]: - - code [ref=e265]: "--font-family-display" - - cell "26px" [ref=e266] - - cell "600" [ref=e267] - - cell "1.2" [ref=e268] - - cell "--nui-text-primary" [ref=e269]: - - code [ref=e270]: "--nui-text-primary" - - row "PullQuote Medium --font-family-display 20px 500 1.25 --nui-text-body" [ref=e271]: - - cell "PullQuote" [ref=e272] - - cell "Medium" [ref=e273] - - cell "--font-family-display" [ref=e274]: - - code [ref=e275]: "--font-family-display" - - cell "20px" [ref=e276] - - cell "500" [ref=e277] - - cell "1.25" [ref=e278] - - cell "--nui-text-body" [ref=e279]: - - code [ref=e280]: "--nui-text-body" - - row "Byline Standard --font-family-meta 12px 500 1.3 --nui-text-secondary" [ref=e281]: - - cell "Byline" [ref=e282] - - cell "Standard" [ref=e283] - - cell "--font-family-meta" [ref=e284]: - - code [ref=e285]: "--font-family-meta" - - cell "12px" [ref=e286] - - cell "500" [ref=e287] - - cell "1.3" [ref=e288] - - cell "--nui-text-secondary" [ref=e289]: - - code [ref=e290]: "--nui-text-secondary" - - row "Dateline Standard --font-family-meta 12px 600 1.3 --nui-text-primary" [ref=e291]: - - cell "Dateline" [ref=e292] - - cell "Standard" [ref=e293] - - cell "--font-family-meta" [ref=e294]: - - code [ref=e295]: "--font-family-meta" - - cell "12px" [ref=e296] - - cell "600" [ref=e297] - - cell "1.3" [ref=e298] - - cell "--nui-text-primary" [ref=e299]: - - code [ref=e300]: "--nui-text-primary" - - row "Caption Standard --font-family-body 13px 400 1.4 --nui-text-secondary" [ref=e301]: - - cell "Caption" [ref=e302] - - cell "Standard" [ref=e303] - - cell "--font-family-body" [ref=e304]: - - code [ref=e305]: "--font-family-body" - - cell "13px" [ref=e306] - - cell "400" [ref=e307] - - cell "1.4" [ref=e308] - - cell "--nui-text-secondary" [ref=e309]: - - code [ref=e310]: "--nui-text-secondary" \ No newline at end of file diff --git a/.playwright-mcp/page-2026-05-19T15-28-45-172Z.yml b/.playwright-mcp/page-2026-05-19T15-28-45-172Z.yml deleted file mode 100644 index 44eb867..0000000 --- a/.playwright-mcp/page-2026-05-19T15-28-45-172Z.yml +++ /dev/null @@ -1,121 +0,0 @@ -- generic [ref=e2]: - - complementary [ref=e3]: - - link "NewspaperUI" [ref=e4] [cursor=pointer]: - - /url: / - - generic [ref=e5]: Production Newspaper Components - - navigation [ref=e6]: - - list [ref=e7]: - - listitem [ref=e8]: - - link "概览 / 头版" [ref=e9] [cursor=pointer]: - - /url: / - - listitem [ref=e10]: - - link "栅格系统" [ref=e11] [cursor=pointer]: - - /url: /grid-system - - listitem [ref=e12]: - - link "布局组件" [ref=e13] [cursor=pointer]: - - /url: /components/article - - list [ref=e14]: - - listitem [ref=e15]: - - link "Masthead" [ref=e16] [cursor=pointer]: - - /url: /components/masthead - - listitem [ref=e17]: - - link "Article + Layer" [ref=e18] [cursor=pointer]: - - /url: /components/article - - listitem [ref=e19]: - - link "Rule 分隔线" [ref=e20] [cursor=pointer]: - - /url: /components/rule - - listitem [ref=e21]: - - link "文本组件" [ref=e22] [cursor=pointer]: - - /url: /text - - listitem [ref=e23]: - - link "媒体组件" [ref=e24] [cursor=pointer]: - - /url: /components/media - - listitem [ref=e25]: - - link "主题与颜色" [ref=e26] [cursor=pointer]: - - /url: /theme - - listitem [ref=e27]: - - link "示例" [ref=e28] [cursor=pointer]: - - /url: /examples/spanning - - list [ref=e29]: - - listitem [ref=e30]: - - link "跨栏布局" [ref=e31] [cursor=pointer]: - - /url: /examples/spanning - - listitem [ref=e32]: - - link "响应式" [ref=e33] [cursor=pointer]: - - /url: /examples/responsive - - listitem [ref=e34]: - - link "Blackletter 头版" [ref=e35] [cursor=pointer]: - - /url: /examples/blackletter-frontpage - - main [ref=e36]: - - article [ref=e39]: - - heading "主题与颜色" [level=1] [ref=e40] - - paragraph [ref=e41]: 设计哲学:暖灰系 + warm off-white。不使用纯黑(#000)也不使用纯白(#FFF), 把屏幕配色带回纸面的温度。 - - heading "主题切换" [level=2] [ref=e42] - - paragraph [ref=e44]: 点击切换深色模式。深色基调采用暖深棕黑(#14110D)而非冷蓝黑,保持报纸的纸性触感。 - - button "Dark Mode" [ref=e46] [cursor=pointer] - - heading "文字色 token" [level=2] [ref=e47] - - generic [ref=e48]: - - generic [ref=e51]: - - code [ref=e52]: "--nui-text-primary" - - generic [ref=e53]: "#1A1A1A · 标题、主文本" - - generic [ref=e56]: - - code [ref=e57]: "--nui-text-body" - - generic [ref=e58]: "#22201C · 正文" - - generic [ref=e61]: - - code [ref=e62]: "--nui-text-secondary" - - generic [ref=e63]: "#4A4742 · Subhead、次级" - - generic [ref=e66]: - - code [ref=e67]: "--nui-text-muted" - - generic [ref=e68]: "#6E6A63 · Caption、注释" - - generic [ref=e71]: - - code [ref=e72]: "--nui-text-quote" - - generic [ref=e73]: "#2E2A24 · Quote 主体" - - heading "背景与分隔线 token" [level=2] [ref=e74] - - generic [ref=e75]: - - generic [ref=e78]: - - code [ref=e79]: "--nui-bg-page" - - generic [ref=e80]: "#F7F4ED · Warm off-white 页面底" - - generic [ref=e83]: - - code [ref=e84]: "--nui-bg-surface" - - generic [ref=e85]: "#FBF9F4 · 次级面板背景" - - generic [ref=e88]: - - code [ref=e89]: "--nui-rule-hairline" - - generic [ref=e90]: "#C9C2B2 · 细线分隔" - - generic [ref=e93]: - - code [ref=e94]: "--nui-rule-decorative" - - generic [ref=e95]: "#1A1A1A · 强调线" - - generic [ref=e98]: - - code [ref=e99]: "--nui-highlight" - - generic [ref=e100]: "#F2E9C8 · 旧报纸黄" - - heading "强调色 token" [level=2] [ref=e101] - - generic [ref=e102]: - - generic [ref=e105]: - - code [ref=e106]: "--nui-accent-primary" - - generic [ref=e107]: "#7A1F1F · Brick red, Kicker / Masthead 强调" - - generic [ref=e110]: - - code [ref=e111]: "--nui-accent-ink-blue" - - generic [ref=e112]: "#1B2A4A · The Times 蓝" - - generic [ref=e115]: - - code [ref=e116]: "--nui-highlight" - - generic [ref=e117]: "#F2E9C8 · 高亮底色" - - heading "字体家族" [level=2] [ref=e118] - - paragraph [ref=e120]: 全部经典严肃风字体:Cormorant Garamond 承担报头与展示,Source Serif 4 贯穿正文与标题,Inter 处理 small-caps 元信息。Blackletter preset 通过 UnifrakturMaguntia 切入哥特报头。 - - generic [ref=e121]: - - generic [ref=e122]: - - generic [ref=e123]: "--font-family-masthead · Cormorant Garamond — 报头" - - generic [ref=e124]: The Daily Chronicle - - generic [ref=e125]: - - generic [ref=e126]: "--font-family-blackletter · UnifrakturMaguntia — Blackletter preset" - - generic [ref=e127]: The Daily Chronicle - - generic [ref=e128]: - - generic [ref=e129]: "--font-family-display · Source Serif 4 — Display 大字头条" - - generic [ref=e130]: A Quiet Revolution - - generic [ref=e131]: - - generic [ref=e132]: "--font-family-headline · Source Serif 4 — Headline / Subhead" - - generic [ref=e133]: Whitehall confirms review - - generic [ref=e134]: - - generic [ref=e135]: "--font-family-body · Source Serif 4 — 正文" - - generic [ref=e136]: In Manchester, regional officials greeted the announcement. - - generic [ref=e137]: - - generic [ref=e138]: "--font-family-meta · Inter — small-caps 元信息" - - generic [ref=e139]: BY ALICE SMITH · LONDON \ No newline at end of file diff --git a/HANDOFF.md b/HANDOFF.md new file mode 100644 index 0000000..437da42 --- /dev/null +++ b/HANDOFF.md @@ -0,0 +1,642 @@ +# NewspaperUI 交接文档 + +## 当前完成进度 + +### ✅ 已完成 + +1. **Stage 1**:theme + utils 基础设施重写 +2. **Stage 2**:18 个组件全部重写(Layout / Section / Article / Layer / Masthead / Rule / Headline / Subhead / Kicker / BodyText / Quote / Byline / Dateline / Caption / Image / Figure / Video / PullQuote) +3. **Stage 3**:生产级头版 demo(NYT + Blackletter) +4. **Stage 4**:9 个文档章节 +5. **Stage 5**:验证(29/29 测试通过,Design Agent 复评 9/10) +6. **同步 design.md** +7. **#17**:修复首页 + Blackletter 头版的空白问题(Briefs 增加新闻条目,BodyText 增加段落) +8. **#18**:修复 TypeScript lint warnings(重新 build 生成 .d.ts) +9. **#16**:Landing Page + Header 重构 + - 新建 `packages/docs/components/Header.tsx`(全局 sticky Header,包含 Docs/Components/Themes/Blocks/GitHub 导航) + - 重写 `packages/docs/app/layout.tsx` 引入 Header + - 调整 `packages/docs/app/(docs)/layout.tsx` 适配 Header 高度(65px) + - 调整 `packages/docs/components/Sidebar.tsx` sticky `top: 65px` + - **NYT 头版迁移到 `/examples/nyt-frontpage`** + - 新建 `packages/docs/app/page.tsx` 作为报纸风格 Landing Page,使用 Masthead + 7 个 demo 卡片垂直分布 + +### ⏳ 未完成 + +10. **#15**:Blocks 页面 6 个完整 demo(**核心剩余工作**) +11. **#13**:Stage 6 — JSDoc + README + +--- + +## 系统现状 + +### Monorepo 结构 + +``` +/Users/joi-com/Desktop/space/newspaperui +├── packages/ +│ ├── theme/ # CSS variables + 视觉权重表 + 字体 + 排版工具类 +│ ├── utils/ # validateSpan / clampSpan / cx +│ ├── components/ # 18 个 React 组件 +│ └── docs/ # Next.js 15 文档站 +├── design.md # 设计规范(已同步修订版) +├── HANDOFF.md # 本文档 +└── SKILL.md # 工作流方法论 +``` + +### 工具链版本 + +- pnpm workspace + Turborepo +- React 18.3 / TypeScript 5.7 / Next.js 15.5 / Vite 5.4 / Tailwind 3.4 +- Vitest + React Testing Library + +### 关键命令 + +```bash +cd /Users/joi-com/Desktop/space/newspaperui + +# 全量构建 +pnpm build + +# 测试 +pnpm --filter @newspaperui/utils test # 11 tests +pnpm --filter @newspaperui/components test # 18 tests + +# 开发服务器 +pnpm --filter @newspaperui/docs dev # http://localhost:3000 +``` + +### 已通过验证 + +- `pnpm build` 4 packages 全部通过,0 warning +- `pnpm test` 29/29 通过 +- Playwright 实测 13 项视觉清单全 PASS +- Design Agent 复评 9.0/10 + +--- + +## 已实现的组件 API + +### 布局组件 + +```typescript +import { Layout, Section, Article, Layer, Masthead, Rule } from '@newspaperui/components'; + + +
+
+ + + +``` + +### 文本组件 + +```typescript +import { + Headline, Subhead, Kicker, BodyText, Quote, Byline, Dateline, Caption, +} from '@newspaperui/components'; + + + +STANDARD SMALL CAPS RED + +

段间无空行,第二段起首行缩进 1em

+
+ +BY ALICE SMITH +LONDON — +说明文字 +``` + +### 媒体组件 + +```typescript + +
+
@@ -66,6 +93,31 @@ export default function BlackletterFrontPage() { mit einem Plus von 1,2 Prozent. Die Währung legte gegenüber dem Dollar um 0,7 Prozent zu. Anleiherenditen, die während der Verhandlungen wegen fiskalischer Sorgen gestiegen waren, kehrten auf das Niveau vor Beginn der Gespräche zurück.

+ +

Die weitreichendsten Bestimmungen des Rahmenabkommens betreffen die Schwerindustrie. + Zement-, Stahl- und Chemieproduzenten müssten ab 2028 eine gestaffelte CO₂-Abgabe + entrichten, deren Einnahmen in einen kontinentalen Investitionsfonds für klimafreundliche + Fertigung fließen sollen. Industrieverbände äußerten vorsichtige Zustimmung, während + Umweltgruppen die verbindliche Architektur lobten, aber warnten, der Zeitplan gebe + Verschmutzern zu viel Spielraum.

+ +

Die innenpolitischen Reaktionen fielen gemischt aus. Die Arbeitsbestimmungen des + Abkommens, die Mindeststandards für bezahlten Urlaub und Tarifverhandlungen festlegen, + stießen bei Gewerkschaften auf sofortige Zustimmung und bei Wirtschaftskammern auf + ebenso sofortige Bedenken. Der Vorsitzende des Bundesverbandes der Industrie warnte, + kleine Unternehmen würden ohne Übergangsunterstützung mit den Compliance-Kosten kämpfen.

+ +

Parlamentarische Führer in drei Hauptstädten signalisierten, dass die Ratifizierung + noch vor der Sommerpause erfolgen könnte. Zwei Regierungen kündigten jedoch an, vorher + Volksabstimmungen abhalten zu wollen — ein Prozess, der sich voraussichtlich bis in den + Herbst hinziehen wird. Analysten des Zentrums für Handelsstudien schätzten, dass die + vollständige Umsetzung selbst im günstigsten Fall mindestens achtzehn Monate erfordern würde.

+ +

Für gewöhnliche Reisende und Verbraucher werden die unmittelbaren Auswirkungen bescheiden + sein. Grenzverfahren und Produktstandards unterliegen bis zur Ratifizierung weiterhin den + bestehenden Regelungen. Der längere Bogen, so argumentierten die Verhandlungsführer, sei + das Entscheidende: ein Kontinent historisch zerstrittener Nachbarn, der sich auf ein + einheitliches Regelwerk für das folgenreichste Jahrzehnt seit Menschengedenken einigt.

@@ -79,6 +131,21 @@ export default function BlackletterFrontPage() {

Parlamentarische Führer in drei Hauptstädten signalisierten, dass die Ratifizierung noch vor der Sommerpause erfolgen könnte. Zwei Regierungen kündigten an, vorher Volksabstimmungen abhalten zu wollen.

+ +

Die Unterzeichnungszeremonie, ursprünglich für vergangenen Freitag geplant, wurde + dreimal verschoben, während die Verfasser konkurrierende Texte zur Streitbeilegung + abglichen. Der endgültige Kompromiss sieht ein Schiedsgericht aus neun Juristen vor, + je drei ernannt von jeder der drei regionalen Gruppierungen des Blocks.

+ +

Kritiker von rechts verurteilten das Rahmenwerk als Erosion nationaler Souveränität, + während Kritiker von links argumentierten, der Arbeitsstandard sei zu niedrig angesetzt, + um Arbeitnehmer in strengeren Regulierungsregimen wirksam zu schützen. Beide Lager + signalisierten, dass die Ratifizierungskämpfe heftig werden dürften.

+ +

Historiker der kontinentalen Integration merkten an, dass der Umfang des Abkommens + jede einzelne Vereinbarung seit den Nachkriegs-Wiederaufbauverträgen übertrifft. Was + dieses Abkommen anders mache, so Professor Elena Marchetti, sei dass es jeden Haushalt + berühre — nicht nur durch den Handel, sondern durch die Luft und die Löhne.

diff --git a/packages/docs/app/examples/nyt-frontpage/page.tsx b/packages/docs/app/examples/nyt-frontpage/page.tsx new file mode 100644 index 0000000..7c8bfd0 --- /dev/null +++ b/packages/docs/app/examples/nyt-frontpage/page.tsx @@ -0,0 +1,277 @@ +'use client'; + +import { + Layout, Section, Article, Masthead, Rule, + Headline, Subhead, Kicker, BodyText, Byline, Dateline, + Figure, PullQuote, +} from '@newspaperui/components'; + +export default function FrontPage() { + return ( + + + +
+
+ Inside Today + + Senate Approves Climate Resolution After Months of Debate + + +

The unanimous vote concludes a contentious legislative session marked by partisan disputes + and last-minute amendments. Page A6.

+
+ + + + Tech Sector Gains as Inflation Eases + +

Major indices climbed for a fifth consecutive session as new data showed price growth + slowing across consumer goods. Business B1.

+
+ + + + Drought Conditions Worsen Across the Plains + +

Officials in seven states have requested federal disaster relief as reservoir levels reach + historic lows. National A12.

+
+ + + + New Exhibit Opens at the Metropolitan + +

A retrospective of mid-century textile design draws record opening crowds. Arts C3.

+
+ + + + City Council Approves Transit Expansion + +

The $2.4 billion plan adds three new rail lines and extends service hours on existing routes. Metro A8.

+
+ + + + University Announces Record Enrollment + +

Applications rose 18 percent this cycle, driven by expanded financial aid programs. Education B4.

+
+ + + + Harbor Restoration Project Begins + +

Engineers will dredge sediment and rebuild seawalls over a three-year timeline. Local A10.

+
+ + + + Orchestra Names New Music Director + +

The appointment ends a two-year search following the previous director’s retirement. Arts C1.

+
+
+ +
+
Capitol · Breaking
+ + Historic Accord Reshapes Continental Trade After Marathon Session + + + Negotiators emerge with sweeping framework on tariffs, labor, and emissions; ratification expected within weeks + +
+ By Eleanor Whitcombe and Marcus Reyes + · + 5 min read +
+ +
+ + +

Brussels — After eleven consecutive days of negotiation that several + participants described as the most demanding in a generation, delegates from twenty-three nations + announced on Monday a sweeping framework to reorganize commerce across the continent. The accord, + which still requires ratification by member parliaments, would harmonize tariff schedules, set + common labor standards, and bind signatories to a shared emissions pathway through 2040.

+ +

Officials briefed on the talks said the breakthrough came shortly before midnight, when a + dispute over agricultural subsidies was resolved with a side letter granting transitional relief + to producers in five smaller economies. The chief negotiator, Margarethe Lindqvist, called the + outcome “a long argument that finally became a conversation.”

+ +

The framework’s most consequential provisions target heavy industry. Cement, steel, and + chemical producers would face a graduated carbon levy beginning in 2028, with revenues recycled + into a continental investment fund for low-carbon manufacturing. Industry associations expressed + cautious support, while environmental groups praised the levy’s binding architecture but warned + that the timeline gives polluters too much room to delay.

+ +

Markets reacted with measured optimism. The continental composite index closed up 1.2 percent, + led by capital-goods makers expected to benefit from infrastructure investment. The currency + strengthened against the dollar by 0.7 percent. Bond yields, which had climbed throughout the + negotiations on fiscal-stability concerns, retreated to levels seen before the talks began.

+ +

Domestic political reaction was mixed. The accord’s labor provisions, which establish minimum + standards for paid leave and collective bargaining, drew immediate praise from union federations + and equally immediate concern from chambers of commerce. The chairman of the Federation of + Industries warned that small firms would struggle with compliance costs absent transitional support.

+ +

Parliamentary leaders in three capitals signaled that ratification could occur before the + summer recess. Two governments, however, indicated that they would seek public referenda before + committing, a process likely to extend into the autumn. Analysts at the Centre for Trade Studies + estimated that full implementation, even on the most expedited timeline, would require at least + eighteen months.

+ +

For ordinary travelers and consumers, the immediate effects will be modest. Border procedures + and product standards remain governed by existing arrangements pending ratification. The longer + arc is what matters: a continent of historically fractious neighbors agreeing on a single set of + rules for the most consequential decade in living memory.

+ +

The accord’s environmental chapter, which drew the most sustained opposition during + negotiations, establishes a continental carbon market linked to existing national schemes. + Permits would be tradeable across borders beginning in 2030, with a price floor set at + forty-five units per ton of carbon dioxide equivalent. Economists at the Institute for + Climate Economics estimated that the floor alone would reduce emissions by eight to twelve + percent within the first five years of operation.

+ +

Labor unions in the industrial heartland expressed qualified support. The secretary-general + of the Metalworkers’ Federation said the transition fund “acknowledges what we have argued + for years: that decarbonization cannot be built on the backs of workers.” But she cautioned + that the fund’s governance structure, which gives equal weight to employer and employee + representatives, could slow disbursements at a moment when speed matters most.

+ +

Small and medium enterprises, which employ roughly sixty percent of the continental + workforce, face a distinct set of challenges. The accord exempts firms below a revenue + threshold from the carbon levy for three years, but compliance with the new labor standards + is immediate. Business associations in four countries have already requested technical + assistance programs to help smaller firms adapt their payroll and reporting systems.

+ +

Historians of continental integration noted that the accord’s scope exceeds any single + agreement since the postwar reconstruction treaties. “What makes this different,” said + Professor Elena Marchetti of the University of Turin, “is that it touches every household— + not just through trade, but through the air they breathe and the wages they earn.”

+
+ + + A long argument that finally became a conversation. + + + +

The accord’s signing ceremony, originally scheduled for last Friday, was delayed three times + as drafters reconciled competing texts on dispute resolution. The final compromise establishes + an arbitration panel of nine jurists, three appointed by each of the bloc’s three regional + groupings, with binding authority over commercial disputes exceeding twenty million units.

+ +

Critics on the populist right denounced the framework as an erosion of national sovereignty, + while critics on the left argued that the labor floor was set too low to meaningfully protect + workers in tighter regulatory regimes. Both camps signaled that ratification battles would be + fierce, particularly in legislatures with narrow majorities.

+
+
+ +
+ Foreign Desk + + Coastal Nations Pledge Joint Action on Maritime Pollution + + + Pact follows years of stalled regional talks and a cascade of recent shipping accidents. + + By Tomás Almeida + + +

Lisbon — Eleven coastal nations announced a binding compact to coordinate + cleanup operations and harmonize liability rules for vessels exceeding fifty thousand tons. The + agreement establishes a shared rapid-response fund and creates a regional inspectorate empowered + to detain non-compliant ships in any signatory port.

+ +

Maritime industry groups received the news with caution. A spokesperson for the Continental + Shipping Council acknowledged that “stronger common rules are overdue” but warned that + implementation costs could fall disproportionately on smaller operators.

+ +

The compact takes effect on January 1, pending technical annexes. Environmental observers + described the pact as the most consequential maritime accord in a decade.

+
+ + + + Fisheries Report Warns of Declining Stocks + +

Annual survey data shows a 14 percent drop in key commercial species across the northern + shelf. Scientists attribute the decline to warming waters and overfishing in adjacent + unregulated zones. Environment A9.

+
+ + + + Rail Strike Averted After Late-Night Deal + +

Workers accepted a revised pay offer minutes before the midnight deadline. Services + resume on normal schedules. Transport B2.

+
+
+
+ +
+
+ National · Investigation + + Records Reveal Years of Overlooked Warnings at Aging Reservoirs + + + Internal inspection memoranda, obtained through public records requests, suggest that + structural concerns flagged repeatedly by field engineers were not escalated to senior staff. + + By Ravi Nair, Anita Kowalski, and Charles Weston + + +

Sacramento — A six-month review of more than four thousand pages of + inspection records, interviews with twenty-three current and former engineers, and reconstructions + of three near-failure incidents reveals a pattern of unheeded warnings about the structural + integrity of mid-twentieth-century earthen dams across the western states.

+ +

The records show that field engineers documented concerns about seepage, erosion, and spillway + capacity in repeated annual assessments dating back at least fifteen years. In several instances, + those concerns were rated “moderate” in the field reports but downgraded to “low” by the time they + reached senior officials. The pattern was particularly pronounced at three facilities serving + regions of more than two million residents.

+ +

Officials at the Department of Water Resources, asked to review excerpts of the records, said + in a written statement that “every reservoir under our oversight has been deemed safe for current + operations” but did not specifically address the discrepancies between field and final ratings. + The agency declined to make senior staff available for interviews.

+ +

The findings come amid renewed scrutiny of aging infrastructure following the partial collapse + of an earthen embankment in March that displaced more than fifteen hundred residents. Federal + inspectors who responded to that incident found the proximate cause to be precisely the type of + seepage concern that field engineers had flagged in three of the past four annual assessments.

+ +

The investigative review found that of forty-seven reservoirs surveyed, sixteen had at least + one instance in which a “moderate” or “high” field rating was downgraded before reaching senior + management. In nine cases, the downgrades persisted for three or more consecutive years. None of + the affected facilities have publicly disclosed the discrepancies.

+ +

Engineering professional associations have, in recent years, called for an independent review + of inspection workflows in the western states. A spokesperson for the Society of Hydraulic + Engineers said the Society was “deeply concerned” by the patterns described and would convene a + working group to examine reform options.

+
+
+
+
+ ); +} diff --git a/packages/docs/app/layout.tsx b/packages/docs/app/layout.tsx index f3a9b38..ae8f29c 100644 --- a/packages/docs/app/layout.tsx +++ b/packages/docs/app/layout.tsx @@ -1,15 +1,19 @@ import './globals.css'; import type { Metadata } from 'next'; +import { Header } from '../components/Header'; export const metadata: Metadata = { title: 'NewspaperUI — Production Newspaper Components', - description: '生产级报纸布局组件库,参考 InDesign 与经典严肃风排版传统,24 列栅格、跨栏、视觉权重和主题系统', + description: '生产级报纸布局组件库', }; export default function RootLayout({ children }: { children: React.ReactNode }) { return ( - {children} + +
+ {children} + ); } diff --git a/packages/docs/app/page.tsx b/packages/docs/app/page.tsx index 89fafd9..cc3cbdb 100644 --- a/packages/docs/app/page.tsx +++ b/packages/docs/app/page.tsx @@ -1,205 +1,276 @@ 'use client'; import { - Layout, Section, Article, Masthead, Rule, - Headline, Subhead, Kicker, BodyText, Byline, Dateline, - Figure, PullQuote, + Layout, + Section, + Article, + Masthead, + Headline, + Subhead, + Kicker, + BodyText, } from '@newspaperui/components'; +import Link from 'next/link'; -export default function FrontPage() { +const demos = [ + { + href: '/blocks/zh-frontpage', + lang: '中文 · Chinese', + title: '人民周报 · 头版', + description: '思源宋体 + 克制朱红 + 紧凑排版。中文报纸传统视觉语言。', + color: '#CC2929', + }, + { + href: '/blocks/zh-feature', + lang: '中文 · Chinese', + title: '人民周报 · 副刊专题', + description: '深度专题排版:访谈、人物、文化评论。', + color: '#CC2929', + }, + { + href: '/examples/nyt-frontpage', + lang: 'English', + title: 'The Daily Chronicle · NYT Style', + description: + 'Classic American serious newspaper. Cormorant Garamond masthead, multi-column flow with drop cap.', + color: '#1A1A1A', + }, + { + href: '/blocks/en-feature', + lang: 'English', + title: 'The Daily Chronicle · Long-form Feature', + description: 'Editorial long-form piece with pull quotes and editorial design.', + color: '#1A1A1A', + }, + { + href: '/blocks/jp-horizontal', + lang: '日本語 · Japanese', + title: '朝日新聞 · 横組み', + description: 'Modern horizontal Japanese newspaper layout. Noto Serif JP.', + color: '#1B2A4A', + }, + { + href: '/blocks/jp-vertical', + lang: '日本語 · Japanese', + title: '朝日新聞 · 縦組み', + description: 'Traditional vertical writing-mode Japanese layout.', + color: '#1B2A4A', + }, + { + href: '/examples/blackletter-frontpage', + lang: 'Deutsch', + title: 'Die Frankfurter Zeitung', + description: 'Blackletter masthead with UnifrakturMaguntia. German broadsheet tradition.', + color: '#1A1A1A', + }, +]; + +export default function LandingPage() { return ( - + -
-
- Inside Today - - Senate Approves Climate Resolution After Months of Debate +
+
+ About + + 生产级报纸布局组件库 - -

The unanimous vote concludes a contentious legislative session marked by partisan disputes - and last-minute amendments. Page A6.

-
- - - - Tech Sector Gains as Inflation Eases - -

Major indices climbed for a fifth consecutive session as new data showed price growth - slowing across consumer goods. Business B1.

-
- - - - Drought Conditions Worsen Across the Plains - -

Officials in seven states have requested federal disaster relief as reservoir levels reach - historic lows. National A12.

-
- - - - New Exhibit Opens at the Metropolitan - -

A retrospective of mid-century textile design draws record opening crowds. Arts C3.

+ +

+ 参考 InDesign 与经典严肃风排版传统(NYT / The Times / FAZ),基于 24 列栅格、CSS Grid + + Multi-column 双层机制构建。 +

- -
-
Capitol · Breaking
- - Historic Accord Reshapes Continental Trade After Marathon Session +
+ + Print-grade typography, on the modern web. - - Negotiators emerge with sweeping framework on tariffs, labor, and emissions; ratification expected within weeks + + 18 components, 24-column grid, classic serif typography, real multi-column flow. -
- By Eleanor Whitcombe and Marcus Reyes - · - 5 min read +
+
+ Quick Start + + Install + + +

+ pnpm add @newspaperui/components @newspaperui/theme +

+
+
+ + Documentation → +
- -
- - -

Brussels — After eleven consecutive days of negotiation that several - participants described as the most demanding in a generation, delegates from twenty-three nations - announced on Monday a sweeping framework to reorganize commerce across the continent. The accord, - which still requires ratification by member parliaments, would harmonize tariff schedules, set - common labor standards, and bind signatories to a shared emissions pathway through 2040.

- -

Officials briefed on the talks said the breakthrough came shortly before midnight, when a - dispute over agricultural subsidies was resolved with a side letter granting transitional relief - to producers in five smaller economies. The chief negotiator, Margarethe Lindqvist, called the - outcome “a long argument that finally became a conversation.”

- -

The framework’s most consequential provisions target heavy industry. Cement, steel, and - chemical producers would face a graduated carbon levy beginning in 2028, with revenues recycled - into a continental investment fund for low-carbon manufacturing. Industry associations expressed - cautious support, while environmental groups praised the levy’s binding architecture but warned - that the timeline gives polluters too much room to delay.

- -

Markets reacted with measured optimism. The continental composite index closed up 1.2 percent, - led by capital-goods makers expected to benefit from infrastructure investment. The currency - strengthened against the dollar by 0.7 percent. Bond yields, which had climbed throughout the - negotiations on fiscal-stability concerns, retreated to levels seen before the talks began.

- -

Domestic political reaction was mixed. The accord’s labor provisions, which establish minimum - standards for paid leave and collective bargaining, drew immediate praise from union federations - and equally immediate concern from chambers of commerce. The chairman of the Federation of - Industries warned that small firms would struggle with compliance costs absent transitional support.

- -

Parliamentary leaders in three capitals signaled that ratification could occur before the - summer recess. Two governments, however, indicated that they would seek public referenda before - committing, a process likely to extend into the autumn. Analysts at the Centre for Trade Studies - estimated that full implementation, even on the most expedited timeline, would require at least - eighteen months.

- -

For ordinary travelers and consumers, the immediate effects will be modest. Border procedures - and product standards remain governed by existing arrangements pending ratification. The longer - arc is what matters: a continent of historically fractious neighbors agreeing on a single set of - rules for the most consequential decade in living memory.

-
- - - A long argument that finally became a conversation. - - - -

The accord’s signing ceremony, originally scheduled for last Friday, was delayed three times - as drafters reconciled competing texts on dispute resolution. The final compromise establishes - an arbitration panel of nine jurists, three appointed by each of the bloc’s three regional - groupings, with binding authority over commercial disputes exceeding twenty million units.

- -

Critics on the populist right denounced the framework as an erosion of national sovereignty, - while critics on the left argued that the labor floor was set too low to meaningfully protect - workers in tighter regulatory regimes. Both camps signaled that ratification battles would be - fierce, particularly in legislatures with narrow majorities.

-
-
- -
- Foreign Desk - - Coastal Nations Pledge Joint Action on Maritime Pollution - - - Pact follows years of stalled regional talks and a cascade of recent shipping accidents. - - By Tomás Almeida - - -

Lisbon — Eleven coastal nations announced a binding compact to coordinate - cleanup operations and harmonize liability rules for vessels exceeding fifty thousand tons. The - agreement establishes a shared rapid-response fund and creates a regional inspectorate empowered - to detain non-compliant ships in any signatory port.

- -

Maritime industry groups received the news with caution. A spokesperson for the Continental - Shipping Council acknowledged that “stronger common rules are overdue” but warned that - implementation costs could fall disproportionately on smaller operators.

- -

The compact takes effect on January 1, pending technical annexes. Environmental observers - described the pact as the most consequential maritime accord in a decade.

-
-
+
- National · Investigation - - Records Reveal Years of Overlooked Warnings at Aging Reservoirs +
+ Live Demos · Production-grade Examples +
+ + Multi-language Newspaper Showcase - - Internal inspection memoranda, obtained through public records requests, suggest that - structural concerns flagged repeatedly by field engineers were not escalated to senior staff. + + 7 complete newspaper layouts in Chinese, English, German, and Japanese - By Ravi Nair, Anita Kowalski, and Charles Weston +
+
- -

Sacramento — A six-month review of more than four thousand pages of - inspection records, interviews with twenty-three current and former engineers, and reconstructions - of three near-failure incidents reveals a pattern of unheeded warnings about the structural - integrity of mid-twentieth-century earthen dams across the western states.

+
+ {demos.map((demo, idx) => ( +
+ +
+
+
+ {demo.lang} +
+
+ Demo #{String(idx + 1).padStart(2, '0')} +
+
+
+

+ {demo.title} +

+

+ {demo.description} +

+
+ View demo → +
+
+
+ +
+ ))} +
-

The records show that field engineers documented concerns about seepage, erosion, and spillway - capacity in repeated annual assessments dating back at least fifteen years. In several instances, - those concerns were rated “moderate” in the field reports but downgraded to “low” by the time they - reached senior officials. The pattern was particularly pronounced at three facilities serving - regions of more than two million residents.

- -

Officials at the Department of Water Resources, asked to review excerpts of the records, said - in a written statement that “every reservoir under our oversight has been deemed safe for current - operations” but did not specifically address the discrepancies between field and final ratings. - The agency declined to make senior staff available for interviews.

- -

The findings come amid renewed scrutiny of aging infrastructure following the partial collapse - of an earthen embankment in March that displaced more than fifteen hundred residents. Federal - inspectors who responded to that incident found the proximate cause to be precisely the type of - seepage concern that field engineers had flagged in three of the past four annual assessments.

- -

The investigative review found that of forty-seven reservoirs surveyed, sixteen had at least - one instance in which a “moderate” or “high” field rating was downgraded before reaching senior - management. In nine cases, the downgrades persisted for three or more consecutive years. None of - the affected facilities have publicly disclosed the discrepancies.

- -

Engineering professional associations have, in recent years, called for an independent review - of inspection workflows in the western states. A spokesperson for the Society of Hydraulic - Engineers said the Society was “deeply concerned” by the patterns described and would convene a - working group to examine reform options.

+
+
+ Design Philosophy + + Print Tradition, Web Implementation + + +

+ NewspaperUI 借鉴 InDesign + 段落样式系统的设计 token 思想,把字体、字号、字重、行高、颜色、间距统一收敛到视觉权重映射表(visualWeights)。组件从单一数据源读取样式,修改一处即全局生效。 +

+

+ 排版机制采用 Hybrid 双层:CSS Grid 负责大块布局,CSS Multi-column 负责正文流。这是报纸排版传统在 Web + 上的最佳还原。 +

+
+
+
+ Tech Stack + + React 18 · TypeScript 5 · CSS Grid + Multi-column + + +

+ 4 packages:@newspaperui/theme@newspaperui/utils、 + @newspaperui/components(18 components)、@newspaperui/docs。 +

+

Built with pnpm workspaces + Turborepo. Vite for libraries, Next.js 15 for docs.

diff --git a/packages/docs/components/Header.tsx b/packages/docs/components/Header.tsx new file mode 100644 index 0000000..96ff96d --- /dev/null +++ b/packages/docs/components/Header.tsx @@ -0,0 +1,89 @@ +'use client'; +import Link from 'next/link'; +import { usePathname } from 'next/navigation'; + +const navItems = [ + { label: 'Docs', href: '/grid-system' }, + { label: 'Components', href: '/components/article' }, + { label: 'Themes', href: '/theme' }, + { label: 'Blocks', href: '/blocks' }, +]; + +export function Header() { + const pathname = usePathname(); + return ( +
+
+ + NewspaperUI + + +
+
+ ); +} diff --git a/packages/docs/components/Sidebar.tsx b/packages/docs/components/Sidebar.tsx index 7132977..e2a3742 100644 --- a/packages/docs/components/Sidebar.tsx +++ b/packages/docs/components/Sidebar.tsx @@ -48,9 +48,9 @@ export function Sidebar() { fontFamily: 'var(--font-family-meta)', fontSize: '14px', position: 'sticky', - top: 0, + top: 65, alignSelf: 'flex-start', - maxHeight: '100vh', + maxHeight: 'calc(100vh - 65px)', overflowY: 'auto', }} > diff --git a/packages/docs/next.config.mjs b/packages/docs/next.config.mjs index 2afe34c..3e44278 100644 --- a/packages/docs/next.config.mjs +++ b/packages/docs/next.config.mjs @@ -3,6 +3,9 @@ import rehypePrettyCode from 'rehype-pretty-code'; /** @type {import('next').NextConfig} */ const nextConfig = { + output: 'export', + basePath: process.env.NEXT_PUBLIC_BASE_PATH || '', + images: { unoptimized: true }, pageExtensions: ['js', 'jsx', 'md', 'mdx', 'ts', 'tsx'], transpilePackages: ['@newspaperui/components', '@newspaperui/theme', '@newspaperui/utils'], }; diff --git a/packages/theme/src/fonts.css b/packages/theme/src/fonts.css index f11b589..a51aa6a 100644 --- a/packages/theme/src/fonts.css +++ b/packages/theme/src/fonts.css @@ -1,2 +1,5 @@ /* Google Fonts: Cormorant Garamond (masthead), Source Serif 4 (display/headline/body), Inter (meta), UnifrakturMaguntia (blackletter preset) */ @import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@500;600;700&family=Source+Serif+4:opsz,wght@8..60,400;8..60,500;8..60,600;8..60,700&family=Inter:wght@400;500;600;700&family=UnifrakturMaguntia&display=swap'); + +/* CJK: Noto Serif SC (Chinese), Noto Serif JP (Japanese) */ +@import url('https://fonts.googleapis.com/css2?family=Noto+Serif+SC:wght@400;500;600;700;900&family=Noto+Serif+JP:wght@400;500;600;700;900&display=swap'); diff --git a/packages/theme/src/variables.css b/packages/theme/src/variables.css index 4e9edc8..850e8cf 100644 --- a/packages/theme/src/variables.css +++ b/packages/theme/src/variables.css @@ -7,6 +7,13 @@ --font-family-body: "Source Serif 4", Georgia, "Times New Roman", serif; --font-family-meta: "Inter", system-ui, sans-serif; + /* CJK font families */ + --font-family-cjk-serif: "Noto Serif SC", "Noto Serif JP", "Source Serif 4", serif; + --font-family-cjk-jp: "Noto Serif JP", "Source Serif 4", serif; + + /* CJK accent (Chinese newspaper red, restrained) */ + --nui-accent-cjk-red: #CC2929; + /* page background */ --nui-bg-page: #F7F4ED; --nui-bg-surface: #FBF9F4; diff --git a/screenshots/01-frontpage-fold.png b/screenshots/01-frontpage-fold.png deleted file mode 100644 index b2ceab7..0000000 Binary files a/screenshots/01-frontpage-fold.png and /dev/null differ diff --git a/screenshots/01b-frontpage-viewport.jpeg b/screenshots/01b-frontpage-viewport.jpeg deleted file mode 100644 index 9055fcf..0000000 Binary files a/screenshots/01b-frontpage-viewport.jpeg and /dev/null differ diff --git a/screenshots/02-frontpage-full.png b/screenshots/02-frontpage-full.png deleted file mode 100644 index 0a37790..0000000 Binary files a/screenshots/02-frontpage-full.png and /dev/null differ diff --git a/screenshots/03-blackletter-fold.png b/screenshots/03-blackletter-fold.png deleted file mode 100644 index 1898176..0000000 Binary files a/screenshots/03-blackletter-fold.png and /dev/null differ diff --git a/screenshots/04-text-fold.png b/screenshots/04-text-fold.png deleted file mode 100644 index a54f3f1..0000000 Binary files a/screenshots/04-text-fold.png and /dev/null differ diff --git a/screenshots/05-text-full.png b/screenshots/05-text-full.png deleted file mode 100644 index 29984cd..0000000 Binary files a/screenshots/05-text-full.png and /dev/null differ diff --git a/screenshots/06-theme-light.png b/screenshots/06-theme-light.png deleted file mode 100644 index 74cedc9..0000000 Binary files a/screenshots/06-theme-light.png and /dev/null differ diff --git a/screenshots/07-theme-dark.png b/screenshots/07-theme-dark.png deleted file mode 100644 index 6e01c17..0000000 Binary files a/screenshots/07-theme-dark.png and /dev/null differ