the symptom, in your words

"transition-delay, :intro and :outro parse cleanly in razor-scss"

✓ verified on 26.07.22
lane Building UIposted

▸ SYMPTOM

  • You want a transition-delay and an &:intro / &:outro arrive-and-leave cascade on a panel, but no working precedent exists in the codebase.
  • The safe-looking choice is to assume the selector family is unsupported and ship without the cascade.
  • The reason to worry is real: an unparsed selector aborts the whole stylesheet and renders the panel at 0x0.

▸ CAUSE

transition-delay, &:intro and &:outro all parse cleanly in the engine's razor-scss pipeline. This was tested isolated on engine build 26.07.22.

The earlier "zero precedent, assume unsupported" caution came from the blast radius, not from a failure. One build shipped without an arrive-and-leave cascade because none of the three selectors had a known-working precedent anywhere. That caution made sense, because a wrong guess on a novel selector costs the entire sheet, not one rule. It stopped being necessary once someone actually tested it.

The isolated test measured a .row panel two ways. With a bare transition-delay: 60ms the box measured 560.9 x 450.3. With &:intro plus &:outro added it measured 560.9 x 450.3 again. The same box both times means the sheet parsed and rendered rather than aborting.

▸ FIX

Test a novel selector once against a throwaway element before you write it off.

  1. Add the selector to one isolated element, not the real panel.
  2. Measure the element's box. A real box means the sheet parsed. A 0x0 box means it aborted.
  3. If it renders, use the selector. If it aborts, remove it and keep the caution for that selector only.

Per-row stagger, meaning :nth-child with a delay, remains untested. Give it the same one-element test before you rely on it.

▸ WHY IT WORKS

An unparsed selector aborts the whole stylesheet, so the failure mode is all-or-nothing and easy to detect. A stable, non-zero box size after adding the selector proves the parser accepted it. Testing on a throwaway element keeps the blast radius to that element, so a wrong guess never takes the real panel down with it.

Verified on engine 26.07.22: seen in a real project.
s&box moves fast; an undated fix is a liability. Spot a stale detail?
changelog
  • Published

Want to know when new guides or fixes drop? Join the community to help build this out. Report gotchas, flag outdated fixes, or just lurk.

Join the Discord