笔迹与纸
ICAP 的输出看起来像老师写在你书页边上的批注。你总能看出哪些文字是你写的,哪些是 Agent 写的。动效告诉你谁在写、东西放在哪里、什么改变了。插件只用一种颜色,所以你的主题照常工作。
要对比两种样式,用演示上方的 ICAP 样式 开关。
一页上的两种声音
Section titled “一页上的两种声音”你的文字和 Agent 的文字在同一栏中,用同样的字体。它们只在少数几处不同:
- 你的声音 是笔记的正文。你在一条没有边框的书写行上输入回答。插件把它保留成普通段落。
- Agent 的声音 稍小一些,约为正文的 0.95 倍。它的左边距有一条细的笔迹线,还有一个小标签,例如
释义 · RAII。
没有卡片,没有底色,也没有头像。问题、回答、反馈和修改从上到下读起来是一整段。分清「我写的」和「别人告诉我的」,就是建构的学习和被动的学习的区别。
笔迹是 ICAP 加入的唯一颜色。它是一种暖的茜红色,像老师的铅笔。在深色主题中它更浅。插件只在这些地方用笔迹:
- 边距中的线,
- 被解释的术语下面的虚线,
- 选项上的标记,
- 结果的标记。
其他所有颜色和字体都来自你的主题。所以,社区主题照常工作。
ICAP 样式和主题样式
Section titled “ICAP 样式和主题样式”设置 设置 → ICAP Learning Agent → 笔记中 → ICAP 样式 控制输出的外观:
- 打开:笔迹是茜红色,保留的解释和反馈使用 ICAP 的样式。
- 关闭:笔迹是你主题的强调色,保留的 callout 跟随你主题的 callout 样式。
这个设置只改变外观。笔记中的 Markdown 不变。
结果不用红色和绿色
Section titled “结果不用红色和绿色”反馈标记是边距中的符号,不是红色和绿色:✓ 成立,≈ 部分成立,? 再想想。错误是要再看一次的东西,不是失败。
状态是一句话
Section titled “状态是一句话”块的最后是一行短文字,例如「正在读你写的内容…」或「轮到你了——⌘ ↵ 提交」。块不用状态徽标。这行文字说明你的材料正在发生什么。它不提工具或模型。快捷键按你的平台显示成按键:macOS 上是 ⌘ ↵,其他系统上是 Ctrl ↵。
Agent 工作时,笔迹线沿着边距一遍又一遍地画下来。没有转圈的图标,也没有发光。减少动态效果时,这条线是虚线。
你选择选项,就像在纸上做标记。选项是一个带字母的列表。单选时,字母周围画上一个笔迹圈。多选时,画上一个勾。
每种动效都有它的目的:
- 先有笔迹,后有文字。 笔迹线先沿着边距画下来。然后标签和段落在它下面出现。结果标记盖印在边距中。文字流式输出时,写完的段落不动,只有文字的末尾在变。
- 页面腾出位置。 一段内容出现、变长、折叠或离开时,下面的文字平滑地移动,不会跳动。如果一个变化在另一个变化进行中开始,它从当前高度继续。
- 你的标记是手画的,也可以擦掉。 圈或勾自己画出来。如果你改变选择,标记从它所在的地方擦掉。你提交时,选中的选项保留它的圈,其他选项变淡。
- 离开时退回到笔迹中。 你丢弃一条解释时,文字淡出,线收回,空隙合上。你保留它时,callout 从解释原来的位置出现。你应用一处修改时,删掉的行折叠起来,加入的行留下。
- 活动从它的标记中出来。 列表从状态栏的标记中升起,又落回其中。完成的任务的勾只画一次。唯一重复的动效是工作中的那条线。
轮到你的时刻,插件各标记一次:
| 时刻 | 你看到什么 |
|---|---|
| 一段内容写完了 | 笔迹线变宽一次,然后变回细线;下一步的操作出现 |
| Agent 把回合交给你 | 问题变宽一次,回答栏随后升起 |
| 事情发生在屏幕外 | 一个边缘提示(例如「↓ 轮到你了」)动一次;选择它就到那里 |
| 文字写进了笔记 | 新文字上覆盖一层浅色,约 3 秒内淡去 |
只有你已经在块旁边时,插件才移动键盘焦点。如果块在屏幕外,你可能正在别处书写。这时插件不移动焦点,也不滚动。边缘提示告诉你去哪里。
插件的所有部分都使用同一组动效设置,来自 src/ui/motion.ts 文件:
| 名字 | 运动 | 用于 |
|---|---|---|
settle |
没有回弹的弹簧,约 0.4 秒 | 出现的内容,腾出位置的页面 |
hand |
有一点回弹的弹簧,约 0.34 秒 | 你的标记:圈、勾、结果标记 |
quick |
没有回弹的弹簧,约 0.2 秒 | 提示文字、按下、小的变化 |
leave |
没有回弹的弹簧,约 0.26 秒 | 离开、关闭或折叠的内容 |
fade |
0.14 秒 | 页面合上之前淡出的文字 |
这些规则让页面保持正确:
- 只有外框动画自己的高度。其他所有部分只动画位置、大小和透明度(
transform和opacity)。 - 每个动画都结束在元素的自然状态。所以,动画提前停止时,布局也是正确的。
- 每样东西的入场动画只播放一次。如果编辑器重新绘制它,或者你重新加载 Obsidian,入场动画不再播放。
- 减少动态效果时,只保留一个 140 毫秒的淡入淡出。所有移动都直接到达终点。