An attempt to list all changes between SVG 1.1 and SVG 2.
Somewhat similar to Changes from SVG 1.1 from the SVG 2 spec, but actually lists all changes and not just changes to the spec itself. For example, that page doesn't list filter related changes and most of the text related changes are either omitted or scattered around the spec.
This document contains changes only to the static SVG subset. No animations, events and scripting.
A checkbox indicates that the related feature is implemented in resvg.
NOTE: This list is not final. This just things I was able to find so far. Patches are welcome.
- A
turnunit to<angle>. - Following units:
ch,rem,vw,vh,vmin,vmaxandQto<length>. -
rgba(),hsl()andhsla()notations to<color>. - A
transparentkeyword to<color>. - A
#RRGGBBAAand#RGBAnotation for colors. Part of CSS Color 4. - A
opacityproperty allows<percentage>now.
-
<length>no longer includes the%unit. This variant was moved into a separate type:<length-percentage>. -
<FuncIRI>was replaced with an<url>. The main change here is that<url>allows quoted strings.
<color>includes an alpha value now, which should be accounted byfill,stroke,flood-colorandstop-colorproperties. But not bylighting-colorproperty. At least Chrome 92 and Firefox 91 doesn't do this.
-
refXandrefYproperties to thesymbolelement. - An
autovariant toimageelement'swidthandheightproperties. - A
langattribute. The same asxml:lang, but without the namespace.
-
widthandheightproperties of thesvgelement are set toautoby default.
- A
baseProfileattribute from thesvgelement. - A
versionattribute from thesvgelement. - A
externalResourcesRequiredattribute. - A
requiredFeaturesattribute. - A
xml:baseattribute.
- A
clipproperty.
- A
transform-boxproperty. - A
transform-originproperty. - A
vector-effectproperty.
-
transform,patternTransformandgradientTransformare presentation attributes now. Which means that they can be resolved from CSS now.
- A
deferkeyword from thepreserveAspectRatioattribute.
- CSS
transformand SVGtransformhave different syntax.
- A
pathLengthattribute to all basic shapes.
Basically everything from CSS Text Module Level 3.
- WOFF font support is required now.
- A
pathproperty totextPath. - A
sideproperty totextPath. - A
font-feature-settingsproperty. - A
font-kerningproperty. - A
font-synthesisproperty. - A
font-variant-capsproperty. - A
font-variant-east-asianproperty. - A
font-variant-ligaturesproperty. - A
font-variant-numericproperty. - A
font-variant-positionproperty. - A
line-heightproperty. - A
text-align-lastproperty. - A
text-alignproperty. - A
text-indentproperty. - A
text-orientationproperty. - A
text-overflowproperty. - A
text-transformproperty. - A
unicode-rangeproperty. - A
white-spaceproperty. - A
text-decoration-lineproperty. - A
text-decoration-styleproperty. - A
text-decoration-colorproperty. - A
text-underline-positionproperty. - A
text-decoration-fillproperty. - A
text-decoration-strokeproperty. - A
inline-sizeproperty. - A
shape-insideproperty. - A
shape-subtractproperty. - A
shape-image-thresholdproperty. - A
shape-marginproperty. - A
shape-paddingproperty. - New variants to
font-variantproperty. Previously it allowed onlysmall-caps. - A
font-variant-css21value tofontproperty.
-
textPathcan reference basic shapes now. - Since CSS Fonts Module Level 4, the
font-weightproperty allows any value in a 1..1000 range. - A
writing-modeproperty introduces thehorizontal-tbandvertical-lrvalues from CSS Writing Modes Level 3. -
dominant-baselineis inherited now. -
baseline-shiftis0by default, instead ofbaseline. - Percentage values in a
word-spacingrelate to a percentage of the affected character's width and not to viewport size now. -
filter,clip-path,maskandopacityproperties can be set ontspanandtextPathelements. - A
text-decorationproperty has a new, but backward compatible syntax.
- A
trefelement. - A
kerningproperty. Usefont-kerninginstead. - A
glyph-orientation-horizontalproperty. - A
altGlyphelement. - A
altGlyphDefelement. - A
altGlyphItemelement. - A
glyphRefelement. reset-size,use-scriptandno-changevariants fromdominant-baseline.auto,before-edge, andafter-edgevariants fromalignment-baseline.baselinevariant frombaseline-shift.- Percentage values from
letter-spacing.
- A
xml:spaceproperty. - A
glyph-orientation-verticalproperty. - A
baseline-shiftproperty. Usevertical-aligninstead.
- As of 2021, only Inkscape has Text layout – Content Area support, but still a very minimal one.
text-transformis technically a CSS 2.1 property, but was not allowed in SVG 1.1
- An
arcsvariant to thestroke-linejoinproperty. - A
miter-clipvariant to thestroke-linejoinproperty. - (partial support) A
paint-orderproperty. -
context-fillandcontext-strokevariants to the<paint>type. - A
mix-blend-modeproperty. - An
isolationproperty. -
left,centerandrightvariants torefXandrefYproperties of themarkerelement. - An
auto-start-reversevariant toorientproperty of themarkerelement - The
image-renderingcan appear as a presentation attribute with additional possible values. Currently, there is only best-effort support for "pixelated".
- Markers can be set on all shapes and not only on
path.
- As of 2021, no one supports
stroke-linejoin:arcs.
- A
frattribute to theradialGradientelement
-
<basic-shape>and<geometry-box>variants to theclip-pathproperty. - A
mask-imageproperty. - A
mask-modeproperty. - A
mask-positionproperty. - A
mask-clipproperty. - A
mask-originproperty. - A
mask-sizeproperty. - A
mask-compositeproperty. - A
mask-typeproperty. - A
mask-border-sourceproperty. - A
mask-border-modeproperty. - A
mask-border-sliceproperty. - A
mask-border-widthproperty. - A
mask-border-outsetproperty. - A
mask-border-repeatproperty. - A
mask-borderproperty.
- A
maskproperty has a new grammar, backward compatible with SVG 1.1 one. - An element can have multiple masks now.
- A
feDropShadowelement. - An
edgeModeattribute tofeGaussianBlurelement. - Filter functions.
- New blend modes to
feBlendelement. - A
no-compositeproperty tofeBlendelement.
- A
filterproperty type changed from<FuncIRI>to<filter-value-list>. - The
saturatetype infeColorMatrixcan be larger than 1 now.
- An
enable-backgroundproperty.
- Filter functions doesn't have a filter region. Which means
blur()anddrop-shadow()cannot be losslessly converted tofilterelement. We have to manually calculate a new region (somehow). - Filter functions are always in sRGB color space, unlike a
filterelement, which is in linearRGB by default.
xlink:hrefin favor ofhref.
- A
fontelement. - A
glyphelement. - A
missing-glyphelement. - A
hkernelement. - A
vkernelement. - A
font-faceelement. - A
font-face-srcelement. - A
font-face-urielement. - A
font-face-formatelement. - A
font-face-nameelement.