Files
classhelper-island-refactor…/analysis/island-ui.md
T
ClassIsland Prompt Kit 22c1784bab feat: ClassIsland / ClassHelper 灵动岛提示词套件
- 重构版主提示词(14 parts,面向 ClassHelper 灵动岛重构)
- ClassIsland 全量规格提示词(20 parts,含分卷与逐章版本)
- 投喂指南、分卷、逐节文件
- 调研记录、一致性基线、生成与质检脚本
2026-11-12 21:59:58 +08:00

26 KiB
Raw Blame History

analysis/island-ui.md —— ui-island 工作备注(Part 04 / 05)

  • 任务:task-2(revision 2,owner: ui-island)
  • 产出:parts/04-main-window.md(CJK 6501 字)、parts/05-components.md(CJK 6982 字)
  • 工作方式:只读静态分析。未构建、未运行、未启动任何 UI/脚本、未截图、未安装依赖、未改动 repos/。

1. 已读文件清单

1.1 ClassIsland —— 主界面 / 行 / 主题 / 编辑模式

文件 读取范围 用途
analysis/00-brief.md 全文 团队总简报、格式与纪律
repos/ClassIsland/ClassIsland/MainWindow.axaml 全文 686 行 窗口样式、根布局树、行模板、编辑 UI、原生菜单
repos/ClassIsland/ClassIsland/MainWindow.axaml.cs 全文 1652 行 窗口几何、层级、点击穿透、编辑模式、菜单动作
repos/ClassIsland/ClassIsland/ViewModels/MainViewModel.cs 全文 387 行 IsEditMode / ActualClientBound / ContainerComponents 等
repos/ClassIsland/ClassIsland/Controls/MainWindowLine.axaml 全文 79 行 行可见性表达式、:dock-* 伪类、行淡出
repos/ClassIsland/ClassIsland/Controls/MainWindowLine.cs 全文 815 行 行模板部件、淡出判定、提醒队列、鼠标命中
repos/ClassIsland/ClassIsland/XamlThemes/FluentTheme/Styles.axaml 全文 457 行 行背景/遮罩/浮层/进度条/动画参数(默认主题)
repos/ClassIsland/ClassIsland/XamlThemes/ClassicTheme/Styles.axaml 全文 375 行 经典主题的等价参数(TranslateY 遮罩)
repos/ClassIsland/ClassIsland.Core/Assists/MainWindowStylesAssist.cs 全文 6 个继承型附加属性(圆角/透明度/分体/编辑态等)
repos/ClassIsland/ClassIsland.Core/StylesBase.axaml 全文 Border.primaryColorZone、SettingsContainerWidth 用法
repos/ClassIsland/ClassIsland.Core/ThemeBase.axaml 1–90 行 字号资源 14/16/18/20、SettingsContainerWidth=960、图标字体
repos/ClassIsland/ClassIsland.Core/Themes/WrapPanelResizingAnimation.axaml 全文 animated-resize 类定义
repos/ClassIsland/ClassIsland.Core/Themes/ComponentsPanelStyles.axaml 全文 components-panel = 横排 StackPanel / 重排动画
repos/ClassIsland/ClassIsland/Controls/EditMode/EditModeView.axaml 全文 613 行 抽屉、组件库、行设置、外观设置、配置管理
repos/ClassIsland/ClassIsland/Controls/EditMode/EditModeView.axaml.cs 100–329 行 + grep 抽屉打开/收起、容器组件、规则抽屉
repos/ClassIsland/ClassIsland/Controls/EditMode/EditableComponentsListBox.axaml 全文 338 行 选中框、Adorner 操作条、拖拽阈值/预览/高亮
repos/ClassIsland/ClassIsland/Controls/EditMode/EditModeContainerComponentInfo.cs 全文 浮动编辑框数据
repos/ClassIsland/ClassIsland/Controls/SlantedMaskControl.cs 全文 346 行 斜面遮罩 5 区段权重/60°/360ms/120ms
repos/ClassIsland/ClassIsland.Core/Controls/VerticalDrawer.axaml 全文 157 行 抽屉外观、圆角 8 8 0 0、阴影、250ms
repos/ClassIsland/ClassIsland.Core/Controls/VerticalDrawer.axaml.cs 部分 + grep RequestedWidth、ContentHeightRatio=0.5
repos/ClassIsland/ClassIsland.Core/Converters/SizeDoubleToCornerRadiusConverter.cs 全文 圆角 = 值/参数(1.0)
repos/ClassIsland/ClassIsland.Core/Converters/WidthDoubleToRectConverter.cs 全文 行裁切矩形 + 停靠位置 X 偏移
repos/ClassIsland/platforms/ClassIsland.Platforms.Windows/Services/WindowPlatformService.cs 100–209 行 WS_EX_LAYERED/TRANSPARENT/NOACTIVATE、Topmost/Bottommost/Private/ToolWindow

