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']);
});變數清單見主題變數。