mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-05-28 05:52:53 +00:00
LibWeb: Allow multiple values for transition-timing-function
property
This commit is contained in:
parent
7a391f419a
commit
c5f1f36119
Notes:
github-actions[bot]
2025-04-23 20:04:15 +00:00
Author: https://github.com/tcl3
Commit: c5f1f36119
Pull-request: https://github.com/LadybirdBrowser/ladybird/pull/4387
Reviewed-by: https://github.com/AtkinsSJ ✅
3 changed files with 74 additions and 0 deletions
|
@ -674,6 +674,10 @@ Parser::ParseErrorOr<NonnullRefPtr<CSSStyleValue const>> Parser::parse_css_value
|
|||
if (auto parsed_value = parse_transition_property_value(tokens); parsed_value && !tokens.has_next_token())
|
||||
return parsed_value.release_nonnull();
|
||||
return ParseError::SyntaxError;
|
||||
case PropertyID::TransitionTimingFunction:
|
||||
if (auto parsed_value = parse_comma_separated_value_list(tokens, [this](auto& tokens) { return parse_easing_value(tokens); }))
|
||||
return parsed_value.release_nonnull();
|
||||
return ParseError::SyntaxError;
|
||||
case PropertyID::Translate:
|
||||
if (auto parsed_value = parse_translate_value(tokens); parsed_value && !tokens.has_next_token())
|
||||
return parsed_value.release_nonnull();
|
||||
|
|
|
@ -0,0 +1,28 @@
|
|||
Harness status: OK
|
||||
|
||||
Found 22 tests
|
||||
|
||||
21 Pass
|
||||
1 Fail
|
||||
Pass e.style['transition-timing-function'] = "linear" should set the property value
|
||||
Pass e.style['transition-timing-function'] = "linear(0 0%, 0.5 50%, 1 100%)" should set the property value
|
||||
Pass e.style['transition-timing-function'] = "linear(0 0%, 10 10%, 10 50%, 25.4 75%, 100 100%)" should set the property value
|
||||
Pass e.style['transition-timing-function'] = "linear(0 0%, 1 100%)" should set the property value
|
||||
Pass e.style['transition-timing-function'] = "ease" should set the property value
|
||||
Pass e.style['transition-timing-function'] = "ease-in" should set the property value
|
||||
Pass e.style['transition-timing-function'] = "ease-out" should set the property value
|
||||
Pass e.style['transition-timing-function'] = "ease-in-out" should set the property value
|
||||
Pass e.style['transition-timing-function'] = "cubic-bezier(0.1, 0.2, 0.8, 0.9)" should set the property value
|
||||
Pass e.style['transition-timing-function'] = "cubic-bezier(0, -2, 1, 3)" should set the property value
|
||||
Pass e.style['transition-timing-function'] = "cubic-bezier(0, 0.7, 1, 1.3)" should set the property value
|
||||
Pass e.style['transition-timing-function'] = "step-start" should set the property value
|
||||
Pass e.style['transition-timing-function'] = "step-end" should set the property value
|
||||
Pass e.style['transition-timing-function'] = "steps(4)" should set the property value
|
||||
Pass e.style['transition-timing-function'] = "steps(4, start)" should set the property value
|
||||
Pass e.style['transition-timing-function'] = "steps(2, end)" should set the property value
|
||||
Pass e.style['transition-timing-function'] = "steps(2, jump-start)" should set the property value
|
||||
Pass e.style['transition-timing-function'] = "steps(2, jump-end)" should set the property value
|
||||
Pass e.style['transition-timing-function'] = "steps(2, jump-both)" should set the property value
|
||||
Pass e.style['transition-timing-function'] = "steps(2, jump-none)" should set the property value
|
||||
Fail e.style['transition-timing-function'] = "steps(sibling-index(), jump-none)" should set the property value
|
||||
Pass e.style['transition-timing-function'] = "linear, ease, linear" should set the property value
|
|
@ -0,0 +1,42 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>CSS Transitions: parsing transition-timing-function with valid values</title>
|
||||
<link rel="help" href="https://drafts.csswg.org/css-transitions/#propdef-transition-timing-function">
|
||||
<link rel="help" href="https://drafts.csswg.org/css-easing-1/#typedef-timing-function">
|
||||
<meta name="assert" content="transition-timing-function supports the full grammar '<timing-function> #'.">
|
||||
<script src="../../../resources/testharness.js"></script>
|
||||
<script src="../../../resources/testharnessreport.js"></script>
|
||||
<script src="../../../css/support/parsing-testcommon.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<script>
|
||||
test_valid_value("transition-timing-function", "linear");
|
||||
test_valid_value("transition-timing-function", "linear(0 0%, 0.5 50%, 1 100%)");
|
||||
test_valid_value("transition-timing-function", "linear(0 0%, 10 10%, 10 50%, 25.4 75%, 100 100%)");
|
||||
test_valid_value("transition-timing-function", "linear(0 0%, 1 100%)");
|
||||
|
||||
test_valid_value("transition-timing-function", "ease");
|
||||
test_valid_value("transition-timing-function", "ease-in");
|
||||
test_valid_value("transition-timing-function", "ease-out");
|
||||
test_valid_value("transition-timing-function", "ease-in-out");
|
||||
test_valid_value("transition-timing-function", "cubic-bezier(0.1, 0.2, 0.8, 0.9)");
|
||||
test_valid_value("transition-timing-function", "cubic-bezier(0, -2, 1, 3)");
|
||||
test_valid_value("transition-timing-function", "cubic-bezier(0, 0.7, 1, 1.3)");
|
||||
|
||||
test_valid_value("transition-timing-function", "step-start", "steps(1, start)");
|
||||
test_valid_value("transition-timing-function", "step-end", "steps(1)");
|
||||
test_valid_value("transition-timing-function", "steps(4)");
|
||||
test_valid_value("transition-timing-function", "steps(4, start)");
|
||||
test_valid_value("transition-timing-function", "steps(2, end)", "steps(2)");
|
||||
test_valid_value("transition-timing-function", "steps(2, jump-start)");
|
||||
test_valid_value("transition-timing-function", "steps(2, jump-end)", "steps(2)");
|
||||
test_valid_value("transition-timing-function", "steps(2, jump-both)");
|
||||
test_valid_value("transition-timing-function", "steps(2, jump-none)");
|
||||
test_valid_value("transition-timing-function", "steps(sibling-index(), jump-none)");
|
||||
|
||||
test_valid_value("transition-timing-function", "linear, ease, linear");
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
Loading…
Add table
Add a link
Reference in a new issue