我拆了 399 个 AI 生成的网页:75% 拿 emoji 当图标,89% 用了大圆角,56% 是同一套四件套

我拆了 399 个 AI 生成的网页:75% 拿 emoji 当图标,89% 用了大圆角,56% 是同一套四件套

先说结论,一句话:

"AI 味的界面"是可以量化的。 我把一个平台上 399 个由 AI 生成、真实上架的单页应用全部下载下来,只统计它们的 CSS 设计值(不看功能、不评价好坏),结果是:渐变 78.9% 、emoji 75.2% 、圆角 ≥12px 89.5% 、系统字体栈 80.2% ;而"渐变 + emoji + 大圆角 + 系统字体"这四件同时命中的,占 56.1%。

也就是说:一半以上的页面,用的是同一套设计默认值。


一、样本是什么,为什么可信

项 数字
平台 CSDN「码上创」(一个"用 AI 构建场景应用"的投稿平台)
抓取时间 2026-10-26 08:00
作品记录 /api/products 返回 814 条,按 id 去重后 407 个(这个接口对 pageSize 不敏感,翻页会返回同一批,不去重会把总数算成两倍)
成功抓到的页面 399 个 (8 个链接打不开,其中 2 个填的是 http://127.0.0.1:...,说明审核并不点开链接)
作者数 206 个
页面形态 全部是单文件内联 HTML:CSS 和 JS 都写在页面里,没有构建产物,没有外链样式表

这一点很关键:这些页面没有"设计系统",每一个都是模型从零生成的一整页。 所以它们的设计值,几乎等于模型在"做一个好看的网页"这句话下的直接输出。

统计脚本是纯正则 + 状态扫描,只读源码,不做渲染。所有数字在文末给了复现方式。


二、五个数字

1. 渐变:78.9%

399 个页面里 315 个用了 linear-gradient。

不是"用了渐变",而是渐变被当成了"现代感"的同义词。你去掉颜色看结构,会发现大量页面是"顶部一个大渐变区 + 白色圆角卡片"这一个模子。

2. emoji:75.2%

300 个页面的源码里出现了 emoji(中位数每页 3 个)。

这个数字我要说清楚口径:我统计的是源码里出现的 emoji 字符 ,绝大多数出现在标题、按钮、列表图标位置------也就是当图标用。真正做了 SVG 图标的页面是少数。

一个页面用 emoji 没问题。问题是:当 75% 的页面都用 emoji 当图标时,emoji 就不再是"设计选择",而是"没做选择"。

3. 圆角:89.5% 的页面最大圆角 ≥12px,76.4% 出现胶囊/正圆

  • 最大 border-radius 为 999px 的页面:203 个(50.9%)
  • ≥12px:357 个(89.5%)
  • 出现 999px / 50% / 100px 这类"胶囊或正圆"的:305 个(76.4%)

圆角本身没错。但**"所有东西都是圆的"是一个风格决定**,而当 9 成页面都这么决定时,它就不是风格,是默认值。

4. 字体:80.2% 用系统字体栈,最常见的那一条出现了 149 次

出现次数第一的 font-family 是这条:

复制代码
-apple-system, BlinkMacSystemFont, "PingFang SC", "Microsoft YaHei", sans-serif

139 个页面(35%)一字不差地用了它。

这条栈本身是对的 (国内加载不了 Google Fonts,用系统字体最稳)。我要指出的不是"应该换字体",而是:同一句话被模型生成了 139 次。

顺带一个反直觉数字:真正写了 Inter 的只有 6.3%,写了 prefers-color-scheme(深色模式)的只有 3.3%,用了 Tailwind 式 class 命名的只有 5.3%。

深色模式 3.3% 这个数字我盯了很久:它说明模型在"做一个应用"时,默认只做浅色一种状态。不是不会,是没被要求。

5. 四件套:56.1%

同时满足「有渐变 + 有 emoji + 最大圆角 ≥12px + 系统字体」的页面:224 / 399。

如果把这四条当成一个"AI 味指纹",那么超过一半的作品,指纹完全一致。


三、这不是"少数人批量灌水"造成的

这是我自己最先怀疑的地方。拉动数据前我就知道:有个作者发了 25 个作品,我自己也发了 11 个。如果比例是被"同一个人重复发布"拉高的,那这个结论就是假的。

所以我做了一次对照:每个作者只保留一个作品,样本从 399 降到 206,重算一遍:

指标 全部 399 个 每作者只留 1 个(206 个)
渐变 78.9% 75.2%
emoji 75.2% 77.2%
圆角 ≥12px 89.5% 87.4%
胶囊/正圆 76.4% 77.2%
系统字体 80.2% 75.7%
四件套 56.1% 53.4%
深色模式 3.3% 3.4%

几乎没变。

这说明它不是"某几个人的偏好",而是206 个不同的人、在不同的提示词下,独立地收敛到了同一组数值。

这就是我要写的核心:这不是审美问题,是分布的众数问题。


四、为什么会长成这样(机制,不是指责)

三条,都是结构性的:

1. 训练数据里"好看的网页"本来就长这样。

模型学到的是"现代 Web 界面"的条件分布。当你说"做一个好看的 XX 应用",它给出的不是某个设计师的判断,而是这个分布的均值。均值天然是:柔和渐变、大圆角、卡片阴影、emoji 当图标。

2. "简洁 / 现代 / 高级感"这类词,指向的是同一批视觉特征。

提示词越笼统,输出越靠向中心。你想让它"好看",它就给你平均值;你只有说清"给谁看、在什么场景下看、为什么不能是别的样子",它才会离开中心。

3. 单文件约束把设计压成了"一页 CSS"。

不能引组件库、不能引字体、不能引图标集 ------ 于是图标只剩 emoji,字体只剩系统栈,圆角只剩手写数字。约束本身没错,但它把所有人的选择空间压成了同一个盒子。


五、这三个数字能怎么用

用法一:判断一个作品有没有"做过选择"

不要看它好不好看,看它在哪几个默认值上偏离了。

一个页面如果:渐变 ✓、emoji ✓、圆角 16px ✓、系统字体 ✓ ------ 它可能很好用,但它没有一个设计决定是作者自己做的。反过来,如果一个页面在四个默认值里偏离了两个以上,基本可以确定背后有人在某个具体场景上想过事。

这不是"AI 味 = 差"。AI 味 = 没做选择。这两件事必须分开,否则就会变成对工具的偏见。

用法二:给你的页面加一条"反默认"清单

上线前自查四问:

  1. 我这个渐变,是为了表达什么?(如果答案是"显得现代",删掉)
  2. 我的图标为什么是 emoji?(如果没有理由,换成 2--3 个手写 SVG 也比 20 个 emoji 强)
  3. 我的圆角是多少,为什么是这个数?("组件库默认"不是理由)
  4. 深色模式下它长什么样?(399 个页面里只有 13 个想过这个问题)

用法三:想不像 AI 做的,改的不是色值,是"为什么"

这是我自己的体会。前 12 个作品我都在改色值、改布局,最后一个才想明白:让页面不像 AI 做的,不是换一套颜色,而是让每一个数值都能回答"为什么是这个数"。


六、我拿这组数据做了什么

我做完这次统计之后,正好要做一个新工具(一个帮租客在退租前算清押金的页面)。我把这四条默认值全部反着用了:

  • 不用渐变(纸色 #f6f5f1 纯平底)
  • 不用 emoji(一个都没有)
  • 不用胶囊圆角(10px 一档,只有一处)
  • 字体仍然用系统栈(这条我没反------因为它在国内是正确的选择,不是为了"像 AI")

换成了"档案纸 + 表格 + 印章色"这一套(米白底、细网格、墨蓝标题、砖红警示)。

结果我自己也没想到:当你不去用那四个默认值时,页面立刻有了"这是某个具体的东西"的感觉 ------ 因为剩下的每一个决定,都必须有理由。

(这个工具叫「押金体检」,链接在文末。它本身就是这篇文章的一个实验样本。)


七、口径与局限(这部分比结论重要)

  1. 只看源码,不看渲染。 渐变是不是真被用上了、emoji 是不是真当图标,我没有逐个渲染验证。0.5 个百分点的误差我不在乎,但方向性错误我在乎 ------所以 var(--x) 形式的渐变我单独排除了(那是变量引用,不是设计值)。
  2. 只有一个平台、一个时间点。 399 个作品都来自同一个投稿平台,作者大概率是国内开发者、用中文提示词。这个结论不能推广成"所有 AI 生成的网页"。 它能说的是:在这批人、这批工具、这批提示词下,收敛是真实发生的。
  3. "四件套"是我事后选的一组特征,不是事先定义的模型。 我挑的是最容易测、最不依赖审美判断的四条。换一组特征,比例会变。它不是"AI 味指数",它是一个可复现的观察角度。
  4. 数字会变。 平台每天都在进新作品(我抓的那天 18 小时只增了 4 个,前段时间是 18 小时 120 个)。三个月后重跑,可能就不一样了------这恰恰是它值得重跑的原因。

八、复现

原始语料:407 条作品记录 + 399 个页面,落盘在本地 cache_1026/。

统计脚本 homogeneity3.py:正则取 hex / linear-gradient / border-radius / font-family,按 id 去重、按 submittedBy 分作者,输出 homogeneity3.json。

关键口径都写在脚本注释里:hex 补 # 前缀、var( 渐变排除、inter 必须作为字体名 token 精确匹配(第一版我用子串匹配,把 internet、pointer 也算了进去,Inter 一度虚高到 95%------这类错误不会报错,只会给你一个很像真的数字)。

如果你要重跑:换成你自己的语料目录即可,脚本不依赖平台接口。


林小黑 · 2026-10-26

同系列:《407 个应用、2660 票、53043 次浏览:我把码上创的榜单整个算了一遍》《静态扫出 19 个"死按钮",真跑起来是 0 个》

本文用到的工具:押金体检 https://vb.csdn.net/apps/index-e5b43a/

相关推荐
我喜欢就喜欢1 小时前
百度 AI 搜索实战应用场景与落地指南
人工智能·百度
像污秽一样1 小时前
动手学kaggle-Intro to Machine Learning-1
人工智能·机器学习
东坡肘子1 小时前
当应用不再属于特定操作系统 -- 肘子的 Swift 周报 #159
人工智能·swiftui·swift
Maydaycxc2 小时前
gentic RPA 深度解析|AI Agent 与 RPA 混合架构、落地痛点、选型要点
人工智能·ai·自动化·rpa
摸鱼仙人~2 小时前
从 AI 应用开发到 GPU 计算软件:一份完整的 GPGPU、PyTorch、vLLM 与 AI Infra 学习路线
人工智能·pytorch·vllm
znnnk3 小时前
【AI技术】从 Vibe Coding 到 Harness:以 DeepSeek Harness 为例看 AI 项目的工程化维护
人工智能·ai·deepseek·ai工程化·harness·项目维护
张彦峰ZYF10 小时前
越过边界之前:Reward Seeker 实验如何改写智能体安全的时间逻辑
人工智能·ai agent·anthropic·智能体安全·reward seeker·“控制评价过程”泛化跨领域策略·envbom
拓恒技术10 小时前
无人机巡检AI算法的工程化落地:从需求到交付的5个核心环节
人工智能·算法·无人机
罗西的思考12 小时前
AI 时代的 “房谋杜断”:如何培养能力、品味与判断力
人工智能·算法·机器学习