BUG: style parsing error if it has @import
Question
GrapesJS version
- I confirm to use the latest version of GrapesJS
What browser are you using?
only Firefox (all versions)
Reproducible demo link
https://jsfiddle.net/03m6jz5f/
Describe the bug
How to reproduce the bug?
- clear browser cache
- try import template with style tag which has @import font url
What is the expected behavior? Style need to be load without JS errors
What is the current behavior?
GJS don't wait for style load, and try parse null sheet (JS error). see screenshots:

If is necessary to execute some code in order to reproduce the bug, paste it here below: (sheet parse error)
function getSheet() {
var style = document.createElement('style');
style.innerHTML = `@charset "utf-8";
@import url('https://fonts.googleapis.com/css2?family=Lato');
/* Linked Styles */
div {
padding: 0 !important;
margin: 0 !important;
}
`;
document.head.appendChild(style);
console.assert(style.sheet, 'sheet is', style.sheet);
var sheet = style.sheet;
document.head.removeChild(style);
console.log('sheet is:', sheet);
}
getSheet();
if wait load/parse style tag error nor replicated:
async function getSheetOnLoad() {
var style = document.createElement('style');
style.innerHTML = `@charset "utf-8";
@import url('https://fonts.googleapis.com/css2?family=Lato:wght@300&display=swap');
/* Linked Styles */
div {
padding: 0 !important;
margin: 0 !important;
}
`;
let promise = new Promise(resolve => style.addEventListener('load', resolve));
document.head.appendChild(style);
await promise;
console.assert(style.sheet, 'sheet is', style.sheet);
var sheet = style.sheet;
document.head.removeChild(style);
console.log('sheet is:', sheet);
}
getSheetOnLoad();
Code of Conduct
- I agree to follow this project's Code of Conduct
Answers (1)
Not really fixable as GrapesJS parsers can't be asynchronous right now but in any case, from the performance perspective, you should never use @import in your CSS as it generates a blocking request
Related Questions and Answers
Continue research with similar issue discussions.
Issue #6706
BUG: TypeError: e.getRoot is not a function (Race condition in Style Manager)
GrapesJS version [x] I confirm to use the latest version of GrapesJS What browser are you using? All browsers (Chrome, Safari, Firefox, Edg...
Issue #6705
BUG: TypeError: Cannot read properties of undefined (reading 'toLowerCase') in keyboard handler
GrapesJS version [x] I confirm to use the latest version of GrapesJS What browser are you using? All browsers (Chrome, Safari, Firefox, Edg...
Issue #6281
BUG: Layer Manager does not allow reordering on same level. only nesting is allowed on top level(right under body) older versions (e.g: 0.21.8
GrapesJS version [X] I confirm to use the latest version of GrapesJS What browser are you using? latest chrome, firefox, edge Reproducible...
Issue #5487
BUG: Style Manager doesn't display multiple rules for the same class
GrapesJS version [X] I confirm to use the latest version of GrapesJS What browser are you using? Firefox Reproducible demo link https://jsf...
Paid Plugins That Match This Issue
Curated by issue keywords and label relevance to help you ship faster.
Loading paid plugin recommendations...
Browse Plugin Categories
Jump directly to plugin category pages on the marketplace.