Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

The offset-position CSS property defines the initial position of the offset-path.


/* Keyword values */
offset-position: auto;
offset-position: top;
offset-position: bottom;
offset-position: left;
offset-position: right;
offset-position: center;

/* <percentage> values */
offset-position: 25% 75%;

/* <length> values */
offset-position: 0 0;
offset-position: 1cm 2cm;
offset-position: 10ch 8em;

/* Edge offsets values */
offset-position: bottom 10px right 20px;
offset-position: right 3em bottom 10px;
offset-position: bottom 10px right;
offset-position: top right 10px;

/* Global values */
offset-position: inherit;
offset-position: initial;
offset-position: revert;
offset-position: revert-layer;
offset-position: unset;



The initial position is the position of the box specified by the position property.


A <position>. A position defines an x/y coordinate, to place an item relative to the edges of an element's box. It can be defined using one to four values. If two non-keyword values are used, the first value represents the horizontal position and the second represents the vertical position. If only one value is specified, the second value is assumed to be center. If three or four values are used, the length-percentage values are offsets for the preceding keyword value(s). For more explanation of these value types, see background-position.

Formal definition

Initial value auto
Applies to transformable elements
Inherited no
Percentages referToSizeOfContainingBlock
Computed value for <length> the absolute value, otherwise a percentage
Animation type a position

Formal syntax

offset-position = 
auto |

<position> =
[ left | center | right ] || [ top | center | bottom ] |
[ left | center | right | <length-percentage> ] [ top | center | bottom | <length-percentage> ]? |
[ [ left | right ] <length-percentage> ] && [ [ top | bottom ] <length-percentage> ]

<length-percentage> =
<length> |


Setting initial offset position

<div id="motion-demo"></div>
#motion-demo {
  offset-path: path("M20,20 C20,100 200,0 200,100");
  offset-position: left top;
  animation: move 3000ms infinite alternate ease-in-out;
  width: 40px;
  height: 40px;
  background: cyan;

@keyframes move {
  0% {
    offset-distance: 0%;
  100% {
    offset-distance: 100%;


Browser compatibility

Desktop Mobile
Chrome Edge Firefox Internet Explorer Opera Safari WebView Android Chrome Android Firefox for Android Opera Android Safari on IOS Samsung Internet
NoSee bug 638055.
NoSee bug 638055.
NoSee bug 1559232.
NoSee bug 638055.
NoSee bug 638055.
NoSee bug 638055.
NoSee bug 1559232.
NoSee bug 638055.
NoSee bug 638055.

See also

© 2005–2023 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.