【1024Builder作品秀】1024 楼层实况墙 · Floor Wall

【1024Builder作品秀】1024 楼层实况墙 · Floor Wall
1024Builder作品秀#

【一句话】
这次盖楼活动的主帖,被我做成了一块可以看的数据墙 —— 谁占了 128 楼、1024 楼预计几点到、你的那一楼在哪儿。

【为什么做这个】
我准备参加盖楼的时候,先干了件"参赛之外"的事:我先把这次盖楼本身看了一遍。
因为有个问题一直在我脑子里:官方说"盖到 128、256、512、1024 楼的朋友有奖品,如所在楼层是无效回复则顺延一楼"—— 那到底盖到哪了?哪些楼是真填了模板的、哪些是灌水的?1024 楼还差多少?
社区里没有人做过这件事(我搜了,50+ 篇作品秀里没有一篇做主帖数据)。于是我干脆自己写了一个。

【作品介绍】
▸ 楼层时间轴
横轴是时间(10-19 13:28 开帖 → 实时),纵轴是楼层号,每个点就是一层。
悬停/点击能看:作者、发布时间、正文摘要,以及这一层是"认真填了模板"还是"灌水"。
官方模板是 #我是1024Builder# 那五行 —— 我按这个判定有效层,所以图上荧光绿的是有效模板回复、灰色的是灌水,一眼能看出哪些是真参与者。

▸ 里程碑轨(128 / 256 / 512 / 1024)
四个指定楼层各一张卡:这层实际是谁占的、是不是有效回复、顺延到了第几楼,全部按官方"无效回复则顺延一楼"的规则算出来。

:warning: 这里有个我一开始算错了、后来才想明白的地方,单独讲一下 —— 因为它可能是整件作品最值得看的部分:
顺延的终点,取决于"有效回复"怎么判。社区里有人把标签打成 #我是 1024Builder#(中间带空格)。
· 如果按严格字面判(正文必须含连续字面「我是1024Builder」),那 129 楼会被判无效,奖就顺延到 133 楼;
· 但官方排除的是「重复回复、灌水或与活动无关的内容」—— 不是排版格式。带空格、但四行模板都认真填了的回帖,它不是灌水、也不是与活动无关,它就是一次完整的有效参与。
所以我把两种口径都算了:主判定取宽松 → 128 楼的奖顺延到 129 楼「硬气一点」;同时在卡片里附上严格字面口径的结果(→ 133 楼「琦哈哈」),并写清楚为什么。
同一个"顺延一楼",因为"有效"的判定口径不同,落到不同的楼层。 我把这件事摊开算给你看,而不是挑一个答案装作很确定 —— 因为这是我的判断,不该由我单方面定义。

▸ 我的楼层
输入你的社区 ID,立刻定位你在这场盖楼里的所有楼层:高亮在时间轴上的位置、你的楼层内容、你在第几层、有没有填模板。

▸ 1024 楼预测器
按最近 6 小时的真实速率外推:当前多少楼、离 1024 还差多少、预计什么时刻能到。

▸ 冲楼预测卡
选 512 或 1024,填昵称,生成一张「我的冲楼预测卡」PNG。

▸ 数据是真的
所有数据直接来自活动主帖的公开接口(forum.trae.cn/t/325833.json),一个数都没编,你可以自己点开链接对。

【关于"实时":我把浏览器同源策略这堵墙,直接给拆了】
论坛接口不返回 Access-Control-Allow-Origin,浏览器端 fetch 必然抛 TypeError: Failed to fetch —— 这我实测过(带 Origin 头复查过响应头,Vary 里也不含 Origin)。
第一版我老老实实做成了"内置快照 + 手动粘贴 JSON"。但那有个致命问题:它不"实况" —— 一个叫实况墙的作品,数据却要人手搬,这就不对了。

