The SVG <set> element provides a simple means of just setting the value of an attribute for a specified duration.

It supports all attribute types, including those that cannot reasonably be interpolated, such as string and boolean values. For attributes that can be reasonably be interpolated, the <animate> is usualy prefered.

Note: The <set> element is non-additive. The additive and accumulate attributes are not allowed, and will be ignored if specified.

<svg viewBox="0 0 10 10" xmlns="http://www.w3.org/2000/svg">
    rect { cursor: pointer }
    .round { rx: 5px; fill: green; }

  <rect id="me" width="10" height="10">
    <set attributeName="class" to="round" begin="me.click" dur="2s" />


This attribute defines the value to be applied to the target attribute for the duration of the animation. The value must match the requirements of the target attribute.
Value type: <anything>; Default value: none; Animatable: no

Animation Attributes

Animation timing attributes
begin, dur, end, min, max, restart, repeatCount, repeatDur, fill
Other Animation attributes
Most notably: attributeName
Animation event attributes
Most notably: onbegin, onend, onrepeat

Global attributes

Core Attributes
Most notably: id
Styling Attributes
class, style
Event Attributes
Global event attributes, Document element event attributes

Usage notes

Categories Animation element
Permitted content Any number of the following elements, in any order:
Descriptive elements


Browser compatibilityUpdate compatibility data on GitHub

Chrome Edge Firefox Internet Explorer Opera Safari
set Yes ≤79 ? ? Yes ?
to Yes ≤79 ? ? Yes ?
Android webview Chrome for Android Firefox for Android Opera for Android Safari on iOS Samsung Internet
set Yes Yes ? Yes ? Yes
to Yes Yes ? Yes ? Yes

See also

© 2005–2020 Mozilla and individual contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.