css-houdini-drafts
css-houdini-drafts copied to clipboard
[css-properties-values-api-1] `CSSPropertyRule.initialValue` should not be nullable
The spec says it is nullable / it may not be present:
initialValue, of type CSSOMString, readonly, nullable
The initial value associated with the
@property
rule, which may not be present.
https://drafts.css-houdini.org/css-properties-values-api-1/#dom-csspropertyrule-initialvalue
But also:
If the value of the syntax descriptor is the universal syntax definition, then the initial-value descriptor is optional. If omitted, the initial value of the property is the guaranteed-invalid value.
Otherwise, [...] The
initial-value
descriptor must be present.
https://drafts.css-houdini.org/css-properties-values-api-1/#initial-value-descriptor
So when the descriptor declaration is omitted, it seems the attribute should serialize the guaranteed-invalid value, which serializes to empty string.
In Chrome:
const styleSheet = new CSSStyleSheet()
styleSheet.insertRule(`
@property --custom {
inherits: false;
syntax: "*";
}
`)
styleSheet.cssRules.length; // 1
styleSheet.cssRules[0].initialValue; // null
However you may want to return null
to avoid serializing rule.cssText
with initial-value: ;
(not omitted, not invalid).