主题定制
Umo Editor Mobile 主要的主题变量同样使用 CSS 变量 声明,推荐通过覆盖 CSS 变量的方式进行主题定制与品牌化适配。
暗色主题
移动端支持浅色、深色和跟随系统三种主题模式:
lightdarkauto
主题配置
见主题配置。
主题方法
见方法列表。
主题事件
见事件列表。
CSS 变量
以下是移动端中较常用的一部分 CSS 变量,完整变量定义可参考移动端源码中的样式变量文件。
:root {
/* 主题色 */
--umo-primary-color: #3480f9;
--umo-color-white: #fff;
--umo-color-black: #000;
/* 警示颜色 */
--umo-warning-color: #f6913e;
--umo-error-color: #f5433a;
/* 导航栏高度 */
--umo-navbar-height: 52px;
/* 容器背景 */
--umo-container-background: #f7f8f9;
--umo-container-background-light: #fff;
/* 文本选中时的背景颜色 */
--umo-text-selection-background: #94cfff;
/* 字体相关 */
--umo-font-family: BlinkMacSystemFont, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif;
--umo-font-size: 14px;
--umo-font-size-small: 12px;
--umo-text-color: #222;
--umo-text-color-light: #999;
--umo-text-color-disabled: #a7abac;
/* 按钮 */
--umo-button-color: #384259;
--umo-button-icon-color: #596170;
--umo-button-background: #f0f3f6;
--umo-button-hover-background: #e8ecf0;
--umo-button-active-background: #e2e7ee;
--umo-button-active-color: var(--umo-primary-color);
--umo-button-disabled-opacity: 0.45;
/* 边框 */
--umo-shadow: 0 5px 15px rgba(0, 0, 0, 0.15);
--umo-border: solid 0.5px #ddd;
--umo-border-dark: solid 0.5px #ccc;
--umo-border-light: solid 0.5px #eee;
/* 圆角 */
--umo-radius: 5px;
--umo-radius-medium: 9px;
/* 动效节奏 */
--umo-motion-duration-fast: 180ms;
--umo-motion-duration-base: 220ms;
--umo-motion-ease-standard: cubic-bezier(0.22, 1, 0.36, 1);
--umo-interactive-duration: var(--umo-motion-duration-fast);
--umo-interactive-ease: var(--umo-motion-ease-standard);
/* 弹出层 */
--umo-popup-title-color: var(--umo-text-color-light);
--umo-popup-content-padding: 18px;
--umo-popup-max-height: max(60vh, 320px);
--umo-tooltip-content-padding: 6px 10px;
--umo-mask-color: rgba(0, 0, 0, 0.15);
/* 编辑器 */
--umo-content-placeholder-color: #999;
--umo-content-text-color: #000;
--umo-content-node-border: #e7e7e7;
--umo-content-node-radius: var(--umo-radius);
--umo-content-node-bottom: 0.75em;
--umo-content-node-selected-background: #f5f8fc;
--umo-content-table-border-color: #333;
--umo-content-table-thead-background: #f1f3f5;
--umo-content-table-selected-background: rgba(200, 200, 255, 0.4);
--umo-content-line-number-color: #e7e8ea;
--umo-content-search-result-background: #fefc7ef2;
--umo-content-search-result-current-background: #0dff00c3;
--umo-content-invisible-break-color: rgb(78, 139, 252);
--umo-content-code-color: var(--umo-primary-color);
--umo-content-code-background: #f1f3f5;
--umo-content-code-family:
Consolas, Monaco, Andale Mono, Ubuntu Mono, monospace;
}
[theme-mode='dark'] {
/* 主题色 */
--umo-color-white: #232529;
--umo-color-black: #fff;
/* 警示颜色 */
--umo-warning-color: rgb(207, 110, 45);
--umo-error-color: rgb(198, 71, 81);
/* 背景颜色 */
--umo-container-background: #363a3e;
--umo-container-background-light: #2c2f33;
/* 字体相关 */
--umo-text-color: rgba(255, 255, 255, 0.9);
--umo-text-color-light: rgba(255, 255, 255, 0.7);
--umo-text-color-disabled: rgba(255, 255, 255, 0.5);
/* 按钮 */
--umo-button-color: #bcc6de;
--umo-button-icon-color: #bcc6de;
--umo-button-background: #1c1e20;
--umo-button-hover-background: #2b2c32;
--umo-button-active-background: #454a54;
/* 边框 */
--umo-border: solid 0.5px rgba(255, 255, 255, 0.1);
--umo-border-dark: solid 0.5px rgba(255, 255, 255, 0.2);
--umo-border-light: solid 0.5px rgba(255, 255, 255, 0.06);
}示例
<template>
<div class="theme-demo">
<umo-editor v-bind="options" />
</div>
</template>
<script setup>
import { ref } from 'vue'
const options = ref({
async onSave() {
return '保存成功'
},
})
</script>
<style>
.theme-demo {
--umo-primary-color: #e53935;
--umo-button-background: #f8f3f3;
--umo-navbar-height: 56px;
}
</style>定制建议
- 如果只是切换浅色/深色主题,优先使用
theme配置。 - 如果需要做品牌化适配,建议在业务层覆盖编辑器相关 CSS 变量或补充样式。
- 如果是深度 UI 定制,应先确认是否会影响移动端导航栏、底部工具区、弹层与只读态样式一致性。
与桌面端的主要差异
- 移动端没有桌面端的
skin外观配置项,因此主题定制应围绕theme与 CSS 变量展开。不支持 - 移动端变量更多围绕导航栏、底部工具区、弹层、触控按钮等场景设计。移动端不同