Skip to content

min(960px, 60vw) is a four-site house default, not one renderer's choice — the width/size question on #6259 decides all of them #6303

Description

@os-support-ai

Filed from the #6259 / #6258 dispatch. Out of that card's scope by explicit exclusion (the dispatch named plugin-calendar's navConfig a separate finding to file, not to fix), so recording rather than fixing.

Blocked-by: #6259 — the ruling there decides this; do not action independently.

The fact

The literal min(960px, 60vw) is not local to ObjectGantt. On origin/main @ 090927f4f it is produced in four places:

filelineshape
packages/plugin-gantt/src/ObjectGantt.tsx1150schema.navigation ?? { mode: 'drawer', width: 'min(960px, 60vw)' }
packages/plugin-kanban/src/ObjectKanban.tsx606(schema as any).navigation ?? { mode: 'drawer', width: 'min(960px, 60vw)' }
packages/plugin-kanban/src/ObjectKanban.tsx899width={(navigation.width as any) ?? 'min(960px, 60vw)'}
packages/plugin-calendar/src/ObjectCalendar.tsx389(schema as any).navigation ?? { mode: 'drawer', width: 'min(960px, 60vw)' }
packages/plugin-calendar/src/ObjectCalendar.tsx694width={(navigation.width as any) ?? 'min(960px, 60vw)'}
packages/plugin-detail/src/RecordDetailDrawer.tsx129width = 'min(960px, 60vw)' (the component's own prop default)

RecordDetailDrawer also carries the only written rationale for the value (:76-78):

Drawer width — accepts any CSS width value. Defaults to min(960px, 60vw) which fills ~60% of typical desktop viewports (the prior max-w-2xl cap felt cramped on wide screens).

Why it matters as one finding rather than three cards

Every navigation-config site above spells the width with the field the spec deprecated (@deprecated [#2578 → size]), and resolveOverlayWidth gives an explicit width priority over size — so on all three renderers a view declaring no navigation can never be reached by the size bucket system. #6259 asks whether that is deliberate for the gantt. Whatever is decided there applies verbatim to kanban and calendar; splitting it into per-renderer cards would relitigate the same question three times, and fixing one renderer alone would make the three disagree.

Note the two render-site fallbacks (kanban :899, calendar :694) are a third copy of the literal that would survive a change to the navConfig defaults — they are ?? 'min(960px, 60vw)' applied to navigation.width after the hook has already resolved it. Any convergence work has to take those too, or the renderers keep the old width by a different route.

Measurement carried over from #6259

The two spellings are not interchangeable. OVERLAY_SIZE_WIDTHS.lg is min(92vw, 960px); the current default is min(960px, 60vw). They agree only at viewport ≥ 1600px — below that lg is strictly wider (+11% at 1440px, +25% at 1280px, +53% at ≤1044px). So this is a behaviour decision for three renderers, not a spelling cleanup.

No behaviour is reported broken. Recording the shape, not a defect.


Generated by Claude Code

Metadata

Metadata

Assignees

Labels

domain:uiobjectui ui stream: fix lands on the published library or apps — objectui execution seatpm:dispatched

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions