• 首页
  • 产品中心
    • 数式Oinone四大产品

      低代码开发平台无代码开发平台集成开发平台AI大模型开发
    • 数式Oinone体系能力

      用户与组织权限管理文件管理消息中心国际化业务审计
    • 数式Oinone核心产品特性

      低无一体面向软件公司场景无限制应用级扩容可分可合
  • 服务中心
    • 客户服务

      预约演示方案咨询私有部署找人定制
    • 开发者

      问答下载
    • Oinone学院

      社区学习

    《精讲面向软件公司的低代码平台——以Oinone为例》

  • 合作伙伴
    渠道申请伙伴名录专家库
  • 关于数式
0571-88757863

自定义主题


在 Oinone 中的 主题 是通过 CSS variable 实现的,通过 registerTheme 注册主题,并使用 VueOioProvider 应用主题到系统中。

提示

更多关于 CSS variable 的内容请参考:CSS variable

一、通过 registerTheme 注册自定义主题变量

我们先来注册一个 customTheme 主题吧,这个主题将 Oinone 页面的主色修改为 黑色(blank):

export const customThemeName = 'customTheme';
export const customThemeCssVars = {
  'primary-color': 'black'
};

registerTheme(customThemeName, customThemeCssVars);

提示

通常我们将主题变量的定义和注册放在 src/theme 目录下。

二、使主题生效

让我们在 VueOioProvider 中指定 theme 参数,让主题变量生效:

VueOioProvider({
  theme: [customThemeName]
});

现在,我们的页面就变成了这样:

提示

在上面我们看到了主题已经生效了,但这还没完,当我们把鼠标悬停在 “创建” 按钮上时,按钮变成了蓝色。这是因为主题变量中包含了 鼠标悬停色(hover) 的定义,我们还需要将其他相关的主题变量都进行定义,这样才可以较为完整的替换整个页面的主题。

三、内置主题变量

对于调整 UI 页面的主题变量一般分为两类,尺寸(size) 和 颜色(color) 。对于一些特殊的组件,我们还可以使用 JavaScript 变量进行主题的设置。

下面我们将按照这三个维度完整的列举目前系统中已有的主题变量供读者参考。

(一)通用尺寸

1、大(large)

{
    "font-size": "14px",
    "font-size-lg": "16px",
    "font-size-sm": "12px",
    "padding": "24px",
    "margin": "24px",
    "row-gap": "24px",
    "line-height": "18px",
    "line-height-lg": "20px",
    "line-height-sm": "16px",
    "line-height-xs": "14px",
    "line-height-xxs": "12px",
    "border-radius": "4px",
    "border-radius-lg": "8px",
    "border-radius-sm": "2px",
    "padding-lg": "24px",
    "padding-md": "16px",
    "padding-sm": "12px",
    "padding-xs": "8px",
    "padding-xxs": "4px",
    "margin-lg": "24px",
    "margin-md": "16px",
    "margin-sm": "12px",
    "margin-xs": "8px",
    "margin-xxs": "4px",
    "height": "40px",
    "height-lg": "54px",
    "height-sm": "32px",
    "min-height": "32px",
    "label-height": "30px",
    "horizontal-label-height": "32px"
}

2、中(medium)(默认尺寸)

{
    "font-size": "14px",
    "font-size-lg": "16px",
    "font-size-sm": "12px",
    "padding": "16px",
    "margin": "16px",
    "row-gap": "16px",
    "line-height": "18px",
    "line-height-lg": "20px",
    "line-height-sm": "16px",
    "line-height-xs": "14px",
    "line-height-xxs": "12px",
    "border-radius": "4px",
    "border-radius-lg": "8px",
    "border-radius-sm": "2px",
    "padding-lg": "16px",
    "padding-md": "12px",
    "padding-sm": "8px",
    "padding-xs": "4px",
    "padding-xxs": "2px",
    "margin-lg": "16px",
    "margin-md": "12px",
    "margin-sm": "8px",
    "margin-xs": "4px",
    "margin-xxs": "2px",
    "height": "32px",
    "height-lg": "48px",
    "height-sm": "32px",
    "min-height": "32px",
    "label-height": "28px",
    "horizontal-label-height": "32px"
}

3、小(small)

