Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
581cb64
feat: unify modal styles and enhance UI for overview and quick links …
Flashhhhhhzj Jun 17, 2026
e8567c0
fix: 解决概览与快速连接页面主要按钮的颜色继承问题
St0ff3l Jun 17, 2026
ae2cc29
feat: 在侧边栏和概览页面中将“新建连接”替换为“命令管理器并优化侧边栏”
St0ff3l Jun 17, 2026
4724f48
fix: 移除模态框和对话框的入场过渡动画
St0ff3l Jun 17, 2026
2793769
feat: 支持主页选项卡栏及拖拽对齐,优化选项卡整体布局
St0ff3l Jun 17, 2026
258bc60
fix: 修复主进程编译错误,精简和美化 Windows 自定义标题栏与窗口控制按钮
St0ff3l Jun 17, 2026
d152390
移除 Windows 标题栏左侧的自定义菜单按钮
St0ff3l Jun 17, 2026
9f71cdc
在Windows标题栏左侧添加TermDock及版本下拉菜单,并隐藏侧边栏品牌头部
St0ff3l Jun 17, 2026
52c0409
开启Windows标题栏版本下拉菜单的可点击状态
St0ff3l Jun 17, 2026
fb71dfe
优化工作台弹窗与命令管理并补充设置能力
St0ff3l Jun 18, 2026
b4d2317
调整最近使用排序并优化设置侧栏间距
St0ff3l Jun 18, 2026
70aa2fb
补齐设置与首页国际化并支持系统语言识别
St0ff3l Jun 18, 2026
6e0eba3
收敛确认弹窗样式并统一活跃连接关闭确认
St0ff3l Jun 18, 2026
dd09288
fix: 调整终端悬浮命令窗的交互与本地化一致性
St0ff3l Jun 19, 2026
9aa5383
chore: 清理 file editor 配置文件中的无意义空白改动
St0ff3l Jun 19, 2026
52a3d0a
修复命令发送目标持久化与历史存储链路
St0ff3l Jun 20, 2026
2e47031
feat: enhance modal UI with improved focus states and button styles
Flashhhhhhzj Jun 20, 2026
30544a1
调整主页管理器布局与标签页默认首页
St0ff3l Jun 21, 2026
7738843
统一主页内嵌管理器右侧边距
St0ff3l Jun 21, 2026
2b2d8f6
优化文件编辑器窗口与管理器内嵌布局,迁移项目技能目录
St0ff3l Jun 21, 2026
e3629e6
更新 AGENTS 说明并收敛技能目录入口
St0ff3l Jun 21, 2026
6808a07
chore: 升级版本到 0.2.0-beta.1 并收敛版本同步流程
St0ff3l Jun 21, 2026
f276906
Merge branch 'main' into fix/ui-modal-overview-quick-links
St0ff3l Jun 21, 2026
910b8c5
chore: 收拢 shared 版本同步并统一内部包版本号
St0ff3l Jun 21, 2026
0e0310e
Merge branch 'fix/ui-modal-overview-quick-links' of https://github.co…
St0ff3l Jun 21, 2026
f84f49c
update
St0ff3l Jun 21, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
312 changes: 312 additions & 0 deletions .agents/skills/ui-ux-pro-max-zh/SKILL.md

Large diffs are not rendered by default.

414 changes: 414 additions & 0 deletions .agents/skills/ui-ux-pro-max-zh/data/_sync_all.py

Large diffs are not rendered by default.

