The following example shows how to draw an arrowhead on a line and on a curved path. For the curved path, an arrowhead is drawn at each point with a marker-mid marker.
<svgviewBox="0 0 300 100"xmlns="http://www.w3.org/2000/svg"><defs><!-- A marker to be used as an arrowhead --><markerid="arrow"viewBox="0 0 10 10"refX="5"refY="5"markerWidth="6"markerHeight="6"orient="auto-start-reverse"><pathd="M 0 0 L 10 5 L 0 10 z"/></marker></defs><!-- A line with a marker --><linex1="10"y1="10"x2="90"y2="90"stroke="black"marker-end="url(#arrow)"/><!-- A curved path with markers --><pathd="M 110 10
C 120 20, 130 20, 140 10
C 150 0, 160 0, 170 10
C 180 20, 190 20, 200 10"stroke="black"fill="none"marker-start="url(#arrow)"marker-mid="url(#arrow)"marker-end="url(#arrow)"/></svg>
Drawing polymarkers
<svgviewBox="0 0 100 100"xmlns="http://www.w3.org/2000/svg"><defs><!-- Arrowhead marker definition --><markerid="arrow"viewBox="0 0 10 10"refX="5"refY="5"markerWidth="6"markerHeight="6"orient="auto-start-reverse"><pathd="M 0 0 L 10 5 L 0 10 z"/></marker><!-- Dot marker definition --><markerid="dot"viewBox="0 0 10 10"refX="5"refY="5"markerWidth="5"markerHeight="5"><circlecx="5"cy="5"r="5"fill="red"/></marker></defs><!-- Coordinate axes with an arrowhead in both directions --><polylinepoints="10,10 10,90 90,90"fill="none"stroke="black"marker-start="url(#arrow)"marker-end="url(#arrow)"/><!-- Data line with polymarkers --><polylinepoints="15,80 29,50 43,60 57,30 71,40 85,15"fill="none"stroke="grey"marker-start="url(#dot)"marker-mid="url(#dot)"marker-end="url(#dot)"/></svg>
Using context fill and stroke
The following example shows how to use the context-fill and context-stroke values to make a marker use the same fill and stroke as the shape it is attached to.
<svgviewBox="0 0 50 50"xmlns="http://www.w3.org/2000/svg"><markerid="circle"markerWidth="6"markerHeight="6"refX="3"refY="3"markerUnits="strokeWidth"><circlecx="3"cy="3"r="2"stroke="context-stroke"fill="context-fill"/></marker><style>path{marker:url(#circle);}</style><pathd="M 10,10 30,10 h 10"stroke="black"/><pathd="M 10,20 30,20 h 10"stroke="blue"fill="red"/><pathd="M 10,30 30,30 h 10"stroke="red"fill="none"/><pathd="M 10,40 30,40 h 10"stroke="gray"fill="blue"stroke-width="1.5"/></svg>
This attribute defines the coordinate system for the attributes markerWidth, markerHeight and the contents of the <marker>. Value type: userSpaceOnUse|strokeWidth ; Default value: strokeWidth; Animatable: yes
This attribute defines the orientation of the marker relative to the shape it is attached to. Value type: auto|auto-start-reverse|<angle> ; Default value: 0; Animatable: yes
This attribute defines how the svg fragment must be deformed if it is embedded in a container with a different aspect ratio. Value type: (none| xMinYMin| xMidYMin| xMaxYMin| xMinYMid| xMidYMid| xMaxYMid| xMinYMax| xMidYMax| xMaxYMax) (meet|slice)? ; Default value: xMidYMid meet; Animatable: yes
This attribute defines the x coordinate for the reference point of the marker. Value type: left|center|right|<coordinate> ; Default value: 0; Animatable: yes
This attribute defines the y coordinate for the reference point of the marker. Value type: top|center|bottom|<coordinate> ; Default value: 0; Animatable: yes
This attribute defines the bound of the SVG viewport for the current SVG fragment. Value type: <list-of-numbers> ; Default value: none; Animatable: yes