1.2 ClassIsland —— 设置 / 数据模型

文件 读取范围 用途
repos/ClassIsland/ClassIsland/Models/Settings.cs 1–1856、1856–2255、grep 全文 全部主界面相关默认值(窗口/外观/组件/提醒/天气)
repos/ClassIsland/ClassIsland.Core/Models/Components/MainWindowLineSettings.cs 全文 行设置 21 个字段与默认值
repos/ClassIsland/ClassIsland.Core/Models/Components/ComponentSettings.cs 全文 541 行 组件设置全部通用字段与默认值
repos/ClassIsland/ClassIsland/Services/ComponentsService.cs 20–129 行 默认组件布局(1 行 = 日期 + 课程表)、配置文件路径
repos/ClassIsland/ClassIsland/App.Services.xaml.cs 285–325 行 Fluent 主题 VerticalSafeAreaPx=20、4 套天气图标模板
repos/ClassIsland/ClassIsland/Services/XamlThemeService.cs 108–140 行 ActualVerticalSafeAreaPx 取所有启用主题的最大值
repos/ClassIsland/ClassIsland.Core/Models/XamlTheme/ThemeManifest.cs 110–132 行 + grep VerticalSafeAreaPx 默认 0(Classic 主题即 0)

1.3 ClassIsland —— 组件(全部 11 个)

