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

5.6 KiB
Raw Blame History

一致性基准(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)