【SpreadJS V18.2 新版本】设计器新特性:四大主题方案,助力 UI 个性化与品牌适配

在 SpreadJS V18.2 版本中,Designer Component(设计器组件)迎来了重大升级------全新主题系统正式上线。该系统不仅提供了契合不同场景的预设主题,还支持高度灵活的自定义配置,让开发者能轻松打造与应用品牌风格一致、适配用户视觉偏好的电子表格界面。

一、主题系统核心构成:4 种方案满足多样需求

SpreadJS V18.2 Designer Theme 系统包含 3 种预设主题1 套自定义主题体系,覆盖从基础使用到深度定制的全场景需求,具体如下:

主题类型 特点与适用场景
Light(默认) 符合现代显示偏好,优化高对比度与可读性,适配明亮使用环境(如日常办公场景)
Dark 同样遵循现代设计风格,以深色基调减少视觉疲劳,适合低光环境或偏好深色界面的用户
Classic 提供传统电子表格的熟悉视觉风格,界面中性简洁,满足习惯旧版设计的用户需求
自定义主题 基于 Light/Dark 主题扩展,支持调整颜色、边框圆角、阴影等属性,精准匹配应用品牌形象

二、预设主题:快速部署,即开即用

预设主题的实现核心是引入对应 CSS 文件,操作简单且无需额外开发,具体步骤与注意事项如下:

1. 部署方式

  • HTML 引入:在 HTML 的<head>标签中添加<link>,指定主题 CSS 文件路径,示例如下:
HTML 复制代码
<link rel="styleSheet" href="css/gc.spread.sheets.designer.light.x.x.x.min.css" />
  • 文件位置:预设主题 CSS 文件已包含在下载的 ZIP 压缩包中,路径为\SpreadJS.Release.xxxx\Designer\Designer Component\css,直接引用即可。
  • 模块加载:也可通过模块加载器导入主题文件,适配不同项目架构。

2. 关键注意事项

  • 同一时间仅能引用 1 个 Designer 主题 CSS 文件,避免样式冲突。
  • 历史版本兼容:V18.2.0 之前,SpreadJS Designer 仅支持 Classic 主题作为唯一 UI 样式选项,升级后可无缝切换至新主题。

三、自定义主题:三种方法,实现深度个性化

自定义主题需以 Light 或 Dark 主题为基础,再通过 API、CSS 或 JavaScript 调整视觉属性,满足品牌化需求。

1. 用 API 动态定制(推荐)

通过setTheme()方法实现运行时主题修改,仅需传入需覆盖的属性(未定义属性保持默认),示例代码如下:

JavaScript 复制代码
GC.Spread.Sheets.Designer.setTheme({
    colorBackground: "#F0F4F8",       // 所有标准组件的背景色
    colorForeground: "#2D3436",       // 所有常规文本的颜色
    borderRadiusM: "6px",             // 中等边框圆角
    shadow8: "rgba(142, 148, 156, 0.1) 0px 2px 4px, rgba(142, 148, 156, 0.06) 0px 1px 2px"  // 阴影效果
});
  • 主题重置:向setTheme()传入null,可恢复当前预设主题(Light/Dark)的默认样式:
JavaScript 复制代码
Designer.setTheme(null); // 恢复系统预设主题
  • 状态查询:通过getTheme()获取当前完整主题配置(含继承的预设值):
JavaScript 复制代码
let currentTheme = GC.Spread.Sheets.Designer.getTheme();
console.log(currentTheme.colorBackground); // 输出当前背景色,如"#F0F4F8"

2. 用 CSS 静态覆盖

在全局 CSS 中定义主题变量(tokens),直接覆盖默认值,适合无需运行时修改的静态项目:

CSS 复制代码
:root {
  --sjs-color-background: #F0F4F8;       // 所有标准组件的背景色
  --sjs-color-foreground: #2D3436;       // 所有常规文本的颜色
  --sjs-border-radius-m: 6px;            // 中等边框圆角
  --sjs-shadow-8: rgba(142, 148, 156, 0.1) 0px 2px 4px, rgba(142, 148, 156, 0.06) 0px 1px 2px;  // 阴影效果
}

