Agent skill

Optimize Page Styles

by wot-ui in wot-ui/wot-ui

优化 subPages 演示页面中的样式,将硬编码的颜色、字号、间距、圆角等替换为 wot-ui 设计系统语义变量。允许直接使用已全局注入的 variable.scss Sass 变量,也允许使用 CSS 自定义属性;不需要额外引入 variable.scss。消除手写的暗色模式覆盖块,统一使用语义变量实现自适应主题。同时将 class 命名统一为 BEM 规范。

MITAuto-check passedFrontend & Design

Install Optimize Page Styles

skills CLI
$ npx skills add wot-ui/wot-ui --skill optimize-page-styles -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install wot-ui/wot-ui optimize-page-styles --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/wot-ui/wot-ui.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/optimize-page-styles .claude/skills/optimize-page-styles && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
optimize-page-styles
GitHub stars
384
Token cost
~4.9k tokens
SKILL.md length
990 words
Files
1
Skills in repo
10
Repo updated
First seen
Licence
MIT

At a glance

优化 subPages 演示页面中的样式,将硬编码的颜色、字号、间距、圆角等替换为 wot-ui 设计系统语义变量。允许直接使用已全局注入的 variable.scss Sass 变量,也允许使用 CSS 自定义属性;不需要额外引入 variable.scss。消除手写的暗色模式覆盖块,统一使用语义变量实现自适应主题。同时将 class 命名统一为 BEM 规范。

  • Works in 3 steps: 中优先使用全局 Sass 变量 → 字符串形式的内联样式、custom-style、运行时拼接样式中使用 CSS… → 两种写法都允许,但同一段样式保持一致
  • Tasks that involve CSS and styling
  • SKILL.md covers 职责边界, 前置知识, 执行步骤 and 注意事项, plus 1 more section
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Optimize Page Styles is an agent skill from wot-ui/wot-ui. 优化 subPages 演示页面中的样式,将硬编码的颜色、字号、间距、圆角等替换为 wot-ui 设计系统语义变量。允许直接使用已全局注入的 variable.scss Sass 变量,也允许使用 CSS 自定义属性;不需要额外引入 variable.scss。消除手写的暗色模式覆盖块,统一使用语义变量实现自适应主题。同时将 class 命名统一为 BEM 规范。

Its SKILL.md is about 4.9k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Frontend & Design, covering CSS and styling and Design tokens. The repository describes itself as: 一个轻量、美观、AI友好的 uni-app 组件库。 The licence is MIT.

When your agent uses it

  • Tasks that involve CSS and styling
  • Tasks that involve Design tokens

Example prompts

  • “/optimize-page-styles”

Workflow steps

3 steps, taken from the first numbered list in SKILL.md.

  1. 中优先使用全局 Sass 变量
  2. 字符串形式的内联样式、custom-style、运行时拼接样式中使用 CSS 自定义属性
  3. 两种写法都允许,但同一段样式保持一致

What it can do on your machine

Read from SKILL.md and the folder at commit 0abe2c2. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are scss, html and bash).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Optimize Page Styles loads about 4.9k tokens when it runs. Until then it costs about 51 tokens; SKILL.md has 990 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~51
When it runs · the whole SKILL.md, loaded when a task matches
~4.9k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from wot-ui/wot-ui at commit 0abe2c2, republished under its MIT licence (© wot-ui). 990 words, ~4,928 tokens.

