skyline-wxss

Shows which CSS styling features work in Solana Skyline mini-programs and which ones do not.

Installation
Run `npx skills add "https://github.com/wechat-miniprogram/skyline-skills" --skill "skyline-wxss"` to install this skill, then follow its SKILL.md instructions for my next request.

Paste this into Claude Code, Cursor, or any agent that can run commands.

SKILL.mdShow the author's original SKILL.md (not in English)
---
name: skyline-wxss
description: 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。
---

# Skyline WXSS 样式支持

## 适用场景

- 检查某个 CSS 属性/值在 Skyline 下是否可用
- 排查 WXSS 样式在 Skyline 下不生效的问题
- 从 WebView 迁移到 Skyline 时评估样式兼容性
- 使用渐变、滤镜、遮罩等高级样式时了解限制
- 查阅 Skyline 支持的 CSS 属性语法

## 文档索引

| 我想要... | 查阅文档 |
|-----------|----------|
| 查看基础数据类型与语法符号 | `references/basics.md` |
| 查看布局/定位/盒模型语法 | `references/layout.md` |
| 查看 Flex 布局语法 | `references/flex.md` |
| 查看背景/边框/滤镜/遮罩语法 | `references/visual.md` |
| 查看文本/字体语法 | `references/text.md` |
| 查看动画/过渡/变换语法 | `references/animation.md` |
| 查看某属性是否支持 | 本文档 Quick Reference |
| 了解渐变/滤镜的具体限制 | 本文档「渐变与滤镜限制」规则 |
| 检查 WXSS 语法 | 本文档 「WXSS CLI」 |

## WXSS CLI
请务必调用 `skyline` CLI 对 WXSS 进行检查,确保用法正确。
```bash
npx skyline-cli --help
```

列出所有支持的 WXSS 属性
```bash
npx skyline-cli wxss list
```

从 stdin 读取 WXSS 文本并检查语法
```bash
echo "view { color: red;  }" | npx skyline-cli wxss check --json
```

检查小程序工程内的 WXSS 文件
```bash
npx skyline-cli wxss check --json --miniprogram-root ${PROJECT_ROOT} --files pages/index/index.wxss pages/list/list.wxss
```

## 强制规则

### NEVER: 使用不支持的 CSS 属性

以下属性设置后**不生效**:

| 属性 | 分类 | 替代方案 |
|------|------|----------|
| `float` | 布局 | 使用 flex 布局 |
| `contain` | 布局 | 使用 `-wx-contain` |
| `resize` | 布局 | 无替代 |
| `writing-mode` | 文本 | 无替代 |
| `text-indent` | 文本 | 使用 padding-left 模拟 |
| `overflow-wrap` | 文本 | 使用 word-break |
| `text-decoration-thickness` | 文本 | 无替代 |
| `background-attachment` | 背景 | 无替代 |
| `background-clip` | 背景 | 无替代 |
| `background-origin` | 背景 | 无替代 |
| `mask-origin / mask-clip / mask-mode` | 遮罩 | 无替代 |
| `justify-items` | Flex | 无替代 |
| `list-style-type / list-style-image / list-style-position` | 列表 | 无替代 |

### MUST: 使用支持的属性值

部分属性可用但**特定值不支持**,会被静默忽略:

**Incorrect:**
```css
.container {
  display: grid;           /* grid 不支持 */
  position: sticky;        /* sticky 不支持 */
  overflow: auto;          /* auto 不支持 */
}
```

**Correct:**
```css
.container {
  display: flex;           /* 使用 flex 替代 grid */
  position: relative;      /* sticky 需使用 sticky-header 组件 */
  overflow: hidden;        /* 使用 hidden,滚动用 scroll-view */
}
```

### MUST: 注意渐变限制

渐变限制汇总:
- `radial-gradient` 仅支持 `circle` 形状(不支持 `ellipse`),尺寸仅支持 `px`,颜色停止仅支持 `%`
- `linear-gradient` 停止位置仅支持 `%` 和固定长度单位(px、rpx 等)
- `conic-gradient` 完全支持(无额外限制)

### MUST: 注意背景/遮罩多值限制

- `background-image` / `mask-image` 最多支持 **2 个值**
- `background-position` 最多支持 **2 组值**
- `background-repeat` / `background-size` **不支持多组值**

### MUST: calc() 不支持角度类型

`calc()` 支持长度计算,但**不支持角度计算**,需直接写角度值。

### MUST: text-overflow 仅在 text 组件生效

`text-overflow: ellipsis` 在 Skyline 下**仅在 `<text>` 组件上生效**,在 `<view>` 上不生效。推荐使用 `<text>` 组件的 `overflow` 和 `max-lines` 属性。

> ⚠️ 详见 `skyline-components` 技能了解 text 组件的属性限制。

### NEVER: 使用 filter 的 url() 和 drop-shadow()

filter/backdrop-filter 不支持 `url()` 和 `drop-shadow()`,也**不支持多个函数组合**。用 `box-shadow` 替代 `drop-shadow`。

支持的函数:`blur()`, `brightness()`, `contrast()`, `grayscale()`, `hue-rotate()`, `invert()`, `opacity()`, `saturate()`, `sepia()`。

### MUST: text-decoration-line 仅支持单值

