From 46241b4e554b7a6ee090db8e35acd0151e8caf2b Mon Sep 17 00:00:00 2001 From: Alexander Akait <4567934+alexander-akait@users.noreply.github.com> Date: Mon, 19 Dec 2022 08:51:56 +0300 Subject: [PATCH] feat(css/prefixer): Support `word-wrap` (#6679) --- .../data/prefixes_and_browsers.json | 22 +++++++++++++++++++ crates/swc_css_prefixer/src/prefixer.rs | 4 ++++ .../tests/fixture/overflow-wrap/input.css | 12 ++++++++++ .../tests/fixture/overflow-wrap/output.css | 13 +++++++++++ .../output.defaults-not-ie-11.css | 10 +++++++++ 5 files changed, 61 insertions(+) create mode 100644 crates/swc_css_prefixer/tests/fixture/overflow-wrap/input.css create mode 100644 crates/swc_css_prefixer/tests/fixture/overflow-wrap/output.css create mode 100644 crates/swc_css_prefixer/tests/fixture/overflow-wrap/output.defaults-not-ie-11.css diff --git a/crates/swc_css_prefixer/data/prefixes_and_browsers.json b/crates/swc_css_prefixer/data/prefixes_and_browsers.json index bc749bcd755f..411a6aab3bba 100644 --- a/crates/swc_css_prefixer/data/prefixes_and_browsers.json +++ b/crates/swc_css_prefixer/data/prefixes_and_browsers.json @@ -3945,5 +3945,27 @@ "safari": "3.2", "ios": "4.3" } + ], + "word-wrap": [ + { + "chrome": "4", + "edge": "12", + "safari": "3.1", + "firefox": "3.5", + "opera": "11.5", + "ie": "6", + "ios": "3.2", + "android": "2.1" + }, + { + "chrome": "22", + "edge": "17", + "safari": "6", + "firefox": "48", + "opera": "11.5", + "ie": "11", + "ios": "6.1", + "android": "4.3.0" + } ] } diff --git a/crates/swc_css_prefixer/src/prefixer.rs b/crates/swc_css_prefixer/src/prefixer.rs index 2c1ad73f28f7..b90649a40d2b 100644 --- a/crates/swc_css_prefixer/src/prefixer.rs +++ b/crates/swc_css_prefixer/src/prefixer.rs @@ -3188,6 +3188,10 @@ impl VisitMut for Prefixer { add_declaration!(Prefix::O, "-o-object-position", None); } + "overflow-wrap" => { + add_declaration!("word-wrap", None); + } + "tab-size" => { add_declaration!(Prefix::Moz, "-moz-tab-size", None); add_declaration!(Prefix::O, "-o-tab-size", None); diff --git a/crates/swc_css_prefixer/tests/fixture/overflow-wrap/input.css b/crates/swc_css_prefixer/tests/fixture/overflow-wrap/input.css new file mode 100644 index 000000000000..b8ae4951c940 --- /dev/null +++ b/crates/swc_css_prefixer/tests/fixture/overflow-wrap/input.css @@ -0,0 +1,12 @@ +.someClass{ + overflow-wrap: break-word; +} + +.anotherClass{ + font-size:1rem; + overflow-wrap:break-word; +} + +main { + overflow-wrap: normal; +} diff --git a/crates/swc_css_prefixer/tests/fixture/overflow-wrap/output.css b/crates/swc_css_prefixer/tests/fixture/overflow-wrap/output.css new file mode 100644 index 000000000000..3d1842fe3097 --- /dev/null +++ b/crates/swc_css_prefixer/tests/fixture/overflow-wrap/output.css @@ -0,0 +1,13 @@ +.someClass { + word-wrap: break-word; + overflow-wrap: break-word; +} +.anotherClass { + font-size: 1rem; + word-wrap: break-word; + overflow-wrap: break-word; +} +main { + word-wrap: normal; + overflow-wrap: normal; +} diff --git a/crates/swc_css_prefixer/tests/fixture/overflow-wrap/output.defaults-not-ie-11.css b/crates/swc_css_prefixer/tests/fixture/overflow-wrap/output.defaults-not-ie-11.css new file mode 100644 index 000000000000..16885a8a47e2 --- /dev/null +++ b/crates/swc_css_prefixer/tests/fixture/overflow-wrap/output.defaults-not-ie-11.css @@ -0,0 +1,10 @@ +.someClass { + overflow-wrap: break-word; +} +.anotherClass { + font-size: 1rem; + overflow-wrap: break-word; +} +main { + overflow-wrap: normal; +}