文件 1.11.6

主題與樣式

本頁說明深淺色模式如何決定、changeMode() 的實際效果,以及可用來覆寫樣式的 class 與 data 屬性。

模式決定

style.mode 在建構時轉小寫後判斷:

style.mode 系統偏好深色 寫入 data-mode
"dark" 任一 "dark"
"auto"(預設)、空字串 是 "dark"
"auto"(預設)、空字串 否 ""
"light" 或其他值 任一 ""

系統偏好取自 bundle 載入時的 matchMedia("(prefers-color-scheme: dark)") 一次性結果。頁面開著時使用者切換系統主題,NanoMD 不會跟著改變。

changeMode()

editor.changeMode("dark");
viewer.changeMode("dark");

changeMode(mode = "light") 直接把參數寫進 data-mode,不做判斷:

呼叫 結果
changeMode("dark") 深色
changeMode()、changeMode("light") data-mode="light",CSS 只認 "dark",呈現淺色
changeMode("auto") data-mode="auto",呈現淺色,不會重新偵測系統偏好

編輯器與預覽器各自維護 data-mode,需要分別呼叫。要跟隨系統切換,可自行監聽:

matchMedia("(prefers-color-scheme: dark)").addEventListener("change", (e) => {
    const mode = e.matches ? "dark" : "light";
    editor.changeMode(mode);
    viewer.changeMode(mode);
});

樣式檔

檔案 用途
NanoMD.css 編輯器與預覽器樣式;bundle 載入時自動從 jsDelivr 插入固定 1.11.6 版
NanoMD-output.css download("html") 匯出檔引用的獨立樣式

自動插入的是 CDN 上固定版本的 NanoMD.css,即使使用本地 dist/NanoMD.js;要改用本地樣式,需在其後載入自己的 stylesheet 覆寫。

可覆寫的選擇器

選擇器 套用對象
.pd-md-editor、.pd-md-viewer 容器
[data-mode="dark"] 深色模式
[data-fill="1"] 絕對定位填滿父元素
.pd-md-editor[data-row="1"] 顯示行號
.pd-md-editor[data-wrap="0"] 不自動換行
.pd-md-editor[data-pin="1"] 工具列固定顯示
.pd-md-editor > div[data-focus="1"] 游標所在列
[data-saved="0"]/[data-saved="1"] 內容尚未/已同步至預覽
.pd-md-viewer blockquote.NOTE 等 提示框,見 標題、分隔線與引用
.pd-md-viewer a.tag hashtag 連結
.pd-md-viewer section.more YouTube/Vimeo 預覽卡

焦點列與提示文字的顏色、字型由建構選項以 <style> 插入,也可用更高權重的選擇器覆寫,見 編輯器選項。

EN