Skip to content

")" not found when trying to import font with multiple weights #116

Open
@RahulLanjewar93

Description

@RahulLanjewar93

CSSOM/lib/parse.js

Lines 333 to 358 in a469aae

case ";":
switch (state) {
case "value":
styleRule.style.setProperty(name, buffer.trim(), priority);
priority = "";
buffer = "";
state = "before-name";
break;
case "atRule":
buffer = "";
state = "before-selector";
break;
case "importRule":
importRule = new CSSOM.CSSImportRule();
importRule.parentStyleSheet = importRule.styleSheet.parentStyleSheet = styleSheet;
importRule.cssText = buffer + character;
styleSheet.cssRules.push(importRule);
buffer = "";
state = "before-selector";
break;
default:
buffer += character;
break;
}
break;

This fails for import rules for fonts which have multiple font weights.

Example :- @import url(https://fonts.googleapis.com/css2?family=Source+Sans+Pro:wght@300;400&display=swap);

I get the error:- ")" not found.
I am guessing it's due to semicolon being encountered first before closing the bracket.

Activity

RahulLanjewar93

RahulLanjewar93 commented on Jan 31, 2023

@RahulLanjewar93
Author

@papandreou @NV Any idea how we can resolve this?

papandreou

papandreou commented on Jan 31, 2023

@papandreou
Contributor

Yeah, looks like the parser doesn't handle semicolons within url(...).

One possible workaround is to add quotes around the url:

@import url('https://fonts.googleapis.com/css2?family=Source+Sans+Pro:wght@300;400&display=swap');

Or you can percent-encode the semicolon:

@import url(https://fonts.googleapis.com/css2?family=Source+Sans+Pro:wght@300%3B400&display=swap);
RahulLanjewar93

RahulLanjewar93 commented on Feb 1, 2023

@RahulLanjewar93
Author

Thanks for the workaround.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

      Development

      No branches or pull requests

        Participants

        @papandreou@RahulLanjewar93

        Issue actions

          ")" not found when trying to import font with multiple weights · Issue #116 · NV/CSSOM