Token导航 LogoToken导航

Agent Skill · 前端设计

openharmony-ui-reference(OpenHarmony UI 参考)

用于辅助前端页面、组件、样式和交互逻辑的开发与维护。它适合让 Agent 生成或审查 React、Next.js、Vue、Tailwind、CSS 等相关代码,整理组件结构,或定位布局和性能问题。使用时需要结合项目现有设计系统、路由和构建方式,避免只生成孤立片段;涉及页面改动时,应配合本地预览和构建检查确认视觉效果。

openharmony-ui-reference 是前端设计类 Agent Skill,可用宿主为 Codex、Claude、Cursor、Gemini CLI,通过GitHub 仓库获取,权限为需要联网;许可证为 MIT,第三方扫描已通过,按安装量在前端设计类的 10,216 个 Skill 里排第 6,192。

总安装 541周安装 23GitHub Stars 1下载 190核验 2026-05-01

安装说明

本站只整理中文说明,不托管安装包,也不代用户安装。
GitHub
许可证
MIT

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:openharmony-ui-reference(OpenHarmony UI 参考)
来源仓库:https://github.com/mengfei0053/skills
仓库路径:skills/openharmony-ui-reference
安装命令:
npx skills add https://github.com/mengfei0053/skills --skill openharmony-ui-reference
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。不同来源提供的安装方式可能略有差异;本站展示可直接复制的安装命令,安装前请核对来源页面。

skills.shnpx skills
npx skills add https://github.com/mengfei0053/skills --skill openharmony-ui-reference

这个 Skill 是做什么的

前端设计类 Skill 关注页面结构、视觉规范和组件写法,输出通常是可运行的界面代码。

openharmony-ui-reference 用于辅助前端页面和组件开发,适合在 Codex、Claude、Cursor、Gemini CLI 中生成或审查 UI 代码。适用于 OpenHarmony 生态下的组件结构和交互逻辑维护。使用时需结合项目现有设计系统和路由结构,避免生成孤立片段。

涉及页面改动时应配合本地预览和构建检查确认视觉效果。建议核对 ArkTS 和 UI 框架版本,防止兼容性问题。

来源仓库内路径:skills/openharmony-ui-reference

上手步骤

4 步
  1. 1

    确认自己的宿主工具

    公开资料标注支持 Codex、Claude、Cursor、Gemini CLI;先确认自己用的是其中之一,再按对应工具的 Skills 目录放置。

  2. 2

    拿到安装命令

    可以直接复制的命令是 npx skills add https://github.com/mengfei0053/skills --skill openharmony-ui-refe…;命令里的占位符换成自己的路径或密钥再执行。

  3. 3

    安装后重启宿主

    命令执行完要完全退出宿主工具再打开,让新装的 Skill 被重新扫描到,否则列表里可能看不到。

  4. 4

    按最小权限试用

    它需要需要联网,先在测试目录或测试账号里跑,确认没问题再放到正式项目。

常见问题

6 条

openharmony-ui-reference 怎么安装?

在终端执行 npx skills add https://github.com/mengfei0053/skills --skill openharmony-ui-reference。装完完全退出宿主工具再打开,让它重新扫描本地 Skill。

openharmony-ui-reference 支持哪些 AI 工具?

公开资料标注支持 Codex、Claude、Cursor、Gemini CLI。其他工具只要能读取本地 Skill 目录,一般也能手动放进去,但要自己确认触发方式是否一致。

openharmony-ui-reference 需要什么权限?

权限级别是需要联网。该 Skill 可能需要联网访问来源站点、仓库或外部 API;具体网络访问范围需要结合源码和 README 复核。

openharmony-ui-reference 是免费的吗?

来源标注的许可证是 MIT。本站不代收任何费用,也不托管安装包;能否商用、要不要署名,以许可证原文为准。

openharmony-ui-reference 用的人多吗?

公开数据是累计安装 541 次,近一周安装 23 次,下载 190 次,GitHub 1 星。这些数字来自第三方目录统计,只能当作热度参考,不代表质量或安全性。

openharmony-ui-reference 安全吗?

第三方扫描结果为通过,但这只覆盖已知的静态检查项,不能替代自己读一遍源码和安装命令。

值得选的地方和要先想清楚的地方

值得选的地方

  • 同时适配 4 种工具,换客户端不用重新找替代品。
  • 3 个目录同时收录,说明这个 Skill 流传比较广。
  • 许可证明确为 MIT,商用和分发边界好判断。
  • 第三方扫描已通过,常见的高风险行为没有命中。

先想清楚的地方

  • 第三方目录整理,版本更新和行为细节以来源仓库为准。

适不适合你

更适合

  • 已经在用 Codex,想直接扩展它能力的人。
  • 需要处理前端设计类任务、又不想每次都手写提示词的人。
  • 需要许可证清楚、并且有第三方扫描结果的团队项目。

不太适合

  • 需要厂商级技术支持和 SLA 的生产系统。

前端设计类 Skill 对比

6 个同类
Skill总安装GitHub 星权限许可证扫描
frontend-design

