@@ -449,7 +449,7 @@ Supported Shapes</h3>
449
449
450
450
</dd>
451
451
<dt> <dfn>path()</dfn> =
452
- path( [<<'fill-rule'>>,] ? <<string>> )
452
+ path( [<<'fill-rule'>>,] ? <<string>> )
453
453
</dt>
454
454
<dd dfn-type=value dfn-for="path()">
455
455
<ul>
@@ -480,11 +480,33 @@ Supported Shapes</h3>
480
480
if it is not present in the string
481
481
for properties that require a closed loop
482
482
(such as 'shape-outside' and 'clip-path' ).
483
+ <dt> <dfn>draw()</dfn> =
484
+ draw( [<<'fill-rule'>>,] ? from <<coordinate-pair>> , <<draw-segment>> #])
485
+ </dt>
486
+ <dd dfn-type=value dfn-for="shape()">
487
+ <ul>
488
+ <li>
489
+ <<'fill-rule'>> -
490
+ The filling rule used
491
+ to determine the interior
492
+ of the path.
493
+ See <a href="https://www.w3.org/TR/SVG/painting.html#FillRuleProperty">fill-rule</a> property
494
+ in SVG for details.
495
+ Possible values are ''nonzero''
496
+ or ''evenodd'' .
497
+ Default value when omitted is ''nonzero'' .
498
+ <li>
499
+ The <<coordinate-pair>> represents the initial point of the path.
500
+ <li>
501
+ The sequence of <dfn><<draw-segment>></dfn> s represent segments of an <a href="https://www.w3.org/TR/SVG11/paths.html#PathData">SVG Path</a> .
502
+ </ul>
483
503
</dl>
484
504
485
505
The arguments not defined above are defined as follows:
486
506
487
507
<dl>
508
+ <dt> <dfn><<coordinate-pair>></dfn> = <<length-percentage>> {2}
509
+ <dd> Defines a pair of coordinates x & y.
488
510
<dt> <dfn><<shape-radius>></dfn> = <<length-percentage>> | closest-side | farthest-side
489
511
<dd>
490
512
Defines a radius for a circle or ellipse. If omitted it defaults to closest-side.
@@ -512,10 +534,62 @@ Supported Shapes</h3>
512
534
this is the farthest side
513
535
in the radius dimension.
514
536
</ul>
515
- </dl>
537
+ <dt> <dfn><<draw-segment>></dfn> = <<move-segment>> | <<line-segment>> | <<perpendicular-line-segment>> |
538
+ <<curve-segment>> | <<smooth-segment>> | <<arc-segment>> | close
539
+ <dd>
540
+ Defines a single path segment. Every path segment corresponds to an SVG path segment.
541
+ <dt> <dfn><<segment-offset-reference>></dfn> = to | by
542
+ <dd>
543
+ Represents the reference from which offsets are computed in <<draw-segment>> s.
544
+ When ''to'' is present, the coordinates are relative to the top-left origin of the <a>reference box</a> .
545
+ Otherwise ''by'' is present, the coordinates are relative to the end position of the previous segment.
546
+
547
+ Note:
548
+ <<percentage>> values are always computed relative to the <a>reference box</a> , regardless of how offsets are computed.
549
+ <dd>
516
550
517
- <h3 id='basic-shape-computed-values'>
518
- Computed Values of Basic Shapes</h3>
551
+ <dt> <dfn><<move-segment>></dfn> = move <<segment-offset-reference>> <<coordinate-pair>>
552
+ <dd>
553
+ Corresponds to a <a href="">moveto</a> segment.
554
+ <dt> <dfn><<line-segment>></dfn> = line <<segment-offset-reference>> <<coordinate-pair>>
555
+ <dd>
556
+ Corresponds to a <a href="">lineto</a> segment.
557
+ <dt> <dfn><<perpendicular-line-segment>></dfn> = [horizontal|vertical] <<segment-offset-reference>> <<length-percentage>>
558
+ <dd>
559
+ Corresponds to a <a href="">horizontal</a> or <a href="">vertical</a> segment.
560
+ <dt> <dfn><<curve-segment>></dfn> = curve <<segment-offset-reference>> <<coordinate-pair>> via <<coordinate-pair>> {1,2}
561
+ <dd>
562
+ Corresponds to a <a href="">quadratic curve</a> segment if one <<coordinate-pair>> is provided,
563
+ otherwise corresponds to a <a href="">cubic curve</a> segment.
564
+ <dt> <dfn><<smooth-segment>></dfn> = smooth <<segment-offset-reference>> <<coordinate-pair>> [via <<coordinate-pair>>] ?
565
+ <dd>
566
+ Corresponds to a <a href="">smooth cubic curve</a> segment if a <<coordinate-pair>> is provided,
567
+ otherwise corresponds to a <a href="">smooth quadratic curve</a> segment.
568
+ <dt> <dfn><<arc-segment>></dfn> = arc <<segment-offset-reference>> <<coordinate-pair>> [[radius <<length-percentage>>{1,2}] && <<arc-large>> && <<arc-sweep>> && <<angle>> ?]
569
+ <dd>
570
+ Corresponds to an <a href="">arc</a> segment, with a given radius, x-axis rotation <<angle>> , <a href="">large</a> and <a href="">sweep</a> flags.
571
+ <dt> <dfn><<arc-large>></dfn> = [large | small] ?
572
+ <dd>
573
+ If ''small'' is set, the arc's <a href="">large</a> flag is set to 0.
574
+ If ''large'' is set, the arc's <a href="">large</a> flag is set to 1.
575
+ If it is not set, the automatic value is used.
576
+ <dt> <dfn><<arc-sweep>></dfn> = [cw | ccw] ?
577
+ <dd>
578
+ If ''ccw'' is set, the arc's <a href="">sweep</a> flag is set to 0.
579
+ If ''cw'' is set, the arc's <a href="">sweep</a> flag is set to 1.
580
+ If it is not set, the automatic value is used.
581
+ <dt> close
582
+ <dd>
583
+ Corrsepponds to a <a href="">closepath</a> segment.
584
+ </dl>
585
+ <h3 id='basic-shape-computed-values'>Closing paths</h3>
586
+ For ''path()'' and ''draw()'' shapes, the UA must close the derived path
587
+ with an implicit closepath command ("z" or "Z")
588
+ if it is not present in the path segments or string
589
+ for properties that require a closed loop
590
+ (such as 'shape-outside' and 'clip-path' ).
591
+
592
+ <h3 id='basic-shape-computed-values'>Computed Values of Basic Shapes</h3>
519
593
520
594
The values in a <<basic-shape>> function are computed as specified, with these exceptions:
521
595
0 commit comments