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

60 lines
5.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 一致性基准(Lead 已核对的 canonical 数值,供各 part 对齐与 Lead 审校)
> 本文件由 Lead 从源码核对;队友的 part 若与本文件冲突,以源码为准并在交付说明中指出;Lead 汇总时统一。
## 主界面(Fluent 主题)
- `IslandContainerHeight = 40`(行内容/背景高度,FluentTheme/Styles.axaml:65)
- 行内容区 `MinWidth=20`,`Margin="12 0"`(FluentTheme/Styles.axaml:107-110)
- 行背景:`BorderThickness=1`,背景 `SolidBackgroundFillColorSecondaryBrush`,边框 `ControlElevationBorderBrush`,阴影 `0 4 8 2 #48000000`,圆角 = RadiusX(默认 8,`ConverterParameter=1.0`)(FluentTheme/Styles.axaml:40-50)
- 背景过渡:`Opacity 100ms`、`BackgroundWidth 300ms cubic-bezier(0.65, 0, 0.35, 1.0)`(FluentTheme/Styles.axaml:268-269;MainWindow.axaml:197-198)
- Classic 主题:`BackgroundWidth 550ms cubic-bezier(0.00, 1.00, 0.50, 1.10)`、`Opacity 100ms`(ClassicTheme/Styles.axaml:206-207)
- 组件外边距:根组件 `Margin="6 0"`(MainWindow.axaml:396)
- 行垂直间距 = `MainWindowLineVerticalMargin` 默认 5(Settings.cs:219;MainWindow.axaml:344)
- 选择框(编辑模式):`StrokeThickness=1.5`、`StrokeDashArray="1, 1.5"`、`Opacity=0.75`、`StrokeLineCap=Round`、`StrokeJoin=Bevel`(MainWindow.axaml:353-363)
- 编辑模式窗口:背景 `SmokeFillColorDefaultBrush`,`TransparencyLevelHint=AcrylicBlur,Transparent`;窗口模式窗口 `SystemDecorations=Full` 等(MainWindow.axaml:165-191)
- 主窗口:`ShowActivated=False`、`TransparencyBackgroundFallback=Transparent`、默认 `Height=1`(自适应)、`CanResize/Maximize/Minimize=False`、`SystemDecorations=None`(MainWindow.axaml:8,32,168-176)
## 窗口与设置默认值(ClassIsland/Models/Settings.cs)
- `Theme=2`(跟随系统;0 亮 1 暗 2 跟随); `PrimaryColor=DeepSkyBlue`; `SecondaryColor=Aquamarine`
- `WindowDockingLocation=1`(中上侧;0 左上 1 中上 2 右上 3 左下 4 中下 5 右下)
- `WindowDockingOffsetX/Y=0`; `WindowDockingMonitorIndex=0`; `WindowLayer=1`; `IsMouseClickingEnabled=false`
- `Opacity=0.5`; `Scale=1.0`; `RadiusX=RadiusY=8.0`; `MainWindowFont=默认`; `MainWindowFontWeight2=Medium(500)`
- 字号:Secondary 14 / Body 16 / Emphasized 18 / Large 20
- `MainWindowLineVerticalMargin=5`; `IsIslandSeperated=false`; `ReduceProgressAccuracy=true`
- `IsMainWindowVisible=true`; `HideOnClass=false`; `HideOnMaxWindow=false`; `HideOnFullscreen=false`
- `ClassPrepareNotifySeconds=60`; `IsClassPrepareNotificationEnabled=true`; `IsClassChangingNotificationEnabled=true`; `IsClassOffNotificationEnabled=true`
- `NotificationSoundVolume=1.0`; `IsNotificationEffectEnabled=true`; `IsNotificationSoundEnabled=true`; `IsNotificationTopmostEnabled=true`; `IsSpeechEnabled=true`; `SpeechVolume=1.0`
- `IsAutoBackupEnabled=true`; `AutoBackupIntervalDays=7`; `AutoBackupLimit=16`
- `AnimationLevel=1`; `IsAutomationEnabled=false`
- `TaskBarIconClickBehavior`:Windows 0(打开主菜单),其他平台 4(打开设置窗口)
## 状态与枚举(待各 part 细化)
- `TimeState`:OnClass / Breaking / ...(LessonsService.CurrentState)
- TimeLayoutItem 类型:上课/课间/分割线/行动
- NotificationPriority:见 Shared/Models/Notification
- 隐藏模式 `HideMode`:0 基本(上课/最大窗口/全屏)、1 高级(规则集)
## ClassHelper 技术栈(固定)
- pnpm 11.8.0;Node >= 20.19;Electron ^44.3.0;Vue ^3.5.42;Element Plus ^2.14.5;Pinia ^4.0.3;Vue Router ^5.3.1;Vite ^8.3.0;TypeScript ~5.9.3
- 岛:独立 `island.html` + 独立 BrowserWindow;`squircle.ts`(p=2/4.2,14 段/角);`spring.ts`(stiffness 0.10,damping 0.68,snap 0.05px,动量保留 0.35,最大距离比 0.2,最大 dt 6 帧);`classic-island.css` 字号全部由 `--island-font` calc 推导;`tokens.css` 基础:`--ch-ui-primary:#5d6bfa`、radius 8px、gap 16px 等
- 安全:preload contextBridge 白名单;CSP;不暴露 ipcRenderer;渲染层不持文件能力
## 已确认的动画片段(供 part 14 交叉核对)
- 背景色 BrushTransition 200ms(MainWindow.axaml:40-44)
- WrapPanel 尺寸动画 300ms cubic-bezier(0.65,0,0.35,1.0)(MainWindow.axaml:197-198)
- Fluent 行背景 BoxShadowsTransition 100ms;进度条 Value 过渡 50ms Linear(FluentTheme/Styles.axaml:97,139-142)
- Fluent 遮罩/背景:Opacity 100ms、BackgroundWidth 300ms;出现位移动画 250ms cubic-bezier(0.25,1,0.5,1)、延迟 260ms;尺寸动画 750ms 同曲线;延迟 600ms/100ms(FluentTheme/Styles.axaml:331-357,378-403)
- Classic 主题:Opacity 100ms、BackgroundWidth 550ms cubic-bezier(0,1,0.5,1.1);动画 200ms 等(ClassicTheme/Styles.axaml:206-207,268-321)
- 页面切换:PageSlide 300ms cubic-bezier(0.76,0,0.24,1) + CrossFade 300ms(ClassChangingWindow/DataTransferPage/WelcomePages)
- OOBE 开场:3000ms cubic-bezier(0.00,0.83,0.17,0.90);后续 250ms cubic-bezier(0.76,0,0.24,1)、700ms cubic-bezier(0.33,1,0.68,1)(Controls/OobeIntroAnimationControl.axaml:16,47-48,93-105)
- 教程聚光灯:750ms cubic-bezier(0.16,1,0.3,1);高亮环 1750ms(Controls/Tutorial/*.axaml)
- 关于页 Logo:延迟 250ms、持续 200ms、Easing 0,0 0,1(AboutSettingsPage.axaml:136-137)
## 待核对项(Lead 会在汇总时检索)
- 通知气泡的精确尺寸/圆角/间距(ClassNotificationProviderControl.axaml)
- 强提醒特效的参数(TopmostEffectWindow + NotificationHostService)
- 天气组件布局尺寸(WeatherComponent.axaml)
- 课程表组件列宽/行高(ScheduleComponent.axaml)
- OOBE 各页尺寸(WelcomeWindow.axaml)
- 设置窗口尺寸(SettingsWindowNew.axaml)