前端设计 · Codex、Claude

8,823,360126,072只读MIT通过
vercel-composition-patterns

Vercel 组合模式 · Codex、Claude

3,858,81625,893需要联网MIT通过
vercel-react-native-skills

Vercel React native skills 前端 · Codex、Claude

2,468,66425,878只读MIT通过
adapt

adapt 搜索 · Codex、Claude

2,027,04023,125操作浏览器未明确通过
bolder

bolder 分析 · Codex、Claude

2,004,28823,130只读未明确通过
openharmony-ui-reference

OpenHarmony UI 参考 · 本页

5411需要联网MIT通过

按安装量取同分类前几名;数字来自第三方目录统计,只作热度参考,不代表质量结论。

SKILL.md 原文

OpenHarmony UI 快速参考

概述

OpenHarmony 使用 ArkTS (基于 TypeScript 的声明式 UI) 来构建用户界面。核心概念:声明式 UI 描述、组件化架构、状态管理装饰器、响应式布局。

官方文档: docs-OpenHarmony-v6.0-Release/zh-cn/application-dev/ui/ 快速参考: docs/ (本地提取的核心文档)

状态管理

V2 (推荐用于新项目)

装饰器用途作用域
@Local组件内部状态仅组件内部
@Param父 → 子 (单向)父到子
@Event子 → 父回调子到父
@Provider/@Consumer跨组件同步任意后代组件

双向绑定:

// 父组件
@ComponentV2
struct Parent {
  @Local text: string = ''

  build() {
    Child({ text: this.text, onTextChange: (val) => { this.text = val } })
  }
}

// 子组件
@ComponentV2
struct Child {
  @Param text: string
  @Event onTextChange: (val: string) => void

  build() {
    TextInput({ text: this.text })
      .onChange((val) => this.onTextChange(val))
  }
}

// 语法糖(更简单)
TextInput({ text: $$this.text })

V1 (传统方式)

装饰器用途作用域
@State组件内部状态仅组件内部
@Prop父 → 子 (单向)父到子
@Link父 ↔ 子 (双向)双向绑定
@Provide/@Consume跨组件同步任意后代组件

文档参考: docs/state-management/arkts-state-management-overview.md

布局

需求组件关键属性文档
水平排列Rowspace, alignItems, justifyContentdocs/layout/arkts-layout-development-linear.md
垂直排列Columnspace, alignItems, justifyContentdocs/layout/arkts-layout-development-linear.md
层叠布局StackalignContentdocs/layout/arkts-layout-development-stack-layout.md
弹性布局Flexdirection, wrap, justifyContentdocs/layout/arkts-layout-development-flex-layout.md
相对布局RelativeContainerx/y 规则docs/layout/arkts-layout-development-relative-layout.md
网格布局Grid/GridItemcolumnsTemplate, rowsTemplatedocs/layout/arkts-layout-development-grid-layout.md
标签页Tabs/TabContentbarPosition, scrollabledocs/navigation/arkts-navigation-tabs.md
列表List/ListItemspace, scrollBardocs/layout/arkts-layout-development-create-list.md
瀑布流WaterFlow/FlowItemcolumnsTemplatedocs/layout/arkts-layout-development-create-waterflow.md

内容居中:

Column() {
  Text('Centered')
}
.width('100%')
.height('100%')
.justifyContent(FlexAlign.Center)
.alignItems(HorizontalAlign.Center)

文档参考: docs/layout/arkts-layout-development-overview.md

常用组件

组件用途文档
Text显示文本docs/components/arkts-common-components-text-display.md
TextInput单行输入docs/components/arkts-common-components-text-input.md
TextArea多行输入docs/components/arkts-common-components-text-input.md
Button可点击按钮docs/components/arkts-common-components-button.md
Image显示图片docs/components/arkts-graphics-display.md
List垂直滚动列表docs/layout/arkts-layout-development-create-list.md
Grid网格布局docs/layout/arkts-layout-development-create-grid.md
Swiper轮播图docs/layout/arkts-layout-development-create-looping.md
RichEditor富文本编辑器docs/components/arkts-common-components-richeditor.md

导航

Navigation (推荐):

@Entry
@Component
struct NavPage {
  @Provide('pageInfos') pageInfos: NavPathStack = new NavPathStack()

  build() {
    Navigation(this.pageInfos) {
      Column() {
        Button('Go to Page2')
          .onClick(() => {
            this.pageInfos.pushPath({ name: 'Page2' })
          })
      }
    }
    .title('Main Page')
  }
}

Router (传统方式):

import router from '@ohos.router'

// 跳转页面
router.pushUrl({ url: 'pages/Page2' })

// 返回
router.back()

文档参考:

  • Navigation: docs/navigation/arkts-navigation-navigation.md
  • Router: docs/navigation/arkts-routing.md

对话框和弹窗

