This file documents breaking changes introduced in major releases of the
@webref/css
NPM package.
Webref adheres to Semantic Versioning, applied to data. A new major version is released whenever a breaking change is made to the data structure.
Major re-write of CSS extracts listed in the package, following the release of Reffy v11.0.0
- Arrays are now used throughout instead of indexed objects.
- Function names are no longer enclosed in
<
and>
because they are not defined in specs with these characters (as opposed to types). Beware though, references to functions in value syntax do use enclosing<
and>
characters. - The property
valuespaces
at the root level is now namedvalues
. An array is used there as well. Thevalues
property lists bothfunction
andtype
definitions that are not namespaced to anything in particular (it used to also contain namespaced definitions).
- Selectors are now reported under a
selectors
property at the root level. - Possible values that some definition may take are now reported under a
values
property directly within the definition. - Functions and types that are namespaced to some other definition are included
in the list of
values
of that definition. - Anomalies detected in the spec are now reported under a
warnings
property at the root of the extract. Four types of anomalies are reported:- Missing definition: when a production rule was found but when the spec
does not include a corresponding
<dfn>
(or when that<dfn>
does not have adata-dfn-type
attribute that identifies a CSS construct) - Duplicate definition: when the spec defines the same term twice.
- Unmergeable definition: when the spec defines the same property twice and both definitions cannot be merged.
- Dangling value: when the spec defines a CSS "value" definition
(
value
,function
ortype
) for something and that something cannot be found in the spec
- Missing definition: when a production rule was found but when the spec
does not include a corresponding
- To distinguish between
function
,type
andvalue
definitions listed in avalues
property, definitions that appear in avalues
property have atype
property.
- Only namespaced values associated with a definition are listed under its
values
property. Non-namespaced values are not. For instance,<quote>
is not listed as a value of the<content-list>
type, even though its value syntax references it. This is to avoid duplicating constructs in the extracts. - Values are only listed under the deepest definition to which they apply. For
instance,
open-quote
is only listed as a value of<quote>
but neither as a value of the<content-list>
type that references<quote>
nor as a value of thecontent
property that references<content-list>
. This is also to avoid duplicating constructs in the extracts. - Some of the extracts contain things that may look weird at first, but that is
"by design". For instance, CSS Will
change defines a
<custom-ident>
value
construct whose actual value is the<custom-ident>
type
construct defined in CSS Values. Having both a namespacedvalue
and a non-namespaced<type>
is somewhat common in CSS specs.