3. 用 JavaScript 动态更新

通过操作 DOM 修改主题变量,支持无刷新切换主题,适合用户自主选择主题的场景:

JavaScript 复制代码
// 动态设置主题属性
document.documentElement.style.setProperty(GC.Spread.Sheets.Designer.ThemeTokens.colorBackground, '#F0F4F8'); 
document.documentElement.style.setProperty(GC.Spread.Sheets.Designer.ThemeTokens.colorForeground, '#2D3436'); 
document.documentElement.style.setProperty(GC.Spread.Sheets.Designer.ThemeTokens.borderRadiusM, '6px'); 

四、主题属性参考:精准控制每一处视觉细节

SpreadJS 提供GC.Spread.Sheets.Designer.ITheme与GC.Spread.Sheets.Designer.ThemeTokens两大核心 API,涵盖颜色、边框、阴影三大类可配置属性,以下为关键属性说明:

类别 属性(Property) 对应令牌(Token) 功能描述
文本颜色 colorForeground --sjs-color-foreground 常规文本颜色
colorForegroundDisabled --sjs-color-foreground-disabled 组件禁用时的文本颜色
背景颜色 colorBackground --sjs-color-background 标准组件背景色
colorBackgroundSelected --sjs-color-background-selected 组件选中时的背景色
colorBrandBackground --sjs-color-brand-background 品牌主色背景(用于突出品牌风格的组件)
边框颜色 colorStroke --sjs-color-stroke 基础边框颜色
colorStrokeHover --sjs-color-stroke-hover 组件悬浮时的边框颜色
边框圆角 borderRadiusM --sjs-border-radius-m 中等边框圆角
borderRadiusXL --sjs-border-radius-xl 超大边框圆角
阴影 shadow4 --sjs-shadow-4 4px 模糊半径的阴影效果
shadow8 --sjs-shadow-8 8px 模糊半径的阴影效果

五、总结:Theme 新特性的核心价值

SpreadJS V18.2 的 Designer Theme 系统,通过"预设主题快速部署+自定义主题深度适配"的组合方案,实现了三大核心价值:

  1. 效率提升:3 种预设主题无需开发,开箱即用,降低界面搭建成本;
  2. 体验优化:Light/Dark 主题适配不同使用环境,Classic 主题兼容用户习惯;
  3. 品牌统一:支持 API、CSS、JS 多方式定制,确保电子表格界面与应用品牌风格高度一致。

无论是快速搭建标准界面,还是打造专属品牌化设计,SpreadJS V18.2 的 Theme 新特性都能提供灵活、高效的解决方案。

扩展链接

SpreadJS------可嵌入您系统的在线Excel

相关推荐
崔庆才丨静觅3 小时前
hCaptcha 验证码图像识别 API 对接教程
前端
passerby60613 小时前
完成前端时间处理的另一块版图
前端·github·web components
掘了3 小时前
「2025 年终总结」在所有失去的人中,我最怀念我自己
前端·后端·年终总结
崔庆才丨静觅3 小时前
实用免费的 Short URL 短链接 API 对接说明
前端
崔庆才丨静觅4 小时前
5分钟快速搭建 AI 平台并用它赚钱!
前端
崔庆才丨静觅4 小时前
比官方便宜一半以上!Midjourney API 申请及使用
前端
Moment4 小时前
富文本编辑器在 AI 时代为什么这么受欢迎
前端·javascript·后端
崔庆才丨静觅5 小时前
刷屏全网的“nano-banana”API接入指南!0.1元/张量产高清创意图,开发者必藏
前端
剪刀石头布啊5 小时前
jwt介绍
前端
爱敲代码的小鱼5 小时前
AJAX(异步交互的技术来实现从服务端中获取数据):
前端·javascript·ajax