Type: components layer · Tier: v1.0 core
Summary
Ship .sf-modal styling built on the native <dialog> element, using @starting-style for entry/exit animation.
Why
Both <dialog> and @starting-style are already inside the framework's browser support floor (see README support table), so a polished modal ships with zero runtime JS — the consumer only calls showModal().
Verified state (2026-06-20)
Reserved commented stub — 0 live rules. @starting-style is already an assumed baseline feature.
Constraints
Additive, BEM-first, no build, no JS shipped. Modifiers --s/--m/--l/--full; slots __header/__body/__footer/__close.
Acceptance criteria
Type: components layer · Tier: v1.0 core
Summary
Ship
.sf-modalstyling built on the native<dialog>element, using@starting-stylefor entry/exit animation.Why
Both
<dialog>and@starting-styleare already inside the framework's browser support floor (see README support table), so a polished modal ships with zero runtime JS — the consumer only callsshowModal().Verified state (2026-06-20)
Reserved commented stub — 0 live rules.
@starting-styleis already an assumed baseline feature.Constraints
Additive, BEM-first, no build, no JS shipped. Modifiers
--s/--m/--l/--full; slots__header/__body/__footer/__close.Acceptance criteria
.sf-modal+ slots + size modifiers@starting-style(no JS)docs/components.md