MCPInstall

skyline-components

Skyline 组件开发技能。涵盖 scroll-view 及其增强模式(列表/嵌套滚动)、swiper 高级特性、表单组件、图片/文本组件、半屏可拖拽组件、共享元素动画等。适用于需要开发滚动列表、轮播、表单输入、页面过渡动画等场景。

Installs
1.1K
Last 24h
—
Trending rank
—
Security
Not audited

Install

Works with every agent the skills CLI supports.

npx skills add https://github.com/wechat-miniprogram/skyline-skills --skill skyline-components
  1. 01

    Install

    Run the command in your project. The CLI asks which agents to install for.

  2. 02

    Describe the task

    Ask your agent for something this skill covers. It loads skyline-components automatically when relevant.

  3. 03

    Review the result

    The agent follows the SKILL.md steps, scripts and references bundled with the skill.

SKILL.md

The instructions your agent reads when the skill is triggered.

Skyline 组件开发指南

适用场景

  • 开发滚动列表/瀑布流/网格布局
  • 实现下拉刷新、下拉二级功能
  • 使用嵌套滚动模式
  • 开发轮播图、卡片切换效果
  • 处理表单输入(input/textarea)
  • 实现共享元素/页面转场动画
  • 开发半屏可拖拽面板

组件支持概览

完全支持的高频组件

组件Skyline 特性增强
scroll-viewtype 模式、worklet 回调、嵌套滚动、下拉二级
swiperlayout-type 堆叠/卡片、indicator 动画类型
textoverflow 文本溢出处理、max-lines
imagefade-in 渐显、默认懒加载
input/textareaworklet 键盘回调、输入法事件
view/button完全支持

Skyline 新增组件

组件说明
list-view列表布局容器
grid-view网格/瀑布流容器
sticky-section/sticky-header吸顶布局
nested-scroll-header/body嵌套滚动
draggable-sheet半屏可拖拽
share-element共享元素动画
snapshot截图组件
span内联混排

文档索引

根据需求快速定位(路径相对于 references/):

我想要...查阅文档
实现长列表/虚拟列表scroll/scroll-view.md
下拉刷新/下拉二级scroll/scroll-view.md#下拉刷新
嵌套滚动scroll/nested-scroll.md
列表/网格布局scroll/list-grid-view.md
吸顶效果scroll/sticky.md
半屏拖拽面板scroll/draggable-sheet.md
轮播图/卡片效果layout/swiper.md
文本处理media/text.md
图片显示media/image.md
输入框开发form/input.md
共享元素动画special/share-element.md
截图功能special/snapshot.md

强制规则

MUST(必须遵守)

  1. scroll-view 必须指定 type:Skyline 下使用 scroll-view 必须设置 type 属性

    <!-- ✅ 正确 -->
    <scroll-view type="list" scroll-y>...</scroll-view>
    
    <!-- ❌ 错误:缺少 type -->
    <scroll-view scroll-y>...</scroll-view>
    
  2. 横向滚动需 enable-flex:横向滚动需同时开启 enable-flex 以兼容 WebView

    <scroll-view scroll-x enable-flex style="flex-direction: row;">
    
  3. 文本必须用 text 组件:内联文本只能用 <text> 组件

    <!-- ✅ 正确 -->
    <text>Hello <text>World</text></text>
    
    <!-- ❌ 错误:内联文本不能用 view -->
    <view>Hello <view>World</view></view>
    
  4. list-view/grid-view 必须在 custom 模式:

    <scroll-view type="custom" scroll-y>
      <list-view>...</list-view>
    </scroll-view>
    
  5. 嵌套滚动必须使用 nested 模式:

    <scroll-view type="nested" scroll-y>
      <nested-scroll-header>...</nested-scroll-header>
      <nested-scroll-body>...</nested-scroll-body>
    </scroll-view>
    