所以第二版我把整件事翻了过来:既然网页读不到论坛,那就让一个不受同源策略约束的东西去读,再把结果送到网页面前。
· 我在自己的服务器上跑了一个常驻服务:它定时(每 3 分钟)分页把主帖全量楼层拉到底,整理成一份楼层数据,对外只暴露一个带 access-control-allow-origin: * 的 JSON 接口;
· 页面优先走同源的那条(从自家站点打开时,压根不涉及跨域,零成本);即使页面被搬到别的域名,这条接口依然能跨源直取;
· 页面再按优先级依次探查多条通道,命中即止:自有服务器(同源)→ 自有服务器(跨源)→ 论坛直连(官方哪天开了 CORS 就立刻生效)→ 公共 CORS 代理 ×2 → RSS 通道 → 静态镜像备份。
· 每次探查的逐条结果都摊在页面上(哪条命中、耗时多少、失败的什么原因),你点开「探查日志」就能自己核对。

实测:同源 0.20s 命中、跨源 0.12s 命中;把 HTML 下载到本地双击打开(file://),照样能命中同一份数据 —— 全程不需要任何人复制粘贴 JSON。页面每 3 分钟自动重探一次。
手动导入我留着,但降级成了「所有自动通道都没命中」时的兜底。

这一点我想单独说:这堵墙不是"绕过去"的,是架构上正面解决的 —— 用一条我自己能控制、可审计、每 15 分钟自动更新的镜像通道,把浏览器的安全策略变成一条正常的、被设计过的数据通路。

【Demo】1024 楼层实况墙 · Floor Wall
(作品集落地页:1024 Builder 作品集 · TRAE 社区 1024 狂欢周 ;单文件版也附在帖子里,下载双击即可,不需要服务器、不需要注册、不需要联网)
【下载】
index.html (149.2 KB)

【演示】

【截图】


【TRAE 在创作中发挥的作用】
这次我基本是让 TRAE 主导实现的,我负责定规格和审结果:
· 需求拆解与实现:楼层时间轴、里程碑顺延判定、我的楼层检索、速率外推预测、Canvas 预测卡导出,全部由 TRAE 独立完成;连楼层明细的采样加载策略(首屏只拉一次拿楼层总数,明细均匀采样约 12 页,四个里程碑精确拉取)都是它自己定的。
· 它自己撞上了一堵墙并给出了解法:第一版直接 fetch 主帖 JSON,发现被同源策略拦了,于是没有把错误藏着,而是把"内置快照 + 手动同步"设计成了正式路径。我看完后提的要求很直接:“实况楼层需要自主探查,不要人工去获取” —— 它于是把限制从"设计"升级成了"工程问题":先探查了 13 条公共 CORS 代理(实测全部限流/超时/行为不稳定),转而用 GitHub Actions 建了一条我自己可控的镜像通道,再把页面改成多通道依次探查、命中即止。我提的是一句需求,它做的是一整套架构决策。
· 我要求它用真实浏览器验收,而不是只跑逻辑测试,并且给了它一个自建的无依赖 CDP 截图/录屏工具链。结果它第一版的判定逻辑有个真问题:社区里有人把标签打成 #我是 1024Builder#(中间带空格),严格匹配会漏判 —— 连带把"128 楼顺延到 129 楼"算成了"顺延到 133 楼"。这种错误在页面上是公开点名到真实用户的,我在验收时抓到并让它改成了宽松正则。
· 视觉:配色同样取自官方 1024 海报的实测色值;"灌水/无效"用中性灰、"有效模板回复"用官方荧光绿,两种状态在时间轴上直接可分。

【三个比"我做了什么"更有意思的技术点】

  1. 判定口径决定事实:128 楼的归属,取决于"有效回复"怎么判。用严格字面匹配(正文须含连续字面「我是1024Builder」),奖顺延到 133 楼;用宽松口径(允许空格等写法),才顺延到 129 楼 —— 差别藏在一个空格里。公开断言点名到真人,口径必须写清楚、并且能被复核。
  2. 同源策略是特性,不是故障,更不是终点:接口不返回 CORS 头,浏览器端这一跳注定拉不到 —— 但这不等于"只能靠人复制粘贴"。真正的解法是换一个不受同源策略约束的执行环境去取数,再把结果变成网页可直取的静态资源。约束是真实的,绕开约束的路径也是真实存在的 —— 两者都不该被含糊掉。页面把每次探查的逐条结果摊开给你看,包括失败的那些。
  3. 镜像只搬数据,不下判断:抓取脚本只负责把楼层原样搬过来,"有效/无效"两套口径一律由页面现场用同一套正则算。这样镜像与页面永远不会各算各的、让 213/201/12 这些数字打架 —— 数据通道和判定逻辑,职责必须分开。

【想试试的话】
打开 Demo,先在「我的楼层」里输入你的社区 ID,看看你在这场盖楼里落在哪儿。
如果你是社区里的活跃分子,你大概率会看到自己名字后面的某一层。

【互动时间】
两个问题:

  1. 你想知道自己是在第几楼盖的楼吗?我把 364 层都画出来了,搜你的 ID 就能定位 —— 找到了回来留个言,我看看大家分布。
  2. 如果给你一面这样的墙,你最想看这次活动的哪个维度?(比如"按小时看哪段时间最卷"、“谁是最早的那 10 个人”)我挑一个做出来。
2 个赞

我看到这个活动的第一反应也是这个,就知道肯定有人会做的:+1:

2 个赞

做这种ui风格的话要跟agent怎么描述?

2 个赞

英雄所见略同,果然高手都是一样的想法 :laughing:

1 个赞

UI 风格描述简报-模板

用途:把一个网页/界面已有的视觉风格描述给 AI(TRAE / 任意模型),让它能复刻或延展出同一套 UI。
核心心法:描述可验证的令牌,不描述形容词。 “科技感 / 高级感 / 有质感” 对 AI 是零信息量;#F4F8F9 + radius 14px + shadow 0 8px 24px rgba(0,0,0,.055) 才是。
配套样例:本文档第 ⑥ 节是《1024 楼层实况墙》页面的真实令牌(从源码提取,可直接照抄)。


一、为什么"形容词式描述"必然失败

你这么写 AI 只能猜 结果
「做一个科技感很强的数据看板」 猜风格库 / 猜自己的默认审美 深色霓虹或 Material 风,跟你要的完全不是一回事
「用绿色」 猜是 #10B981 还是 #00FF88 还是 #32F08C 品牌色偏了,页面立刻"不像那一个"
「圆角大一点、阴影柔和些」 猜 12px?20px?多柔? 每次生成都不一样,无法收敛

可复现的前提是「数值化 + 可核对」:AI 只需要照抄你给的令牌,不需要"审美"。


二、描述公式(六段,缺一段就会跑偏)

① 风格坐标   → 这套 UI 属于哪一类(用风格库/通用词命名,给 1 个主 + 1 个副)
② 色板令牌   → 背景 / 卡片 / 正文 / 次要文字 / 弱化 / 主色 / 主色阶 / 描边 / 网格 / 危险色(给 HEX)
③ 字体       → 正文栈(含中文 fallback)+ 数字/代码等宽栈 + 字号层级
④ 质感       → 圆角档位 / 阴影档位 / 描边粗细 / 背景材质(玻璃、毛玻璃、网格底纹)
⑤ 密度与动效 → 栅格与间距刻度 / 断点 / 卡片最小宽 / 过渡时长 / 常驻动效
⑥ 结构与反例 → 页面有哪些区块(按顺序)+ **明确不要什么**

三、填空模板(照抄这段,逐项替换)

【① 风格坐标】
主风格:<如 Data-Dense Dashboard(数据密集看板)>
副风格:<如 Real-Time Monitoring(实时监控)>
点缀手法:<如 Neo-Brutalist-lite 贴纸(黑色硬边阴影,仅用于按钮/徽章/成就卡)>
一句话气质:<如 "浅色、克制、数据说话,品牌绿只出现在关键状态上">

【② 色板令牌】
--bg:        <页面底色>
--card:      <卡片底色>
--ink:       <正文主色>
--text-2:    <次要文字>
--text-3:    <弱化/占位文字>
--accent:    <品牌主色(浅底上的填充)>
--accent-2:  <品牌主色(按下/悬停)>
--mid:       <品牌中阶>
--deep:      <品牌深阶(用于深色文字/边框)>
--glow:      <发光/高亮>
--line:      rgba(0,0,0,.12)
--grid:      rgba(0,0,0,.045)
--danger:    <红>

【③ 字体】
正文:<中文字体栈>, system-ui, sans-serif
数字/代码:ui-monospace, Menlo, Consolas, monospace
字号层级:<标题 28/小标题 18/正文 14/辅助 12>

【④ 质感】
圆角:卡片 <14px> / 内嵌块 <12px> / 小元件 <10px> / 胶囊 999px
阴影:<0 1px 2px rgba(0,0,0,.05), 0 8px 24px rgba(0,0,0,.055)>
硬阴影(贴纸):<4px 4px 0 var(--ink)>,仅用于 <按钮/徽章/成就卡>
背景材质:<顶栏 backdrop-filter: saturate(1.3) blur(8px)>
描边:<1px solid var(--line)>

【⑤ 密度与动效】
栅格:<repeat(auto-fit, minmax(224px,1fr))>,gap <12px>
卡片内边距:<12px>
固定列:<如三列 96px 1fr 78px 用于时间轴行>
断点:<1240px / 900px / 640px>
过渡:微交互 <80–150ms>,进度条 <500ms ease>
常驻动效:<吉祥物上下浮动 2.6s ease-in-out infinite>

【⑥ 结构与反例】
区块顺序:① 顶部品牌栏(sticky + 毛玻璃)② KPI 指标条 ③ 主数据时间轴
④ 里程碑卡组 ⑤ 交互面板 ⑥ 探查日志
不要:不要深色模式;不要霓虹发光;不要 emoji 当图标;不要渐变按钮;
不要大圆角(>20px);不要重投影;不要多色图表配色;不要玻璃拟态铺满全屏。

【交付顺序】先只输出①②③的令牌表(CSS 变量)→ 我确认 → 再写布局 → 再写组件 → 最后动效

四、给 AI 的三条硬规矩

  1. 分步交付:先要令牌表,确认后再要布局,再要组件,最后要动效。一次全要,AI 会自行发挥且无法收敛。
  2. 必须给反例(negative):"不要什么"比"要什么"更能锁住风格,尤其是配色数量、圆角上限、投影强度。
  3. 令牌表要它原样回填:明确要求"把①—⑤写成 :root 的 CSS 变量并在后续代码里只用变量、不写裸 HEX",否则第二个组件开始风格就会漂。

五、常见翻车点(都真实发生过)

翻车 症状 根因 对策
只给风格名 生成物跟目标页毫无关系 风格名有几百种变体 必须补令牌
不说密度 内容一多就"挤"或"散" 没说 gap / 内边距 / 最小宽 给栅格与内边距数值
不说移动端 手机端整页横向滚动 没说断点与最小列宽 给断点 + minmax() 下限
品牌色当底色 大面积荧光绿,廉价 只说"用绿色" 指明品牌色只做强调,底色给中性色
图标用 emoji 风格瞬间垮掉 没禁止 明确"用 SVG 图标库,禁 emoji"
阴影写"柔和" 要么全平、要么重投影 没给数值 给两档阴影的完整 CSS 值
忘了硬阴影/贴纸手法 少了一层"性格" 只描述了常规设计 单独点出点缀手法与适用位置

六、样例:《1024 楼层实况墙》真实令牌(可直接复用)

来源:02-作品秀-showcase/草稿-drafts/1024楼层实况墙-floor-wall/index.html(--:root 实测提取,2026-10-21)

:root{
  --bg:#F4F8F9;            /* 冷灰白底,不用纯白 */
  --card:#FFFFFF;
  --accent:#D7FCAE;        /* 品牌绿·浅(填充)*/
  --accent2:#CCFC9C;       /* 品牌绿·浅(按下)*/
  --mid:#90CC78;           /* 品牌绿·中 */
  --deep:#6CA83C;          /* 品牌绿·深 */
  --glow:#73F99A;          /* 高亮 */
  --spot:#79B446;
  --ink:#000000;           /* 正文用近黑,不用纯黑铺满 */
  --muted:#6C7A80;         /* 次要文字 */
  --spammer:#9AA0A6;       /* 弱化/灌水标记 */
  --line:rgba(0,0,0,.12);
  --grid:rgba(0,0,0,.045);
  --font:"PingFang SC","HarmonyOS Sans SC","Microsoft YaHei","Source Han Sans SC","Noto Sans CJK SC",system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --radius:14px;
  --shadow:0 1px 2px rgba(0,0,0,.05),0 8px 24px rgba(0,0,0,.055);
}

其余可复用数值:

项 值
正文/次要/弱化文字 #3A4A50 / #6C7A80 / #9AA0A6
品牌绿上的深色文字 #2C4416、#14330A
圆角档位 卡片 14px / 内嵌 12px / 小元件 10px / 胶囊 999px
硬阴影(贴纸) 4px 4px 0 var(--ink)、7px 7px 0 var(--accent)、2.5px 2.5px 0 var(--ink)
毛玻璃顶栏 backdrop-filter: saturate(1.3) blur(8px)
卡片栅格 repeat(auto-fit, minmax(224px,1fr));里程碑 minmax(270px,1fr);日条 minmax(148px,1fr);小格 minmax(104px,1fr)
固定三列(时间轴行) 96px 1fr 78px
等宽数字 ui-monospace, Menlo, Consolas, monospace
过渡 微交互 80–150ms;进度条 width .5s ease;常驻 petBob 2.6s ease-in-out infinite

一句话定性:

浅色数据密集看板(Data-Dense Dashboard)+ 实时监控(Real-Time Monitoring),
TRAE 品牌绿只出现在强调与状态上,中性冷灰白承载信息,
按钮与徽章用黑色硬边阴影做"贴纸"点缀,
数字一律等宽,信息优先于装饰。


七、配套资源

  • 项目内视觉令牌出处:项目理解-project-understanding.md §5.5 与 §十三
  • 官方海报像素实测色板:项目索引 索引-index.md §5.5
  • 设计库检索工具:design_search(风格 / 配色 / 字体 / 图表 / UX 规范 / Google 字体)
  • 新页面从零做一整套设计系统:design_recommend;已有界面找问题:design_review
3 个赞

这个必须点个赞——我做的「Builder 之塔」跟你撞在同一个起跑线上了:都是把主帖的真实回帖变成可视化的东西。点进去晃了两圈,最喜欢的是那个用荧光绿/灰色区分"认真填模板"和"灌水"的判定层,一眼就能看出哪些是真参与者。

你提到的「标签写成 #我是 1024Builder#(中间带空格)算不算有效」这个坑,我做塔的时候也踩了:我一开始按"正文里出现’现在的我:'“来提取身份标签,结果大半楼层识别不出来——大家填的模板千奇百怪,有的写成"现在的我 :”(冒号前带空格),有的干脆不写这句直接报身份。最后我改成多正则兜底,宁可漏也别错标,因为错标会让人怀疑整份数据的可信度。

我的是把每一条回帖变成一块砖:一块砖 = 一条真实回帖,底下最宽往上收分,颜色代表身份,每块砖都能点开读内容并跳回论坛原层核对。
作品帖:【1024Builder作品秀】Builder 之塔 · 每一块砖都是一个真实的 Builder
在线直接玩:https://hux0vPwM.html2.link

咱俩这俩其实是一套数据的两种切法:你切时间轴,我把它砌成塔。回头报个楼层号,我在塔上给你留一块砖 :brick:

2 个赞

感觉这个作品蛮有意思的,很适合各类偏纪念意义的活动作为一个历史纪念网站。

1 个赞

竟然没盖到1024! 在座的各位都有责任!

1 个赞