重要前提
安装AI Skills的关键前提是:必须科学上网,且开启TUN模式,这一点至关重要,直接决定安装能否顺利完成,在此郑重提醒三遍:科学上网,科学上网,科学上网。查看完整安装教程 →
web-design-guidelines by cloudai-x/claude-workflow-v2
npx skills add https://github.com/cloudai-x/claude-workflow-v2 --skill web-design-guidelines用于审查 Web 界面的自包含指南。在审计 UI 代码时应用这些规则。
按以下格式报告发现的问题:文件:行号 — [规则ID] 描述
示例:src/Button.tsx:12 — [A11Y-01] 图标按钮缺少 aria-label
<button> 表示操作,<a> 表示导航,<input> 表示数据输入<div onClick> 或 <span onClick> 作为交互元素广告位招租
在这里展示您的产品或服务
触达数万 AI 开发者,精准高效
<nav>、<main>、<aside>、<header>、<footer> 作为地标aria-label<label> 或 aria-labelalt 文本(装饰性图片:alt="")role、tabIndex 和按键处理程序outline: none)aria-live 区域aria-busy="true"aria-describedby 与输入框关联next/image 或带有 srcset 的响应式图片width 和 height 以防止布局偏移loading="lazy"import { Button } from 'lib',而非 import libReact.lazy() 或动态导入will-change(仅用于已知的动画)transform 和 opacity 实现 60fps 动画(仅限合成器)@media (min-width) 适配更大屏幕rem/em,而非 pxclamp() 实现流式排版:font-size: clamp(1rem, 2.5vw, 2rem)max-width: 65ch 以确保可读性type="email"、type="tel"、inputmode="numeric" 以调出移动端键盘aria-busy="true"<dialog> 元素或正确的 role="dialog"!important(使用特异性或级联层)margin-bottom 而非 margin-topposition: absolute 进行布局(仅用于覆盖层)gap 而非 marginmin-height: 100dvh(而非 100vh)prefers-color-scheme 媒体查询dangerouslySetInnerHTMLtarget="_blank" 的外部链接上使用 rel="noopener noreferrer"逻辑属性(例如 margin-inline-start 而非 margin-left)<html> 标签上使用 lang 属性审查文件时,按此顺序检查(关键项优先):
每周安装量
38
仓库
GitHub 星标
1.3K
首次出现
2026年1月22日
安全审计
安装于
gemini-cli30
claude-code30
opencode29
codex27
github-copilot25
amp23
Self-contained guidelines for reviewing web interfaces. Apply these rules when auditing UI code.
Report findings as: file:line — [RULE_ID] description
Example: src/Button.tsx:12 — [A11Y-01] Missing aria-label on icon button
<button> for actions, <a> for navigation, <input> for data entry<div onClick> or <span onClick> for interactive elements<nav>, <main>, <aside>, <header>, <footer> for landmarksaria-label<label> or aria-labelalt text (decorative images: alt="")role, tabIndex, and key handlersoutline: none without replacement)aria-live regionsaria-busy="true"aria-describedbynext/image or responsive images with srcsetwidth and height to prevent layout shiftloading="lazy"import { Button } from 'lib' not import libReact.lazy() or dynamic importswill-change sparingly (only for known animations)transform and opacity for 60fps animations (compositor-only)@media (min-width) for larger screensrem/em for typography, not pxclamp() for fluid typography: font-size: clamp(1rem, 2.5vw, 2rem)max-width: 65ch for readabilitytype="email", type="tel", inputmode="numeric" for mobile keyboardsaria-busy="true" on loading containers<dialog> element or proper role="dialog"!important (use specificity or cascade layers)margin-bottom over margin-topposition: absolute for layout (use for overlays only)gap over margins between flex/grid childrenmin-height: 100dvh (not 100vh) for full-height layoutsprefers-color-scheme media querydangerouslySetInnerHTML without sanitizationrel="noopener noreferrer" on external links with target="_blank"logical properties (margin-inline-start over margin-left)lang attribute on <html> tagWhen auditing a file, check in this order (CRITICAL first):
Weekly Installs
38
Repository
GitHub Stars
1.3K
First Seen
Jan 22, 2026
Security Audits
Gen Agent Trust HubPassSocketWarnSnykPass
Installed on
gemini-cli30
claude-code30
opencode29
codex27
github-copilot25
amp23
React 组合模式指南:Vercel 组件架构最佳实践,提升代码可维护性
125,600 周安装