SVG Gradients - Linear

From http://www.w3schools.com (Copyright Refsnes Data)

# SVG Gradients - Linear

An SVG Gradient must be defined within a <defs> tag.

## SVG Gradients

A gradient is a smooth transition from one color to another. In addition, several color transitions can be applied to the same element.

There are two main types of gradients in SVG:

- Linear Gradients
- Radial Gradients

## Linear Gradients

The <linearGradient> tag is used to define an SVG linear gradient.

The <linearGradient> tag must be nested within a <defs> tag. The <defs> tag is short for definitions and it allows definition of special elements such as gradients.

Linear gradients can be defined as horizontal, vertical or angular gradients:

- Horizontal gradients are created when y1 and y2 are equal and x1 and x2 differ
- Vertical gradients are created when x1 and x2 are equal and y1 and y2 differ
- Angular gradients are created when x1 and x2 differ and y1 and y2 differ

Copy the following code into Notepad and save the file as "linear1.svg". Place the file in your Web directory:

    <?xml version="1.0" standalone="no"?>
    <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
    "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">

    <svg width="100%" height="100%" version="1.1"
    xmlns="http://www.w3.org/2000/svg">

    <defs>
    <linearGradient id="orange_red" x1="0%" y1="0%" x2="100%" y2="0%">
    <stop offset="0%" style="stop-color:rgb(255,255,0);
    stop-opacity:1"/>
    <stop offset="100%" style="stop-color:rgb(255,0,0);
    stop-opacity:1"/>
    </linearGradient>
    </defs>

    <ellipse cx="200" cy="190" rx="85" ry="55"
    style="fill:url(#orange_red)"/>

    </svg>

Code explanation:

- The id attribute of the <linearGradient> tag defines a unique name for the gradient
- The fill:url(#orange_red) property links the ellipse element to the gradient
- The x1, x2, y1,y2 attributes of the <linearGradient> tag define the starting and ending position of the gradient
- The color range for a gradient can be composed of two or more colors. Each color is specified with a <stop> tag. The offset attribute is used to define where the gradient color begin and end

View example (Horizontal gradient)

Another example:

    <?xml version="1.0" standalone="no"?>
    <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
    "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">

    <svg width="100%" height="100%" version="1.1"
    xmlns="http://www.w3.org/2000/svg">

    <defs>
    <linearGradient id="orange_red" x1="0%" y1="0%" x2="0%" y2="100%">
    <stop offset="0%" style="stop-color:rgb(255,255,0);
    stop-opacity:1"/>
    <stop offset="100%" style="stop-color:rgb(255,0,0);
    stop-opacity:1"/>
    </linearGradient>
    </defs>

    <ellipse cx="200" cy="190" rx="85" ry="55"
    style="fill:url(#orange_red)"/>

    </svg>

View example (Vertical gradient)

From http://www.w3schools.com (Copyright Refsnes Data)