发现于 #5021 / PR #5289 的文档面扫查(主题 token 退役),与该 PR 无关,未在其中修复。
现象
content/docs/protocol/objectui/widget-contract.mdx 第 319 行起的 "## Theme" 段落:
ObjectUI theming is defined by ThemeSchema … The mode is one of light, dark, or auto, and density is one of compact, regular, or spacious.
紧跟的 YAML 示例也照写:
name: corporate
label: Corporate
mode: light
density: regular # ← 这个键不存在
colors:
# ColorPalette configuration
borderRadius:
base: 0.25rem
md: 0.375rem
为什么是缺陷而不是纯陈旧
density 在 #3494 就被删了(当轮判据:主题引擎从不发出对应变量,写它是静默 no-op),现在是 theme.zod.ts 里 THEME_RETIRED_KEY_GUIDANCE 的一条墓碑:
density was removed in #3494 — no renderer read it. Express compact/comfortable spacing as your own tokens under customVars.
而 #4001 批 15 之后 ThemeSchema 已 .strict()。两件事叠加的结果是:照抄本页示例的作者会拿到一次响亮的 parse 失败——defineStack({ themes }) / defineTheme() 都会拒。拒绝是响亮的、带处方的(这部分工作正常),问题在于平台自己的文档把作者送进了那次拒绝。
对 AI 作者尤其贵:这一页是 objectui widget 契约的权威说明,模型从这里取样写主题,得到的是一个两年前就不存在的键。
范围
未做的事
按 Prime Directive #10,#5289 的范围严格限定在 spec 退役面,没有搭车改这一页;也没有碰 content/docs/releases/。
发现于 #5021 / PR #5289 的文档面扫查(主题 token 退役),与该 PR 无关,未在其中修复。
现象
content/docs/protocol/objectui/widget-contract.mdx第 319 行起的 "## Theme" 段落:紧跟的 YAML 示例也照写:
为什么是缺陷而不是纯陈旧
density在 #3494 就被删了(当轮判据:主题引擎从不发出对应变量,写它是静默 no-op),现在是theme.zod.ts里THEME_RETIRED_KEY_GUIDANCE的一条墓碑:而 #4001 批 15 之后
ThemeSchema已.strict()。两件事叠加的结果是:照抄本页示例的作者会拿到一次响亮的 parse 失败——defineStack({ themes })/defineTheme()都会拒。拒绝是响亮的、带处方的(这部分工作正常),问题在于平台自己的文档把作者送进了那次拒绝。对 AI 作者尤其贵:这一页是 objectui widget 契约的权威说明,模型从这里取样写主题,得到的是一个两年前就不存在的键。
范围
borderRadius的描述是对的;mode是对的)。--font-size-*/--z-*/--duration-*…):ADR-0049 该判去留 #5021 落地后这一段会再陈旧一层:typography/animation/zIndex三块已退役,该页末句 "Widgets inherit the active theme automatically; they do not each carry a full set of color/typography props" 虽然没直接列这些键,但整段的 token 词表口径需要跟着更新一遍。建议在 PR feat(spec)!: 退役主题引擎发出但零消费方的 9 组 CSS 变量 (#5021) #5289 合入后一并处理,一次改到位。未做的事
按 Prime Directive #10,#5289 的范围严格限定在 spec 退役面,没有搭车改这一页;也没有碰
content/docs/releases/。