You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
PR #755 merged this issue to WebScene main at 974e04f0cb298454ac926f0ef88ad104f3cda70d from focused implementation e099eef286f54937107846dc82aee70df2dc8f77. It adds the unchanged Code OSS ::details-content0 ↔ auto keyword-size and opacity transitions, retained/clipped close paint, exact transition-list parsing, inherited interpolate-size: allow-keywords, interruption/reversal, reduced-motion cancellation, teardown, and lazy owner runtime allocation without per-frame selector/cascade work.
Focused native and WPT candidate gates are committed. They were intentionally not executed under the current fast-implementation directive; all PR and post-merge jobs were canceled after merge. Product visual/performance acceptance remains in #259 and the epic's cumulative gates.
Unchanged Code OSS 645f29c uses two ::details-content transition groups in chat.css for completed responses and checkpoint file changes:
interpolate-size: allow-keywords on the owning details;
block-size: 0 plus opacity: 0 while closed;
block-size: auto plus opacity: 1 while open;
block-size 180ms, opacity 140ms, and content-visibility 180ms allow-discrete;
reduced-motion overrides that set transition: none.
PR #739 implemented the static ::details-content layout and retained paint subset. It intentionally left keyword-size animation timing, discrete content visibility, interruption, and compositing here. The current result snaps disclosure content open and closed instead of matching the authored Code OSS motion.
Implementation scope
retain and cascade interpolate-size: allow-keywords for the exact supported owner/pseudo path;
retain pseudo transition longhands/shorthand for block-size, opacity, and content-visibility with per-list timing/behavior alignment;
resolve auto against one intrinsic expanded-content measurement per transition generation;
animate the pseudo used block size and opacity from the host clock without per-frame selector matching or cascade;
defer closed content visibility to the correct discrete boundary and expose normal computed values;
support open/close interruption, reversal, zero duration, negative delay, reduced motion, stylesheet mutation, removal/reinsertion, navigation, and teardown;
Start from merged #739 and merged #749 so the implementation reuses the current transition timing, allow-discrete, lifecycle, and host-clock machinery. Keep the focused PR separate from the open consolidation #76.
Merged checkpoint — 20 September 2026
PR #755 merged this issue to WebScene main at
974e04f0cb298454ac926f0ef88ad104f3cda70dfrom focused implementatione099eef286f54937107846dc82aee70df2dc8f77. It adds the unchanged Code OSS::details-content0 ↔ autokeyword-size and opacity transitions, retained/clipped close paint, exact transition-list parsing, inheritedinterpolate-size: allow-keywords, interruption/reversal, reduced-motion cancellation, teardown, and lazy owner runtime allocation without per-frame selector/cascade work.Focused native and WPT candidate gates are committed. They were intentionally not executed under the current fast-implementation directive; all PR and post-merge jobs were canceled after merge. Product visual/performance acceptance remains in #259 and the epic's cumulative gates.
Parent epic: #235
Related owners: #237 (pseudo matching/invalidation), #242 (transition/frame scheduling), #241 (retained paint)
Proven Code OSS gap
Unchanged Code OSS
645f29cuses two::details-contenttransition groups inchat.cssfor completed responses and checkpoint file changes:interpolate-size: allow-keywordson the owningdetails;block-size: 0plusopacity: 0while closed;block-size: autoplusopacity: 1while open;block-size 180ms,opacity 140ms, andcontent-visibility 180ms allow-discrete;transition: none.PR #739 implemented the static
::details-contentlayout and retained paint subset. It intentionally left keyword-size animation timing, discrete content visibility, interruption, and compositing here. The current result snaps disclosure content open and closed instead of matching the authored Code OSS motion.Implementation scope
interpolate-size: allow-keywordsfor the exact supported owner/pseudo path;autoagainst one intrinsic expanded-content measurement per transition generation;Performance and quality gates
Dependency/order
Start from merged #739 and merged #749 so the implementation reuses the current transition timing,
allow-discrete, lifecycle, and host-clock machinery. Keep the focused PR separate from the open consolidation #76.