前端前線 2026 年 5 月 18 日

2026-05-18 — CSS 主題色彩六種技法、Mozilla Firefox AI 安全強化 271 漏洞

primary=https://chrismorgan.info/css-themed-colours primary=https://hacks.mozilla.org/2026/05/behind-the-scenes-hardening-firefox/

CSS 六種主題色彩實作技法:從 custom properties 到 if()

chrismorgan.info · 2026-05-16

Chris Morgan 整理了在純 CSS 中實現自動(系統偏好)、明亮、暗色三種主題切換的六種手法,從最相容的手動選擇器到最新的 if() 條件語法,逐一分析每種方案的瀏覽器支援度與表達力取捨。文章澄清了一個常見誤解:CSS variables 的主要實作直到 2014–2017 年才落地,比多數工程師認知的更晚。

六種方案

  • 手動選擇器:對每個主題寫獨立的 selector block,相容性最佳但冗長。
  • CSS custom properties:以 --color-purpose 分離定義與使用,自 2017 年全面支援,是目前業界標準。
  • color-mix() 搭配百分比變數:每個主題設定一個 0%100% 的比例變數,透過混色切換主題色,2023 年開始支援;color-mix() 的 interpolation color space 預設在 2025 年底才改為 oklab,舊語法需明確指定。
  • light-dark():專為二元明暗主題設計的內建函式,搭配 color-scheme 屬性,2024 年進入各主要引擎。
  • if() 條件函式:對任意 CSS property type 可做離散值切換,目前僅 Chromium 支援(2025)。
  • 暫停關鍵影格動畫:以負延遲的動畫切換主題值,作者自評「可能是個壞主意」,但理論上支援插值過渡。

規格細節

color-mix() 依照規格可接受兩個以上的顏色做多主題混合,但目前所有主要實作仍僅支援恰好兩個顏色參數。若需支援三種以上主題,需要嵌套多次 color-mix() 呼叫,或改用 if()

light-dark() 僅適用於顏色值;若要在非顏色 property(如 border-widthfont-size)上切換主題,需改用 if() 或 custom properties。兩者組合使用是目前覆蓋面最廣且語義最清晰的方案。

影響範圍

隨著 if() 逐步進入 Firefox 與 Safari,純 CSS 主題切換將不再需要任何 JavaScript,也不需要在 htmlbody 上切換 class。設計 token 管理將可完全在 CSS layer 中完成,Build-time 預處理器對主題切換的必要性進一步降低。

原始來源:chrismorgan.info


Mozilla 以 Claude Mythos Preview 在 Firefox 150 找出 271 個安全漏洞

Mozilla Hacks · 2026-05-07

Mozilla 在 Firefox 150 發布週期中,藉助 Claude Mythos Preview 建立的 agentic harness 識別並修復了 271 個安全漏洞:180 個 sec-high、80 個 sec-moderate、11 個 sec-low。這是 Mozilla 安全工程史上單一週期修復量最高的一次,四月全月共落地 423 個安全修補。

技術架構

早期以 GPT-4 和 Sonnet 3.5 進行靜態分析時,誤報率過高,難以大規模部署。改用 Claude Mythos Preview 後,Mozilla 建置了一個 agentic harness,讓模型能自主建立並執行可重現的測試案例,動態驗證漏洞假說。系統部署於多個 ephemeral VM,每個 VM 針對特定原始碼檔案平行執行,並與現有 fuzzing 基礎設施整合。

發現的漏洞類型

  • sandbox escape:受損 content process 升權至 parent process 的多個路徑
  • use-after-free:包括 <legend> 元素中埋伏 15 年的 UAF,以及 IPC 上的 race condition
  • JIT 編譯缺陷:WebAssembly GC struct 最佳化中的等值比較錯誤,導致未初始化使用
  • XSLT hash table 腐化:20 年前引入、在可重入函式呼叫中觸發的 bug
  • prototype pollution 與 refcount 操控

規模效應

整個修補流程包含去重、追蹤、分類與補丁協調,超過 100 名 Mozilla 工程師參與落地。每月修復量從 20–30 個攀升至 2026 年初的 60–70 個,四月峰值達 423 個。Mozilla 計畫將此掃描流程整合為持續整合 (CI) 的常規步驟,對每次新提交的補丁進行安全掃描。

原始來源:Mozilla Hacks


End of article
0
Would love your thoughts, please comment.x
()
x