{
    "font-size": "14px",
    "font-size-lg": "16px",
    "font-size-sm": "12px",
    "padding": "12px",
    "margin": "12px",
    "row-gap": "12px",
    "line-height": "18px",
    "line-height-lg": "20px",
    "line-height-sm": "12px",
    "line-height-xs": "14px",
    "line-height-xxs": "12px",
    "border-radius": "4px",
    "border-radius-lg": "8px",
    "border-radius-sm": "2px",
    "padding-lg": "12px",
    "padding-md": "10px",
    "padding-sm": "8px",
    "padding-xs": "4px",
    "padding-xxs": "2px",
    "margin-lg": "12px",
    "margin-md": "10px",
    "margin-sm": "8px",
    "margin-xs": "4px",
    "margin-xxs": "2px",
    "height": "24px",
    "height-lg": "40px",
    "height-sm": "24px",
    "min-height": "24px",
    "label-height": "24px",
    "horizontal-label-height": "32px"
}

(二)通用颜色

1、默认主题(default)

{
    "primary-color-rgb": "3, 93, 255",
    "primary-color": "#035DFF",
    "primary-color-hover": "#3F84FF",
    "primary-color-focus": "#3F84FF",
    "primary-color-active": "#024CDE",
    "primary-color-outline": "#035DFF",
    "success-color": "#6DD400",
    "success-color-hover": "#90DE3D",
    "success-color-focus": "#90DE3D",
    "success-color-active": "#6BBB00",
    "success-color-outline": "#6DD400",
    "warning-color": "#F7B500",
    "warning-color-hover": "#F9C73D",
    "warning-color-focus": "#F9C73D",
    "warning-color-active": "#D99200",
    "warning-color-outline": "#F7B500",
    "info-color": "#8c8c8c",
    "info-color-hover": "#999999",
    "info-color-focus": "#999999",
    "info-color-active": "#666666",
    "info-color-outline": "#8c8c8c",
    "error-color-rgb": "224, 32, 32",
    "error-color": "#E02020",
    "error-color-hover": "#E75555",
    "error-color-focus": "#E75555",
    "error-color-active": "#C51C26",
    "error-color-outline": "#E02020",
    "notification-info": "#035DFF",
    "notification-error": "#FF4D4F",
    "notification-success": "#52C41A",
    "notification-warning": "#FAAD14",
    "background": "#ffffff",
    "body-background": "#F3F7FA",
    "search-background": "#ffffff",
    "header-background": "#ffffff",
    "main-background": "#ffffff",
    "footer-background": "#ffffff",
    "menu-background": "#ffffff",
    "placeholder-color": "rgba(0,0,0,0.25)",
    "hover-background-color": "rgba(3, 93, 255, 0.1)",
    "hover-text-color": "var(--oio-primary-color)",
    "font-family": "-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial,'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol','Noto Color Emoji';",
    "text-color": "rgba(0,0,0,0.85)",
    "text-color-rgb": "38, 38, 38",
    "text-color-secondary": "rgba(0,0,0,0.65)",
    "text-color-three": "rgba(0,0,0,0.45)",
    "font-weight-thick": "var(--oio-font-weight-bold)",
    "font-weight": "400",
    "font-weight-lighter": "lighter",
    "font-weight-bold": "bold",
    "font-weight-bolder": "bolder",
    "readonly-color": "rgba(0,0,0,0.85)",
    "readonly-bg": "#F7F7F7",
    "readonly-active-bg": "#F7F7F7",
    "readonly-border-color": "rgba(217,217,217,1)",
    "disabled-color": "rgba(0, 0, 0, 0.25)",
    "disabled-bg": "#F7F7F7",
    "disabled-active-bg": "#F7F7F7",
    "disabled-border-color": "rgba(217,217,217,1)",
    "border-color": "#e3e7ee",
    "border-color-danger": "#E02020",
    "border-width": "1px",
    "border-style": "solid",
    "icon-color": "rgba(0, 0, 0, 0.25)",
    "default-icon-color": "rgba(0, 0, 0, 0.25)",
    "normal-icon-filter": "",
    "icon-filter": "invert(0.7) hue-rotate(180deg) brightness(0.5)",
    "icon-filter-opacity": "0.2",
    "close-icon-background": "#f1f1f1",
    "group-border-width": "1px",
    "box-shadow-size": "6px",
    "box-shadow": "rgba(136, 156, 176, 0.1) 0px 2px 4px 0px",
    "addon-color-pick-background": "#ffffff",
    "addon-color-pick-readonly-background": "var(--oio-disabled-bg)",
    "addon-color-pick-border-color": "var(--oio-border-color)",
    "addon-color-pick-icon-color": "#909399",
    "addon-color-pick-dropdown-background": "#ffffff",
    "addon-color-pick-dropdown-border-color": "#e4e7ed",
    "user-dropdown-icon-color": "rgba(0, 0, 0, 0.25)",
    "tag-select-background": "#f1f1f1",
    "spin-background": ""
}

