User Tools

Site Tools


Thoughts on SVG

A quick thought. People are (I think rightly) concerned that some authors will
use SVG tools that put out more tags that what we want. We could spec out a
tool that takes SVG in and spits out a stripped down version, and make it
available to draft writers. The author could then see if the stripped down
version still looks like what they want.

SVG Standards

SVG 1.1 is specified at

SVG Tiny 1.2 is a profile of SVG 1.1 intended for use on smaller devices, specified at Should we restrict our profile to not allow tags not in the Tiny 1.2 profile?

SVG Profile

The tags that are allowed in the RFC XML 3 profile for SVG are:

Element Description Allowed?
<a> Creates a link around SVG elements
<altGlyph> Provides control over the glyphs used to render particular character data
<altGlyphDef> Defines a substitution set for glyphs
<altGlyphItem> Defines a candidate set of glyph substitutions
<animate> Defines how an attribute of an element changes over time No
<animateColor> Defines a color transformation over time No
<animateMotion> Causes a referenced element to move along a motion path No
<animateTransform> Animates a transformation attribute on a target element, thereby allowing animations to control translation, scaling, rotation and/or skewing No
<circle> Defines a circle
<clipPath> Clipping is about hiding what normally would be drawn. The stencil which defines what is and what isn't drawn is called a clipping path
<color-profile> Specifies a color profile description (when the document is styled using CSS) No
<cursor> Defines a platform-independent custom cursor
<defs> A container for referenced elements
<desc> A text-only description for container elements or graphic elements in SVG (user agents may display the text as a tooltip)
<ellipse> Defines an ellipse
<feBlend> Composes two objects together according to a certain blending mode
feColorMatrix SVG filter. Applies a matrix transformation
feComponentTransfer SVG filter. Performs component-wise remapping of data
feComposite SVG filter
feConvolveMatrix SVG filter
feDiffuseLighting SVG filter
feDisplacementMap SVG filter
feDistantLight SVG filter. Defines a light source
feFlood SVG filter
feFuncA SVG filter. Sub-element to feComponentTransfer
feFuncB SVG filter. Sub-element to feComponentTransfer
feFuncG SVG filter. Sub-element to feComponentTransfer
feFuncR SVG filter. Sub-element to feComponentTransfer
feGaussianBlur SVG filter. Performs a Gaussian blur on the image
feImage SVG filter.
feMerge SVG filter. Creates image layers on top of each other
feMergeNode SVG filter. Sub-element to feMerge
feMorphology SVG filter. Performs a “fattening” or “thinning” on a source graphic
feOffset SVG filter. Moves an image relative to its current position
fePointLight SVG filter.
feSpecularLighting SVG filter.
feSpotLight SVG filter
feTile SVG filter
feTurbulence SVG filter
filter Container for filter effects
font Defines a font
font-face Describes the characteristics of a font
<g> Used to group together elements
glyph Defines the graphics for a given glyph
glyphRef Defines a possible glyph to use
<image> Defines an image
<line> Defines a line
<linearGradient> Defines a linear gradient. Linear gradients fill the object by using a vector, and can be defined as horizontal, vertical or angular gradients.
<marker> Markers can be placed on the vertices of lines, polylines, polygons and paths. These elements can use the marker attributes “marker-start”, “marker-mid” and “marker-end”' which inherit by default or can be set to 'none' or the URI of a defined marker. You must first define the marker before you can reference it via its URI. Any kind of shape can be put inside marker. They are drawn on top of the element they are attached to
<mask> Masking is a combination of opacity values and clipping. Like clipping you can use shapes, text or paths to define sections of the mask. The default state of a mask is fully transparent which is the opposite of clipping plane. The graphics in a mask sets how opaque portions of the mask are
metadata Specifies metadata
<path> Defines a path
<pattern> Defines the coordinates you want the view to show and the size of the view. Then you add shapes into your pattern. The pattern repeats when an edge of the view box (viewing area) is hit
<polygon> Defines a graphic that contains at least three sides
<polyline> Defines any shape that consists of only straight lines
<radialGradient> Defines a radial gradient. Radial gradients are created by taking a circle and smoothly changing values between gradient stops from the focus point to the outside radius.
<rect> Defines a rectangle
script Container for scripts (e.g., ECMAScript)
set Sets the value of an attribute for a specified duration
<stop> The stops for a gradient
style Allows style sheets to be embedded directly within SVG content
<svg> Creates an SVG document fragment
<text> Defines a text
title A text-only description for elements in SVG - not displayed as part of the graphics. User agents may display the text as a tooltip
<tref> References any <text> element in the SVG document and reuse it
<tspan> Identical to the <text> element but can be nested inside text tags and inside itself
design/svg.txt · Last modified: 2013/09/05 15:43 by dthaler