Skip to content

外观与颜色

视觉配置分为两个 prop:

  • appearancedefault | word | notion | custom
  • colorModelight | dark | auto
vue
<YanivEditor appearance="notion" color-mode="auto" />

appearance="notion" 仅影响视觉。preset="notion" 控制块编辑功能方案。两者可独立或组合使用:

vue
<YanivEditor preset="basic" appearance="notion" />
<YanivEditor preset="notion" appearance="default" />
<YanivEditor preset="notion" appearance="notion" />

自定义外观

使用 appearance="custom" 并在编辑器实例上传入 customAppearanceVars

vue
<YanivEditor
  appearance="custom"
  :custom-appearance-vars="{
    '--ye-primary': '#6366f1',
    '--ye-bg': '#f8fafc',
  }"
/>

customAppearanceVars 用于视觉 token(颜色、间距等)。浮层 z-index 请用 zIndexBase prop,不要用 customAppearanceVars 覆盖 --ye-z-base。详见 Z-Index 与浮层

工具函数

ts
import {
  loadAppearance,
  preloadAppearances,
  applyCustomAppearanceToElement,
  resolveColorMode,
  useResolvedColorMode,
  watchSystemColorMode,
} from "@yanivjs/yaniv-editor";

所有内置外观 CSS 由 @yanivjs/yaniv-editor/style.css 一次性提供。loadAppearance / preloadAppearances 保留异步签名以维持 API 形态,实际只把外观记进一个 Set 标记为就绪,不做动态 import()

Inline Editor 没有 appearance

appearance / customAppearanceVarsYanivEditor 独有的 prop。EditorShell 在 inline host 下固定按 "default" 处理,inline.css 也不打包任何 appearance/styles/*.cssYanivInlineEditor 只支持 colorMode

CSS 架构

ProseMirror 结构样式(段落、列表、引用、行内代码、表格、代码块)位于 src/styles/content.csstable.csscode-block.css。外观文件只修改 token 和排版。

Notion 块悬停高亮在 src/styles/block-hover.css,仅在根节点带有 appearance-notion 时生效。

贡献者规则与文件布局见 项目结构 — CSS 分层

z-index token 作用域与 overlay portal 见 Z-Index 与浮层