Communitygithub.com

CleanUI — 个人站反 AI 味 UI

搭建 Web/个人站时阻止通用 AI 生成 UI。强制差异化版式、字体、配色与组件,避免作品集长得像千篇一律的 LLM 落地页。

CleanUI — 个人站反 AI 味 UI 是什么?

Personal Website 步骤2(反 AI 味):peterhdd/cleanui — 今晚新增。Resume2Site 搭好站后,CleanUI 拦住 Inter+紫卡片默认,逼出有辨识度的 UI。再接 freelancer-portfolio。区别于今早 Hormozi 配方里的 taste-skill。

兼容平台~Claude Code~Codex CLI~Cursor
npx skills add PeterHdd/cleanui

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

CleanUI — AI UI设计强制规范技能

停。在编写任何UI代码之前,请阅读此文件。

你是一个AI代码生成器,具有根深蒂固的UI习惯,会生成可识别的“AI风格”输出。此技能旨在覆盖这些习惯,生成专业、人类设计的界面。

每个UI任务的处理流程:

  1. 思考你会通常生成的内容
  2. 对照下方的硬性禁止项列表检查每个元素
  3. 将所有违规项替换为指定的替代方案
  4. 然后才编写代码

硬性禁止项列表 —— 自动失败模式

如果你的输出中包含以下任何一项,请停止并修复后再返回代码。

字体

  • 禁止: font-extrabold (800), font-black (900), fontWeight: "800", fontWeight: "900"
  • 改用: 最大 font-bold (700)。章节标题使用 font-semibold (600)。
  • 自查: 在代码中搜索“extrabold”和“black”,全部替换为“bold”。

Logo / 信任标志栏

  • 禁止: 将公司名称显示为相同的纯文本,放在相同的带边框的药丸/方框中
  • 改用: 让每个logo视觉上与众不同——将图标与名称配对,为每个logo改变字重/斜体/字间距,或使用SVG logo
  • 自查: 所有logo看起来是否完全相同?修复它。

大写 / 字间距

  • 禁止: tracking-[0.18em], tracking-[0.2em], tracking-[0.24em] 或任何自定义宽字间距
  • 禁止: 整个页面上超过2个大写带字间距的标签
  • 改用: 句子大小写。如果需要大写,最大使用 tracking-wider (0.05em)。

眉部徽章

  • 禁止: 在标题上方装饰性药丸/徽章,重复标题内容(例如,“面向内容团队的AI写作系统”)
  • 改用: 完全移除,或使用事实信息:“现处于Beta版”,“受2400个团队信赖”,“提供免费套餐”

首屏标题

  • 禁止: 在桌面上折合成4行以上的标题
  • 改用: 4-8个单词,最多2行。改写得更短。
  • 禁止: 超过2句的副标题
  • 改用: 最多1-2个短句。

装饰性文案

  • 禁止: 装饰性标签,如“实时脉搏”、“夜班模式”、“无杂乱的操作清晰度”
  • 改用: 真实数据(状态、计数、日期)或完全移除。每个标签必须具有功能。

阴影

  • 禁止: shadow-xl, shadow-2xl, 卡片上模糊度超过8px
  • 改用: shadow-sm 或带细微边框的 shadow-none。

边框圆角

  • 禁止: 随意混合使用 rounded-md, rounded-xl, rounded-2xl, rounded-3xl, rounded-[24px], rounded-[32px]
  • 改用: 选择2-3个值。卡片:8-12px。按钮:6-8px(药丸形使用 rounded-full)。输入框:6-8px。保持一致性。

图标

  • 禁止: 使用Unicode字符作为图标(↑, ↓, ◌, ⌂, ◫)
  • 改用: lucide-react (web), @expo/vector-icons (React Native), SF Symbols (iOS), Material Icons (Android)

文件结构

  • 禁止: 整个应用在一个文件中
  • 改用: 分离:屏幕/页面、组件、常量/主题、数据、导航

布局规则

根据内容类型匹配布局

内容类型布局不要使用
图片/视觉类(美食、旅行、产品)水平轮播、图片网格、首屏图像纯文本垂直列表
数据/数字类(金融、健身、分析)统计卡片、进度条、指标网格首屏图片卡片
信息流类(社交、新闻、帖子)全宽堆叠卡片、无限滚动带有拖动手柄的分段布局
浏览类(电商、任务、邮件)带搜索/过滤器的垂直列表首屏区域
多媒体类(流媒体、音乐、播客)水平滚动货架(Netflix风格)垂直列表
聊天/消息类联系人列表 + 聊天详情首屏卡片或统计网格
地图/位置类地图视图 + 底部表单覆盖标准列表布局

反模板规则

  • 永远不要为每个应用使用相同的布局骨架。 阅读提示,识别内容类型,选择正确的布局。
  • 永远不要同时使用所有这些元素: 首屏卡片 + 网格按钮 + 拖动手柄 + 分段控件 + 垂直列表。这是模板。
  • 如果应用以图片为主,请显示实际图片——缩略图、照片——而不仅仅是圆角方块中的图标。
  • 对分类、特色项目、内容货架使用水平滚动(FlatList horizontal, CSS overflow-x-auto)。AI生成器不常用这些。

设计品味

色彩克制

  • 单色或近单色调色板通常看起来比彩色更好。
  • 颜色主要应出现在操作(按钮、链接)、状态(徽章)和高亮(选中状态)中。不要用在所有地方。
  • 深色元素(卡片、部分区域)仅在表示真实物体(信用卡、媒体播放器、代码块)或创建有意的视觉节奏时才合理。而不是仅仅“为了变化”。

