组件样式通过 CSS 自定义属性(变量)控制,默认值在样式表:root中定义。通过applyTheme()在运行时覆盖,内置主题(深色、暖色、冷色)仅覆盖与配色相关的变量,字体、圆角、间距等未列出的变量沿用默认值。
import BMapUIKit from '@baidumap/jsapi-ui-kit';// 内置预设:'default' | 'dark' | 'warm' | 'cool'BMapUIKit.applyTheme('dark');// 切回默认BMapUIKit.applyTheme('default');// 注册自定义主题BMapUIKit.registerTheme('brand', {'--bmap-ui-primary': '#7c3aed','--bmap-ui-primary-hover': '#8b5cf6','--bmap-ui-panel-bg': '#faf5ff','--bmap-ui-text': '#1e1b4b',// ... 按需覆盖其他变量});BMapUIKit.applyTheme('brand');
自定义主题无需覆盖全部变量,未指定的变量将保持:root中的默认值。
以下变量均可在自定义主题中覆盖。✓ 表示该变量在对应组件中被使用。
样式表中定义的默认 CSS 变量,作为所有主题的基准。
仅列出与默认主题不同的变量,其余沿用默认值。
以橙棕色为主色,搭配米色背景。仅列出覆盖的变量。
以青蓝色为主色,搭配冷灰背景。仅列出覆盖的变量。
// 示例 1:直接应用变量(无需注册)BMapUIKit.applyTheme({'--bmap-ui-panel-bg': '#ff0000','--bmap-ui-text': '#ffffff','--bmap-ui-rating-color': '#00ff00',});// 示例 2:注册后切换BMapUIKit.registerTheme('custom', {'--bmap-ui-panel-bg': '#1a1a2e','--bmap-ui-text-secondary': '#b0b0c0','--bmap-ui-item-hover-bg': 'rgba(255, 255, 255, 0.06)',});BMapUIKit.applyTheme('custom');
可通过命名导入获取内置主题的变量对象,用于扩展自定义主题:
import { darkThemeVariables, warmThemeVariables, coolThemeVariables } from '@baidumap/jsapi-ui-kit';// 基于深色主题扩展BMapUIKit.registerTheme('custom-dark', {...darkThemeVariables,'--bmap-ui-primary': '#7c3aed', // 仅覆盖主色调});
上一篇
下一篇