Skip to content

Commit 5b61925

Browse files
authored
[css-borders-4][editorial] Rewrite syntaxes with property value range productions (#12736)
* [css-values-4] Syntax rewrite with property value range productions * [css-borders-4] Reorganize corner sections * [css-borders-4] Clarify corner-shape expansion
1 parent f7710d5 commit 5b61925

File tree

1 file changed

+56
-45
lines changed

1 file changed

+56
-45
lines changed

css-borders-4/Overview.bs

Lines changed: 56 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -346,17 +346,17 @@ The 'border-radius' shorthand</h4>
346346
See [[CSS3BG]].
347347

348348
<h3 id=corner-shaping>
349-
Corner Shaping: the 'corner-shape' property</h3>
349+
Corner Shaping: the 'corner-*-shape' properties</h3>
350350

351351
By default, non-zero 'border-radius' values
352352
define a quarter-ellipse <dfn export>corner shape</dfn>
353353
that rounds the affected corners,
354354
filling the <dfn export>corner area</dfn>
355355
defined by the 'border-radius' for that corner.
356356
However in some cases, other [=corner shapes=] are desired.
357-
The 'corner-shape' property (and its longhands)
357+
The 'corner-*-shape' properties (and their shorthands)
358358
specify exactly what [=corner shapes=] a box will use
359-
for the region defined by its 'border-radius' values.
359+
for the region defined by its 'border-*-radius' values.
360360

361361
The different [=corner shapes=] can all be expressed
362362
as different parameters to a <em>superellipse</em>.
@@ -459,20 +459,28 @@ Corner Shaping: the 'corner-shape' property</h3>
459459
or use one of the supplied keywords which represent commonly used parameters.
460460
See the <<corner-shape-value>> definition for details.
461461

462-
<h4 id=corner-shape-shorthand>
463-
The 'corner-shape' Shorthand</h4>
464-
465-
<pre class="propdef shorthand">
466-
Name: corner-shape
467-
Value: <<corner-shape-value>>{1,4}
462+
<pre class=propdef>
463+
Name: corner-top-left-shape, corner-top-right-shape, corner-bottom-right-shape, corner-bottom-left-shape, corner-start-start-shape, corner-start-end-shape, corner-end-start-shape, corner-end-end-shape
464+
Value: <<corner-shape-value>>
468465
Initial: round
469466
Applies to: all elements where 'border-radius' can apply
470467
Inherited: no
471-
Animation type: see individual properties
468+
Logical property group: corner-shape
469+
Computed value: the corresponding ''superellipse()'' value
470+
Animation Type: see [=superellipse interpolation=]
472471
</pre>
473472

474-
The 'corner-shape' property specifies the shape of the box's corners,
475-
within the region specified by 'border-radius'.
473+
The 'corner-*-*-shape' longhand properties
474+
set the corner shape for the given corner.
475+
476+
The [=flow-relative=] longhands
477+
('corner-start-start-shape', etc)
478+
correspond to the [=physical=] longhands
479+
('corner-top-left-shape', etc)
480+
depending on the element’s 'writing-mode', 'direction', and 'text-orientation'.
481+
The first <css>start</css>/<css>end</css> gives the block axis side,
482+
and the second the inline-axis side
483+
(i.e. patterned as <css>corner-<var ignore>block</var>-<var ignore>inline</var>-shape</css>).
476484

477485
<pre class=prod>
478486
<dfn><<corner-shape-value>></dfn> = <l>''round''</l> | <l>''scoop''</l> | <l>''bevel''</l> | <l>''notch''</l> | <l>''<corner-shape-value>/square''</l> | <l>''squircle''</l> |
@@ -543,55 +551,35 @@ The 'corner-shape' Shorthand</h4>
543551
the [=corner area=] is zero-sized as well,
544552
and 'corner-shape' won't have any effect.
545553

546-
'corner-shape' does not alter the [=overflow=] rules for 'border-radius',
554+
'corner-*-shape' does not alter the [=overflow=] rules for 'border-*-radius',
547555
except insofar as it shapes the corners differently;
548556
elements are still clipped by the shaped border as normal.
549557

550-
The curve specified by 'corner-shape'
558+
The curve specified by 'corner-*-shape'
551559
defines the <em>outer</em> edge of the border.
552560
The inner edge of the border follows the curve of the outer edge
553561
(in a way that's not necessarily expressible as a superellipse curve),
554562
with a nearly consistent distance from the outer edge throughout,
555563
(or a linearly increasing distance
556564
if the 'border-width' of the two border edges meeting at the the corner are not uniform).
557565

558-
'corner-shape' also affects the rendering of 'box-shadow',
566+
'corner-*-shape' also affects the rendering of 'box-shadow',
559567
and how the [=overflow clip edge=] is shaped when it's extended from the box,
560-
but these do not directly follow the 'corner-shape' path
568+
but these do not directly follow the 'corner-*-shape' path
561569
like the inner border edge does.
562570
Instead, it scales the 'corner-shape' path in an axis-aligned manner.
563571

572+
<h3 id="corner-shaping-shorthands">
573+
Corner Shaping Shorthands: the 'corner-shape' and 'corner-*-shape' shorthand properties</h3>
564574

565-
<h4 id=corner-shape-shorthands>
566-
The 'corner-*-shape' Shorthands And Longhands</h4>
567-
568-
<pre class=propdef>
569-
Name: corner-top-left-shape, corner-top-right-shape, corner-bottom-right-shape, corner-bottom-left-shape, corner-start-start-shape, corner-start-end-shape, corner-end-start-shape, corner-end-end-shape
570-
Value: <<corner-shape-value>>
571-
Initial: round
572-
Applies to: all elements where 'border-radius' can apply
573-
Inherited: no
574-
Logical property group: corner-shape
575-
Computed value: the corresponding ''superellipse()'' value
576-
Animation Type: see [=superellipse interpolation=]
577-
</pre>
578-
579-
The 'corner-*-*-shape' longhand properties
580-
set the corner shape for the given corner.
581-
582-
The [=flow-relative=] longhands
583-
('corner-start-start-shape', etc)
584-
correspond to the [=physical=] longhands
585-
('corner-top-left-shape', etc)
586-
depending on the element’s 'writing-mode', 'direction', and 'text-orientation'.
587-
The first <css>start</css>/<css>end</css> gives the block axis side,
588-
and the second the inline-axis side
589-
(i.e. patterned as <css>corner-<var ignore>block</var>-<var ignore>inline</var>-shape</css>).
575+
<h4 id="corner-shaping-side-shorthands">
576+
Shaping The Corners Of One Side:
577+
The 'corner-*-shape' shorthands:</h4>
590578

591579
<pre class="propdef shorthand">
592580
Name: corner-top-shape, corner-right-shape, corner-bottom-shape, corner-left-shape,
593581
corner-block-start-shape, corner-block-end-shape, corner-inline-start-shape, corner-inline-end-shape
594-
Value: <<corner-shape-value>>{1,2}
582+
Value: <<'corner-top-left-shape'>>{1,2}
595583
</pre>
596584

597585
The 'corner-*-shape'/etc shorthands set the two 'corner-*-*-shape'
@@ -610,6 +598,29 @@ The 'corner-*-shape' Shorthands And Longhands</h4>
610598
That is, ''corner-block-start-shape: round square''
611599
sets ''corner-start-start-shape: round; corner-start-end-shape: square;''.
612600

601+
<h4 id="corner-shaping-shorthand">
602+
Shaping All Corners At Once:
603+
The 'corner-shape' shorthand</h4>
604+
605+
<pre class="propdef shorthand">
606+
Name: corner-shape
607+
Value: <<'corner-top-left-shape'>>{1,4}
608+
Initial: round
609+
Applies to: all elements where 'border-radius' can apply
610+
Inherited: no
611+
Animation type: see individual properties
612+
</pre>
613+
614+
The 'corner-shape' property specifies the shape of the box's corners,
615+
within the region specified by 'border-radius'.
616+
The four values set the top, right, bottom and left shape, respectively.
617+
A missing left is the same as right,
618+
a missing bottom is the same as top,
619+
and a missing right is also the same as top.
620+
621+
<h3 id="corner-shorthands">
622+
Corner Sizing & Shaping Shorthands: the 'corner' and 'corner-*' shorthand properties</h3>
623+
613624
<h4 id="single-corner-shorthands">
614625
Sizing & shaping a corner:
615626
The 'corner-top-left', 'corner-top-right',
@@ -620,7 +631,7 @@ The 'corner-top-left', 'corner-top-right',
620631
<pre class=propdef>
621632
Name: corner-top-left, corner-top-right, corner-bottom-left, corner-bottom-right,
622633
corner-start-start, corner-start-end, corner-end-start, corner-end-end
623-
Value: <<length-percentage [0,&infin;]>>{1,2} || <<corner-shape-value>>
634+
Value: <<'border-top-left-radius'>>{1,2} || <<'corner-top-left-shape'>>
624635
Initial: 0
625636
Applies to: all elements (but see prose)
626637
Inherited: no
@@ -644,7 +655,7 @@ The 'corner-top', 'corner-right',
644655
<pre class=propdef>
645656
Name: corner-top, corner-right, corner-bottom, corner-left,
646657
corner-block-start, corner-block-end, corner-inline-start, corner-inline-end
647-
Value: [ <<length-percentage [0,&infin;]>>{1,2} [ / <<length-percentage [0,&infin;]>>{1,2} ]? ] || <<corner-shape-value>>{1,2}
658+
Value: <<'border-top-radius'>> || <<'corner-top-shape'>>
648659
Initial: 0
649660
Applies to: all elements (but see prose)
650661
Inherited: no
@@ -663,7 +674,7 @@ The 'corner' shorthand</h4>
663674

664675
<pre class="propdef">
665676
Name: corner
666-
Value: [ <<length-percentage [0,&infin;]>>{1,4} [ / <<length-percentage [0,&infin;]>>{1,4} ]? ] || <<corner-shape-value>>{1,4}
677+
Value: <<'border-radius'>> || <<'corner-shape'>>
667678
Initial: 0
668679
Applies to: all elements (but see prose)
669680
Inherited: no

0 commit comments

Comments
 (0)