文件 读取范围
Controls/Components/DateComponent.axaml + .axaml.cs 全文
Controls/Components/ClockComponent.axaml + .axaml.cs 全文
Controls/Components/CountDownComponent.axaml + .axaml.cs 全文(115 + 312 行)
Controls/Components/ScheduleComponent.axaml + .axaml.cs 全文(117 + 268 行)
Controls/Components/WeatherComponent.axaml + .axaml.cs 全文(314 行 + 68 行)
Controls/Components/TextComponent.axaml + .axaml.cs 全文
Controls/Components/RollingComponent.axaml + .axaml.cs 全文(49 + 206 行)
Controls/Components/SlideComponent.axaml + .axaml.cs 全文(126 + 202 行)
Controls/Components/GroupComponent.axaml + .axaml.cs 全文
Controls/Components/StackComponent.axaml + .axaml.cs 全文
Controls/Components/SeparatorComponent.axaml + .axaml.cs 全文
Controls/Components/*ComponentSettingsControl.axaml(8 个) grep 全部 Header=/Content=/Minimum=/Maximum=/Description=
Models/ComponentSettings/{Clock,CountDown,Group,Rolling,Slide,Stack,Text,Weather}ComponentSettings.cs 全文(grep 字段默认值)
Models/ComponentSettings/LessonControlSettings.cs 全文 189 行
ClassIsland.Core/Controls/ComponentPresenter.axaml 全文 73 行(宿主通用行为)
ClassIsland.Core/Controls/ComponentAdvancedSettingsControl.axaml grep 全部设置项文案/范围
ClassIsland.Core/Controls/LessonsControls/LessonsListBox.axaml 全文 204 行(课程列表容器与列表项主题)
ClassIsland.Core/Controls/LessonsControls/LessonControlExpanded.axaml 全文 240 行
ClassIsland.Core/Controls/LessonsControls/LessonControlMinimized.axaml 全文 65 行
ClassIsland.Core/Controls/LessonsControls/LessonControlSeperator.axaml 全文 27 行
ClassIsland.Core/Controls/LessonsControls/LessonControlBase.cs 全文 75 行
ClassIsland.Core/Controls/HighlightBox.axaml 全文 28 行
Controls/WeatherIcons/{Index,SimpleTextWeatherIconTemplate}.axaml 全文(其余 3 套仅列名/大小)

1.4 ClassHelper(实现栈参照)

文件 读取范围 用途
packages/shared/src/island-layout.ts 全文 404 行 CLASSISLAND_ISLAND_METRICS(已核对与本任务一致)、组件契约、默认方案
packages/shared/src/constants.ts 240–369 行 DEFAULT_ISLAND_APPEARANCE、ISLAND_SHADOW_PAD=10、ISLAND_SIZE_DELTA、ISLAND_TYPE_SCALE
packages/desktop-client/src/main/island.ts 1–140、400–659 行 + grep BrowserWindow 参数、setIgnoreMouseEvents、setAlwaysOnTop('screen-saver')、失焦宽限、固定包围盒、禁止 setBackgroundMaterial
packages/desktop-client/src/island/IslandApp.vue 200–399 行 + grep 弹簧形变、--island-* 变量、progress² 交叉淡入、命中重算
packages/desktop-client/src/island/spring.ts 全文 115 行 stiffness 0.10 / damping 0.68 / 换向 35% / 单帧 ≤20% / snap 0.05px
packages/desktop-client/src/island/squircle.ts 全文 81 行 超椭圆指数 4.2、每角 14 段、expandedRadius
packages/desktop-client/src/island/classic-island.css 全文 757 行 卡片/胶囊/列表排版系数与 token 命名
packages/desktop-client/src/island/custom-island.css 全文 205 行 常驻行布局(--custom-row-gap 等)
packages/desktop-client/src/island/custom-runtime.css 全文 255 行 常驻卡片的 ClassIsland Fluent 化配色(--wn-bg:#20202080、--wn-border:#ffffff26)
packages/desktop-client/src/island/ComponentNode.vue 210–329 行 组件 DOM 类名约定(component-node + node.kind)、tabular-nums
repos/ClassIsland/AGENTS.md、repos/ClassHelper-master/AGENTS.md 注入全文 纪律约束

2. 关键参数表(数值 → 证据)

2.1 窗口与几何

参数 值 证据
窗口透明 Background=Transparent / TransparencyLevelHint=Transparent / TransparencyBackgroundFallback=Transparent MainWindow.axaml:169-171, 33
无边框 / 不可缩放 / 不可最大化最小化 SystemDecorations=None, CanResize=False, CanMaximize=False, CanMinimize=False MainWindow.axaml:171-174
不抢焦点 ShowActivated="False" MainWindow.axaml:32
初始高度 Height="1" MainWindow.axaml:8
编辑模式窗口底色 SmokeFillColorDefaultBrush + TransparencyLevelHint="AcrylicBlur, Transparent" MainWindow.axaml:177-181
自由窗口编辑模式 SystemDecorations=Full、可缩放/最大化/最小化;Win10≤1803 用不透明底色 MainWindow.axaml:182-191;MainWindow.axaml.cs:257-260
窗口标题 ClassIsland / 编辑主界面 | ClassIsland MainWindow.axaml:175, 180
自由窗口编辑模式屏幕边距 60 MainWindow.axaml.cs:134
编辑模式窗口高 = 屏高 − 1px 防 Windows 误判全屏 MainWindow.axaml.cs:970
窗口宽度(非编辑) screen.Bounds.Width / dpiX(整屏宽) MainWindow.axaml.cs:915
窗口高度(非编辑) 内容高 + safeT + safeB MainWindow.axaml.cs:916
竖直安全区 Fluent 20 / Classic 0 App.Services.xaml.cs:314;ThemeManifest.cs:20
停靠位置 6 值 + 默认 1 0..5,默认中上 Models/Settings.cs:48, 1810-1823
偏移 X/Y 默认 0 / 0(物理像素) Models/Settings.cs:49-50
显示器索引默认 0,越界回退主屏 Models/Settings.cs:51;MainWindow.axaml.cs:806-812
忽略工作区 默认 false Models/Settings.cs:1835
窗口层级 默认 1=置顶;0=置底 Models/Settings.cs:52, 1961-1978
置顶重查模式 默认 0;另有 1/2/3(3=1ms 高频) Models/Settings.cs:1860;MainWindow.axaml.cs:136-139, 420-436
任务栏显示条件 IsWindowMode || IsScreenRecordingModeEnabled MainWindow.axaml:34-39
鼠标穿透(Windows) WS_EX_LAYERED | WS_EX_TRANSPARENT | WS_EX_NOACTIVATE + SetLayeredWindowAttributes WindowPlatformService.cs:130-150
ToolWindow 非编辑/非自由窗口/非录屏时启用 WS_EX_TOOLWINDOW MainWindow.axaml.cs:832-838;WindowPlatformService.cs:173-185
防截屏 WDA_EXCLUDEFROMCAPTURE,开关默认 false MainWindow.axaml.cs:840;Models/Settings.cs:1862
提醒特效渲染缩放自动值 屏高 ≥1400 → 0.75;≥2000 → 0.5 MainWindow.axaml.cs:377-392

2.2 行(MainWindowLine)

参数 值 证据
行高 IslandContainerHeight 40 MainWindowLine.axaml:16、FluentTheme/Styles.axaml:65、ClassicTheme/Styles.axaml:16
内容盒内边距 / 最小宽 12 0 / 20 FluentTheme/Styles.axaml:109-110、ClassicTheme/Styles.axaml:99-100
行间距默认 5(范围 0–150,步进 5) Models/Settings.cs:219;MainWindow.axaml:344;EditModeView.axaml:114-120
组件外边距 6 0(相邻合计 12) MainWindow.axaml:396
行背景圆角 RadiusX(默认 8,0–20,步进 0.5) Models/Settings.cs:183, 1186-1196;SizeDoubleToCornerRadiusConverter.cs:8-17
行背景边框 1px,ControlElevationBorderBrush FluentTheme/Styles.axaml:46-47
行背景阴影 0 4 8 2 #48000000 FluentTheme/Styles.axaml:49
背景不透明度 Opacity 默认 0.5(0–1,步进 0.05),只作用于背景层 Models/Settings.cs:64, 1140-1150;FluentTheme/Styles.axaml:44
行不透明度 行级 Opacity 默认 1.0(0.1–1,步进 0.05) MainWindowLineSettings.cs:42;MainWindowLine.axaml:51
行淡出不透明度 0.05 MainWindowLine.axaml:73-75
行选择框 1.5px 虚线、dash 1/1.5、opacity 0.75、圆角端点、Bevel 连接 MainWindow.axaml:353-363
行操作按钮间距/字号 2 / 14 MainWindow.axaml:403-406
行过渡(Fluent) opacity 100ms;BackgroundWidth 300ms 0.65,0,0.35,1.0 FluentTheme/Styles.axaml:264-273
行过渡(Classic) opacity 100ms;BackgroundWidth 550ms 0,1,0.5,1.10 ClassicTheme/Styles.axaml:202-211
行挂载淡入 250ms 0.25,1,0.5,1,仅 AnimationLevel≥2 MainWindowLine.cs:382-401;Models/Settings.cs:1851
重排动画 300ms 0.65,0,0.35,1.0 MainWindow.axaml:197-198
分体主界面组件盒 Margin -2 0、MinWidth 40、ContentPresenter Margin 16 0 FluentTheme/Styles.axaml:245-259
分体主界面开关 全局默认 false;行级 IslandSeparationMode 0/1/2 Models/Settings.cs:1852;MainWindowLineSettings.cs:47-50

2.3 遮罩 / 浮层 / 进度

参数 值 证据
遮罩斜面角度 60°(tan(30°)*h,SlantedHeight 默认 80) SlantedMaskControl.cs:284-286, 25-26
遮罩区段权重 [0, 0.1, 0.2, 0.4, 0.2, 0.1](5 段 + 首尾 0) SlantedMaskControl.cs:298-308
遮罩区段时长 / 错峰 RegionDurationMs=360 / StageStaggerMs=120(行模板显式) FluentTheme/Styles.axaml:175-180
打开错峰 0/4 → 0ms;1/3 → 90ms;2 → 120ms;QuarticEaseOut SlantedMaskControl.cs:177-188
关闭错峰 2 → 0ms;1/3 → 90ms;0/4 → 120ms;QuadraticEaseIn SlantedMaskControl.cs:189-200
遮罩文字淡入 delay 260ms / 250ms / 0.25,1,0.5,1 FluentTheme/Styles.axaml:329-340
遮罩文字缩放 1.1→1.0 / 750ms / delay 260ms FluentTheme/Styles.axaml:341-352
强调底淡入 delay 600ms / 100ms / Forward FluentTheme/Styles.axaml:355-367
遮罩投影 0 8 32 0 #66000000 FluentTheme/Styles.axaml:323-328
提醒进度条 Maximum=1,Value=LeftProgress,过渡 50ms 线性 FluentTheme/Styles.axaml:131-146;MainWindowLine.axaml:77
浮层淡入淡出 200ms SineEaseIn FluentTheme/Styles.axaml:419-451
Classic 遮罩 Y -50→0 200ms QuadraticEaseIn;关 Y 0→50 delay100ms 200ms QuadraticEaseOut ClassicTheme/Styles.axaml:265-318
Classic 首帧投影 DropShadowEffect blur 8,Effect 过渡 100ms 线性 ClassicTheme/Styles.axaml:34-45
进度精度降低 默认 true;tick=max(10, totalSeconds/500) Models/Settings.cs:1853;CountDownComponent.axaml.cs:291-295

2.4 编辑模式

参数 值 证据
底部操作栏 bottom 64px、CornerRadius 6、Padding 4、按钮间距 6、1px 边框 MainWindow.axaml:595-604
操作栏分隔线 0,0 → 0,25、1px MainWindow.axaml:610-613
抽屉宽度 960(SettingsContainerWidth) ThemeBase.axaml:37;EditModeView.axaml:600-605
抽屉圆角 / 阴影 8 8 0 0 / 0 8 32 0 #66000000 VerticalDrawer.axaml:9, 45
抽屉内边距 / 标题栏 8 8 8 0 / 高 32 VerticalDrawer.axaml:53-54
抽屉过渡 bottom+height 250ms cubic-bezier(0,0,0,1) VerticalDrawer.axaml:29-36
次抽屉高度比例 0.5 EditModeView.axaml:608
设置容器 Margin 12 12 18 12、Spacing 4 StylesBase.axaml:67-71
组件库项 高 50、Margin 0 8、图标 32、描述 12px/0.75、WrapPanel 目标宽 225 EditModeView.axaml:177-218
拖拽阈值 / 预览透明度 3 / 0.5 EditableComponentsListBox.axaml:286-288
拖拽插入高亮 1s 交替无限,opacity 0.1↔0.6,SineEaseInOut EditableComponentsListBox.axaml:307-336
选中操作条 CornerRadius 6、Padding 4、Spacing 6、1px 边框、分隔线高 25 EditableComponentsListBox.axaml:100-184
容器组件浮动框 CornerRadius 6、Padding 4 0、把手宽 20、列表高 40、初始 Y+48 MainWindow.axaml:485-537;MainWindow.axaml.cs:1559-1567
隐藏组件斜条纹 45° 重复渐变 #afffffff/#50ffffff ComponentPresenter.axaml:20-33
缩放 ZoomBorder 0.5–3、speed 1.2、约束开启;设置 Scale 0.75–2.5 步进 0.05 MainWindow.axaml:199-212;EditModeView.axaml:50-57

2.5 组件(要点)

参数 值 证据
字号资源 14 / 16 / 18 / 20 ThemeBase.axaml:32-35;Models/Settings.cs:197-200
默认字体 HarmonyOS Sans SC + FluentSystemIcons-Resizable MainWindow.axaml.cs:185-189
字重 FontWeight.Medium(默认 500) Models/Settings.cs:101
宿主内边距 0 8(上下 8) ComponentPresenter.axaml:55-57
组件宽约束默认 min 100 / max 300 / fixed 200,全部关闭 ComponentSettings.cs:30-35, 37, 43
组件不透明度默认 1.0 ComponentSettings.cs:46
日期格式 ddd MM/dd DateComponent.axaml:11
时钟分隔符逻辑 !Flash || ShowSeconds || 秒%2==1 ClockComponent.axaml.cs:75
倒计时环 22×22、描边 3.1、半径 r=9.5、>100% 按 99.9999 CountDownComponent.axaml.cs:34-47
倒计时默认色/字号 #FFFF0000 / 16(16–30) CountDownComponentSettings.cs;设置页 :410-414
倒计时格式默认 %D天 同上
课程列表高 40、项 MaxHeight 40 LessonsListBox.axaml:41, 107
课程淡化 0.6,150ms CubicEaseInOut LessonsListBox.axaml:56-77
课程强调字号 18 + Bold LessonControlExpanded.axaml:66-67
课程左右间隔 16px * ScheduleSpacing(0.2–1) LessonControlExpanded.axaml:51-56, 219-224
最小型间隔 10px * ScheduleSpacing LessonControlMinimized.axaml:33-38
高亮条 高 12、opacity 0.4、margin -2 8 -2 0、radius 2 HighlightBox.axaml:15-18
天气主图尺寸 图标 22×22,图标右移 -2px WeatherComponent.axaml:42-44, 65-67
预警药丸 高 22、radius 11、文本 14px、margin 4 0 8 0 WeatherComponent.axaml:252-263
降水药丸 padding 0 8、1px 边框、底色 opacity 0.15、radius = 高/2 WeatherComponent.axaml:276-311
滚动速度默认 40 px/s(≥0.1) RollingComponentSettings.cs
滚动暂停默认 启用、10s、偏移 0 同上
轮播间隔默认 15s(≥0.1) SlideComponentSettings.cs
轮播动画 250ms 0.65,0,0.35,1,位移 ±40 SlideComponent.axaml:72-107
分割线 2×25、2px、opacity 0.8 SeparatorComponent.axaml:10-13
默认布局 1 行:日期 + 课程表 ComponentsService.cs:33-52

3. 未决问题 / 缺口(需要 Lead 或其它 part 决策)

  1. 主题颜色 token 未取色:SolidBackgroundFillColorSecondaryBrush、ControlElevationBorderBrush、AccentFillColorDefaultBrush、SmokeFillColorDefaultBrush、CommandBarOverflowPresenterBackground/BorderBrush、ContentDialogBackground/BorderBrush/BorderWidth、AqiLevel1..6Brush 的实际 HEX/alpha 未逐一定位取色(属 part 03 设计系统职责)。本 part 只写资源名与语义。风险:part 03 若用了不同命名,需要一次对齐。
  2. ProgressBar 默认高度/圆角未确认:FluentAvalonia 的 ProgressBar 模板高度直接影响行底提醒进度条、课程进度条、倒计时进度条的像素高度;part 04/05 已标【推断:约 3px】。需要 design 提供 token 或在实现里固定为 3px。
  3. Acrylic 的 Electron 等价:编辑模式用了 TransparencyLevelHint="AcrylicBlur, Transparent"。ClassHelper 的既有结论是禁止 setBackgroundMaterial()(会破坏逐像素透明)。本 part 给出的方案是"全屏半透明遮罩 + 窗口仍逐像素透明",未验证视觉等价性(不能运行)。需 Lead 决定是否接受该近似,或允许编辑模式例外使用材质。
  4. IsWindowMode 的 UI 入口未定位:MainViewModel.EditModeIsWindowMode 默认 true(MainViewModel.cs:48),但 EditModeView.axaml 中没有找到"全屏/自由窗口"切换按钮,可能在别的设置页或教程步骤里。属未决。
  5. 提醒在多行之间的分发策略:NotificationHostService.RegisterNotificationConsumer(this, IsMainLine ? -1 : LineNumber)(MainWindowLine.cs:441)只说明注册顺序,具体"多行都启用提醒时谁显示"的规则在 NotificationHostService 内部,本 part 未深入(属 part 07)。
  6. StackComponent 的测量语义:Avalonia Panel 中带 Margin="6 0" 的子项,其宽度是否计入容器测量宽,未验证;实现时以实测为准(本 part 按"取子项最大宽度 + 6px 外边距"描述)。
  7. ZoomBorder 手势细节:ZoomBorder 未定位到源码(可能来自 Avalonia 扩展库),滚轮是否需修饰键、双击是否重置、平移边界计算均为【推断】,已在 part 04 §4.6 标注。
  8. TextComponent 字号与全局字号的关系:文本组件用自身 Settings.FontSize(默认 16),不随 MainWindowBodyFontSize 变化,除非开启资源覆盖。这是源码事实,但产品上可能造成困惑,建议 part 10(设置中心)或 part 16 提示。
  9. 斜面遮罩的完整 CSS:part 04 只给了 5 段权重、60°、时长、缓动与实现思路,未给可直接粘贴的完整 @keyframes + 5 个 clip-path 片段(篇幅取舍)。若 Lead 要求"可直接粘贴",需补一节。
  10. 窗口高度=内容高的方案取舍:ClassIsland 是"窗口随内容高变化",ClassHelper 是"固定包围盒 + 窗内形变"。part 04 按 ClassIsland 写(附 ClassHelper 参考),但两者在"展开/折叠"场景下动画观感不同;需要 Lead 在 part 01/14 统一口径。
  11. MainWindow.axaml:8 Height="1" 的初始化意图未深究(Electron 无对应需求)。
  12. ReduceProgressAccuracy 对主界面行提醒进度条的量化:源码只对倒计时组件做了量化(CountDownComponent.axaml.cs:291-295),行进度条是否也量化未直接看到;part 04 §4.7.1 写成"同样应做降频"属【推断】。
  13. ExtraInfo4ShowSecondsSeconds、ShowTomorrowSchedules、PauseOnRule/PauseRule(滚动容器) 等字段在源码中存在但当前 UI 未暴露或未使用,属历史/预留字段;part 05 已标注"保留/兼容",实现时可保留 JSON 字段但不提供 UI。
  14. 多显示器 WindowDockingMonitorIndex 与 DPI 混合场景:ClassIsland 用所选屏幕的 Scaling 统一换算,若显示器 DPI 不同,跨屏拖动时会重算;part 04 只写了公式,跨 DPI 拖动的边界行为未验证。
  15. WindowTopmostRecheckMode 的 1ms 高频模式(WindowTopmostRecheckMode==3)在 Electron 下不可照搬(1ms 轮询会烧 CPU),part 04 已建议最小 1000ms;需 Lead 在 part 18(禁止事项/性能底线)确认。

4. Lead 裁决回填(第二轮,已完成)

Lead 对 §3 未决项做了最终裁决,已按"小范围修补"回填 parts 04/05(未重写整篇):

# 裁决 回填位置
1 禁止系统材质 API;编辑态用 rgba(0,0,0,0.30) 全屏遮罩 + 逐像素透明,禁 backdrop-filter;标【推断/差异说明】,不得写"与 Acrylic 完全一致" 04 §4.8.1、验收 14;拖拽预览浮标降级色 §4.8.8
2 窗口改采固定包围盒 + 窗内形变:宽 = 屏宽,高 = contentMaxHeight + 2*safePadding,setBounds 节流 ≥100ms;编辑模式扩展为「屏宽 ×(屏高−1px)」+ 四边 60px 安全边距 + 开鼠标;保留 ClassIsland 视觉结果(可见岛高 = 行高之和 + 行距) 04 §4.1 约定 1、§4.3 全节重写(4.3.1 裁决 / 4.3.2 视觉基准 / 4.3.3 编辑画布 / 4.3.4 节流)、§4.6、§4.8.2、§4.9、验收 5/5.1/6/14
3 进度条高度定为 3px(--ci-progress-height),3 处【推断≈3px】改确定值 04 §4.4 token 表 + §4.7.1 + 验收 8.1;05 §5.4、§5.5.2、§5.15
4 IsWindowMode 不实现 UI 入口,保留字段与能力说明,标 P2/【推断】;注明 2.1 中该设置存在但编辑页无可见切换按钮 04 §4.2 第 5 条
5 置顶:事件驱动 + 兜底轮询 ≥1000ms,禁止 1ms/10ms 级轮询,另列各模块刷新频率 04 §4.2 第 4 条 + 新增 §4.2.1 性能底线 + 验收 5.1
6 ZoomBorder:仅 Ctrl+滚轮 0.5–3.0 + 双击重置;不做平移(Space+drag 标 P2/【推断】) 04 §4.6 全节重写
7 提醒多行分发规则归 part 07;04 只保留宿主与 IsNotificationEnabled 标记 04 §4.5.8、验收 8
8 预留 JSON 字段保留 schema、不给 UI,统一标【预留】 05 §5.5.5、§5.8、§5.9(含统一处置说明)

修补后字数:04 = CJK 8360(+1859)、05 = CJK 7173(+191)。仍为只读分析、未运行任何程序、未改 repos/。

5. 自检

  • 数值全部有 路径:行号 证据或标【推断】。
  • 覆盖 MainWindow.axaml(.cs)、MainWindowLine、两套主题 Styles、全部 11 个组件 axaml+cs、8 个组件设置控件、EditMode 三个文件、ComponentPresenter、LessonsListBox + 3 种课程控件、SlantedMaskControl、VerticalDrawer、两个关键 Converter、Windows 平台窗口特性实现。
  • 覆盖 ClassHelper 侧 island.ts / IslandApp.vue / spring.ts / squircle.ts / classic-island.css / custom-island.css / custom-runtime.css / ComponentNode.vue / shared island-layout.ts + constants.ts。
  • 两份 part 均含「验收标准」小节,且均为中文祈使句、无"建议考虑"式模糊表述。
  • CJK 字数:04 = 8360,05 = 7173(要求 ≥5000)。
  • Lead 8 条裁决已全部回填(见 §4)。
  • 未构建、未运行、未截图、未安装依赖、未修改 repos/。