From 30f59cfe1aec0b385631a40da8b2447eed62ad79 Mon Sep 17 00:00:00 2001 From: Carwyn Nelson Date: Mon, 7 Oct 2024 08:06:20 +0100 Subject: [PATCH] LibWeb: Skip transitions for pseudo elements Transitions are currently not implemented for pseudo elements which causes the transition to be applied to the "real"/"parent" element. When a transition adjusts width/height on a pseudo element this causes the real elements layout to break. As a quick fix we just skip doing transitions when they are against pseudo elements. --- Userland/Libraries/LibWeb/CSS/StyleComputer.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Userland/Libraries/LibWeb/CSS/StyleComputer.cpp b/Userland/Libraries/LibWeb/CSS/StyleComputer.cpp index 05472bffbf4..3f98ac3eac2 100644 --- a/Userland/Libraries/LibWeb/CSS/StyleComputer.cpp +++ b/Userland/Libraries/LibWeb/CSS/StyleComputer.cpp @@ -1238,7 +1238,8 @@ static void compute_transitioned_properties(StyleProperties const& style, DOM::E void StyleComputer::start_needed_transitions(StyleProperties const& previous_style, StyleProperties& new_style, DOM::Element& element, Optional pseudo_element) const { // FIXME: Implement transitions for pseudo-elements - (void)pseudo_element; + if (pseudo_element.has_value()) + return; // https://drafts.csswg.org/css-transitions/#transition-combined-duration auto combined_duration = [](Animations::Animatable::TransitionAttributes const& transition_attributes) {