类型方法使用场景文档
自定义对话框openCustomDialog()推荐docs/uicontext/arkts-uicontext-custom-dialog.md
警告对话框AlertDialog.show()简单确认docs/dialogs/arkts-base-dialog-overview.md
列表选择ActionSheet.show()选项选择docs/dialogs/arkts-base-dialog-overview.md
弹窗.bindPopup()绑定到组件docs/popup/arkts-popup-and-menu-components-popup.md
提示prompt.showToast()简短反馈docs/popup/arkts-create-toast.md

动画

类型API使用场景文档
属性动画.animateTo()平滑属性变化docs/animation/arkts-attribute-animation-overview.md
转场动画.transition()进出场动画docs/animation/arkts-transition-overview.md
组件动画animateTo组合多个动画docs/animation/arkts-component-animation.md
// 属性动画
@State scale: number = 1

Image($r('app.media.icon'))
  .scale({ x: this.scale, y: this.scale })
  .onClick(() => {
    animateTo({ duration: 300 }, () => {
      this.scale = this.scale === 1 ? 1.5 : 1
    })
  })

渲染控制

控制方式语法使用场景文档
条件渲染if (condition) {} else {}显示/隐藏组件docs/state-management/arkts-rendering-control-ifelse.md
循环渲染ForEach(arr, (item) => {}, (item) => key)渲染列表docs/state-management/arkts-rendering-control-foreach.md
懒加载循环LazyForEach(dataSource, (item) => {})大数据集docs/state-management/arkts-rendering-control-lazyforeach.md
// ForEach (始终提供唯一键)
ForEach(this.items, (item: Item) => {
  Text(item.name)
}, (item: Item) => item.id)

样式

@Styles (可复用样式):

@Styles
function cardStyle() {
  .backgroundColor(Color.White)
  .borderRadius(12)
  .padding(16)
}

Column() {}
  .cardStyle()

@Extend (扩展组件):

@Extend(Text)
function redText() {
  .fontSize(18)
  .fontColor(Color.Red)
}

Text('Hello')
  .redText()

文档参考: docs/state-management/arkts-style.md

常用模式

带生命周期的自定义组件:

@ComponentV2
struct CustomComponent {
  @Local count: number = 0

  aboutToAppear() {
    console.log('Component will appear')
  }

  aboutToDisappear() {
    console.log('Component will disappear')
  }

  build() {
    Text(`Count: ${this.count}`)
  }
}

@Builder (可复用 UI 片段):

@Builder
function TitleBar(title: string) {
  Row() {
    Text(title)
      .fontSize(20)
      .fontWeight(FontWeight.Bold)
  }
  .width('100%')
  .padding(16)
}

// 使用
Column() {
  TitleBar({ title: 'My Page' })
}

文档参考: docs/state-management/arkts-builder.md

问题排查

症状常见原因解决方法
状态变化不更新 UI缺少装饰器添加 @Local (V2) 或 @State (V1)
子组件未接收更新使用单向而非双向绑定添加 @Event 回调 (V2) 或使用 @Link (V1)
嵌套对象不响应缺少深度观察添加 @ObservedV2/@Trace (V2) 或 @Observed/@ObjectLink (V1)
不必要的重渲染本地状态中有大对象对不可变属性使用 @Param
ForEach 渲染问题缺少唯一键始终提供唯一键生成器
导航不工作使用 Router 而非 Navigation使用 NavPathStack API
对话框不显示缺少 UI 上下文使用 getUIContext().openCustomDialog()

文档参考:

  • V2 状态管理: docs/state-management/arkts-mvvm-V2.md
  • V1 状态管理: docs/state-management/arkts-mvvm.md

重要提示

  • 始终提供唯一键 给 ForEach 以避免渲染问题
  • 新项目使用 V2 状态管理 (@Local, @Param)
  • 优先使用 Navigation 而非 Router 进行页面路由
  • 尽可能使用 $$ 语法 简化双向绑定
  • 大数据集使用 LazyForEach (> 1000 项)
  • 在不同屏幕尺寸上测试 使用媒体查询

更多参考

官方文档: docs-OpenHarmony-v6.0-Release/zh-cn/application-dev/ui/

本地快速参考: docs/

核心文档:

  • UI 概览: docs/overview/arkts-ui-development-overview.md
  • 状态管理: docs/state-management/arkts-state-management-overview.md
  • 布局开发: docs/layout/arkts-layout-development-overview.md
  • 组件库: docs/components/arkts-common-components-text-display.md 及相关文件
  • 导航: docs/navigation/arkts-navigation-navigation.md
  • 动画: docs/animation/arkts-attribute-animation-overview.md

平台分布

Claude Code

27.62%
按下载量换算52

OpenCode

21.26%
按下载量换算40

Cursor

18.39%
按下载量换算35

trae

13.76%
按下载量换算26

Gemini CLI

7.29%
按下载量换算14

Antigravity

3.73%
按下载量换算7

安全审计

Gen Agent Trust Hub

通过

Socket

通过

Snyk

通过

权限和风险

需要联网

该 Skill 可能需要联网访问来源站点、仓库或外部 API;具体网络访问范围需要结合源码和 README 复核。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。

继续浏览同类 Skills