CSS View Transitions 與多頁面 HTML:回歸文件導向的 Web 開發
blog.jim-nielsen.com · 2026-05-05
Jim Nielsen 在近期的工程文中描述了一種刻意選擇多個小型 HTML 頁面取代單頁應用程式(SPA)的作法,並搭配 CSS View Transitions API 達成流暢的頁面切換動畫。這個方案讓網站在不依賴 JavaScript 框架的情況下,仍能提供現代化的互動體驗。
核心方法
傳統的多頁面網站在頁面跳轉時缺乏視覺連貫性,通常需要引入 SPA 才能達到流暢感。View Transitions API(目前已在 Chrome/Edge 以及 Safari 17.4 以上實作)允許瀏覽器在導覽前後的 DOM 快照之間插入動畫過渡。Nielsen 利用這個 API 讓傳統的 `` 連結觸發頁面切換時也能有平滑動畫,核心宣告僅需:
@view-transition {
navigation: auto;
}這一行 CSS 即可為整個網站啟用跨文件 View Transitions,無需額外的 JavaScript 路由層。瀏覽器自動處理舊頁面截圖與新頁面渲染之間的過渡,開發者可透過 `::view-transition-old` 與 `::view-transition-new` 偽元素自訂動畫細節。
文件導向 vs 執行環境思維
Nielsen 的核心論點是將瀏覽器視為「文件導覽器」而非「任意程式碼執行環境」。這兩種思維導向截然不同的架構選擇。SPA 模式將路由、狀態管理、資料獲取全部拉進客戶端,換取互動流暢性;而文件模式把這些職責交還給伺服器,頁面體積因此保持精簡,瀏覽器的快取、前進後退、預載等原生機制也得以充分發揮。
作者提到頁面體積保持極小(page size stayed small),使得互動既快速又穩健,並且在沒有 JavaScript 或不支援 View Transitions 的環境下也能正常運作——功能增強(progressive enhancement)以漸進方式疊加,而非從一開始就依賴。
影響範圍
跨文件 View Transitions 目前的瀏覽器支援如下:
- Chrome/Edge 126+:完整支援
- Safari 18.0+:支援跨文件 View Transitions
- Firefox:尚未實作跨文件版本(單文件版已支援)
這個方向代表 Web 平台正在補足多頁面架構長期欠缺的視覺連貫性能力,使得開發者不必為了過渡動畫而引入整套 SPA 框架。Nielsen 的實作展示了 HTML-first 設計與現代 CSS 能力結合的可行路徑,同時保留了伺服器渲染、SEO 友善以及無 JS fallback 等優勢。
原始來源:blog.jim-nielsen.com
Bun 的所有權轉移與 Anthropic 治理疑慮
wwj.dev · 2026-05-05
一篇在 Hacker News 引發大量討論的文章中,作者 wwj 表達了對 Bun 的長期憂慮。問題的核心不在於 Bun 本身的技術品質,而在於 Bun 被 Anthropic 收購後的組織治理風險。這是一個關於開發工具所有權與生態系可信任度的工程決策討論。
觸發點:Claude Code 的工程退化
作者以 Claude Code 的近期變化作為類比警示。具體問題包括:推理力度(reasoning effort)預設值被悄悄降低、第三方工具帳單行為出現意外變化,以及 git 歷史中若出現特定字串(例如 "OpenClaw")可能觸發額外計費或服務拒絕等行為。這些問題被詮釋為「沒有人在認真 dogfooding 實際程式碼層級體驗就發佈變更」的訊號。
作者的推論是:若同一家公司對其旗艦 AI 產品採取如此粗糙的品質控管,Bun 作為同公司旗下的基礎設施工具,未來是否也會面臨相同的組織慣性影響?
作者的實際決策
作者個人選擇將套件管理任務從 Bun 遷移至 pnpm,但明確說明這不是在呼籲其他人立刻放棄 Bun。Bun 目前在執行時效能、測試執行器(`bun test`)、打包器、以及套件安裝速度上仍然優於多數工具,`bun v1.3.13` 更新帶入了 `--parallel`、`--shard`、17x 記憶體使用降低的 tarball 串流安裝,以及 zlib-ng 帶來的 5.5x gzip 速度提升。
問題是純粹所有權與組織可預測性的擔憂,而非技術問題。這在工程工具選型中是一個合理的考量維度:工具的長期可靠性不只取決於今天的程式碼品質,也取決於維護者的組織結構與激勵機制。
原始來源:wwj.dev