Skip to content

主题与样式定制

组件所有可定制的外观取值都通过 CSS 变量暴露,并在使用点写成 var(--okr-*, 默认值),因此:

  • 不传 theme 时外观与 vue-okr-tree 完全一致;
  • 变量可以写在组件根容器(theme prop 会加 okr-theme-{name} 类)、任意祖先元素、:root,甚至内联 style="--okr-line-color: red"
  • 选中态只在主题中提供内置样式,且优先级刻意放低,你通过 current-lable-class-name 传入的类始终可以覆盖它。

内置主题

vue
<vue-okr-tree :data="data" theme="feishu" />
主题定位
default与 vue-okr-tree 一致:灰线、白卡、直角、轻阴影(不加任何类)
feishu飞书 OKR 观感:圆角 8px、浅灰线、主色 #3370ff 选中态
dark暗色页面:深底、浅灰线、亮色选中态
auto跟随系统:浅色下同 defaultprefers-color-scheme: dark 时同 dark
minimal演示 / 打印:无阴影、细边框、小圆角,选中态细蓝边
colorful按层级着色(节点带 data-level 属性),适合组织架构展示

六套主题的实际效果可在 Demo 总览 各用例与 Playground 顶部切换预览。

自定义主题 / 覆盖变量

css
/* 方式一:自定义主题名,配合 theme="brand" */
.okr-theme-brand {
  --okr-line-color: #409eff;
  --okr-node-radius: 8px;
  --okr-current-bg: #409eff;
  --okr-current-color: #fff;
}
.okr-theme-brand :where(.org-chart-node-label-inner.is-current) {
  --okr-node-bg: var(--okr-current-bg);
  --okr-node-color: var(--okr-current-color);
}

/* 方式二:在任意祖先上直接覆盖若干变量(可叠加在内置主题之上) */
.my-page {
  --okr-gap-level: 32px;
  --okr-node-font-size: 14px;
}

变量一览

变量说明默认值
--okr-line-color连接线颜色#ccc
--okr-line-width连接线宽度1px
--okr-line-radius兄弟连线拐角圆角5px
--okr-gap-level层级间距 / 连接线长度20px
--okr-gap-sibling兄弟节点水平间距5px
--okr-gap-node-y水平模式下节点纵向间距10px
--okr-node-bg节点背景transparent
--okr-node-color节点文字颜色inherit
--okr-node-border节点边框none
--okr-node-radius节点圆角0
--okr-node-padding节点内边距10px
--okr-node-font-size节点字号16px
--okr-node-shadow节点阴影0 1px 10px rgba(31,35,41,.08)
--okr-node-shadow-hover节点 hover 阴影0 1px 14px rgba(31,35,41,.12)
--okr-btn-size展开按钮直径20px
--okr-btn-bg展开按钮背景#fff
--okr-btn-shadow展开按钮阴影0 0 2px rgba(0,0,0,.15)
--okr-btn-sign-color按钮内 +/- 颜色--okr-line-color
--okr-btn-text-color按钮内子节点数字颜色#909090
--okr-current-bg选中背景(主题内生效)#3370ff
--okr-current-color选中文字(主题内生效)#fff
--okr-disabled-opacity禁用节点透明度0.6
--okr-anim-duration展开/收起过渡时长(由 prop 写入)200ms

画布组件 OkrTreeViewport 另有一组变量:--okr-viewport-height(默认 420px)、--okr-viewport-bg--okr-viewport-border--okr-viewport-radius--okr-viewport-toolbar-bg--okr-viewport-toolbar-shadow

Last updated:

基于 MIT 许可发布