NEVER(禁止行为)

  1. NEVER 在 scroll-view 外直接放置 list-view/grid-view
  2. NEVER 在 list-view 中使用非直接子节点列表项
  3. NEVER 在 Skyline 使用 web-view/editor/movable-view 组件
  4. NEVER 依赖 image 的 WebView-only 裁剪模式(top/bottom/center/left/right)

scroll-view 核心用法

type 属性详解

type 值说明使用场景
list列表模式,按需渲染直接子节点普通长列表
custom自定义模式,支持 list-view/grid-view/sticky复杂布局
nested嵌套模式,处理父子 scroll-view 联动Tab + 列表

基础列表模式

<!-- 列表模式:直接子节点按需渲染 -->
<scroll-view 
  type="list" 
  scroll-y
  style="height: 100vh;"
  bindscrolltolower="loadMore"
>
  <view wx:for="{{list}}" wx:key="id">
    {{item.name}}
  </view>
</scroll-view>

下拉刷新

<scroll-view
  type="list"
  scroll-y
  refresher-enabled="{{true}}"
  refresher-triggered="{{refreshing}}"
  bindrefresherrefresh="onRefresh"
>
  <view slot="refresher" class="custom-refresher">
    自定义刷新区域
  </view>
  <!-- 列表内容 -->
</scroll-view>
Page({
  data: { refreshing: false },
  onRefresh() {
    this.setData({ refreshing: true })
    // 加载数据...
    setTimeout(() => {
      this.setData({ refreshing: false })
    }, 1000)
  }
})

嵌套滚动模式

<scroll-view type="nested" scroll-y>
  <nested-scroll-header>
    <view>顶部固定区域</view>
  </nested-scroll-header>
  <nested-scroll-body>
    <swiper>
      <swiper-item wx:for="{{tabs}}" wx:key="id">
        <scroll-view 
          type="list" 
          scroll-y
          associative-container="nested-scroll-view"
        >
          <!-- 列表内容 -->
        </scroll-view>
      </swiper-item>
    </swiper>
  </nested-scroll-body>
</scroll-view>

Worklet 滚动回调

<scroll-view
  type="list"
  scroll-y
  worklet:onscrollupdate="onScrollUpdate"
>
Page({
  onScrollUpdate(e) {
    'worklet'
    // 在 UI 线程执行,无延迟
    console.log(e.detail.scrollTop)
  }
})

swiper 增强特性

布局类型

<!-- 堆叠效果 -->
<swiper layout-type="stackLeft">
  <swiper-item>...</swiper-item>
</swiper>

<!-- 卡片滑动 -->
<swiper layout-type="tinder">
  <swiper-item>...</swiper-item>
</swiper>

<!-- 过渡动画 -->
<swiper layout-type="transformer" transformer-type="threeD">
  <swiper-item>...</swiper-item>
</swiper>

指示器样式

<swiper
  indicator-dots
  indicator-type="worm"
  indicator-color="rgba(0,0,0,0.3)"
  indicator-active-color="#000"
  indicator-margin="10"
  indicator-spacing="4"
>
indicator-type效果
normal默认圆点
worm蠕虫动画
expand展开动画
jump跳跃动画
slide滑动动画
scale缩放动画

text 组件

文本溢出处理

<!-- 单行省略 -->
<text overflow="ellipsis" max-lines="1">
  这是一段很长的文本内容...
</text>

<!-- 多行省略 -->
<text overflow="ellipsis" max-lines="3">
  这是一段很长的文本内容...
</text>

<!-- 渐隐效果 -->
<text overflow="fade" max-lines="1">
  这是一段很长的文本内容...
</text>

内联混排

<!-- 使用 span 实现图文混排 -->
<span>
  <image src="icon.png" style="width:20px;height:20px;" />
  <text>图文混排内容</text>
</span>

input 组件

Skyline 特有事件

<input
  value="{{value}}"
  bindinput="onInput"
  bind:selectionchange="onSelectionChange"
  bind:keyboardcompositionend="onCompositionEnd"
  worklet:onkeyboardheightchange="onKeyboardHeight"