2、暗黑主题(dark)

{
    "primary-color-rgb": "3, 93, 255",
    "primary-color": "#035DFF",
    "primary-color-hover": "#3F84FF",
    "primary-color-focus": "#3F84FF",
    "primary-color-active": "#024CDE",
    "primary-color-outline": "#035DFF",
    "success-color": "#6DD400",
    "success-color-hover": "#90DE3D",
    "success-color-focus": "#90DE3D",
    "success-color-active": "#6BBB00",
    "success-color-outline": "#6DD400",
    "warning-color": "#F7B500",
    "warning-color-hover": "#F9C73D",
    "warning-color-focus": "#F9C73D",
    "warning-color-active": "#D99200",
    "warning-color-outline": "#F7B500",
    "info-color": "#8c8c8c",
    "info-color-hover": "#999999",
    "info-color-focus": "#999999",
    "info-color-active": "#666666",
    "info-color-outline": "#8c8c8c",
    "error-color": "#E02020",
    "error-color-hover": "#E75555",
    "error-color-focus": "#E75555",
    "error-color-active": "#C51C26",
    "error-color-outline": "#E02020",
    "notification-info": "#035DFF",
    "notification-error": "#FF4D4F",
    "notification-success": "#52C41A",
    "notification-warning": "#FAAD14",
    "background": "#1F2935",
    "body-background": "#15232E",
    "search-background": "#1F2935",
    "header-background": "#1F2935",
    "main-background": "#1F2935",
    "footer-background": "#1F2935",
    "menu-background": "#1F2935",
    "multi-tabs-background": "#F3F7FA",
    "placeholder-color": "rgba(255,255,255,0.25)",
    "hover-background-color": "rgba(255, 255, 255, 0.1)",
    "hover-text-color": "var(--oio-text-color)",
    "text-color": "rgba(255,255,255,0.65)",
    "text-color-rgb": "38, 38, 38",
    "text-color-secondary": "rgba(255,255,255,0.45)",
    "text-color-three": "rgba(255,255,255,0.25)",
    "font-weight-thick": "var(--oio-font-weight-bold)",
    "font-weight": "400",
    "font-weight-lighter": "lighter",
    "font-weight-bold": "bold",
    "font-weight-bolder": "bolder",
    "readonly-color": "rgba(255,255,255,0.65)",
    "readonly-bg": "#1D2E3C",
    "readonly-active-bg": "#1D2E3C",
    "readonly-border-color": "#333e4c",
    "disabled-color": "rgba(255,255,255,0.25)",
    "disabled-bg": "#1D2E3C",
    "disabled-active-bg": "#1D2E3C",
    "disabled-border-color": "#333e4c",
    "border-color": "#333e4c",
    "border-color-danger": "#E02020",
    "border-width": "1px",
    "border-style": "solid",
    "icon-color": "rgba(255,255,255,0.65)",
    "default-icon-color": "rgba(255,255,255,0.65)",
    "normal-icon-filter": "var(--oio-icon-filter)",
    "icon-filter": "invert(0.7) hue-rotate(180deg) brightness(0.5)",
    "icon-filter-opacity": "0.4",
    "close-icon-background": "#333E4C",
    "group-border-width": "0px",
    "box-shadow-size": "0px",
    "box-shadow": "0px 0px 6px 0px rgba(0,0,0,0.2)",
    "addon-color-pick-background": "var(--oio-primary-color)",
    "addon-color-pick-readonly-background": "rgba(92,104,127, 0.25)",
    "addon-color-pick-border-color": "#ffffff",
    "addon-color-pick-icon-color": "#ffffff",
    "addon-color-pick-dropdown-background": "var(--oio-background)",
    "addon-color-pick-dropdown-border-color": "var(--oio-border-color)",
    "user-dropdown-icon-color": "var(--oio-text-color)",
    "tag-select-background": "rgba(255,255,255,0.1)",
    "spin-background": "rgba(31,41,53,0.7)"
}
编辑此页
最近更新:2026/1/15 04:02
上一页
自定义GraphQL请求
下一页
组件默认主题变量
默认页脚
Copyright © 2026 Mr.Hope