| 
									
										
										
										
											2024-09-19 12:58:38 +01:00
										 |  |  | /*
 | 
					
						
							|  |  |  |  * Copyright (c) 2024, Sam Atkins <sam@ladybird.org> | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * SPDX-License-Identifier: BSD-2-Clause | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #pragma once
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-09-16 14:42:48 +01:00
										 |  |  | #include <LibWeb/Bindings/KeyframeEffectPrototype.h>
 | 
					
						
							| 
									
										
										
										
											2025-04-17 19:11:14 +01:00
										 |  |  | #include <LibWeb/CSS/Enums.h>
 | 
					
						
							| 
									
										
										
										
											2025-08-08 11:24:15 +01:00
										 |  |  | #include <LibWeb/CSS/StyleValues/ColorStyleValue.h>
 | 
					
						
							| 
									
										
										
										
											2025-08-08 10:11:51 +01:00
										 |  |  | #include <LibWeb/CSS/StyleValues/StyleValue.h>
 | 
					
						
							| 
									
										
										
										
											2024-09-19 12:58:38 +01:00
										 |  |  | #include <LibWeb/Forward.h>
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | namespace Web::CSS { | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-01-08 16:14:17 +00:00
										 |  |  | struct CalculationContext; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-05-22 17:16:17 +01:00
										 |  |  | enum class AllowDiscrete { | 
					
						
							|  |  |  |     Yes, | 
					
						
							|  |  |  |     No, | 
					
						
							|  |  |  | }; | 
					
						
							| 
									
										
										
										
											2025-08-08 10:11:51 +01:00
										 |  |  | ValueComparingRefPtr<StyleValue const> interpolate_property(DOM::Element&, PropertyID, StyleValue const& from, StyleValue const& to, float delta, AllowDiscrete); | 
					
						
							| 
									
										
										
										
											2024-09-19 12:58:38 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-09-19 14:13:20 +01:00
										 |  |  | // https://drafts.csswg.org/css-transitions/#transitionable
 | 
					
						
							| 
									
										
										
										
											2025-08-08 10:11:51 +01:00
										 |  |  | bool property_values_are_transitionable(PropertyID, StyleValue const& old_value, StyleValue const& new_value, DOM::Element&, TransitionBehavior); | 
					
						
							| 
									
										
										
										
											2024-09-19 14:13:20 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-09-23 15:24:19 +01:00
										 |  |  | Optional<LengthPercentage> interpolate_length_percentage(CalculationContext const& calculation_context, LengthPercentage const& from, LengthPercentage const& to, float delta); | 
					
						
							|  |  |  | Optional<LengthPercentageOrAuto> interpolate_length_percentage_or_auto(CalculationContext const& calculation_context, LengthPercentageOrAuto const& from, LengthPercentageOrAuto const& to, float delta); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-08-08 10:11:51 +01:00
										 |  |  | RefPtr<StyleValue const> interpolate_value(DOM::Element&, CalculationContext const&, StyleValue const& from, StyleValue const& to, float delta, AllowDiscrete); | 
					
						
							|  |  |  | RefPtr<StyleValue const> interpolate_repeatable_list(DOM::Element&, CalculationContext const&, StyleValue const& from, StyleValue const& to, float delta, AllowDiscrete); | 
					
						
							|  |  |  | RefPtr<StyleValue const> interpolate_box_shadow(DOM::Element&, CalculationContext const&, StyleValue const& from, StyleValue const& to, float delta, AllowDiscrete); | 
					
						
							|  |  |  | RefPtr<StyleValue const> interpolate_transform(DOM::Element&, StyleValue const& from, StyleValue const& to, float delta, AllowDiscrete); | 
					
						
							| 
									
										
										
										
											2024-09-19 12:58:38 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-07-03 22:02:40 +10:00
										 |  |  | Color interpolate_color(Color from, Color to, float delta, ColorSyntax syntax); | 
					
						
							| 
									
										
										
										
											2024-09-19 12:58:38 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-09-16 14:42:48 +01:00
										 |  |  | RefPtr<StyleValue const> composite_value(StyleValue const& a_underlying_value, StyleValue const& a_animated_value, Bindings::CompositeOperation); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-09-19 12:58:38 +01:00
										 |  |  | } |