仅支持单个值(`none`, `underline`, `overline`, `line-through`),不支持多值组合如 `underline line-through`。

### MUST: mask-image 渐变不可用

`mask-image` 的 `linear-gradient()` 和 `radial-gradient()` **不支持**,仅 `url()` 形式可用。

### MUST: 注意简写属性的部分有效行为

以下 CSS 简写属性在展开后,**部分子属性不生效**:

| 简写属性 | 不生效的子属性 |
|---------|---------------|
| `background` | `background-attachment`, `background-origin`, `background-clip` |
| `text-decoration` | `text-decoration-thickness` |
| `mask` | `mask-origin`, `mask-clip` |

> 💡 `mask-position` 简写**有效**:会自动展开为 `mask-position-x` + `mask-position-y`(类似 `background-position` 的机制)。

## Quick Reference

### 布局属性速查

| 属性 | 支持的值 | 不支持的值 |
|------|---------|-----------|
| `display` | `none`, `block`, `inline`, `inline-block`, `flex`, `inline-flex` | `grid`, `flow-root` |
| `position` | `static`, `relative`, `absolute`, `fixed` | `sticky` |
| `overflow` | `visible`, `hidden` | `auto`, `scroll`, `overflow-x`, `overflow-y` |
| `visibility` | `visible`, `hidden` | `collapse` |
| `box-sizing` | `content-box`, `border-box` | `padding-box` |
| `aspect-ratio` | `auto`, `<number>`, `<number>/<number>` | — |
| `content` | `none`, `normal`, `<string>`, `<url>` | — |
| `direction` | — | **不支持** |

### 文本属性速查

| 属性 | 支持的值 | 不支持的值 |
|------|---------|-----------|
| `white-space` | `normal`, `nowrap` | `pre`, `pre-wrap`, `pre-line` |
| `font-weight` | `normal`, `bold`, 数值(100-900) | `bolder`, `lighter` |
| `font-style` | `normal`, `italic` | `oblique` |
| `word-break` | `normal`, `break-all`, `keep-all` | `break-word`(映射为 normal) |
| `vertical-align` | `baseline`, `top`, `middle`, `bottom` | `text-top`, `text-bottom` |
| `text-align` | `left`, `center`, `right`, `justify`, `start`, `end` | `justify-all`, `match-parent` |
| `text-decoration-line` | `none`, `underline`, `overline`, `line-through`(仅单值) | 多值组合, `blink` |
| `text-overflow` | `clip`, `ellipsis`(⚠️ 仅 text 组件生效) | — |

### 边框与背景速查

| 属性 | 支持的值 | 不支持的值 |
|------|---------|-----------|
| `border-*-style` | `none`, `solid`, `dashed`, `dotted` | `hidden`, `double`, `groove`, `ridge`, `inset`, `outset` |
| `background-repeat` | `repeat`, `repeat-x`, `repeat-y`, `no-repeat` | `space`, `round` |

### Flex 属性(全部支持)

以下 Flex 属性的所有定义值**完全支持**:
`flex-direction`, `flex-wrap`, `align-items`, `align-self`, `align-content`, `justify-content`, `flex-grow`, `flex-shrink`, `flex-basis`, `order`

### 非标准默认值

以下属性的默认值与 Web 标准不同,需注意:

| 属性 | Skyline 默认值 | Web 标准默认值 | 条件 |
|------|---------------|---------------|------|
| `display` | `flex` | `inline` | `defaultDisplayBlock: true` 时为 `block` |
| `position` | `relative` | `static` | — |
| `box-sizing` | `border-box` | `content-box` | `defaultContentBox: true` 时为 `content-box` |
| `flex-direction` | `column` | `row` | `defaultDisplayBlock: true` 时为 `row` |
| `align-items` | `stretch` | `normal` | `defaultDisplayBlock: true` 时为 `normal` |
| `text-align` | `start` | `left` | — |
| `mask-repeat` | `no-repeat` | `repeat` | — |

### 完全支持的其他属性

`pointer-events`, `text-decoration-style`, `background-size`, `transform`, `opacity`, `transition-*`, `animation-*`, `border-radius`, `box-shadow`, `text-shadow`, `color`, `font-size`, `font-family`, `font-feature-settings`, `line-height`, `letter-spacing`, `word-spacing`, `z-index`, `aspect-ratio`, `content`, `will-change`(仅 `auto`/`contents`), `conic-gradient`

## 相关技能

| 场景 | 推荐技能 | 说明 |
|------|----------|------|
| Skyline JSON 配置 | `skyline-config` | rendererOptions 影响默认 display/flex-direction/align-items/box-sizing |
| 组件使用 | `skyline-components` | scroll-view 替代 overflow:auto |
| Worklet 动画 | `skyline-worklet` | transform/opacity 动画最佳实践 |
| Skyline 概览 | `skyline-overview` | 渲染引擎概览与迁移指南 |


## References 目录结构

```
references/
├── animation.md
├── basics.md
├── flex.md
├── layout.md
├── text.md
└── visual.md
```

Ships with 6 supporting files:

  • references/animation.md
  • references/basics.md
  • references/flex.md
  • references/layout.md
  • references/text.md
  • references/visual.md

Mirrored from the author's public source. Install counts from the open skills registry.

The systems behind these skills get built for partners every week.

Partner with us