Found while localizing the Studio dashboard property panel (objectui#7254, PR objectstack-ai/objectui#7366).
packages/spec/src/ui/dashboard.form.ts gives the gap field this help text:
{ field: 'gap', type: 'number', colSpan: 1, helpText: 'Grid gap (Tailwind units)' }
That string is rendered verbatim in the customer-facing dashboard property panel — the Studio panel is spec-driven, feeding dashboardForm straight into the renderer's generic form. "Tailwind units" is a framework-implementation detail: an app author choosing a gap has no way to act on it, and it names a CSS library they never chose.
The renderer side cannot fix this — the string is the producer's. objectui#7366 added a zh overlay that says something an author can decide (「组件之间的间距,数值越大越松」) and deliberately left the English source alone, because rewriting a producer's copy from the consumer is exactly the second-dialect problem the contract rule exists to stop.
Suggested: say what the author decides, not what the renderer consumes — e.g. "Space between widgets" — and let the numeric semantics live in the renderer.
While there: columns's Grid columns (default 12) is fine (12 is an author-visible fact); this is only about the unit vocabulary.
Found while localizing the Studio dashboard property panel (objectui#7254, PR objectstack-ai/objectui#7366).
packages/spec/src/ui/dashboard.form.tsgives thegapfield this help text:That string is rendered verbatim in the customer-facing dashboard property panel — the Studio panel is spec-driven, feeding
dashboardFormstraight into the renderer's generic form. "Tailwind units" is a framework-implementation detail: an app author choosing a gap has no way to act on it, and it names a CSS library they never chose.The renderer side cannot fix this — the string is the producer's. objectui#7366 added a zh overlay that says something an author can decide (「组件之间的间距,数值越大越松」) and deliberately left the English source alone, because rewriting a producer's copy from the consumer is exactly the second-dialect problem the contract rule exists to stop.
Suggested: say what the author decides, not what the renderer consumes — e.g. "Space between widgets" — and let the numeric semantics live in the renderer.
While there:
columns'sGrid columns (default 12)is fine (12 is an author-visible fact); this is only about the unit vocabulary.