/>
Page({
  onKeyboardHeight(e) {
    'worklet'
    // UI 线程回调,可用于同步调整布局
    const { height, pageBottomPadding } = e.detail
  }
})

draggable-sheet 半屏组件

<draggable-sheet
  class="sheet"
  initial-child-size="0.5"
  min-child-size="0.2"
  max-child-size="0.8"
  snap="{{true}}"
  snap-sizes="{{[0.4, 0.6]}}"
  worklet:onsizeupdate="onSizeUpdate"
>
  <scroll-view
    scroll-y
    type="list"
    associative-container="draggable-sheet"
  >
    <!-- 内容 -->
  </scroll-view>
</draggable-sheet>
Page({
  onReady() {
    this.createSelectorQuery()
      .select('.sheet')
      .node()
      .exec(res => {
        const sheetContext = res[0].node
        sheetContext.scrollTo({
          size: 0.7,
          animated: true,
          duration: 300
        })
      })
  }
})

share-element 共享元素

页面间共享元素动画

源页面:

<share-element key="hero-image" transform>
  <image src="{{item.cover}}" />
</share-element>

目标页面:

<share-element key="hero-image" transform transition-on-gesture>
  <image src="{{detail.cover}}" />
</share-element>

属性说明

属性说明
key页面内唯一标识,源和目标必须匹配
transform是否启用动画
transition-on-gesture手势返回时是否动画
rect-tween-type动画轨迹(materialRectArc/linear)

性能优化

列表性能

  1. 使用 list 模式:确保只渲染可见区域

    <scroll-view type="list" scroll-y cache-extent="500">
    
  2. 指定 cache-extent:预渲染视口外区域,优化滚动体验

  3. 使用 list-item 属性:启用样式共享

    <view wx:for="{{list}}" wx:key="id" list-item>
    

swiper 性能

<!-- 使用 cache-extent 预渲染相邻页 -->
<swiper cache-extent="1">

组件差异速查

组件WebViewSkyline备注
scroll-view无 type必须 typeSkyline 增强
textspace 属性overflow/max-lines不同特性
image9种裁剪模式5种缩放模式裁剪模式仅 WebView
swipersnap-to-edgelayout-type/indicator-type不同特性
inputplaceholder-classworklet 回调不同特性

相关技能

场景推荐技能说明
滚动 APIskyline-scroll-apiScrollViewContext 接口
动画开发skyline-workletWorklet 动画系统
样式开发skyline-wxssWXSS 支持情况
路由转场skyline-route页面转场动画
兼容性诊断skyline-diagnostics自动检查组件兼容性问题

References 目录结构

references/
├── form/
│   └── input.md
├── gesture/
│   ├── gesture-negotiation.md
│   └── gesture-system.md
├── layout/
│   └── swiper.md
├── media/
│   ├── image.md
│   └── text.md
├── scroll/
│   ├── draggable-sheet.md
│   ├── list-grid-view.md
│   ├── nested-scroll.md
│   ├── scroll-view.md
│   └── sticky.md
└── special/
    ├── share-element.md
    └── snapshot.md

FAQ

What does the skyline-components skill do?

Skyline 组件开发技能。涵盖 scroll-view 及其增强模式(列表/嵌套滚动)、swiper 高级特性、表单组件、图片/文本组件、半屏可拖拽组件、共享元素动画等。适用于需要开发滚动列表、轮播、表单输入、页面过渡动画等场景。

How do I install skyline-components?

Run npx skills add https://github.com/wechat-miniprogram/skyline-skills --skill skyline-components in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/skyline-components/ (personal) or .claude/skills/skyline-components/ (project).

Which AI agents can use skyline-components?

Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.

Is skyline-components safe to install?

No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.

Who maintains skyline-components?

It is published by wechat-miniprogram in wechat-miniprogram/skyline-skills. It has 1,068 recorded installs.

More from wechat-miniprogram/skyline-skills

View all →

skyline-overview

wechat-miniprogram/skyline-skills

