mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-09-22 01:08:56 +00:00
LibWeb: Return resolved value of normal
if letter-spacing
value is 0
This commit is contained in:
parent
831088939a
commit
112a45bdf2
Notes:
github-actions[bot]
2025-09-10 15:14:57 +00:00
Author: https://github.com/tcl3
Commit: 112a45bdf2
Pull-request: https://github.com/LadybirdBrowser/ladybird/pull/6137
Reviewed-by: https://github.com/AtkinsSJ ✅
Reviewed-by: https://github.com/Calme1709
Reviewed-by: https://github.com/gmta ✅
3 changed files with 54 additions and 0 deletions
|
@ -815,6 +815,13 @@ RefPtr<StyleValue const> CSSStyleProperties::style_value_for_computed_property(L
|
|||
}
|
||||
case PropertyID::WebkitTextFillColor:
|
||||
return resolve_color_style_value(get_computed_value(property_id), layout_node.computed_values().webkit_text_fill_color());
|
||||
case PropertyID::LetterSpacing: {
|
||||
// https://drafts.csswg.org/css-text-4/#letter-spacing-property
|
||||
// For legacy reasons, a computed letter-spacing of zero yields a resolved value (getComputedStyle() return value) of normal.
|
||||
if (layout_node.computed_values().letter_spacing() == 0)
|
||||
return KeywordStyleValue::create(Keyword::Normal);
|
||||
return get_computed_value(property_id);
|
||||
}
|
||||
case PropertyID::Invalid:
|
||||
return KeywordStyleValue::create(Keyword::Invalid);
|
||||
case PropertyID::Custom:
|
||||
|
|
|
@ -0,0 +1,14 @@
|
|||
Harness status: OK
|
||||
|
||||
Found 9 tests
|
||||
|
||||
9 Pass
|
||||
Pass Property letter-spacing value 'normal'
|
||||
Pass Property letter-spacing value '0px'
|
||||
Pass Property letter-spacing value '10px'
|
||||
Pass Property letter-spacing value '-20px'
|
||||
Pass Property letter-spacing value 'calc(10px - 0.5em)'
|
||||
Pass Property letter-spacing value '110%'
|
||||
Pass Property letter-spacing value '-5%'
|
||||
Pass Property letter-spacing value 'calc(10% - 20%)'
|
||||
Pass Property letter-spacing value 'calc(10px - (5% + 10%)'
|
|
@ -0,0 +1,33 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>CSS Text: getComputedStyle().letterSpacing</title>
|
||||
<link rel="help" href="https://www.w3.org/TR/css-text-3/#propdef-letter-spacing">
|
||||
<meta name="assert" content="letter-spacing computed value is an absolute length and/or percentage.">
|
||||
<meta name="assert" content="'normal' computes to zero, but the resolved value of 0px is 'normal', so that's the value that is observed.">
|
||||
<script src="../../../resources/testharness.js"></script>
|
||||
<script src="../../../resources/testharnessreport.js"></script>
|
||||
<script src="../../../css/support/computed-testcommon.js"></script>
|
||||
<style>
|
||||
#target {
|
||||
font-size: 40px;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div id="target"></div>
|
||||
<script>
|
||||
test_computed_value("letter-spacing", "normal");
|
||||
test_computed_value("letter-spacing", "0px", "normal");
|
||||
|
||||
test_computed_value("letter-spacing", "10px");
|
||||
test_computed_value("letter-spacing", "-20px");
|
||||
test_computed_value("letter-spacing", "calc(10px - 0.5em)", "-10px");
|
||||
test_computed_value("letter-spacing", "110%");
|
||||
test_computed_value("letter-spacing", "-5%");
|
||||
test_computed_value("letter-spacing", "calc(10% - 20%)", "-10%");
|
||||
test_computed_value("letter-spacing", "calc(10px - (5% + 10%)", "calc(-15% + 10px)");
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
Loading…
Add table
Add a link
Reference in a new issue