Skip to content

Commit 3ed34ce

Browse files
committed
support empty fallback values
1 parent d7f8285 commit 3ed34ce

File tree

2 files changed

+25
-1
lines changed

2 files changed

+25
-1
lines changed

src/main/javacc/CSS3Parser.jj

+1-1
Original file line numberDiff line numberDiff line change
@@ -1901,7 +1901,7 @@ LexicalUnit var(LexicalUnit prev) :
19011901
(
19021902
<COMMA> { current = LexicalUnitImpl.createComma(current); }
19031903
( <S> )*
1904-
current = term(current)
1904+
( current = term(current) )?
19051905
)*
19061906
<RROUND>
19071907
{

src/test/java/com/gargoylesoftware/css/parser/CSS3ParserTest.java

+24
Original file line numberDiff line numberDiff line change
@@ -1272,6 +1272,29 @@ public void varExpressions() throws Exception {
12721272
expression("h1 { --my-var: var() }", 1, 0, 0);
12731273
expression("h1 { --my-var: var(-test) }", 1, 0, 0);
12741274
expression("h1 { --my-var: var(---test) }", 1, 0, 0);
1275+
expression("h1 { --my-var: var(- -test) }", 1, 0, 0);
1276+
1277+
expression("h1 {--divide-x-reverse:0;border-right-width:calc(0px * var(--divide-x-reverse)); }",
1278+
"h1 { --divide-x-reverse: 0; border-right-width: calc(0px * var(--divide-x-reverse)) }");
1279+
1280+
expression("h1 { --my-var: 0; border-right-width: calc(var(--my-var) / 5) }");
1281+
expression("h1 { --my-var: 0; border-right-width: calc(var(--my-var) / -5) }");
1282+
expression("h1 { --my-var: 0; border-right-width: calc(5px * var(--my-var)) }");
1283+
expression("h1 { --my-var: 0; border-right-width: calc(5px / var(--my-var)) }");
1284+
expression("h1 { --my-var: 0; border-right-width: calc(0px + var(--my-var) / 5) }");
1285+
expression("h1 { --my-var: 0; border-right-width: calc(0px - var(--my-var) / 5) }");
1286+
expression("h1 { --my-var: 0; border-right-width: calc(1rem + var(--my-var) / 5) }");
1287+
expression("h1 { --my-var: 0; border-right-width: calc(-2rem - var(--my-var) / 5) }");
1288+
1289+
// digits are trimmed to 4
1290+
expression("h1 { margin-right: calc(-66.66667% * var(--space-x-reverse)) }",
1291+
"h1 { margin-right: calc(-66.6667% * var(--space-x-reverse)) }");
1292+
1293+
// empty fallback values
1294+
expression("h1 { top: var(--tailwind-empty, ) }",
1295+
"h1 { top: var(--tailwind-empty,) }");
1296+
expression("h1 { top: var(--tailwind-empty,,) }");
1297+
expression("h1 { top: var(--tailwind-empty,, blue,, red) }");
12751298
}
12761299

12771300
private void expression(String cssText) throws Exception {
@@ -2225,6 +2248,7 @@ public void dimensionEMS() throws Exception {
22252248
final CSSValueImpl value = dimension("17em");
22262249
Assert.assertEquals(CSSPrimitiveValueType.CSS_EMS, value.getPrimitiveType());
22272250
}
2251+
22282252
/**
22292253
* @throws Exception if any error occurs
22302254
*/

0 commit comments

Comments
 (0)