Skyline 渲染引擎概览与迁移技能。了解 Skyline 架构、性能优势、功能特性、迁移指南和最佳实践时使用此技能。适用于初次接触 Skyline、评估迁移成本、或需要了解整体框架的场景。

1.1K installs

skyline-worklet

wechat-miniprogram/skyline-skills

Skyline Worklet 动画系统技能。使用 worklet 函数、共享变量(SharedValue)、动画类型(timing/spring/decay)、Easing 缓动函数、组合动画和线程通信(runOnUI/runOnJS)开发高性能交互动画时使用此技能。适用于拖拽、手势跟随、弹簧回弹等需要 UI 线程直接响应的动画场景。触发关键词:worklet、worklet 动画、SharedValue、共享变量、timing、spring、decay、Easing、runOnUI、runOnJS、applyAnimatedStyle、交互动画、手势动画、UI 线程动画。

skyline-route

wechat-miniprogram/skyline-skills

Skyline 自定义路由与页面转场技能。涵盖自定义路由动画(routeBuilder)、预设路由(7 种 wx:// 类型)、页面返回手势、容器转场动画(open-container)、Router API。适用于实现半屏弹窗、页面缩放、底部弹出、卡片展开等转场效果。触发关键词:自定义路由、custom-route、routeBuilder、navigateTo、页面转场、半屏、预设路由、返回手势、open-container。

Backend & APIs996 installs

skyline-config

wechat-miniprogram/skyline-skills

Skyline 小程序 JSON 配置规范技能。涵盖 app.json 全局配置(renderer、rendererOptions、componentFramework)、页面 json 配置(navigationStyle、disableScroll)、project.config.json 项目配置。适用于创建新 Skyline 项目、迁移 WebView 项目、配置混合渲染。触发关键词:app.json、页面配置、renderer、rendererOptions、skyline配置、navigationStyle、disableScroll、componentFramework、glass-easel、project.config.json。

976 installs

skyline-wxss

wechat-miniprogram/skyline-skills

Skyline WXSS 样式支持技能。提供 Skyline 支持的 CSS 属性、值和限制信息。触发关键词:WXSS、CSS 支持、样式兼容性、属性支持、不支持的属性、display grid、position sticky、overflow、filter、渐变、gradient、linear-gradient、radial-gradient、conic-gradient、border-style、white-space、font-weight、text-decoration、text-overflow、aspect-ratio、will-change、calc、env、mask、mask-image、background-image、transition、animation、transform、font-feature-settings。

Frontend & Design954 installs

skyline-scroll-api

wechat-miniprogram/skyline-skills

Skyline 滚动控制 API 技能。涵盖 ScrollViewContext(程序化下拉刷新、下拉二级、滚动定位)、DraggableSheetContext(半屏面板程序化滚动)、worklet.scrollViewContext(UI 线程直接控制滚动)。适用于程序化触发刷新/二级、控制 DraggableSheet 位置、在 worklet 中操作滚动。触发关键词:ScrollViewContext、DraggableSheetContext、scrollTo、triggerRefresh、triggerTwoLevel、下拉刷新API、下拉二级API、滚动API、worklet scrollViewContext。

Backend & APIs916 installs

Popular other skills

View category →

hyperframes-cli

heygen-com/hyperframes

The HyperFrames CLI by job - scaffold, check, look at frames, edit the timeline, preview, render locally or in the cloud, publish, project history - plus reading its JSON and recovering from build or render failures.

1.3M installs

triage

mattpocock/skills

Move issues and external PRs through a state machine of triage roles, categorise, verify, grill if needed, and write agent-ready briefs.

1M installs

ask-matt

mattpocock/skills

Ask which skill or flow fits your situation. A router over the skills in this repo.

778.4K installs

to-questionnaire

mattpocock/skills

Turn a decision you can't fully answer into a questionnaire for someone else to fill in.

508.9K installs

wait-what

mattpocock/skills

Stop. That last message did not land: re-pitch it.

459.7K installs

loop-me

mattpocock/skills

Grill me about specs for the workflows I want to build, within this workspace.

447.9K installs