{"route":"/en-US-v0.14.1/reference/visualize/curve/","title":"Curve","description":"Documentation for the `curve` function.","part":null,"outline":[{"id":"summary","name":"Summary","children":[]},{"id":"example","name":"Example","children":[]},{"id":"parameters","name":"Parameters","children":[{"id":"parameters-fill","name":"fill","children":[]},{"id":"parameters-fill-rule","name":"fill-rule","children":[]},{"id":"parameters-stroke","name":"stroke","children":[]},{"id":"parameters-components","name":"components","children":[]}]},{"id":"definitions","name":"Definitions","children":[{"id":"definitions-move","name":"Curve Move","children":[{"id":"definitions-move-start","name":"start","children":[]},{"id":"definitions-move-relative","name":"relative","children":[]}]},{"id":"definitions-line","name":"Curve Line","children":[{"id":"definitions-line-end","name":"end","children":[]},{"id":"definitions-line-relative","name":"relative","children":[]}]},{"id":"definitions-quad","name":"Curve Quadratic Segment","children":[{"id":"definitions-quad-control","name":"control","children":[]},{"id":"definitions-quad-end","name":"end","children":[]},{"id":"definitions-quad-relative","name":"relative","children":[]}]},{"id":"definitions-cubic","name":"Curve Cubic Segment","children":[{"id":"definitions-cubic-control-start","name":"control-start","children":[]},{"id":"definitions-cubic-control-end","name":"control-end","children":[]},{"id":"definitions-cubic-end","name":"end","children":[]},{"id":"definitions-cubic-relative","name":"relative","children":[]}]},{"id":"definitions-close","name":"Curve Close","children":[{"id":"definitions-close-mode","name":"mode","children":[]}]}]}],"body":{"kind":"func","content":{"path":[],"name":"curve","title":"Curve","keywords":[],"oneliner":"A curve consisting of movements, lines, and Bézier segments.","element":true,"contextual":false,"deprecationMessage":null,"deprecationUntil":null,"details":[{"kind":"html","content":"<p>A curve consisting of movements, lines, and Bézier segments.</p>\n<p>At any point in time, there is a conceptual pen or cursor.</p>\n<ul>\n<li>Move elements move the cursor without drawing.</li>\n<li>Line/Quadratic/Cubic elements draw a segment from the cursor to a new\nposition, potentially with control point for a Bézier curve.</li>\n<li>Close elements draw a straight or smooth line back to the start of the\ncurve or the latest preceding move segment.</li>\n</ul>\n<p>For layout purposes, the bounding box of the curve is a tight rectangle\ncontaining all segments as well as the point <code><span class=\"typ-punct\">(</span><span class=\"typ-num\">0pt</span><span class=\"typ-punct\">,</span> <span class=\"typ-num\">0pt</span><span class=\"typ-punct\">)</span></code>.</p>\n<p>Positions may be specified absolutely (i.e. relatively to <code><span class=\"typ-punct\">(</span><span class=\"typ-num\">0pt</span><span class=\"typ-punct\">,</span> <span class=\"typ-num\">0pt</span><span class=\"typ-punct\">)</span></code>),\nor relative to the current pen/cursor position, that is, the position where\nthe previous segment ended.</p>\n<p>Bézier curve control points can be skipped by passing <code><span class=\"typ-key\">none</span></code> or\nautomatically mirrored from the preceding segment by passing <code><span class=\"typ-key\">auto</span></code>.</p>\n<h2 id=\"example\">Example</h2>\n<div class=\"previewed-code\"><pre><code><span class=\"typ-func\">#</span><span class=\"typ-func\">curve</span><span class=\"typ-punct\">(</span>\n  fill<span class=\"typ-punct\">:</span> blue<span class=\"typ-punct\">.</span><span class=\"typ-func\">lighten</span><span class=\"typ-punct\">(</span><span class=\"typ-num\">80%</span><span class=\"typ-punct\">)</span><span class=\"typ-punct\">,</span>\n  stroke<span class=\"typ-punct\">:</span> blue<span class=\"typ-punct\">,</span>\n  curve<span class=\"typ-punct\">.</span><span class=\"typ-func\">move</span><span class=\"typ-punct\">(</span><span class=\"typ-punct\">(</span><span class=\"typ-num\">0pt</span><span class=\"typ-punct\">,</span> <span class=\"typ-num\">50pt</span><span class=\"typ-punct\">)</span><span class=\"typ-punct\">)</span><span class=\"typ-punct\">,</span>\n  curve<span class=\"typ-punct\">.</span><span class=\"typ-func\">line</span><span class=\"typ-punct\">(</span><span class=\"typ-punct\">(</span><span class=\"typ-num\">100pt</span><span class=\"typ-punct\">,</span> <span class=\"typ-num\">50pt</span><span class=\"typ-punct\">)</span><span class=\"typ-punct\">)</span><span class=\"typ-punct\">,</span>\n  curve<span class=\"typ-punct\">.</span><span class=\"typ-func\">cubic</span><span class=\"typ-punct\">(</span><span class=\"typ-key\">none</span><span class=\"typ-punct\">,</span> <span class=\"typ-punct\">(</span><span class=\"typ-num\">90pt</span><span class=\"typ-punct\">,</span> <span class=\"typ-num\">0pt</span><span class=\"typ-punct\">)</span><span class=\"typ-punct\">,</span> <span class=\"typ-punct\">(</span><span class=\"typ-num\">50pt</span><span class=\"typ-punct\">,</span> <span class=\"typ-num\">0pt</span><span class=\"typ-punct\">)</span><span class=\"typ-punct\">)</span><span class=\"typ-punct\">,</span>\n  curve<span class=\"typ-punct\">.</span><span class=\"typ-func\">close</span><span class=\"typ-punct\">(</span><span class=\"typ-punct\">)</span><span class=\"typ-punct\">,</span>\n<span class=\"typ-punct\">)</span>\n</code></pre><div class=\"preview\"><img src=\"/en-US-v0.14.1/assets/f6e8a1340bbf7443c9b7a46b757beca4.png\" alt=\"Preview\"></div></div>"}],"self":false,"params":[{"name":"fill","details":[{"kind":"html","content":"<p>How to fill the curve.</p>\n<p>When setting a fill, the default stroke disappears. To create a curve\nwith both fill and stroke, you have to configure both.</p>"}],"types":["none","color","gradient","tiling"],"strings":[],"default":"<code><span class=\"typ-key\">none</span></code>","positional":false,"named":true,"required":false,"variadic":false,"settable":true},{"name":"fill-rule","details":[{"kind":"html","content":"<p>The drawing rule used to fill the curve.</p>"},{"kind":"example","content":{"body":"<div class=\"previewed-code\"><pre><code><span class=\"typ-comment\">// We use `.with` to get a new</span>\n<span class=\"typ-comment\">// function that has the common</span>\n<span class=\"typ-comment\">// arguments pre-applied.</span>\n<span class=\"typ-key\">#</span><span class=\"typ-key\">let</span> star <span class=\"typ-op\">=</span> curve<span class=\"typ-punct\">.</span><span class=\"typ-func\">with</span><span class=\"typ-punct\">(</span>\n  fill<span class=\"typ-punct\">:</span> red<span class=\"typ-punct\">,</span>\n  curve<span class=\"typ-punct\">.</span><span class=\"typ-func\">move</span><span class=\"typ-punct\">(</span><span class=\"typ-punct\">(</span><span class=\"typ-num\">25pt</span><span class=\"typ-punct\">,</span> <span class=\"typ-num\">0pt</span><span class=\"typ-punct\">)</span><span class=\"typ-punct\">)</span><span class=\"typ-punct\">,</span>\n  curve<span class=\"typ-punct\">.</span><span class=\"typ-func\">line</span><span class=\"typ-punct\">(</span><span class=\"typ-punct\">(</span><span class=\"typ-num\">10pt</span><span class=\"typ-punct\">,</span> <span class=\"typ-num\">50pt</span><span class=\"typ-punct\">)</span><span class=\"typ-punct\">)</span><span class=\"typ-punct\">,</span>\n  curve<span class=\"typ-punct\">.</span><span class=\"typ-func\">line</span><span class=\"typ-punct\">(</span><span class=\"typ-punct\">(</span><span class=\"typ-num\">50pt</span><span class=\"typ-punct\">,</span> <span class=\"typ-num\">20pt</span><span class=\"typ-punct\">)</span><span class=\"typ-punct\">)</span><span class=\"typ-punct\">,</span>\n  curve<span class=\"typ-punct\">.</span><span class=\"typ-func\">line</span><span class=\"typ-punct\">(</span><span class=\"typ-punct\">(</span><span class=\"typ-num\">0pt</span><span class=\"typ-punct\">,</span> <span class=\"typ-num\">20pt</span><span class=\"typ-punct\">)</span><span class=\"typ-punct\">)</span><span class=\"typ-punct\">,</span>\n  curve<span class=\"typ-punct\">.</span><span class=\"typ-func\">line</span><span class=\"typ-punct\">(</span><span class=\"typ-punct\">(</span><span class=\"typ-num\">40pt</span><span class=\"typ-punct\">,</span> <span class=\"typ-num\">50pt</span><span class=\"typ-punct\">)</span><span class=\"typ-punct\">)</span><span class=\"typ-punct\">,</span>\n  curve<span class=\"typ-punct\">.</span><span class=\"typ-func\">close</span><span class=\"typ-punct\">(</span><span class=\"typ-punct\">)</span><span class=\"typ-punct\">,</span>\n<span class=\"typ-punct\">)</span>\n\n<span class=\"typ-func\">#</span><span class=\"typ-func\">star</span><span class=\"typ-punct\">(</span>fill-rule<span class=\"typ-punct\">:</span> <span class=\"typ-str\">&quot;non-zero&quot;</span><span class=\"typ-punct\">)</span>\n<span class=\"typ-func\">#</span><span class=\"typ-func\">star</span><span class=\"typ-punct\">(</span>fill-rule<span class=\"typ-punct\">:</span> <span class=\"typ-str\">&quot;even-odd&quot;</span><span class=\"typ-punct\">)</span>\n</code></pre><div class=\"preview\"><img src=\"/en-US-v0.14.1/assets/32d08694d1725fb4fc044b295913753b.png\" alt=\"Preview\"></div></div>","title":null}}],"types":["str"],"strings":[{"string":"non-zero","details":"<p>Specifies that &quot;inside&quot; is computed by a non-zero sum of signed edge crossings.</p>"},{"string":"even-odd","details":"<p>Specifies that &quot;inside&quot; is computed by an odd number of edge crossings.</p>"}],"default":"<code><span class=\"typ-str\">&quot;non-zero&quot;</span></code>","positional":false,"named":true,"required":false,"variadic":false,"settable":true},{"name":"stroke","details":[{"kind":"html","content":"<p>How to <a href=\"/en-US-v0.14.1/reference/visualize/stroke/\" title=\"stroke\">stroke</a> the curve.</p>\n<p>Can be set to <code><span class=\"typ-key\">none</span></code> to disable the stroke or to <code><span class=\"typ-key\">auto</span></code> for a\nstroke of <code><span class=\"typ-num\">1pt</span></code> black if and only if no fill is given.</p>"},{"kind":"example","content":{"body":"<div class=\"previewed-code\"><pre><code><span class=\"typ-key\">#</span><span class=\"typ-key\">let</span> down <span class=\"typ-op\">=</span> curve<span class=\"typ-punct\">.</span><span class=\"typ-func\">line</span><span class=\"typ-punct\">(</span><span class=\"typ-punct\">(</span><span class=\"typ-num\">40pt</span><span class=\"typ-punct\">,</span> <span class=\"typ-num\">40pt</span><span class=\"typ-punct\">)</span><span class=\"typ-punct\">,</span> relative<span class=\"typ-punct\">:</span> <span class=\"typ-key\">true</span><span class=\"typ-punct\">)</span>\n<span class=\"typ-key\">#</span><span class=\"typ-key\">let</span> up <span class=\"typ-op\">=</span> curve<span class=\"typ-punct\">.</span><span class=\"typ-func\">line</span><span class=\"typ-punct\">(</span><span class=\"typ-punct\">(</span><span class=\"typ-num\">40pt</span><span class=\"typ-punct\">,</span> <span class=\"typ-op\">-</span><span class=\"typ-num\">40pt</span><span class=\"typ-punct\">)</span><span class=\"typ-punct\">,</span> relative<span class=\"typ-punct\">:</span> <span class=\"typ-key\">true</span><span class=\"typ-punct\">)</span>\n\n<span class=\"typ-func\">#</span><span class=\"typ-func\">curve</span><span class=\"typ-punct\">(</span>\n  stroke<span class=\"typ-punct\">:</span> <span class=\"typ-num\">4pt</span> <span class=\"typ-op\">+</span> gradient<span class=\"typ-punct\">.</span><span class=\"typ-func\">linear</span><span class=\"typ-punct\">(</span>red<span class=\"typ-punct\">,</span> blue<span class=\"typ-punct\">)</span><span class=\"typ-punct\">,</span>\n  down<span class=\"typ-punct\">,</span> up<span class=\"typ-punct\">,</span> down<span class=\"typ-punct\">,</span> up<span class=\"typ-punct\">,</span> down<span class=\"typ-punct\">,</span>\n<span class=\"typ-punct\">)</span>\n</code></pre><div class=\"preview\"><img src=\"/en-US-v0.14.1/assets/6e6243695ed1c92082c2dfde5dadc46.png\" alt=\"Preview\"></div></div>","title":null}}],"types":["none","auto","length","color","gradient","stroke","tiling","dictionary"],"strings":[],"default":"<code><span class=\"typ-key\">auto</span></code>","positional":false,"named":true,"required":false,"variadic":false,"settable":true},{"name":"components","details":[{"kind":"html","content":"<p>The components of the curve, in the form of moves, line and Bézier\nsegment, and closes.</p>"}],"types":["content"],"strings":[],"default":null,"positional":true,"named":false,"required":true,"variadic":true,"settable":false}],"returns":["content"],"scope":[{"path":["curve"],"name":"move","title":"Curve Move","keywords":[],"oneliner":"Starts a new curve component.","element":true,"contextual":false,"deprecationMessage":null,"deprecationUntil":null,"details":[{"kind":"html","content":"<p>Starts a new curve component.</p>\n<p>If no <code>curve.move</code> element is passed, the curve will start at\n<code><span class=\"typ-punct\">(</span><span class=\"typ-num\">0pt</span><span class=\"typ-punct\">,</span> <span class=\"typ-num\">0pt</span><span class=\"typ-punct\">)</span></code>.</p>"},{"kind":"example","content":{"body":"<div class=\"previewed-code\"><pre><code><span class=\"typ-func\">#</span><span class=\"typ-func\">curve</span><span class=\"typ-punct\">(</span>\n  fill<span class=\"typ-punct\">:</span> blue<span class=\"typ-punct\">.</span><span class=\"typ-func\">lighten</span><span class=\"typ-punct\">(</span><span class=\"typ-num\">80%</span><span class=\"typ-punct\">)</span><span class=\"typ-punct\">,</span>\n  fill-rule<span class=\"typ-punct\">:</span> <span class=\"typ-str\">&quot;even-odd&quot;</span><span class=\"typ-punct\">,</span>\n  stroke<span class=\"typ-punct\">:</span> blue<span class=\"typ-punct\">,</span>\n  curve<span class=\"typ-punct\">.</span><span class=\"typ-func\">line</span><span class=\"typ-punct\">(</span><span class=\"typ-punct\">(</span><span class=\"typ-num\">50pt</span><span class=\"typ-punct\">,</span> <span class=\"typ-num\">0pt</span><span class=\"typ-punct\">)</span><span class=\"typ-punct\">)</span><span class=\"typ-punct\">,</span>\n  curve<span class=\"typ-punct\">.</span><span class=\"typ-func\">line</span><span class=\"typ-punct\">(</span><span class=\"typ-punct\">(</span><span class=\"typ-num\">50pt</span><span class=\"typ-punct\">,</span> <span class=\"typ-num\">50pt</span><span class=\"typ-punct\">)</span><span class=\"typ-punct\">)</span><span class=\"typ-punct\">,</span>\n  curve<span class=\"typ-punct\">.</span><span class=\"typ-func\">line</span><span class=\"typ-punct\">(</span><span class=\"typ-punct\">(</span><span class=\"typ-num\">0pt</span><span class=\"typ-punct\">,</span> <span class=\"typ-num\">50pt</span><span class=\"typ-punct\">)</span><span class=\"typ-punct\">)</span><span class=\"typ-punct\">,</span>\n  curve<span class=\"typ-punct\">.</span><span class=\"typ-func\">close</span><span class=\"typ-punct\">(</span><span class=\"typ-punct\">)</span><span class=\"typ-punct\">,</span>\n  curve<span class=\"typ-punct\">.</span><span class=\"typ-func\">move</span><span class=\"typ-punct\">(</span><span class=\"typ-punct\">(</span><span class=\"typ-num\">10pt</span><span class=\"typ-punct\">,</span> <span class=\"typ-num\">10pt</span><span class=\"typ-punct\">)</span><span class=\"typ-punct\">)</span><span class=\"typ-punct\">,</span>\n  curve<span class=\"typ-punct\">.</span><span class=\"typ-func\">line</span><span class=\"typ-punct\">(</span><span class=\"typ-punct\">(</span><span class=\"typ-num\">40pt</span><span class=\"typ-punct\">,</span> <span class=\"typ-num\">10pt</span><span class=\"typ-punct\">)</span><span class=\"typ-punct\">)</span><span class=\"typ-punct\">,</span>\n  curve<span class=\"typ-punct\">.</span><span class=\"typ-func\">line</span><span class=\"typ-punct\">(</span><span class=\"typ-punct\">(</span><span class=\"typ-num\">40pt</span><span class=\"typ-punct\">,</span> <span class=\"typ-num\">40pt</span><span class=\"typ-punct\">)</span><span class=\"typ-punct\">)</span><span class=\"typ-punct\">,</span>\n  curve<span class=\"typ-punct\">.</span><span class=\"typ-func\">line</span><span class=\"typ-punct\">(</span><span class=\"typ-punct\">(</span><span class=\"typ-num\">10pt</span><span class=\"typ-punct\">,</span> <span class=\"typ-num\">40pt</span><span class=\"typ-punct\">)</span><span class=\"typ-punct\">)</span><span class=\"typ-punct\">,</span>\n  curve<span class=\"typ-punct\">.</span><span class=\"typ-func\">close</span><span class=\"typ-punct\">(</span><span class=\"typ-punct\">)</span><span class=\"typ-punct\">,</span>\n<span class=\"typ-punct\">)</span>\n</code></pre><div class=\"preview\"><img src=\"/en-US-v0.14.1/assets/1955d468f48167d68b38f68a29541b16.png\" alt=\"Preview\"></div></div>","title":null}}],"self":false,"params":[{"name":"start","details":[{"kind":"html","content":"<p>The starting point for the new component.</p>"}],"types":["array"],"strings":[],"default":null,"positional":true,"named":false,"required":true,"variadic":false,"settable":false},{"name":"relative","details":[{"kind":"html","content":"<p>Whether the coordinates are relative to the previous point.</p>"}],"types":["bool"],"strings":[],"default":"<code><span class=\"typ-key\">false</span></code>","positional":false,"named":true,"required":false,"variadic":false,"settable":true}],"returns":["content"],"scope":[]},{"path":["curve"],"name":"line","title":"Curve Line","keywords":[],"oneliner":"Adds a straight line from the current point to a following one.","element":true,"contextual":false,"deprecationMessage":null,"deprecationUntil":null,"details":[{"kind":"html","content":"<p>Adds a straight line from the current point to a following one.</p>"},{"kind":"example","content":{"body":"<div class=\"previewed-code\"><pre><code><span class=\"typ-func\">#</span><span class=\"typ-func\">curve</span><span class=\"typ-punct\">(</span>\n  stroke<span class=\"typ-punct\">:</span> blue<span class=\"typ-punct\">,</span>\n  curve<span class=\"typ-punct\">.</span><span class=\"typ-func\">line</span><span class=\"typ-punct\">(</span><span class=\"typ-punct\">(</span><span class=\"typ-num\">50pt</span><span class=\"typ-punct\">,</span> <span class=\"typ-num\">0pt</span><span class=\"typ-punct\">)</span><span class=\"typ-punct\">)</span><span class=\"typ-punct\">,</span>\n  curve<span class=\"typ-punct\">.</span><span class=\"typ-func\">line</span><span class=\"typ-punct\">(</span><span class=\"typ-punct\">(</span><span class=\"typ-num\">50pt</span><span class=\"typ-punct\">,</span> <span class=\"typ-num\">50pt</span><span class=\"typ-punct\">)</span><span class=\"typ-punct\">)</span><span class=\"typ-punct\">,</span>\n  curve<span class=\"typ-punct\">.</span><span class=\"typ-func\">line</span><span class=\"typ-punct\">(</span><span class=\"typ-punct\">(</span><span class=\"typ-num\">100pt</span><span class=\"typ-punct\">,</span> <span class=\"typ-num\">50pt</span><span class=\"typ-punct\">)</span><span class=\"typ-punct\">)</span><span class=\"typ-punct\">,</span>\n  curve<span class=\"typ-punct\">.</span><span class=\"typ-func\">line</span><span class=\"typ-punct\">(</span><span class=\"typ-punct\">(</span><span class=\"typ-num\">100pt</span><span class=\"typ-punct\">,</span> <span class=\"typ-num\">0pt</span><span class=\"typ-punct\">)</span><span class=\"typ-punct\">)</span><span class=\"typ-punct\">,</span>\n  curve<span class=\"typ-punct\">.</span><span class=\"typ-func\">line</span><span class=\"typ-punct\">(</span><span class=\"typ-punct\">(</span><span class=\"typ-num\">150pt</span><span class=\"typ-punct\">,</span> <span class=\"typ-num\">0pt</span><span class=\"typ-punct\">)</span><span class=\"typ-punct\">)</span><span class=\"typ-punct\">,</span>\n<span class=\"typ-punct\">)</span>\n</code></pre><div class=\"preview\"><img src=\"/en-US-v0.14.1/assets/876b0adef11ce302e948d0dcfb2f286e.png\" alt=\"Preview\"></div></div>","title":null}}],"self":false,"params":[{"name":"end","details":[{"kind":"html","content":"<p>The point at which the line shall end.</p>"}],"types":["array"],"strings":[],"default":null,"positional":true,"named":false,"required":true,"variadic":false,"settable":false},{"name":"relative","details":[{"kind":"html","content":"<p>Whether the coordinates are relative to the previous point.</p>"},{"kind":"example","content":{"body":"<div class=\"previewed-code\"><pre><code><span class=\"typ-func\">#</span><span class=\"typ-func\">curve</span><span class=\"typ-punct\">(</span>\n  stroke<span class=\"typ-punct\">:</span> blue<span class=\"typ-punct\">,</span>\n  curve<span class=\"typ-punct\">.</span><span class=\"typ-func\">line</span><span class=\"typ-punct\">(</span><span class=\"typ-punct\">(</span><span class=\"typ-num\">50pt</span><span class=\"typ-punct\">,</span> <span class=\"typ-num\">0pt</span><span class=\"typ-punct\">)</span><span class=\"typ-punct\">,</span> relative<span class=\"typ-punct\">:</span> <span class=\"typ-key\">true</span><span class=\"typ-punct\">)</span><span class=\"typ-punct\">,</span>\n  curve<span class=\"typ-punct\">.</span><span class=\"typ-func\">line</span><span class=\"typ-punct\">(</span><span class=\"typ-punct\">(</span><span class=\"typ-num\">0pt</span><span class=\"typ-punct\">,</span> <span class=\"typ-num\">50pt</span><span class=\"typ-punct\">)</span><span class=\"typ-punct\">,</span> relative<span class=\"typ-punct\">:</span> <span class=\"typ-key\">true</span><span class=\"typ-punct\">)</span><span class=\"typ-punct\">,</span>\n  curve<span class=\"typ-punct\">.</span><span class=\"typ-func\">line</span><span class=\"typ-punct\">(</span><span class=\"typ-punct\">(</span><span class=\"typ-num\">50pt</span><span class=\"typ-punct\">,</span> <span class=\"typ-num\">0pt</span><span class=\"typ-punct\">)</span><span class=\"typ-punct\">,</span> relative<span class=\"typ-punct\">:</span> <span class=\"typ-key\">true</span><span class=\"typ-punct\">)</span><span class=\"typ-punct\">,</span>\n  curve<span class=\"typ-punct\">.</span><span class=\"typ-func\">line</span><span class=\"typ-punct\">(</span><span class=\"typ-punct\">(</span><span class=\"typ-num\">0pt</span><span class=\"typ-punct\">,</span> <span class=\"typ-op\">-</span><span class=\"typ-num\">50pt</span><span class=\"typ-punct\">)</span><span class=\"typ-punct\">,</span> relative<span class=\"typ-punct\">:</span> <span class=\"typ-key\">true</span><span class=\"typ-punct\">)</span><span class=\"typ-punct\">,</span>\n  curve<span class=\"typ-punct\">.</span><span class=\"typ-func\">line</span><span class=\"typ-punct\">(</span><span class=\"typ-punct\">(</span><span class=\"typ-num\">50pt</span><span class=\"typ-punct\">,</span> <span class=\"typ-num\">0pt</span><span class=\"typ-punct\">)</span><span class=\"typ-punct\">,</span> relative<span class=\"typ-punct\">:</span> <span class=\"typ-key\">true</span><span class=\"typ-punct\">)</span><span class=\"typ-punct\">,</span>\n<span class=\"typ-punct\">)</span>\n</code></pre><div class=\"preview\"><img src=\"/en-US-v0.14.1/assets/a1d4c814689467eb4fff957d859d4f8f.png\" alt=\"Preview\"></div></div>","title":null}}],"types":["bool"],"strings":[],"default":"<code><span class=\"typ-key\">false</span></code>","positional":false,"named":true,"required":false,"variadic":false,"settable":true}],"returns":["content"],"scope":[]},{"path":["curve"],"name":"quad","title":"Curve Quadratic Segment","keywords":[],"oneliner":"Adds a quadratic Bézier curve segment from the last point to `end`, using `control` as the control point.","element":true,"contextual":false,"deprecationMessage":null,"deprecationUntil":null,"details":[{"kind":"html","content":"<p>Adds a quadratic Bézier curve segment from the last point to <code>end</code>, using\n<code>control</code> as the control point.</p>"},{"kind":"example","content":{"body":"<div class=\"previewed-code\"><pre><code><span class=\"typ-comment\">// Function to illustrate where the control point is.</span>\n<span class=\"typ-key\">#</span><span class=\"typ-key\">let</span> <span class=\"typ-func\">mark</span><span class=\"typ-punct\">(</span><span class=\"typ-punct\">(</span>x<span class=\"typ-punct\">,</span> y<span class=\"typ-punct\">)</span><span class=\"typ-punct\">)</span> <span class=\"typ-op\">=</span> <span class=\"typ-func\">place</span><span class=\"typ-punct\">(</span>\n  dx<span class=\"typ-punct\">:</span> x <span class=\"typ-op\">-</span> <span class=\"typ-num\">1pt</span><span class=\"typ-punct\">,</span> dy<span class=\"typ-punct\">:</span> y <span class=\"typ-op\">-</span> <span class=\"typ-num\">1pt</span><span class=\"typ-punct\">,</span>\n  <span class=\"typ-func\">circle</span><span class=\"typ-punct\">(</span>fill<span class=\"typ-punct\">:</span> aqua<span class=\"typ-punct\">,</span> radius<span class=\"typ-punct\">:</span> <span class=\"typ-num\">2pt</span><span class=\"typ-punct\">)</span><span class=\"typ-punct\">,</span>\n<span class=\"typ-punct\">)</span>\n\n<span class=\"typ-func\">#</span><span class=\"typ-func\">mark</span><span class=\"typ-punct\">(</span><span class=\"typ-punct\">(</span><span class=\"typ-num\">20pt</span><span class=\"typ-punct\">,</span> <span class=\"typ-num\">20pt</span><span class=\"typ-punct\">)</span><span class=\"typ-punct\">)</span>\n\n<span class=\"typ-func\">#</span><span class=\"typ-func\">curve</span><span class=\"typ-punct\">(</span>\n  stroke<span class=\"typ-punct\">:</span> blue<span class=\"typ-punct\">,</span>\n  curve<span class=\"typ-punct\">.</span><span class=\"typ-func\">move</span><span class=\"typ-punct\">(</span><span class=\"typ-punct\">(</span><span class=\"typ-num\">0pt</span><span class=\"typ-punct\">,</span> <span class=\"typ-num\">100pt</span><span class=\"typ-punct\">)</span><span class=\"typ-punct\">)</span><span class=\"typ-punct\">,</span>\n  curve<span class=\"typ-punct\">.</span><span class=\"typ-func\">quad</span><span class=\"typ-punct\">(</span><span class=\"typ-punct\">(</span><span class=\"typ-num\">20pt</span><span class=\"typ-punct\">,</span> <span class=\"typ-num\">20pt</span><span class=\"typ-punct\">)</span><span class=\"typ-punct\">,</span> <span class=\"typ-punct\">(</span><span class=\"typ-num\">100pt</span><span class=\"typ-punct\">,</span> <span class=\"typ-num\">0pt</span><span class=\"typ-punct\">)</span><span class=\"typ-punct\">)</span><span class=\"typ-punct\">,</span>\n<span class=\"typ-punct\">)</span>\n</code></pre><div class=\"preview\"><img src=\"/en-US-v0.14.1/assets/724a52e2ec967c1d8032ca86a12f48a9.png\" alt=\"Preview\"></div></div>","title":null}}],"self":false,"params":[{"name":"control","details":[{"kind":"html","content":"<p>The control point of the quadratic Bézier curve.</p>\n<ul>\n<li>If <code><span class=\"typ-key\">auto</span></code> and this segment follows another quadratic Bézier curve,\nthe previous control point will be mirrored.</li>\n<li>If <code><span class=\"typ-key\">none</span></code>, the control point defaults to <code>end</code>, and the curve will\nbe a straight line.</li>\n</ul>"},{"kind":"example","content":{"body":"<div class=\"previewed-code\"><pre><code><span class=\"typ-func\">#</span><span class=\"typ-func\">curve</span><span class=\"typ-punct\">(</span>\n  stroke<span class=\"typ-punct\">:</span> <span class=\"typ-num\">2pt</span><span class=\"typ-punct\">,</span>\n  curve<span class=\"typ-punct\">.</span><span class=\"typ-func\">quad</span><span class=\"typ-punct\">(</span><span class=\"typ-punct\">(</span><span class=\"typ-num\">20pt</span><span class=\"typ-punct\">,</span> <span class=\"typ-num\">40pt</span><span class=\"typ-punct\">)</span><span class=\"typ-punct\">,</span> <span class=\"typ-punct\">(</span><span class=\"typ-num\">40pt</span><span class=\"typ-punct\">,</span> <span class=\"typ-num\">40pt</span><span class=\"typ-punct\">)</span><span class=\"typ-punct\">,</span> relative<span class=\"typ-punct\">:</span> <span class=\"typ-key\">true</span><span class=\"typ-punct\">)</span><span class=\"typ-punct\">,</span>\n  curve<span class=\"typ-punct\">.</span><span class=\"typ-func\">quad</span><span class=\"typ-punct\">(</span><span class=\"typ-key\">auto</span><span class=\"typ-punct\">,</span> <span class=\"typ-punct\">(</span><span class=\"typ-num\">40pt</span><span class=\"typ-punct\">,</span> <span class=\"typ-op\">-</span><span class=\"typ-num\">40pt</span><span class=\"typ-punct\">)</span><span class=\"typ-punct\">,</span> relative<span class=\"typ-punct\">:</span> <span class=\"typ-key\">true</span><span class=\"typ-punct\">)</span><span class=\"typ-punct\">,</span>\n<span class=\"typ-punct\">)</span>\n</code></pre><div class=\"preview\"><img src=\"/en-US-v0.14.1/assets/d47ff1e09330a54c9073cc1acf9d4f7d.png\" alt=\"Preview\"></div></div>","title":null}}],"types":["none","auto","array"],"strings":[],"default":null,"positional":true,"named":false,"required":true,"variadic":false,"settable":false},{"name":"end","details":[{"kind":"html","content":"<p>The point at which the segment shall end.</p>"}],"types":["array"],"strings":[],"default":null,"positional":true,"named":false,"required":true,"variadic":false,"settable":false},{"name":"relative","details":[{"kind":"html","content":"<p>Whether the <code>control</code> and <code>end</code> coordinates are relative to the previous\npoint.</p>"}],"types":["bool"],"strings":[],"default":"<code><span class=\"typ-key\">false</span></code>","positional":false,"named":true,"required":false,"variadic":false,"settable":true}],"returns":["content"],"scope":[]},{"path":["curve"],"name":"cubic","title":"Curve Cubic Segment","keywords":[],"oneliner":"Adds a cubic Bézier curve segment from the last point to `end`, using `control-start` and `control-end` as the control points.","element":true,"contextual":false,"deprecationMessage":null,"deprecationUntil":null,"details":[{"kind":"html","content":"<p>Adds a cubic Bézier curve segment from the last point to <code>end</code>, using\n<code>control-start</code> and <code>control-end</code> as the control points.</p>"},{"kind":"example","content":{"body":"<div class=\"previewed-code\"><pre><code><span class=\"typ-comment\">// Function to illustrate where the control points are.</span>\n<span class=\"typ-key\">#</span><span class=\"typ-key\">let</span> <span class=\"typ-func\">handle</span><span class=\"typ-punct\">(</span>start<span class=\"typ-punct\">,</span> end<span class=\"typ-punct\">)</span> <span class=\"typ-op\">=</span> <span class=\"typ-func\">place</span><span class=\"typ-punct\">(</span>\n  <span class=\"typ-func\">line</span><span class=\"typ-punct\">(</span>stroke<span class=\"typ-punct\">:</span> red<span class=\"typ-punct\">,</span> start<span class=\"typ-punct\">:</span> start<span class=\"typ-punct\">,</span> end<span class=\"typ-punct\">:</span> end<span class=\"typ-punct\">)</span>\n<span class=\"typ-punct\">)</span>\n\n<span class=\"typ-func\">#</span><span class=\"typ-func\">handle</span><span class=\"typ-punct\">(</span><span class=\"typ-punct\">(</span><span class=\"typ-num\">0pt</span><span class=\"typ-punct\">,</span> <span class=\"typ-num\">80pt</span><span class=\"typ-punct\">)</span><span class=\"typ-punct\">,</span> <span class=\"typ-punct\">(</span><span class=\"typ-num\">10pt</span><span class=\"typ-punct\">,</span> <span class=\"typ-num\">20pt</span><span class=\"typ-punct\">)</span><span class=\"typ-punct\">)</span>\n<span class=\"typ-func\">#</span><span class=\"typ-func\">handle</span><span class=\"typ-punct\">(</span><span class=\"typ-punct\">(</span><span class=\"typ-num\">90pt</span><span class=\"typ-punct\">,</span> <span class=\"typ-num\">60pt</span><span class=\"typ-punct\">)</span><span class=\"typ-punct\">,</span> <span class=\"typ-punct\">(</span><span class=\"typ-num\">100pt</span><span class=\"typ-punct\">,</span> <span class=\"typ-num\">0pt</span><span class=\"typ-punct\">)</span><span class=\"typ-punct\">)</span>\n\n<span class=\"typ-func\">#</span><span class=\"typ-func\">curve</span><span class=\"typ-punct\">(</span>\n  stroke<span class=\"typ-punct\">:</span> blue<span class=\"typ-punct\">,</span>\n  curve<span class=\"typ-punct\">.</span><span class=\"typ-func\">move</span><span class=\"typ-punct\">(</span><span class=\"typ-punct\">(</span><span class=\"typ-num\">0pt</span><span class=\"typ-punct\">,</span> <span class=\"typ-num\">80pt</span><span class=\"typ-punct\">)</span><span class=\"typ-punct\">)</span><span class=\"typ-punct\">,</span>\n  curve<span class=\"typ-punct\">.</span><span class=\"typ-func\">cubic</span><span class=\"typ-punct\">(</span><span class=\"typ-punct\">(</span><span class=\"typ-num\">10pt</span><span class=\"typ-punct\">,</span> <span class=\"typ-num\">20pt</span><span class=\"typ-punct\">)</span><span class=\"typ-punct\">,</span> <span class=\"typ-punct\">(</span><span class=\"typ-num\">90pt</span><span class=\"typ-punct\">,</span> <span class=\"typ-num\">60pt</span><span class=\"typ-punct\">)</span><span class=\"typ-punct\">,</span> <span class=\"typ-punct\">(</span><span class=\"typ-num\">100pt</span><span class=\"typ-punct\">,</span> <span class=\"typ-num\">0pt</span><span class=\"typ-punct\">)</span><span class=\"typ-punct\">)</span><span class=\"typ-punct\">,</span>\n<span class=\"typ-punct\">)</span>\n</code></pre><div class=\"preview\"><img src=\"/en-US-v0.14.1/assets/7a591ac9cdc0f51d93baa039d0a04122.png\" alt=\"Preview\"></div></div>","title":null}}],"self":false,"params":[{"name":"control-start","details":[{"kind":"html","content":"<p>The control point going out from the start of the curve segment.</p>\n<ul>\n<li>\n<p>If <code><span class=\"typ-key\">auto</span></code> and this element follows another <code>curve.cubic</code> element,\nthe last control point will be mirrored. In SVG terms, this makes\n<code>curve.cubic</code> behave like the <code>S</code> operator instead of the <code>C</code> operator.</p>\n</li>\n<li>\n<p>If <code><span class=\"typ-key\">none</span></code>, the curve has no first control point, or equivalently,\nthe control point defaults to the curve's starting point.</p>\n</li>\n</ul>"},{"kind":"example","content":{"body":"<div class=\"previewed-code\"><pre><code><span class=\"typ-func\">#</span><span class=\"typ-func\">curve</span><span class=\"typ-punct\">(</span>\n  stroke<span class=\"typ-punct\">:</span> blue<span class=\"typ-punct\">,</span>\n  curve<span class=\"typ-punct\">.</span><span class=\"typ-func\">move</span><span class=\"typ-punct\">(</span><span class=\"typ-punct\">(</span><span class=\"typ-num\">0pt</span><span class=\"typ-punct\">,</span> <span class=\"typ-num\">50pt</span><span class=\"typ-punct\">)</span><span class=\"typ-punct\">)</span><span class=\"typ-punct\">,</span>\n  <span class=\"typ-comment\">// - No start control point</span>\n  <span class=\"typ-comment\">// - End control point at `(20pt, 0pt)`</span>\n  <span class=\"typ-comment\">// - End point at `(50pt, 0pt)`</span>\n  curve<span class=\"typ-punct\">.</span><span class=\"typ-func\">cubic</span><span class=\"typ-punct\">(</span><span class=\"typ-key\">none</span><span class=\"typ-punct\">,</span> <span class=\"typ-punct\">(</span><span class=\"typ-num\">20pt</span><span class=\"typ-punct\">,</span> <span class=\"typ-num\">0pt</span><span class=\"typ-punct\">)</span><span class=\"typ-punct\">,</span> <span class=\"typ-punct\">(</span><span class=\"typ-num\">50pt</span><span class=\"typ-punct\">,</span> <span class=\"typ-num\">0pt</span><span class=\"typ-punct\">)</span><span class=\"typ-punct\">)</span><span class=\"typ-punct\">,</span>\n  <span class=\"typ-comment\">// - No start control point</span>\n  <span class=\"typ-comment\">// - No end control point</span>\n  <span class=\"typ-comment\">// - End point at `(50pt, 0pt)`</span>\n  curve<span class=\"typ-punct\">.</span><span class=\"typ-func\">cubic</span><span class=\"typ-punct\">(</span><span class=\"typ-key\">none</span><span class=\"typ-punct\">,</span> <span class=\"typ-key\">none</span><span class=\"typ-punct\">,</span> <span class=\"typ-punct\">(</span><span class=\"typ-num\">100pt</span><span class=\"typ-punct\">,</span> <span class=\"typ-num\">50pt</span><span class=\"typ-punct\">)</span><span class=\"typ-punct\">)</span><span class=\"typ-punct\">,</span>\n<span class=\"typ-punct\">)</span>\n\n<span class=\"typ-func\">#</span><span class=\"typ-func\">curve</span><span class=\"typ-punct\">(</span>\n  stroke<span class=\"typ-punct\">:</span> blue<span class=\"typ-punct\">,</span>\n  curve<span class=\"typ-punct\">.</span><span class=\"typ-func\">move</span><span class=\"typ-punct\">(</span><span class=\"typ-punct\">(</span><span class=\"typ-num\">0pt</span><span class=\"typ-punct\">,</span> <span class=\"typ-num\">50pt</span><span class=\"typ-punct\">)</span><span class=\"typ-punct\">)</span><span class=\"typ-punct\">,</span>\n  curve<span class=\"typ-punct\">.</span><span class=\"typ-func\">cubic</span><span class=\"typ-punct\">(</span><span class=\"typ-key\">none</span><span class=\"typ-punct\">,</span> <span class=\"typ-punct\">(</span><span class=\"typ-num\">20pt</span><span class=\"typ-punct\">,</span> <span class=\"typ-num\">0pt</span><span class=\"typ-punct\">)</span><span class=\"typ-punct\">,</span> <span class=\"typ-punct\">(</span><span class=\"typ-num\">50pt</span><span class=\"typ-punct\">,</span> <span class=\"typ-num\">0pt</span><span class=\"typ-punct\">)</span><span class=\"typ-punct\">)</span><span class=\"typ-punct\">,</span>\n  <span class=\"typ-comment\">// Passing `auto` instead of `none` means the start control point</span>\n  <span class=\"typ-comment\">// mirrors the end control point of the previous curve. Mirror of</span>\n  <span class=\"typ-comment\">// `(20pt, 0pt)` w.r.t `(50pt, 0pt)` is `(80pt, 0pt)`.</span>\n  curve<span class=\"typ-punct\">.</span><span class=\"typ-func\">cubic</span><span class=\"typ-punct\">(</span><span class=\"typ-key\">auto</span><span class=\"typ-punct\">,</span> <span class=\"typ-key\">none</span><span class=\"typ-punct\">,</span> <span class=\"typ-punct\">(</span><span class=\"typ-num\">100pt</span><span class=\"typ-punct\">,</span> <span class=\"typ-num\">50pt</span><span class=\"typ-punct\">)</span><span class=\"typ-punct\">)</span><span class=\"typ-punct\">,</span>\n<span class=\"typ-punct\">)</span>\n\n<span class=\"typ-func\">#</span><span class=\"typ-func\">curve</span><span class=\"typ-punct\">(</span>\n  stroke<span class=\"typ-punct\">:</span> blue<span class=\"typ-punct\">,</span>\n  curve<span class=\"typ-punct\">.</span><span class=\"typ-func\">move</span><span class=\"typ-punct\">(</span><span class=\"typ-punct\">(</span><span class=\"typ-num\">0pt</span><span class=\"typ-punct\">,</span> <span class=\"typ-num\">50pt</span><span class=\"typ-punct\">)</span><span class=\"typ-punct\">)</span><span class=\"typ-punct\">,</span>\n  curve<span class=\"typ-punct\">.</span><span class=\"typ-func\">cubic</span><span class=\"typ-punct\">(</span><span class=\"typ-key\">none</span><span class=\"typ-punct\">,</span> <span class=\"typ-punct\">(</span><span class=\"typ-num\">20pt</span><span class=\"typ-punct\">,</span> <span class=\"typ-num\">0pt</span><span class=\"typ-punct\">)</span><span class=\"typ-punct\">,</span> <span class=\"typ-punct\">(</span><span class=\"typ-num\">50pt</span><span class=\"typ-punct\">,</span> <span class=\"typ-num\">0pt</span><span class=\"typ-punct\">)</span><span class=\"typ-punct\">)</span><span class=\"typ-punct\">,</span>\n  <span class=\"typ-comment\">// `(80pt, 0pt)` is the same as `auto` in this case.</span>\n  curve<span class=\"typ-punct\">.</span><span class=\"typ-func\">cubic</span><span class=\"typ-punct\">(</span><span class=\"typ-punct\">(</span><span class=\"typ-num\">80pt</span><span class=\"typ-punct\">,</span> <span class=\"typ-num\">0pt</span><span class=\"typ-punct\">)</span><span class=\"typ-punct\">,</span> <span class=\"typ-key\">none</span><span class=\"typ-punct\">,</span> <span class=\"typ-punct\">(</span><span class=\"typ-num\">100pt</span><span class=\"typ-punct\">,</span> <span class=\"typ-num\">50pt</span><span class=\"typ-punct\">)</span><span class=\"typ-punct\">)</span><span class=\"typ-punct\">,</span>\n<span class=\"typ-punct\">)</span>\n</code></pre><div class=\"preview\"><img src=\"/en-US-v0.14.1/assets/ac3fb4a5274f0715a91fd3627b8c32dd.png\" alt=\"Preview\"></div></div>","title":null}}],"types":["none","auto","array"],"strings":[],"default":null,"positional":true,"named":false,"required":true,"variadic":false,"settable":false},{"name":"control-end","details":[{"kind":"html","content":"<p>The control point going into the end point of the curve segment.</p>\n<p>If set to <code><span class=\"typ-key\">none</span></code>, the curve has no end control point, or equivalently,\nthe control point defaults to the curve's end point.</p>"}],"types":["none","array"],"strings":[],"default":null,"positional":true,"named":false,"required":true,"variadic":false,"settable":false},{"name":"end","details":[{"kind":"html","content":"<p>The point at which the curve segment shall end.</p>"}],"types":["array"],"strings":[],"default":null,"positional":true,"named":false,"required":true,"variadic":false,"settable":false},{"name":"relative","details":[{"kind":"html","content":"<p>Whether the <code>control-start</code>, <code>control-end</code>, and <code>end</code> coordinates are\nrelative to the previous point.</p>"}],"types":["bool"],"strings":[],"default":"<code><span class=\"typ-key\">false</span></code>","positional":false,"named":true,"required":false,"variadic":false,"settable":true}],"returns":["content"],"scope":[]},{"path":["curve"],"name":"close","title":"Curve Close","keywords":[],"oneliner":"Closes the curve by adding a segment from the last point to the start of the curve (or the last preceding `curve.move` point).","element":true,"contextual":false,"deprecationMessage":null,"deprecationUntil":null,"details":[{"kind":"html","content":"<p>Closes the curve by adding a segment from the last point to the start of the\ncurve (or the last preceding <code>curve.move</code> point).</p>"},{"kind":"example","content":{"body":"<div class=\"previewed-code\"><pre><code><span class=\"typ-comment\">// We define a function to show the same shape with</span>\n<span class=\"typ-comment\">// both closing modes.</span>\n<span class=\"typ-key\">#</span><span class=\"typ-key\">let</span> <span class=\"typ-func\">shape</span><span class=\"typ-punct\">(</span>mode<span class=\"typ-punct\">:</span> <span class=\"typ-str\">&quot;smooth&quot;</span><span class=\"typ-punct\">)</span> <span class=\"typ-op\">=</span> <span class=\"typ-func\">curve</span><span class=\"typ-punct\">(</span>\n  fill<span class=\"typ-punct\">:</span> blue<span class=\"typ-punct\">.</span><span class=\"typ-func\">lighten</span><span class=\"typ-punct\">(</span><span class=\"typ-num\">80%</span><span class=\"typ-punct\">)</span><span class=\"typ-punct\">,</span>\n  stroke<span class=\"typ-punct\">:</span> blue<span class=\"typ-punct\">,</span>\n  curve<span class=\"typ-punct\">.</span><span class=\"typ-func\">move</span><span class=\"typ-punct\">(</span><span class=\"typ-punct\">(</span><span class=\"typ-num\">0pt</span><span class=\"typ-punct\">,</span> <span class=\"typ-num\">50pt</span><span class=\"typ-punct\">)</span><span class=\"typ-punct\">)</span><span class=\"typ-punct\">,</span>\n  curve<span class=\"typ-punct\">.</span><span class=\"typ-func\">line</span><span class=\"typ-punct\">(</span><span class=\"typ-punct\">(</span><span class=\"typ-num\">100pt</span><span class=\"typ-punct\">,</span> <span class=\"typ-num\">50pt</span><span class=\"typ-punct\">)</span><span class=\"typ-punct\">)</span><span class=\"typ-punct\">,</span>\n  curve<span class=\"typ-punct\">.</span><span class=\"typ-func\">cubic</span><span class=\"typ-punct\">(</span><span class=\"typ-key\">auto</span><span class=\"typ-punct\">,</span> <span class=\"typ-punct\">(</span><span class=\"typ-num\">90pt</span><span class=\"typ-punct\">,</span> <span class=\"typ-num\">0pt</span><span class=\"typ-punct\">)</span><span class=\"typ-punct\">,</span> <span class=\"typ-punct\">(</span><span class=\"typ-num\">50pt</span><span class=\"typ-punct\">,</span> <span class=\"typ-num\">0pt</span><span class=\"typ-punct\">)</span><span class=\"typ-punct\">)</span><span class=\"typ-punct\">,</span>\n  curve<span class=\"typ-punct\">.</span><span class=\"typ-func\">close</span><span class=\"typ-punct\">(</span>mode<span class=\"typ-punct\">:</span> mode<span class=\"typ-punct\">)</span><span class=\"typ-punct\">,</span>\n<span class=\"typ-punct\">)</span>\n\n<span class=\"typ-func\">#</span><span class=\"typ-func\">shape</span><span class=\"typ-punct\">(</span>mode<span class=\"typ-punct\">:</span> <span class=\"typ-str\">&quot;smooth&quot;</span><span class=\"typ-punct\">)</span>\n<span class=\"typ-func\">#</span><span class=\"typ-func\">shape</span><span class=\"typ-punct\">(</span>mode<span class=\"typ-punct\">:</span> <span class=\"typ-str\">&quot;straight&quot;</span><span class=\"typ-punct\">)</span>\n</code></pre><div class=\"preview\"><img src=\"/en-US-v0.14.1/assets/f4f90ea216d7104ae8866f4ba7a726.png\" alt=\"Preview\"></div></div>","title":null}}],"self":false,"params":[{"name":"mode","details":[{"kind":"html","content":"<p>How to close the curve.</p>"}],"types":["str"],"strings":[{"string":"smooth","details":"<p>Closes the curve with a smooth segment that takes into account the\ncontrol point opposite the start point.</p>"},{"string":"straight","details":"<p>Closes the curve with a straight line.</p>"}],"default":"<code><span class=\"typ-str\">&quot;smooth&quot;</span></code>","positional":false,"named":true,"required":false,"variadic":false,"settable":true}],"returns":["content"],"scope":[]}]}}}