用途:说明如何通过 CSS 自定义属性为 Ignite UI for React 定制主题,覆盖色板、深色模式、尺寸、间距、圆角、组件级令牌与作用域主题。
色板机制:每个色板角色(primary、secondary、surface、gray、info、success、warn、error)都有 50–900 及每档 -contrast 变体;除 500 外的色阶由 500 通过相对颜色函数派生。改品牌色只需覆盖 500 档,例如在主题 CSS 之后导入的 src/index.css 中设置 --ig-primary-500、--ig-secondary-500。不存在 --ig-primary-h/-s/-l 这类令牌,写入是静默无效。引用色板应使用 var(--ig-primary-500) 及其 -contrast。
加载顺序:先导入主题 CSS(如 igniteui-webcomponents/themes/light/bootstrap.css、使用网格时再加 igniteui-react-grids/grids/themes/light/bootstrap.css),最后导入自己的覆盖文件。设计系统有 bootstrap、material、fluent、indigo,各有明暗版本。
全局布局开关:--ig-size(1 小、2 中、3 大)、--ig-spacing、--ig-radius-factor,均可级联到子树或单个元素。组件级覆盖需选择渲染后的元素名(如 igc-avatar),而非 React 名称;组件令牌名不可猜,需先查询真实列表,或读取 node_modules 中 @cssproperty 注解;没有令牌时用 ::part() 进入 shadow DOM。
深色模式:主题在 :root 声明 --ig-theme 与 --ig-theme-variant,组件全局读取,故变体不能限定到子树,属应用级切换;运行时换样式表不够,需调用 configureTheme('bootstrap','dark') 更新缓存。建议使用真正的深色主题文件。
可选工具:igniteui-theming MCP 服务器,可生成色板、排版、阴影、完整主题与组件主题,并查询设计令牌;通过 read_resource 读取指引。切勿覆盖已有样式表,生成的代码应作为待用户审查的修改。
限制:资料未说明价格、平台支持范围与具体运行环境要求。