Download SKILL.mdSave it as .claude/skills/optimize-page-styles/SKILL.md (or your agent's skills folder).
name
optimize-page-styles
description
优化 subPages 演示页面中的样式,将硬编码的颜色、字号、间距、圆角等替换为 wot-ui 设计系统语义变量。允许直接使用已全局注入的 variable.scss Sass 变量,也允许使用 CSS 自定义属性;不需要额外引入 variable.scss。消除手写的暗色模式覆盖块,统一使用语义变量实现自适应主题。同时将 class 命名统一为 BEM 规范。

优化 subPages 样式:语义变量 + BEM 命名

本 Skill 用于将 src/subPages 中演示页面的硬编码样式替换为 src/uni_modules/wot-ui/styles/variable.scss 中定义的语义变量,并将 class 命名统一为 BEM(Block Element Modifier)规范。

职责边界

  • 只负责:subPages 中 <style> 块里的样式优化和 class 命名规范化(同时修改 <template> 中对应的 class 属性)。
  • 不负责:组件源码样式、Demo 逻辑变更、文档迁移。
  • 不需要在页面中引入 variable.scss——项目已全局注入相关变量,样式中可直接使用 $text-main、$spacing-main、$radius-large 等 Sass 变量,也可使用 var(--wot-xxx)。

前置知识

BEM 命名规范

subPages 中的 class 命名必须遵循 BEM 规范,与组件库本身的命名约定保持一致。

BEM 三要素
要素格式分隔符说明
Block(块)block-name—独立的功能模块,使用 kebab-case
Element(元素)block-name__element__(双下划线)块的组成部分,不能脱离块独立存在
Modifier(修饰符)block-name--modifier--(双连字符)块或元素的变体/状态

项目 BEM 配置(_config.scss):$elementSeparator: '__',$modifierSeparator: '--',$state-prefix: 'is-'

subPages 的 Block 命名约定

每个 subPage 使用 page-<component> 作为顶层 Block,例如:

  • page-popup、page-button、page-card、page-tabs

页面内自定义的功能区域使用独立的 Block,例如:

  • user-card、info-card、moment-card、list-group、footer-group
SCSS 嵌套写法

BEM 配合 SCSS & 嵌套,避免重复书写 Block 名称:

scss
// ✅ 正确:使用 & 嵌套
.user-card {
  display: flex;

  &__avatar {
    width: $n-88;
  }

  &__title {
    font-size: $typography-body-size-extra-large;
  }

  &--highlighted {
    border: $stroke-main solid $primary-6;
  }
}

// ❌ 错误:平级重复写 Block 名
.user-card { ... }
.user-card__avatar { ... }
.user-card__title { ... }
常见反模式与修正
反模式问题修正
.content太泛,无 Block 归属.page-tabs__content 或 .<block>__content
.title太泛,全局易冲突.page-popup__title 或 .<block>__title
.large语义不清.page-tabs__content--large
.section太泛.page-tabs__section
.footer太泛.page-form__footer
.block太泛.page-transition__block
.demo-button缺少页面 Block 前缀.page-form__action 或保持在 Block 作用域内
.demo-row缺少页面 Block 前缀.page-button__row
.demo-container缺少页面 Block 前缀.page-sticky__container
.nested-popup-content连字符连接而非 BEM.nested-popup__content
.nested-title扁平命名,应归属 Block.nested-popup__title
.nested-desc扁平命名.nested-popup__desc
.nested-buttons扁平命名.nested-popup__buttons
.custom-txt扁平命名.page-popup__text 或 .<block>__text
.custom-container太泛.page-sticky__box
Element 命名约定(常用)
场景推荐 Element 名
头像__avatar
图片__image
标题__title
描述/副标题__desc
内容区__content
底部区域__footer
操作区__action
标签__label / __tag
元数据__meta
行/列__row / __col
图片容器__image-box
按钮组__buttons
文本__text
Modifier 命名约定(常用)
场景推荐 Modifier 名
尺寸--small / --large
对齐--left / --right / --center
状态--active / --disabled / --highlighted
变体--plain / --round
状态类

与组件库保持一致,使用 is- 前缀:

  • is-active、is-disabled、is-open
变量来源

语义变量定义在 src/uni_modules/wot-ui/styles/variable.scss。项目已全局注入这些 Sass 变量及对应的 CSS 自定义属性,页面中无需 @use 或 @import。

变量使用方式

优先级按使用场景区分:

  1. <style lang="scss"> 中优先使用全局 Sass 变量
  • 例如:color: $text-main;、gap: $spacing-loose;、border-radius: $radius-large;
  • 原因:与现有 SCSS 书写方式更一致,可读性更高,也不需要重复写 var(--wot-xxx)。
  1. 字符串形式的内联样式、custom-style、运行时拼接样式中使用 CSS 自定义属性
  • 例如:custom-style="margin-left: var(--wot-spacing-main);"
  • 原因:这些位置不能安全使用 Sass 变量。
  1. 两种写法都允许,但同一段样式保持一致
  • 如果文件原本以 Sass 变量为主,继续沿用 Sass 变量。
  • 如果某段必须写在字符串里,则使用 var(--wot-xxx)。
变量类别速查
类别变量前缀 / 示例说明
文字色--wot-text-main / --wot-text-secondary / --wot-text-auxiliary / --wot-text-disabled / --wot-text-placeholder / --wot-text-white主文本、次要文本、辅助文本、禁用、占位、白色文本
图标色--wot-icon-main / --wot-icon-secondary / --wot-icon-auxiliary与文字色同级
填充色--wot-filled-bottom / --wot-filled-content / --wot-filled-strong / --wot-filled-extra-strong / --wot-filled-oppo / --wot-filled-zero容器背景色按强度分级
边框色--wot-border-main / --wot-border-light / --wot-border-strong / --wot-border-extra-strong / --wot-border-white / --wot-border-zero边框按强度分级
分割线色--wot-divider-main / --wot-divider-light / --wot-divider-strong分割线色
主色--wot-primary-1 ~ --wot-primary-10品牌主色 10 级
危险色--wot-danger-main / hover / clicked / disabled / particular / surface危险状态色
成功色--wot-success-main / hover / ...成功状态色
警告色--wot-warning-main / hover / ...警告状态色
反馈色--wot-feedback-hover / --wot-feedback-active / --wot-feedback-accent交互反馈色
遮罩/透明--wot-opacfilled-main-cover / --wot-opacfilled-light-cover / --wot-opacfilled-tooltip-toast-cover遮罩与蒙层
间距--wot-spacing-zero ~ --wot-spacing-ultra-spacious元素间距
内边距--wot-padding-zero ~ --wot-padding-ultra-spacious内边距
圆角--wot-radius-zero / small / main / large / extra-large / super-large / ultra-large / radius-full圆角
字号--wot-typography-label-size-* / --wot-typography-body-size-* / --wot-typography-title-size-*字号分 label/body/title 三级
行高--wot-typography-label-line-height-size-* / --wot-typography-body-line-height-size-* / --wot-typography-title-line-height-size-*行高对应字号级别
字重--wot-font-weight-regular / medium / semibold / bold / ...字重
边框宽度--wot-stroke-zero / light / main / blod边框线宽
基础尺寸--wot-n-0 ~ --wot-n-375 / --wot-n-full基础数字(px)
透明度--wot-opacity-disabled / dimmer / oveylay / backdrop / main透明度
基础颜色--wot-base-black / --wot-base-white / --wot-base-transparent黑/白/透明
色阶颜色--wot-blue-1 ~ --wot-blue-10 / red / green / orange / yellow / coolgrey / ...原始色阶(优先用语义变量)
间距枚举对照(包括 spacing 和 padding)
语义名默认值
zero0px
ultra-tight2px
super-tight4px
extra-tight6px
tight8px
main10px
loose12px
extra-loose16px
super-loose20px
ultra-loose24px
spacious28px
extra-spacious32px
super-spacious40px
ultra-spacious48px
圆角枚举对照
语义名默认值
zero0px
small2px
main4px
large8px
extra-large12px
super-large16px
ultra-large20px
radius-full9999px
字号枚举对照

Label 级(说明文字、标注)

语义名默认值
super-small9px
extra-small10px
small11px
main12px
large14px

Body 级(正文)

语义名默认值
main14px
large15px
extra-large16px
super-large17px
ultra-large18px

Title 级(标题)

语义名默认值
main18px
large20px
extra-large24px

执行步骤

第一步:扫描目标文件

使用 grep 查找当前目标 subPage 文件中的硬编码样式和非 BEM class 名:

bash
# 找出硬编码颜色、字号、间距、圆角等的位置
grep -n 'color:.*#\|font-size:.*[0-9]\(px\|rpx\)\|padding:.*[0-9]\(px\|rpx\)\|margin:.*[0-9]\(px\|rpx\)\|background.*:.*#\|border.*:.*#\|gap:.*[0-9]\(px\|rpx\)\|border-radius:.*[0-9]\(px\|rpx\)\|font-weight:.*[0-9]' <target-file>

# 找出所有 class 名,检查是否符合 BEM
grep -n 'class="' <target-file>
Show full SKILL.md (486 more words)Show less
第二步:分析与映射

对每个硬编码值,按以下优先级选择替换方案:

  1. 颜色值 → 匹配语义变量
  • color: black / color: #000 / color: #1D1F29 → color: $text-main(或 var(--wot-text-main))
  • color: #666 / color: #4E5369 → color: $text-auxiliary
  • color: #999 / color: #A9ACB8 → color: $text-placeholder
  • color: #333 / color: #272B3B → color: $text-secondary
  • color: white / color: #fff → color: $text-white
  • background: #fff / background-color: #ffffff → background: $filled-oppo (白色容器背景)
  • background: #f7f8fa / 浅灰背景 → background: $filled-bottom
  • background: #f2f3f5 → background: $filled-content
  • border-color: #eee / 浅灰边框 → border-color: $border-light
  • background: #0083ff / 主色蓝 → background: $primary-6
  1. 字号 → 匹配排版变量
  • 9px → $typography-label-size-super-small
  • 10px → $typography-label-size-extra-small
  • 11px → $typography-label-size-small
  • 12px → $typography-label-size-main
  • 14px(用于标注/辅助文字) → $typography-label-size-large 或 $typography-body-size-main(用于正文)
  • 15px → $typography-body-size-large
  • 16px → $typography-body-size-extra-large
  • 17px → $typography-body-size-super-large
  • 18px → $typography-body-size-ultra-large 或 $typography-title-size-main(标题)
  • 20px → $typography-title-size-large
  • 24px → $typography-title-size-extra-large
  1. 字重 → 匹配字重变量
  • font-weight: 400 / normal → $font-weight-regular
  • font-weight: 500 / 600 → $font-weight-medium
  • font-weight: 700 / bold → $font-weight-semibold 或 $font-weight-bold
  1. 间距 / 内边距 / gap → 匹配间距或内边距变量
  • 0px → $spacing-zero(若差异不大可保持 0)
  • 2px → $spacing-ultra-tight
  • 4px → $spacing-super-tight
  • 6px → $spacing-extra-tight
  • 8px → $spacing-tight
  • 10px → $spacing-main
  • 12px → $spacing-loose
  • 15px → 取近似 $spacing-extra-loose(16px)或保留
  • 16px → $spacing-extra-loose
  • 20px → $spacing-super-loose
  • 24px → $spacing-ultra-loose
  • 28px → $spacing-spacious
  • 32px → $spacing-extra-spacious
  • 40px → $spacing-super-spacious
  • 48px → $spacing-ultra-spacious
  • padding 类似,用 $padding-* 系列
  1. 圆角 → 匹配圆角变量
  • 2px → $radius-small
  • 4px → $radius-main
  • 8px → $radius-large
  • 12px → $radius-extra-large
  • 16px → $radius-super-large
  • 20px → $radius-ultra-large
  • 9999px / 50%(胶囊) → $radius-full
  1. 边框宽度 → 匹配 stroke 变量
  • 0.5px → $stroke-light
  • 1px → $stroke-main
  • 2px → $stroke-bold
  1. 固定尺寸 → 对于非间距类的固定大小可使用 $n-*
第三步:规范 BEM 命名

审查 <template> 中所有 class 属性和 <style> 中所有选择器,将不符合 BEM 规范的 class 名统一重命名。

操作要点:

  1. 确定页面顶层 Block:通常为 page-<component>(如 page-popup、page-tabs)。
  2. 泛化 class 归入 Block:如 .content → .page-tabs__content,.title → .page-popup__title。
  3. 拆分不规范的连字符名:如 .nested-popup-content → .nested-popup__content。
  4. Modifier 用 -- 分隔:如 .footer-group.right → .footer-group--right(已遵循的保持)。
  5. 同步修改 <template> 和 <style>——class 重命名必须在模板和样式中同步修改,保持一致。
  6. SCSS 嵌套优化——重命名后使用 &__element / &--modifier 嵌套写法,减少重复。
  7. 页面内独立功能区可以有自己的 Block——不必所有元素都挂在 page-xxx 下,与页面 Block 并列即可。
第四步:消除暗色模式手动覆盖

语义变量(如 --wot-text-main、--wot-filled-oppo)在 light/dark 主题切换时会自动重新映射。

如果原文件中有以下模式:

scss
.wot-theme-dark {
  .xxx {
    color: $-dark-color;
    background: $-dark-background2;
  }
}

替换了硬编码颜色为语义变量后,这些 .wot-theme-dark 覆盖块应当被删除,因为语义变量已经自动适配暗色主题。

判断规则:

  • 如果 .wot-theme-dark 块中的覆盖仅仅是将浅色硬编码值换成暗色值(与语义变量的 dark theme 映射一致),则删除此块。
  • 如果 .wot-theme-dark 块中有其他非颜色相关的样式覆盖(如布局调整),则保留。
第五步:去除多余的 @use 引入

替换为 CSS 自定义属性后,如果原文件样式块中有以下引入:

scss
@use '../../uni_modules/wot-ui/styles/variable.scss' as *;

可以删除该引入,因为 Sass 变量与 CSS 自定义属性都已全局可用,不需要通过 SCSS @use 引入。

注意:即使文件中继续使用 SCSS $variable 形式,也不需要为 variable.scss 额外添加 @use。只有在文件依赖其他未全局注入的 SCSS 模块时,才保留对应引入。

第六步:逐一替换并验证
  1. 一次处理一个文件。
  2. 对每个硬编码值执行替换。
  3. 替换时保持注释——如果原样式有解释性注释,保留或更新。
  4. class 重命名要同步 <template> 和 <style>——两处同时修改,保持一致。
  5. 不改动 <script> 中的逻辑。
  6. 对于 rpx 单位的值,同样使用对照表换算后映射。常见的 rpx 值除以 2 即为 px 值:20rpx = 10px → $spacing-main;如果是在字符串内联样式中,则写成 var(--wot-spacing-main)。
  7. 对于确实没有合适语义变量对应的值(如 height: 250vh、width: 100vw、极特殊的像素值),保留原值不做替换。
  8. 对于 line-height: 1.4 / line-height: 1.5 等无单位的行高倍数,如果当前元素使用的 font-size 有对应的语义字号(如 $typography-body-size-main),则应将其 line-height 一并替换为同级别的行高变量(如 $typography-body-line-height-size-main)。如果没有对应的 font-size,则保留原值不做替换。
第七步:验证

替换完成后检查:

  1. 无遗漏:再次 grep 确认该文件中没有残留的硬编码颜色、字号、间距。
  2. BEM 合规:确认所有 class 均符合 BEM 规范,无泛化 class 名。
  3. 模板与样式一致:确认 <template> 中的 class 名与 <style> 中的选择器完全匹配。
  4. 语法正确:确保 $token 或 var(--wot-xxx) 写法正确,无拼写错误。
  5. 暗色模式块已清理:确保无多余的 .wot-theme-dark 覆盖。

注意事项

  1. 不要过度替换:动画时长(transition、animation-duration)、z-index、opacity 数值(除非有对应变量)、视口单位(vh、vw)、百分比(50%、100%)保持原值。
  2. rpx 处理:uni-app 中 rpx 等于 1/2 px(设计稿 375),按实际 px 值查找对应变量。
  3. 无需引入文件:Sass 变量和 CSS 自定义属性都已全局注入,不需要任何 @use variable.scss / @import variable.scss。
  4. 优先语义变量:优先使用语义层变量(如 $text-main、$filled-oppo、$primary-6,或对应的 --wot-* CSS 变量),而非底层色阶变量(如 $blue-6 / --wot-blue-6)。底层色阶只在语义层没有合适选项时使用。
  5. custom-style 中的内联样式也在范围内:如果 <template> 中 custom-style="padding: 20px;" 等有硬编码值,同样可以替换,但要注意内联样式的写法是 CSS 字符串,不是 SCSS,因此这里应使用 var(--wot-xxx)。

输出示例

示例一:sticky 页面(语义变量 + BEM + 暗色覆盖清理)
替换前

template:

html
<view class="page-sticky page-sticky__stage">
  <view class="demo-container">...</view>
  <view class="custom-container">...</view>
</view>

style:

scss
.page-sticky {
  &__stage {
    height: 250vh;
  }
}

.wot-theme-dark {
  .custom-container {
    background: $-dark-background2;
  }
}

.demo-container {
  padding: 15px 0;
  color: #666;
}

.custom-container {
  height: 120px;
  width: 100vw;
  background-color: #ffffff;
}
替换后

template:

html
<view class="page-sticky page-sticky--stage">
  <view class="page-sticky__container">...</view>
  <view class="page-sticky__box">...</view>
</view>

style:

scss
.page-sticky {
  &--stage {
    height: 250vh;
  }

  &__container {
    padding: var(--wot-padding-extra-loose) 0;
    color: var(--wot-text-auxiliary);
  }

  &__box {
    height: 120px;
    width: 100vw;
    background-color: var(--wot-filled-oppo);
  }
}
/* .wot-theme-dark 块已删除:语义变量自动适配暗色主题 */

变更要点:

  • page-sticky__stage → page-sticky--stage(stage 是修饰符而非子元素)
  • .demo-container → .page-sticky__container(归入 Block)
  • .custom-container → .page-sticky__box(归入 Block)
  • 硬编码颜色 / 间距替换为语义变量
  • 删除 .wot-theme-dark 覆盖块

示例二:popup 页面(BEM 重命名)
替换前

template:

html
<text class="custom-txt">...</text>
<view class="nested-popup-content">
  <text class="nested-title">...</text>
  <text class="nested-desc">...</text>
  <view class="nested-buttons">...</view>
</view>

style:

scss
.page-popup {
  .custom-txt {
    color: black;
    font-size: 40rpx;
    border-radius: 32rpx;
  }

  .nested-popup-content {
    display: flex;
    flex-direction: column;
    gap: 20rpx;
  }

  .nested-title {
    color: black;
    font-size: 36rpx;
    font-weight: bold;
  }

  .nested-desc {
    color: #666;
    font-size: 28rpx;
    margin: 10rpx 0;
  }

  .nested-buttons {
    display: flex;
    gap: 20rpx;
    margin-top: 20rpx;
  }
}

.wot-theme-dark {
  .page-popup {
    .custom-txt,
    .nested-title {
      color: $-dark-color;
    }
    .nested-desc {
      color: $-dark-color3;
    }
  }
}
替换后

template:

html
<text class="page-popup__text">...</text>
<view class="nested-popup">
  <text class="nested-popup__title">...</text>
  <text class="nested-popup__desc">...</text>
  <view class="nested-popup__buttons">...</view>
</view>

style:

scss
.page-popup {
  &__text {
    color: var(--wot-text-main);
    font-size: var(--wot-typography-title-size-large);
    border-radius: var(--wot-radius-super-large);
  }
}

.nested-popup {
  display: flex;
  flex-direction: column;
  gap: var(--wot-spacing-main);

  &__title {
    color: var(--wot-text-main);
    font-size: var(--wot-typography-title-size-main);
    font-weight: var(--wot-font-weight-bold);
    text-align: center;
  }

  &__desc {
    color: var(--wot-text-auxiliary);
    font-size: var(--wot-typography-body-size-main);
    margin: var(--wot-spacing-extra-tight) 0;
  }

  &__buttons {
    display: flex;
    gap: var(--wot-spacing-main);
    margin-top: var(--wot-spacing-main);
  }
}
/* .wot-theme-dark 块已删除:语义变量自动适配暗色主题 */

变更要点:

  • .custom-txt → .page-popup__text(归入页面 Block)
  • .nested-popup-content → .nested-popup(提升为独立 Block)
  • .nested-title/desc/buttons → .nested-popup__title/desc/buttons(成为 Block 的 Element)
  • 所有硬编码值替换为语义变量(含 rpx → 换算后匹配)
  • 删除 .wot-theme-dark 覆盖块

示例三:tabs 页面(语义变量 + 泛化 class 修正)
替换前

template:

html
<view class="content">内容</view>
<view class="large">内容</view>
<view class="section">...</view>
<view class="title">标题</view>

style:

scss
.tabs-theme-item {
  margin-bottom: 20px;

  &__label {
    margin-bottom: 10px;
    padding-left: 15px;
    font-size: 14px;
    color: #666;
  }
}

.content {
  height: 120px;
  text-align: center;
}
.large {
  line-height: 320px;
  text-align: center;
}
.title {
  font-size: 32rpx;
  padding: 24rpx 0;
}
替换后

template:

html
<view class="page-tabs__content">内容</view>
<view class="page-tabs__content page-tabs__content--large">内容</view>
<view class="page-tabs__section">...</view>
<view class="page-tabs__title">标题</view>

style:

scss
.tabs-theme-item {
  margin-bottom: var(--wot-spacing-super-loose);

  &__label {
    margin-bottom: var(--wot-spacing-main);
    padding-left: var(--wot-padding-extra-loose);
    font-size: var(--wot-typography-body-size-main);
    color: var(--wot-text-auxiliary);
  }
}

.page-tabs {
  &__content {
    height: 120px;
    text-align: center;

    &--large {
      line-height: 320px;
    }
  }

  &__section {
    // ...
  }

  &__title {
    font-size: var(--wot-typography-body-size-extra-large);
    padding: var(--wot-padding-loose) 0;
  }
}

变更要点:

  • .content → .page-tabs__content
  • .large → .page-tabs__content--large(Modifier)
  • .title → .page-tabs__title
  • .section → .page-tabs__section
  • 所有选择器统一嵌套在 .page-tabs Block 内

© wot-ui, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .agents/skills/optimize-page-styles of wot-ui/wot-ui.

Open the folder on GitHubat commit 0abe2c2

Compare with similar skills

Optimize Page Styles next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Optimize Page Styles compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Optimize Page Styles this skillwot-ui/wot-ui384—~4.9kAutomated safety check: PassMIT
MCP Developmentcoollabsio/coolify63k1 repos~949Automated safety check: PassMIT
Transitions PolishJakubantalik/transitions.dev4.6k2 repos~3.2kAutomated safety check: PassCustom licence
Web Style ExtractorLucent-Snow/style-extractor453—~3.8kAutomated safety check: PassNone
Liuguang Banlan UIsickn33/agentic-awesome-skills47k1 repos~2.5kAutomated safety check: PassMIT
Tailwind Design SystemSuFxGIT/scoutarr1145 repos~5.6kAutomated safety check: PassNone

Similar skills

  • MCP Development

    coollabsio/coolify

    A skill your agent uses for Laravel MCP development. An agent skill from coollabsio/coolify.

    63k GitHub starsUsed in 1 repo~949 tokens
    Frontend & DesignAuto-check passed
  • Transitions Polish

    Jakubantalik/transitions.dev

    Audits existing UI animations against the transitions.dev motion-token scale and suggests tokens for duration, distance, scale, blur and easing.

    4.6k GitHub starsUsed in 2 repos~3.2k tokens
    Frontend & DesignAuto-check passed
  • Web Style Extractor

    Lucent-Snow/style-extractor

    Extracts evidence-backed style guides and motion appendices from websites, keeping reusable visual language and stripping product-specific content.

    453 GitHub stars~3.8k tokensUpdated 6 mo ago
    Frontend & DesignAuto-check passed
  • Liuguang Banlan UI

    sickn33/agentic-awesome-skills

    Implements an interface in one of two named color modes, iridescent white or colorful black, from a parameterized starter that reports measured color intensity.

    47k GitHub starsUsed in 1 repo~2.5k tokens
    Frontend & DesignAuto-check passed
  • Tailwind Design System

    SuFxGIT/scoutarr

    Build scalable design systems with Tailwind CSS v4, design tokens, component libraries, and responsive patterns.

    114 GitHub starsUsed in 5 repos~5.6k tokens
    Frontend & DesignAuto-check passed
  • Extract Design

    Manavarya09/design-extract

    Extract the full design language from any website URL. An agent skill from Manavarya09/design-extract.

    4.2k GitHub stars~786 tokensUpdated 9 days ago
    Frontend & DesignAuto-check: notes

More from wot-ui/wot-ui

All 10 skills in this repo
  • Create Component

    wot-ui/wot-ui

    在 wot-ui 项目中创建新组件骨架与必要注册点。用户要求从零创建组件源码、补齐 types.vue.scss 结构或注册全局组件类型时调用;不负责 Demo 页、测试和文档迁移。

    384 GitHub stars~2.1k tokensUpdated 13 days ago
    Auto-check passed
  • Create Demo Page

    wot-ui/wot-ui

    为组件创建演示页面并统一组织结构。用户要求新建/重构组件 Demo、统一展示顺序或用 demo-group 与 demo-group-item 编排时调用。

    384 GitHub stars~547 tokensUpdated 13 days ago
    Auto-check passed
  • 为新组件或新特性快速生成符合设计系统规范的 SCSS 变量定义代码,或检查现有变量是否合规. An agent skill from wot-ui/wot-ui.

    384 GitHub stars~906 tokensUpdated 13 days ago
    Auto-check passed
  • Generate Theme

    wot-ui/wot-ui

    为 wot-ui 生成单文件主题 SCSS,并在 App.vue 中挂载语义变量. An agent skill from wot-ui/wot-ui.

    384 GitHub stars~2.4k tokensUpdated 13 days ago
    Auto-check passed
  • Vue Comment

    wot-ui/wot-ui

    统一 Vue 与 wot-ui 组件源码中的注释和命名规范。用户要求规范组件 Props 注释、函数命名、类型说明、变量命名或在创建组件后补齐代码注释时调用;不负责 Demo、测试和文档迁移。

    384 GitHub stars~965 tokensUpdated 13 days ago
    Auto-check passed
  • 迁移组件 Markdown 文档到新规范。用户明确要求迁移文档结构、重排 Demo 章节、合并 Attributes/Options 列、迁移最低版本标记或升级旧文档格式时调用;不用于仅做一致性核对。

    384 GitHub stars~610 tokensUpdated 13 days ago
    Auto-check passed

Questions about Optimize Page Styles

What does Optimize Page Styles do?

优化 subPages 演示页面中的样式,将硬编码的颜色、字号、间距、圆角等替换为 wot-ui 设计系统语义变量。允许直接使用已全局注入的 variable.scss Sass 变量,也允许使用 CSS 自定义属性;不需要额外引入 variable.scss。消除手写的暗色模式覆盖块,统一使用语义变量实现自适应主题。同时将 class 命名统一为 BEM 规范。. Optimize Page Styles is an agent skill from wot-ui/wot-ui.

When should I use Optimize Page Styles?

Optimize Page Styles fits situations like: tasks that involve CSS and styling; tasks that involve Design tokens.

How do I install Optimize Page Styles in Claude Code?

Run `npx skills add wot-ui/wot-ui --skill optimize-page-styles -a claude-code`. Or copy the skill folder (.agents/skills/optimize-page-styles in wot-ui/wot-ui) into .claude/skills/optimize-page-styles in your project. Claude Code loads it when a task matches its description.

How do I install Optimize Page Styles in Codex?

Run `npx skills add wot-ui/wot-ui --skill optimize-page-styles -a codex`. Or copy the skill folder (.agents/skills/optimize-page-styles in wot-ui/wot-ui) into .agents/skills/optimize-page-styles in your project. Codex loads it when a task matches its description.

Can I use Optimize Page Styles in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add wot-ui/wot-ui --skill optimize-page-styles -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/optimize-page-styles, .gemini/skills/optimize-page-styles, .github/skills/optimize-page-styles and .opencode/skills/optimize-page-styles in your project.

What does Optimize Page Styles need to run?

SKILL.md names no scripts, command-line tools or credentials: Optimize Page Styles is instructions for the agent only.

Does Optimize Page Styles access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Optimize Page Styles safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Optimize Page Styles use?

Optimize Page Styles is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Optimize Page Styles use?

About 4.9k tokens (SKILL.md is roughly 20k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Optimize Page Styles?

Skills that share tags, products or a category with Optimize Page Styles: MCP Development (coollabsio/coolify, 63k stars), Transitions Polish (Jakubantalik/transitions.dev, 4.6k stars), Web Style Extractor (Lucent-Snow/style-extractor, 453 stars) and Liuguang Banlan UI (sickn33/agentic-awesome-skills, 47k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Optimize Page Styles?

wot-ui (a GitHub organization) maintains it in wot-ui/wot-ui, which has 384 GitHub stars. The repository holds 10 skills in this directory. The repository was last updated on September 25, 2026.

Source: wot-ui/wot-ui on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.