18 lines
639 B
JavaScript
18 lines
639 B
JavaScript
function renderHTML(element, { style, vars }, styleProp, projection) {
|
|
const elementStyle = element.style;
|
|
let key;
|
|
for (key in style) {
|
|
// CSSStyleDeclaration has [index: number]: string; in the types, so we use that as key type.
|
|
elementStyle[key] = style[key];
|
|
}
|
|
// Write projection styles directly to element style
|
|
projection?.applyProjectionStyles(elementStyle, styleProp);
|
|
for (key in vars) {
|
|
// Loop over any CSS variables and assign those.
|
|
// They can only be assigned using `setProperty`.
|
|
elementStyle.setProperty(key, vars[key]);
|
|
}
|
|
}
|
|
|
|
export { renderHTML };
|