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: 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

auto | <position>

<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> | <percentage>


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%;


Specification Status Comment
Motion Path Module Level 1
The definition of 'offset-position' in that specification.
Working Draft Initial definition

Browser compatibilityUpdate compatibility data on GitHub

Chrome Edge Firefox Internet Explorer Opera Safari
offset-position No No No No No No
Android webview Chrome for Android Firefox for Android Opera for Android Safari on iOS Samsung Internet
offset-position No No No No No No

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