- *canvas* is the surface that the SVG is rendered on - *viewport* is the region of the canvas within which SVG is rendered - the size of the initial viewport is a "negotiation" between SVG user agent and parent user agent. + width of root gives the viewport width UNLESS ... - SVG is embedded by reference (e.g., ) or inline AND ... + the referencing element or parent document has CSS styling AND ... - that styling is sufficient to determine the viewport width + ditto height - intrinsic width and height: + from 'width' and 'height' attributes - if not specified, interpreted as "100%" + percentage width and height do NOT provide intrinsic width/height AND do not indicate percentage of containing block + they indicate portion of the viewport that is covered by image data - intrinsic aspect ratio: + 'width'/'height' if they are both specified (and not percentages) - otherwise from width and height in the 'viewBox' + otherwise unknown (or 2:1 in SVGv2) - 'viewBox' provides x-left, y-bottom, width, and height to map user space to bounds of the viewport + can be affected by 'preserveAspectRatio' (to enforce uniform scaling)