Draw a standard side sheet's first state without motion
Giving a closing standard sheet its room back made the root's inline size a transition, with an `@starting-style` for the entry, so a sheet that starts open grew in on every page load: its open state arrives through Alpine, after the first paint of the closed root. Nothing should move while a page loads. The view now marks the root `data-md-drawer-settled` two frames after the first `settle()` — once the state Alpine starts with has been painted — and drawer.css gives the standard sheet's root and sheet no transitions until then. The browser test loads a page with slowed motion tokens and a sheet that starts open, and finds it standing at its full width, shown, with nothing animating; closing it afterwards still animates. It fails without the change in Chrome and Firefox and passes in all three engines. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
99c18e01d8
commit
1ccf0b639e
@@ -195,6 +195,13 @@
|
||||
display: none;
|
||||
}
|
||||
|
||||
/* Until the view settles (`data-md-drawer-settled`, two frames after Alpine starts), the
|
||||
state the page loads with is drawn at once: a sheet that starts open does not grow in. */
|
||||
[data-md-drawer][data-md-standard]:not([data-md-drawer-settled]),
|
||||
[data-md-drawer][data-md-standard]:not([data-md-drawer-settled]) > [data-md-drawer-sheet] {
|
||||
transition: none;
|
||||
}
|
||||
|
||||
[data-md-drawer][data-md-standard] > [data-md-drawer-scrim] {
|
||||
display: none;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user