Switch from the legacy CSSValue API to Typed OM #112
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
EchoSVG uses the deprecated
CSSValue
API for CSS values. With those values and units being hardwired to CSS 2.1, this old API not only is not supported by web browsers, but also effectively freezes the support for new CSS values and units.Goals of this PR:
A first implementation of Typed OM.
Rewrite the machinery for the notification of value changes, which was unusable outside of the monolithic
CSSValue
API.Native support for the
color()
function in the specified gamuts, instead of converting it torgb()
values in the sRGB space as until now.Support the
vw
,vh
,vmin
,vmax
,rem
andrex
units.Partial backwards compatibility with the deprecated SVG 1.1 color and paint values.
Non-goals:
Further changes are needed before full compatibility with Typed OM can be claimed:
CSSRGB
orCSSColor
, instead one has to usevalue.colorValue
orvalue.rectValue
.Closes #67.