-
Notifications
You must be signed in to change notification settings - Fork 23k
Document CSS shape() relative control points and add related Fx146 rel notes #42132
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -107,3 +107,7 @@ You can find more such features on the [Experimental features](/en-US/docs/Mozil | |
|
|
||
| Nightly builds now support the Navigation API, which provides the ability to initiate, intercept, and manage browser navigation actions. It can also examine an application's history entries. This is a successor to previous web platform features such as the {{domxref("History API", "", "", "nocode")}} and {{domxref("window.location")}}, which solves their shortcomings and is specifically aimed at the needs of {{glossary("SPA", "single-page applications (SPAs)")}}. | ||
| ([Firefox bug 1979288](https://bugzil.la/1979288)). | ||
|
|
||
| - **Relative control points in CSS `shape()` curve commands**: `layout.css.basic-shape-shape.enabled` | ||
|
|
||
| When specifying a [`<curve-command>`](/en-US/docs/Web/CSS/Reference/Values/basic-shape/shape#curve-command) or [`<smooth-command>`](/en-US/docs/Web/CSS/Reference/Values/basic-shape/shape#smooth-command) in a CSS [`shape()`](/en-US/docs/Web/CSS/Reference/Values/basic-shape/shape) function, [`<relative-control-point>`]()s can be used to specify curve control points that are positioned relative to the start point of the current command, end point of the current command, or the top-left (origin) point of the container the shape is being drawn inside. | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. same updates can be applied here |
||
| Original file line number | Diff line number | Diff line change | ||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
@@ -72,34 +72,65 @@ clip-path: shape( | |||||||||||||||||||||||||
| - `<shape-command>` | ||||||||||||||||||||||||||
| - : Specifies a list of one or more comma-separated commands that define the shape, using syntax similar to [SVG path commands](/en-US/docs/Web/SVG/Reference/Attribute/d#path_commands). Commands include `<move-command>`, `<line-command>`, `<hv-line-command>`, `<curve-command>`, `<smooth-command>`, `<arc-command>`, and `close`. Each command's starting point is the previous command's ending point, with the first point of the shape defined by the [`from <coordinate-pair>`](#from_coordinate-pair) parameter. | ||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
| The syntax of most shape commands is a keyword providing a directive, such as `move` or `line`, followed by the `by` or `to` keyword, and a set of coordinates. | ||||||||||||||||||||||||||
| #### Shape commands | ||||||||||||||||||||||||||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Nice! Thanks for collecting all this related content under a section |
||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
| `by`: Indicates that the `<coordinate-pair>` is relative to the command's starting point (a "relative" value). | ||||||||||||||||||||||||||
| The syntax of most shape commands is a keyword providing a directive, such as `move` or `line`, followed by the `by` or `to` keyword, and a set of coordinates. | ||||||||||||||||||||||||||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. minor edit to the already existing text
Suggested change
|
||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
| `to`: Indicates that the `<coordinate-pair>` is relative to the top-left corner of the reference box (an "absolute" value). | ||||||||||||||||||||||||||
| - `by`: Indicates that the `<coordinate-pair>` is relative to the command's starting point (a "relative" value). | ||||||||||||||||||||||||||
| - `to`: Indicates that the `<coordinate-pair>` is relative to the top-left corner of the reference box (an "absolute" value). | ||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
| > [!NOTE] | ||||||||||||||||||||||||||
| > If a coordinate in a `<coordinate-pair>` is specified as a percentage, the value is calculated relative to the respective width or height of the reference box. | ||||||||||||||||||||||||||
| > [!NOTE] | ||||||||||||||||||||||||||
| > If a coordinate in a `<coordinate-pair>` is specified as a percentage, the value is calculated relative to the respective width or height of the reference box. | ||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
| The following `<shape-command>`s can be specified: `<move-command>`, `<line-command>`, `<hv-line-command>`, `<curve-command>`, `<smooth-command>`, `<arc-command>`, and `close`. | ||||||||||||||||||||||||||
| The following `<shape-command>`s can be specified: | ||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
| `<move-command>`: Specified as `move [by | to] <coordinate-pair>`. This command adds a [MoveTo command](/en-US/docs/Web/SVG/Reference/Attribute/d#moveto_path_commands) to the list of shape commands. It draws nothing. Rather, it specifies the starting position for the next command. The `by` or `to` keyword specifies whether the `<coordinate-pair>` point is relative or absolute, respectively. If the `<move-command>` follows the `close` command, it identifies the starting point of the next shape or subpath. | ||||||||||||||||||||||||||
| - `<move-command>` | ||||||||||||||||||||||||||
| - : Specified as `move [by | to] <coordinate-pair>`. This command adds a [MoveTo command](/en-US/docs/Web/SVG/Reference/Attribute/d#moveto_path_commands) to the list of shape commands. It draws nothing. Rather, it specifies the starting position for the next command. The `by` or `to` keyword specifies whether the `<coordinate-pair>` point is relative or absolute, respectively. If the `<move-command>` follows the `close` command, it identifies the starting point of the next shape or subpath. | ||||||||||||||||||||||||||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. minor edit to the already existing text
Suggested change
|
||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
| `<line-command>`: Specified as `line [by | to] <coordinate-pair>`. This command adds a [LineTo command](/en-US/docs/Web/SVG/Reference/Attribute/d#lineto_path_commands) to the list of shape commands. It draws a straight line from the command's starting point to its ending point. The `by` or `to` keyword specifies whether the ending point specified by `<coordinate-pair>` is relative or absolute, respectively. | ||||||||||||||||||||||||||
| - `<line-command>` | ||||||||||||||||||||||||||
| - : Specified as `line [by | to] <coordinate-pair>`. This command adds a [LineTo command](/en-US/docs/Web/SVG/Reference/Attribute/d#lineto_path_commands) to the list of shape commands. It draws a straight line from the command's starting point to its ending point. The `by` or `to` keyword specifies whether the ending point specified by `<coordinate-pair>` is relative or absolute, respectively. | ||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
| `<hv-line-command>`: Specified as `[hline | vline] [by | to] <length-percentage>`. This command adds a horizontal (`hline`) or vertical (`vline`) [LineTo command](/en-US/docs/Web/SVG/Reference/Attribute/d#lineto_path_commands) to the list of shape commands. With `hline`, a horizontal line is drawn from the command's starting point `to` or `by` the `x` position defined by `<length-percentage>`. With `vline`, a vertical line is drawn from the command's starting point `to` or `by` the `y` position defined by `<length-percentage>`. The `by` or `to` keyword determines the relative or absolute ending point, respectively. This command is equivalent to `<line-command>` with one coordinate value set by the single `<length-percentage>` and the other coordinate value remaining unchanged from its starting command. | ||||||||||||||||||||||||||
| - `<hv-line-command>` | ||||||||||||||||||||||||||
| - : Specified as `[hline | vline] [by | to] <length-percentage>`. This command adds a horizontal (`hline`) or vertical (`vline`) [LineTo command](/en-US/docs/Web/SVG/Reference/Attribute/d#lineto_path_commands) to the list of shape commands. With `hline`, a horizontal line is drawn from the command's starting point `to` or `by` the `x` position defined by `<length-percentage>`. With `vline`, a vertical line is drawn from the command's starting point `to` or `by` the `y` position defined by `<length-percentage>`. The `by` or `to` keyword determines the relative or absolute ending point, respectively. This command is equivalent to `<line-command>` with one coordinate value set by the single `<length-percentage>` and the other coordinate value remaining unchanged from its starting command. | ||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
| `<curve-command>`: Specified as `curve [by | to] <coordinate-pair> with <coordinate-pair> [/ <coordinate-pair>]`. This command adds a [Bézier curve command](/en-US/docs/Web/SVG/Reference/Attribute/d#cubic_bézier_curve) to the list of shape commands. The `by` or `to` keyword determines whether the ending point of the curve, specified by the first `<coordinate-pair>`, is relative or absolute, respectively. The `with` keyword specifies the control points of the Bézier curve. | ||||||||||||||||||||||||||
| - If only a single `<coordinate-pair>` is provided, the command draws a [quadratic Bézier curve](/en-US/docs/Web/SVG/Reference/Attribute/d#quadratic_bézier_curve), which is defined by three points (the start point, control point, and end point). | ||||||||||||||||||||||||||
| - If two `<coordinate-pair>` values are provided, the command draws a cubic Bézier curve, which is defined by four points (the start point, two control points, and the end point). | ||||||||||||||||||||||||||
| - `<curve-command>` | ||||||||||||||||||||||||||
| - : Specified as `curve [by | to] <end-point> with <control-point> [/ <control-point>]`. This command adds a [Bézier curve command](/en-US/docs/Web/SVG/Reference/Attribute/d#cubic_bézier_curve) to the list of shape commands. The `by` or `to` keyword determines whether the ending point of the curve, specified by the `<end-point>`, is relative or absolute, respectively. | ||||||||||||||||||||||||||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. minor edit to the already existing text
Suggested change
|
||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
| `<smooth-command>`: Specified as `smooth [by | to] <coordinate-pair> [with <coordinate-pair>]`. This command adds a smooth [Bézier curve command](/en-US/docs/Web/SVG/Reference/Attribute/d#cubic_bézier_curve) to the list of shape commands. The `by` or `to` keyword determines whether the ending point of the curve, specified by the first `<coordinate-pair>`, is relative or absolute, respectively. | ||||||||||||||||||||||||||
| - If `with <coordinate-pair>` is omitted, the command draws a smooth quadratic Bézier curve, which uses the previous control point and the current endpoint to define the curve. | ||||||||||||||||||||||||||
| - If the optional `with` keyword is included, it specifies the control points of the curve through `<coordinate-pair>`, drawing a smooth cubic Bézier curve defined by the previous control point, the current control point, and the current endpoint. | ||||||||||||||||||||||||||
| The `with` keyword specifies the control points of the Bézier curve: | ||||||||||||||||||||||||||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||||||||||||||||||||||
| - If only a single `<control-point>` is provided, the command draws a [quadratic Bézier curve](/en-US/docs/Web/SVG/Reference/Attribute/d#quadratic_bézier_curve), which is defined by three points (the start point, control point, and end point). | ||||||||||||||||||||||||||
| - If two `<control-point>` values are provided, the command draws a cubic Bézier curve, which is defined by four points (the start point, two control points, and the end point). | ||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
| Valid values for the `<end-point>` component: | ||||||||||||||||||||||||||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||||||||||||||||||||||
| - If the curve end point is absolute (specified using `to`), `<end-point>` can be specified using {{cssxref("<position>")}} keywords or a `<coordinate-value-pair>`. | ||||||||||||||||||||||||||
| - If the curve end point is relative (specified using `by`), `<end-point>` can be specified using a `<coordinate-value-pair>`. | ||||||||||||||||||||||||||
|
Comment on lines
+104
to
+105
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. We can perhaps flip the phrasing here so that we mention the values first following a lead-in like "Valid values include:". Maybe it can then even be formatted as a definition list so it would be similar to
Suggested change
|
||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
| Valid values for the `<control-point>` components: | ||||||||||||||||||||||||||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||||||||||||||||||||||
| - {{cssxref("<position>")}} | ||||||||||||||||||||||||||
| - : Position keywords. Only valid when the curve end point is absolute (specified using `to`). | ||||||||||||||||||||||||||
| - `<coordinate-value-pair>` | ||||||||||||||||||||||||||
| - : A pair of {{cssxref("<length-percentage>")}} values representing coordinates. | ||||||||||||||||||||||||||
| - `<relative-control-point>` | ||||||||||||||||||||||||||
| - : A `<coordinate-value-pair>` followed by the `from` keyword and one of the following keywords: | ||||||||||||||||||||||||||
|
Comment on lines
+108
to
+113
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||||||||||||||||||||||
| - `start` | ||||||||||||||||||||||||||
| - : The control point is relative to the start point of the current command. | ||||||||||||||||||||||||||
| - `end` | ||||||||||||||||||||||||||
| - : The control point is relative to the end point of the current command. | ||||||||||||||||||||||||||
| - `origin` | ||||||||||||||||||||||||||
| - : The control point is relative to the the top-left (origin) point of the container the shape is being drawn inside. | ||||||||||||||||||||||||||
|
Comment on lines
+114
to
+119
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
| - `<smooth-command>` | ||||||||||||||||||||||||||
| - : Specified as `smooth [by | to] <end-point> [with <control-point>]`. This command adds a smooth [Bézier curve command](/en-US/docs/Web/SVG/Reference/Attribute/d#cubic_bézier_curve) to the list of shape commands. The `by` or `to` keyword determines whether the ending point of the curve, specified by the `<end-point>`, is relative or absolute, respectively. | ||||||||||||||||||||||||||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
| The `with` keyword specifies an optional control point for the Bézier curve: | ||||||||||||||||||||||||||
| - If `with <control-point>` is omitted, the command draws a smooth quadratic Bézier curve, which uses the previous control point and the current endpoint to define the curve. | ||||||||||||||||||||||||||
| - If the optional `with` keyword is included, it specifies a control points of the curve through `<control-point>`, drawing a smooth cubic Bézier curve defined by the previous control point, the current control point, and the current endpoint. | ||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
| Smooth curves ensure a continuous transition from the shape, while quadratic curves do not. Smooth quadratic curves maintain a seamless transition using a single control point, whereas smooth cubic curves provide a more refined transition using two control points. | ||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
| `<arc-command>`: Specified as `arc [by | to] <coordinate-pair> of <length-percentage> [<length-percentage>] [<arc-sweep> | <arc-size> | rotate <angle>]`. This command adds an [elliptical arc curve command](/en-US/docs/Web/SVG/Reference/Attribute/d#elliptical_arc_curve) to the list of shape commands. It draws an elliptical arc between a starting point and an ending point. The `by` or `to` keyword determines whether the ending point of the curve, specified by the first `<coordinate-pair>`, is relative or absolute, respectively. | ||||||||||||||||||||||||||
| Valid values for the `<end-point>` and `<control-point>` components are the same as those for [`<curve-command>`](#curve-command). | ||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
| - `<arc-command>` | ||||||||||||||||||||||||||
| - : Specified as `arc [by | to] <coordinate-pair> of <length-percentage> [<length-percentage>] [<arc-sweep> | <arc-size> | rotate <angle>]`. This command adds an [elliptical arc curve command](/en-US/docs/Web/SVG/Reference/Attribute/d#elliptical_arc_curve) to the list of shape commands. It draws an elliptical arc between a starting point and an ending point. The `by` or `to` keyword determines whether the ending point of the curve, specified by the first `<coordinate-pair>`, is relative or absolute, respectively. | ||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
| The elliptical arc curve command defines two possible ellipses, which intersect both the starting and ending points, and each can be traced clockwise or counterclockwise, resulting in four possible arcs depending on the arc size, direction, and angle. The `of` keyword specifies the size of the ellipse from which the arc is taken: the first `<length-percentage>` provides the horizontal radius of the ellipse, and the second `<length-percentage>` provides the vertical radius. | ||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
|
|
@@ -115,7 +146,8 @@ clip-path: shape( | |||||||||||||||||||||||||
| - If the horizontal and vertical radii don't describe an ellipse large enough to intersect both the starting point and ending points (after rotation by the specified `<angle>`), the radii are scaled up uniformly until the ellipse is just large enough to intersect both points. | ||||||||||||||||||||||||||
| - If the starting and ending points of the arc lie on exactly opposite sides of the ellipse, there is only one possible ellipse and two possible arcs. In this case, `<arc-sweep>` specifies the arc to choose, and `<arc-size>` has no effect. | ||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
| `close`: Adds a [ClosePath command](/en-US/docs/Web/SVG/Reference/Attribute/d#closepath) to the list of shape commands, drawing a straight line from the current position (end of the last command) to the first point in the path defined in the `from <coordinate-pair>` parameter. To close the shape without drawing a line, include a `<move-command>` with the originating coordinates before the close command. If the `close` command is immediately followed by a `<move-command>`, it defines the starting point of the next shape or subpath. | ||||||||||||||||||||||||||
| - `close` | ||||||||||||||||||||||||||
| - : Adds a [ClosePath command](/en-US/docs/Web/SVG/Reference/Attribute/d#closepath) to the list of shape commands, drawing a straight line from the current position (end of the last command) to the first point in the path defined in the `from <coordinate-pair>` parameter. To close the shape without drawing a line, include a `<move-command>` with the originating coordinates before the close command. If the `close` command is immediately followed by a `<move-command>`, it defines the starting point of the next shape or subpath. | ||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
| ## Description | ||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
|
|
@@ -309,6 +341,66 @@ body { | |||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
| {{EmbedLiveSample('Using shape() to define the visible part of an element', '100%', 300)}} | ||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
| ### Curve examples with relative control points | ||||||||||||||||||||||||||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. to make it similar in style to other example headings
Suggested change
|
||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
| This example also uses {{cssxref("clip-path")}} to create different shapes for the clipping region of different elements. The shapes are specified using a combination of [`<curve-command>`](#curve-command) and [`<smooth-command>`](#smooth-command) , with [`<relative-control-point>`](#relative-control-point) values used for the control points. Note how some of the control points are relative to the start of the current curve, some are relative to the end of the current curve, and some are relative to the origin of the containing box. | ||||||||||||||||||||||||||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Instead of the "Note" sentence, can we add some more details to explain the three curves (similar to the description in other examples on the page)
Suggested change
|
||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
| ```html hidden live-sample___relative-control-points | ||||||||||||||||||||||||||
| <div id="one"></div> | ||||||||||||||||||||||||||
| <div id="two"></div> | ||||||||||||||||||||||||||
| <div id="three"></div> | ||||||||||||||||||||||||||
|
Comment on lines
+349
to
+351
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. just for consistency with other examples on this page, can we call these shape1, shape2, and shape3? |
||||||||||||||||||||||||||
| ``` | ||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
| ```css hidden live-sample___relative-control-points | ||||||||||||||||||||||||||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Can we add the |
||||||||||||||||||||||||||
| body { | ||||||||||||||||||||||||||
| display: flex; | ||||||||||||||||||||||||||
| justify-content: center; | ||||||||||||||||||||||||||
| gap: 20px; | ||||||||||||||||||||||||||
| } | ||||||||||||||||||||||||||
| ``` | ||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
| ```css live-sample___relative-control-points | ||||||||||||||||||||||||||
| #one { | ||||||||||||||||||||||||||
| width: 200px; | ||||||||||||||||||||||||||
| height: 200px; | ||||||||||||||||||||||||||
| background: green; | ||||||||||||||||||||||||||
| clip-path: shape( | ||||||||||||||||||||||||||
| from center left, | ||||||||||||||||||||||||||
| curve by 200px 0 with 50% -50% from start / 50% 0 from origin, | ||||||||||||||||||||||||||
| curve by -200px 0 with 50% 100% from origin / -50% 50% from start, | ||||||||||||||||||||||||||
| close | ||||||||||||||||||||||||||
| ); | ||||||||||||||||||||||||||
| } | ||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
| #two { | ||||||||||||||||||||||||||
| width: 200px; | ||||||||||||||||||||||||||
| height: 200px; | ||||||||||||||||||||||||||
| background: purple; | ||||||||||||||||||||||||||
| clip-path: shape( | ||||||||||||||||||||||||||
| from center left, | ||||||||||||||||||||||||||
| curve to 200px 100px with 50% -80% from start, | ||||||||||||||||||||||||||
| curve to center left with 0% 70% from start / 20% 0% from end, | ||||||||||||||||||||||||||
| close | ||||||||||||||||||||||||||
| ); | ||||||||||||||||||||||||||
| } | ||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
| #three { | ||||||||||||||||||||||||||
| width: 200px; | ||||||||||||||||||||||||||
| height: 200px; | ||||||||||||||||||||||||||
| background: orangered; | ||||||||||||||||||||||||||
| clip-path: shape( | ||||||||||||||||||||||||||
| from center left, | ||||||||||||||||||||||||||
| curve by 200px 0px with 50% -80% from start, | ||||||||||||||||||||||||||
| smooth to center with 50% 100% from origin, | ||||||||||||||||||||||||||
| close | ||||||||||||||||||||||||||
| ); | ||||||||||||||||||||||||||
| } | ||||||||||||||||||||||||||
| ``` | ||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
| #### Result | ||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
| {{EmbedLiveSample('relative-control-points', '100%', 200)}} | ||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
| ## Specifications | ||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
| {{Specifications}} | ||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We could split this long sentence. Also turning it into active voice might help. How about: