Skip to content

theme 主題 ​

畫面層專用。大多數情況直接用 CSS 變數即可,見主題與版面;需要在 JS 裡拿到數值時才用這些 API。

sdk.theme.get() ​

ts
sdk.theme.get(): Promise<ThemeInfo>

interface ThemeInfo {
  theme: 'light' | 'dark';
  vars: Record<string, string>; // CSS 變數名(含 --)→ 值,例如 { '--im-color-primary': '#ff6543' }
}

例如畫 canvas 圖表時取得目前的顏色。

sdk.theme.onChange() ​

ts
sdk.theme.onChange(callback: (info: ThemeInfo) => void): () => void

深淺色、系統字級或安全區改變時呼叫,回傳取消訂閱的函式。

呼叫你的回呼之前,SDK 已經把新的變數設到 <html> 的 style 上、更新了 data-im-theme,所以只用 CSS 變數的畫面不需要訂閱。

ts
const off = sdk.theme.onChange(({ vars }) => {
  chart.setColor(vars['--im-color-primary']);
});

變數清單見主題變數。