31 changes: 31 additions & 0 deletions .agents/skills/ui-ux-pro-max-zh/data/app-interface.csv
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
No,Category,Issue,Keywords,Platform,Description,Do,Don't,Code Example Good,Code Example Bad,Severity
1,Accessibility,Icon Button Labels,icon button accessibilityLabel,iOS/Android/React Native,仅图标按钮必须公开可访问的标签,在图标按钮上设置 accessibilityLabel 或 label 属性,没有可访问名称的图标按钮,"<Pressable accessibilityLabel=""Close""><XIcon /></Pressable>",<Pressable><XIcon /></Pressable>,Critical
2,Accessibility,Form Control Labels,form input label accessibilityLabel,iOS/Android/React Native,所有输入都必须具有可见标签和可访问性标签,将文本标签与输入配对并设置 accessibilityLabel,仅带有占位符的输入,"<View><Text>Email</Text><TextInput accessibilityLabel=""Email address"" /></View>","<TextInput placeholder=""Email"" /></View>",Critical
3,Accessibility,Role & Traits,accessibilityRole accessibilityTraits,iOS/Android/React Native,交互元素必须暴露正确的角色/特征,使用 accessibilityRole/按钮/链接/复选框等。,依赖没有角色的通用视图,"<Pressable accessibilityRole=""button"">Submit</Pressable>",<View onTouchStart={submit}>Submit</View>,High
4,Accessibility,Dynamic Updates,accessibilityLiveRegion announce,iOS/Android/React Native,应向屏幕阅读器宣布异步状态更新,使用 accessibilityLiveRegion 或 announceForAccessibility,静默更新文本,不通知,"<Text accessibilityLiveRegion=""polite"">{status}</Text>",<Text>{status}</Text>,Medium
5,Accessibility,Decorative Icons,accessible={false} importantForAccessibility,iOS/Android/React Native,装饰图标应该对屏幕阅读器隐藏,将装饰图标标记为无障碍不友好,让屏幕阅读器读取每个图标,"<Icon accessible={false} importantForAccessibility=""no"" />",<Icon />,Medium
6,Touch,Touch Target Size,touch 44x44 hitSlop,iOS/Android/React Native,主要触摸目标必须至少为 44x44pt,增加 hitSlop 或 padding 以满足最小值,带有小触摸区域的小图标,<Pressable hitSlop={10}><Icon /></Pressable>,"<Pressable><Icon style={{ width: 16, height: 16 }} /></Pressable>",Critical
7,Touch,Touch Spacing,touch spacing gap 8px,iOS/Android/React Native,相邻触摸目标需要足够的间距,可触摸对象之间至少保持 8dp 的间距,许多按钮没有间隙地聚集在一起,<View style={{ gap: 8 }}><Button ... /><Button ... /></View>,<View><Button ... /><Button ... /></View>,Medium
8,Touch,Gesture Conflicts,scroll swipe back gesture,iOS/Android/React Native,自定义手势不得破坏系统滚动/后退,为轮播保留水平滑动,全屏自定义滑动与返回冲突,HorizontalPager inside vertical ScrollView,PanResponder on full screen blocking back,High
9,Navigation,Back Behavior,back handler navigation stack,iOS/Android/React Native,后退导航应该是可预测的并保留状态,使用 navigation.goBack 并保持屏幕状态,重置导航栈或意外退出应用程序,onPress={() => navigation.goBack()},BackHandler.exitApp() on first press,Critical
10,Navigation,Bottom Tabs,tab bar max items,iOS/Android/React Native,底部标签栏最多应有 5 个主要项目,使用 3-5 个选项卡并将额外内容移至更多/设置,带有许多图标的超载选项卡栏,Home/Explore/Profile/Settings,Home/Explore/Shop/Cart/Profile/Settings/More,Medium
11,Navigation,Modal Escape,modal dismiss close affordance,iOS/Android/React Native,模态框/表单必须有明确的关闭动作,在平台期望的位置提供关闭按钮和向下滑动按钮,将用户困在没有明显退出的模式中,"<Modal><Button title=""Close"" onPress={onClose} /></Modal>",<Modal><View>{children}</View></Modal>,High
12,State,Preserve Screen State,navigation preserve state,iOS/Android/React Native,返回屏幕应恢复其滚动和表单状态,保持组件已安装或保持状态,每次访问时重置列表滚动和表单输入,<Tab.Navigator screenOptions={{ unmountOnBlur: false }}>,<Tab.Screen options={{ unmountOnBlur: true }} />,Medium
13,Feedback,Loading Indicators,activity indicator skeleton,iOS/Android/React Native,在网络操作期间显示可见的反馈,使用 ActivityIndicator 或骨架进行 >300ms 的操作,让按钮和屏幕保持冻结状态,"{loading ? <ActivityIndicator /> : <Button title=""Save"" />}"," ""<Button title=""""Save"""" onPress={submit} /> //没有加载”",High
14,Feedback,Success Feedback,toast checkmark banner,iOS/Android/React Native,通过简短的反馈确认成功的操作,显示 Toast/复选标记或横幅,默默地完成操作,无需确认,showToast('Saved successfully'),//仅默默更新状态,Medium
15,Feedback,Error Feedback,inline error banner,iOS/Android/React Native,在问题附近显示清晰的错误消息,输入级错误+摘要横幅,只改变边框颜色,没有任何解释,<TextInput ... /><Text style={{color:'red'}}>{error}</Text>,<TextInput style={{borderColor:'red'}} />,High
16,Forms,Inline Validation,onBlur validation,iOS/Android/React Native,验证失去焦点的输入或以清晰的消息提交,验证 onBlur 和 onSubmit,验证导致卡顿的每次击键,onBlur={() => validateEmail(value)},onChangeText={v => validateEmail(v)} //每个字符,Medium
17,Forms,Keyboard Type,keyboardType returnKeyType,iOS/Android/React Native,使用适当的 keyboardType 和 returnKeyType,匹配电子邮件/电话/号码/搜索类型,对所有输入使用默认键盘,"<TextInput keyboardType=""email-address"" />","<TextInput keyboardType=""default"" />",Medium
18,Forms,Auto Focus & Next,autoFocus blurOnSubmit onSubmitEditing,iOS/Android/React Native,使用下一步/完成流程引导用户浏览表单字段,使用 onSubmitEditing 聚焦下一个输入,强制用户手动点击每个字段,onSubmitEditing={() => nextRef.current?.focus()},//没有 onSubmitEditing,仅手动点击,Low
19,Forms,Password Visibility,secureTextEntry toggle,iOS/Android/React Native,允许安全地切换密码可见性,提供显示/隐藏图标切换 secureTextEntry,强制用户盲输入,没有选项,<TextInput secureTextEntry={secure} /><Icon onPress={toggle} />,<TextInput secureTextEntry /> //没有切换,Medium
20,Performance,Virtualize Long Lists,FlatList SectionList virtualization,iOS/Android/React Native,使用 FlatList/SectionList 列出超过 50 个项目,适当使用 keyExtractor 和 initialNumToRender,使用 ScrollView 渲染数百个项目,<FlatList data={items} renderItem={...} />,<ScrollView>{items.map(renderItem)}</ScrollView>,High
21,Performance,Image Size & Cache,Image resize cache,iOS/Android/React Native,使用正确大小和缓存的图像,使用具有适当 resizeMode 和缓存的 Image 组件,随处加载全分辨率图像,"<Image source={{uri}} resizeMode=""cover"" />",<Image source={require('4k.png')} /> //小头像,Medium
22,Performance,Debounce High-Freq Events,debounce scroll search,iOS/Android/React Native,对滚动/搜索应用防抖/节流回调以避免卡顿,使用防抖/节流包装处理程序,对每个事件运行大量逻辑,onScroll={debouncedHandleScroll},onScroll={handleScrollHeavy},Medium
23,Animation,Duration & Easing,animation duration easing,iOS/Android/React Native,微交互应为 150–300 毫秒,并具有类似原生的缓动,使用缓出进入/缓入退出,对核心 UI 使用长动画或线性动画,"Animated.timing(..., { duration: 200, easing: Easing.out(Easing.quad) })","Animated.timing(..., { duration: 800, easing: Easing.linear })",Medium
24,Animation,Respect Reduced Motion,reduced motion accessibility,iOS/Android/React Native,尊重操作系统简化运动辅助功能设置,检查 reduceMotionEnabled 并简化动画,忽略用户动作偏好,if (reduceMotionEnabled) skipAnimation(),Always run complex parallax animations,Critical
25,Animation,Limited Continuous Motion,loop animation loader,iOS/Android/React Native,为加载程序和实时数据保留无限动画,仅在必要时使用循环,让装饰元素永远循环,Animated.loop(loaderAnim) for ActivityIndicator,Animated.loop(bounceAnim) on background icons,Medium
26,Typography,Base Font Size,fontScale dynamic type,iOS/Android/React Native,正文文本必须可读并支持动态类型,使用平台 fontScale 和至少 14–16pt 的基础,渲染 12pt 以下的关键文本,<Text style={{ fontSize: 16 }}>Body</Text>,<Text style={{ fontSize: 10 }}>Body</Text>,High
27,Typography,Dynamic Type Support,allowFontScaling adjustsFontSizeToFit,iOS/Android/React Native,支持系统文本缩放而不破坏布局,设置 allowFontScaling 并测试大文本,全局禁用所有文本的缩放,<Text allowFontScaling>{label}</Text>,<Text allowFontScaling={false}>{label}</Text>,High
28,Safe Areas,Safe Area Insets,safe area insets notch gesture,iOS/Android/React Native,内容不得与凹口/手势栏重叠,在 SafeAreaView 中环绕屏幕或应用插图,将可点击的内容放置在系统栏下方,<SafeAreaView style={{ flex: 1 }}><Screen /></SafeAreaView>,<View style={{ flex: 1 }}><Screen /></View>,High
29,Theming,Light/Dark Contrast,dark mode contrast tokens,iOS/Android/React Native,确保浅色和深色主题有足够的对比度,使用语义标记并测试两个主题,直接在暗黑模式下重复使用浅色主题灰色,colors.textPrimaryDark = '#F9FAFB',colors.textPrimaryDark = '#9CA3AF' on '#111827',High
30,Anti-Pattern,No Gesture-Only Actions,gesture only hidden controls,iOS/Android/React Native,不要仅依赖隐藏的手势来执行核心操作,除手势外还提供可见按钮,仅依靠滑动/摇动,没有 UI 可供性,Swipe to delete + visible Delete button,Only shake device to undo with no UI,Critical
Loading