mcpField
E
expo-ui

expo-ui

github.com/pproenca开发220133 次安装11 周前更新
代码仓库

关于 expo-ui

面向 Agent 的参考技能,帮助使用 Expo 的 `@expo/ui/swift-ui` 和 modifier API 构建 iOS 界面。它按优先级整理 SwiftUI 桥接规则,涵盖 Host 设置、布局、控件和 iOS 26 组合方式。

主要功能

  1. 01涵盖八类的 53 条规则
  2. 02Host 与 modifier 使用指引
  3. 03布局和输入控件模式
  4. 04iOS 26 界面组合指引

适用场景

  1. 01使用原生 SwiftUI 视图构建界面
  2. 02将 React Native 基础组件迁移到 SwiftUI 组件
  3. 03审查或调试 `@expo/ui/swift-ui` 代码

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/pproenca/dot-skills --skill expo-ui

安装后在 Claude Code 中输入/expo-ui确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

AGENTS.md
gotchas.md
metadata.json
README.md
assets/templates/
_template.md
references/
_sections.md
display-chart-data-points.md
display-gauge-current-value-label.md
display-image-system-name.md
display-label-icon-vs-title.md
display-progress-indeterminate.md
display-text-markdown.md
hig-confirmation-dialog-destructive.md
hig-glass-effect-container.md
hig-no-glass-on-glass.md
hig-no-stacked-modals.md
hig-popover-iphone-fallback.md
hig-sheet-detents-partial.md
hig-tint-only-for-brand.md
host-color-scheme-explicit.md
host-ignore-safe-area.md
host-match-contents.md
host-viewport-size-for-form.md
host-wrap-all-swiftui-roots.md
input-button-role-for-destructive.md
input-button-systemimage.md
input-date-picker-range.md
input-picker-style-via-modifier.md
input-securefield-for-passwords.md
input-stepper-bounded.md

详细介绍

Expo @expo/ui SwiftUI 最佳实践

@expo/ui/swift-ui 和 @expo/ui/swift-ui/modifiers 的库参考——Expo 原生 UI 桥接在 iOS 上的接口。包含 8 个类别中的 53 条规则,并按级联影响排序,适用于构建在 iOS 26 及更早版本上渲染为原生 SwiftUI 视图的 Expo 应用。

何时应用

在以下情况下参考这些指南:

  • 使用 @expo/ui/swift-ui 构建新屏幕——选择合适的容器(Form、List 还是 ScrollView),正确包裹在 Host 中,并应用修饰符
  • 将 React Native 基础组件(View、Text、TouchableOpacity)迁移为原生 SwiftUI 组件
  • 面向 iOS 26 功能——Liquid Glass 材质、GlassEffectContainer、新的 sheet detent 行为
  • 审查从 @expo/ui/swift-ui 或 @expo/ui/swift-ui/modifiers 导入内容的代码
  • 调试“SwiftUI 视图未渲染/尺寸错误/忽略样式”——通常是 Host 或修饰符问题
  • 根据 HIG 模态规范组合呈现界面——Alert、ConfirmationDialog、BottomSheet、Popover
  • 使用 useNativeState 和 worklet 写入来编写受控输入(TextField、Toggle、Picker、Slider)

何时不使用此技能

  • Android Jetpack Compose——此技能仅涵盖 iOS SwiftUI。@expo/ui/jetpack-compose 接口有自己的惯例
  • 通用(跨平台)组件——@expo/ui 提供的通用组件较少;此技能仅涵盖 iOS 平台专用接口
  • 导航路由——对于堆栈/标签路由,请使用 expo-router 和 expo-router/unstable-native-tabs;此技能仅涵盖 UI 组合
  • iOS 17 之前版本的回退方案——大多数规则假设最低版本为 iOS 17;Liquid Glass 规则要求 iOS 26

按优先级划分的规则类别

优先级类别影响前缀
1设置与 Host 边界CRITICALhost-
2iOS 26 HIG 组合规则CRITICALhig-
3修饰符系统CRITICALmod-
4布局组件HIGHlayout-
5输入与控件HIGHinput-
6导航与叠层HIGHnav-
7显示与反馈MEDIUM-HIGHdisplay-
8状态与跨领域模式MEDIUMstate-

快速参考

1. 设置与 Host 边界(CRITICAL)
2. iOS 26 HIG 组合规则(CRITICAL)
3. 修饰符系统(关键)
4. 布局组件(高优先级)
5. 输入与控件(高优先级)
6. 导航与覆盖层(高优先级)
7. 显示与反馈(中高)
8. 状态与跨领域模式(中)

使用方法

阅读各个参考文件,了解详细说明和代码示例:

  • 章节定义 — 分类结构和影响级别
  • 规则模板 — 用于添加新规则的模板
  • 参考文件:references/{prefix}-{slug}.md

每个规则文件都包含:

  • 简要说明规则对 SwiftUI 桥接的重要性
  • 基于真实领域场景的错误代码示例
  • 与错误示例仅有最小差异的正确代码示例
  • 适用时:替代方案、不适用场景、警告提示、权威参考 URL

注意事项

参见 gotchas.md — 在实际使用中发现故障点时,追加条目。

相关技能

  • 对于 Android Jetpack Compose 组件,对应的技能应以 @expo/ui/jetpack-compose 为目标
  • 对于导航路由(堆栈、标签页),直接使用 expo-router
  • 对于表单验证库,请参见 react-hook-form 技能

评论

支持 Markdown