列表项

  • 永远不要仅使用字母首字母作为标识符。 在圆角方块中使用特定类别的图标(餐厅用餐具,交通用巴士,订阅用重复图标)。
  • 始终包含元数据:日期/时间、类别、状态。“餐厅”感觉很假。“餐厅 · 5月5日 · 14:28”感觉很真实。

过滤器

  • 任何包含5个以上项目的列表都应带有过滤器或分段控件。
  • 分段控件:药丸轨道样式,选中段实心填充。

操作按钮

  • 无边框样式通常看起来更简洁:图标放在浅色背景的方块中,下方配标签。无需卡片包裹、阴影或边框。

移动端规则

完整iOS调色板、Android Material 3标记、组件指南及代码示例请参见 移动端模式参考。

所有平台

  • 使用真实导航库,而非自定义基于View的导航栏。React Native:@react-navigation/bottom-tabs。iOS:TabView。Android:Material NavigationBar。
  • 永远不要构建浮动的药丸形底部导航栏。 不使用 position: absolute,不使用 borderRadius: 28,不使用深色浮动药丸。
  • 在React Native中使用 Platform.select() 或 Platform.OS 进行条件样式设置。
  • 在常量文件中定义设计标记(颜色、间距、圆角、字体)。
  • 每个屏幕处理3种状态:加载(骨架屏)、内容、空状态。

iOS

  • 安静、柔和、高端。色彩克制。系统字体(SF Pro)。语义颜色(.label、.secondaryLabel、.systemBackground)。半透明导航/标签栏。listStyle(.insetGrouped)。SF Symbols图标。细线分隔线。圆角半径:10-12。无重阴影——使用背景对比。

Android (Material 3)

  • 结构化、大胆、表现力强。使用material3的Material组件。使用色调表面(tonalElevation)代替投影。Scaffold 配合 TopAppBar + NavigationBar。ListItem 可组合项用于列表行。项目之间使用 HorizontalDivider()。卡片圆角半径:12dp。从种子颜色生成配色方案。

React Native / Expo

  • 通过 Platform.select() 进行平台条件颜色、阴影和间距设置。
  • iOS使用 shadowColor/shadowOpacity/shadowRadius。Android使用 elevation。
  • 不同平台的不同背景颜色:iOS #F2F2F7,Android #F9F9FF。
  • 不同主色:iOS #007AFF,Android使用Material种子颜色。

网页端规则

创意自由 + 结构

  • 你可自由选择:调色板、字体选择、边框圆角值、品牌个性、背景处理。
  • 必须遵循:区域结构、首屏内容限制、组件模式、响应式行为。

导航

  • 粘性顶部,带有backdrop-blur和半透明背景
  • 左侧Logo,中间导航链接,右侧行动号召按钮
  • 移动端:汉堡菜单

落地页结构

首屏       → 标题 + 副标题 + 2个行动号召按钮 + 一个信任元素
信任       → 标志栏(视觉上各异的标志)
功能       → 三列网格,包含图标 + 标题 + 描述
运作方式   → 三步流程
用户评价   → 头像 + 姓名 + 角色 + 引用
定价       → 2-3个套餐,推荐套餐视觉反转(深色背景)
行动号召   → 最终行动号召
页脚       → 链接列 + 版权信息

首屏

  • 标题 + 简短副标题 + 2个按钮 + 一个信任元素。仅此而已。
  • 两列首屏右侧的产品示意图/截图没问题。
  • 不要在首屏中放置统计卡片、带有列表的复杂预览卡片或多段落描述。

功能卡片

  • 图标容器:至少48px,带有浅色调背景。不要太小。
  • 卡片内边距:大方(p-6到p-8)。
  • 每张卡片应感觉完整——图标 + 标题 + 描述。

定价

  • 推荐套餐:反色(深色背景,浅色文字)或更粗边框 + “最受欢迎”徽章。
  • 每个卡片内全宽行动号召按钮。

登录

  • 两列:品牌面板(左侧,深色)+ 表单(右侧)。
  • 社交登录位于邮箱表单上方。
  • 移动端:隐藏品牌面板,显示带有Logo的表单。

仪表板

  • 侧边栏(240-260px)+ 主内容区域。
  • 侧边栏:Logo、带图标的导航项、可选升级卡片。
  • 顶部栏:搜索 + 通知 + 头像。
  • 内容:问候语 → 统计卡片 → 带选项卡的过滤列表 → 活动信息流。

暗色模式

  • 背景:非常深的灰色,非纯黑。
  • 文字:米白色,非纯白。
  • 边框:深灰色。降低色彩饱和度。

输出前检查清单

在返回代码前,请验证:

字体:

  • 任何地方都没有 font-extrabold 或 font-black
  • 最多使用2个字重(常规 + 粗体/半粗体)

视觉:

  • 没有 tracking-[0.18em] 或更宽
  • 整个页面最多2个大写标签
  • 标志栏中的项目视觉上彼此不同
  • 卡片上没有 shadow-xl 或 shadow-2xl
  • 边框圆角一致(最多2-3个值)

首屏:

  • 标题在桌面上适应2行
  • 眉部徽章(如有)添加新信息,不重复标题
  • 副标题为1-2句,非段落

结构:

  • 多个文件(屏幕、组件、常量、导航)
  • 使用真实图标库(非Unicode)
  • 平台特定样式(React Native)
  • 存在加载/空状态

布局:

  • 布局与内容类型匹配(不是每次相同的模板)
  • 列表项具有类别图标 + 元数据
  • 包含5个以上项目的列表具有过滤器

相关技能