From a3e9218702d0d8c986f3cf1c2853f35299954453 Mon Sep 17 00:00:00 2001
From: Noam Rosenthal
Date: Thu, 30 Jan 2025 12:13:55 +0000
Subject: [PATCH 01/14] [css-borders-4] Specify `corner-shape` based on
superellipse
This specifies the `corner-shape` group, including:
- general description and interaction with border-radius
- all the individual corners, side shorthands, and overall shorthand
- multiple keywords, and how they translate to a `superellipse()`
- The superellipse formula, and how it is rendered
- How the exponent of the superellipse interpolates
Open issues (will open separately):
- Add a few examples
- Resolve on "straight" vs "none" for the convex angle.
- Resolve on the exact interpolation formula
- Define restrictions for border rendering
Closes #10993
Based on resolution https://github.com/w3c/csswg-drafts/issues/10993#issuecomment-2622578937
---
css-borders-4/Overview.bs | 199 ++++++++++++++++++++++++++++++--------
1 file changed, 157 insertions(+), 42 deletions(-)
diff --git a/css-borders-4/Overview.bs b/css-borders-4/Overview.bs
index 2b0051e5569..bd42c4ffd9c 100644
--- a/css-borders-4/Overview.bs
+++ b/css-borders-4/Overview.bs
@@ -336,29 +336,171 @@ The 'border-radius' shorthand
See [[CSS3BG]].
-Corner Shaping: the 'corner-shape' property
+Corner Shaping
+
+By default, non-zero border-radii define a quarter-ellipse that rounds the affected corners.
+However in some cases, other corner shapes are desired.
+The 'corner-shape' property group specifies a reinterpretation of the radii to define other corner shapes.
+
+The different shapes applicable to 'corner-shape' can be expressed as different parameters to a superellipse.
+A superellipse is a closed curve resembling an ellipse, and based on its `k` parameter can express all the shapes between a square, an ellipse, and a notch.
+
+To allow full expression as well as interpolation, the 'corner-shape' properties can provide its own superellipse parameter using the 'superellipse()' function,
+or use one of the supplied keywords which represent commonly used parameters. See the <> definition for details.
+
+
+Rendering 'corner-shape'
+'corner-shape' works alongside 'border-radius', and does not have any visual effect with a 'border-radius' of 0.
+It acts as an alteration on top of the default round 'border-radius', and thus can be used as progressive enhancement.
+
+Like 'border-radius', 'corner-shape' clips elements according to the [=overflow=] rules, and applies to the rendering of the border.
+Since stroking a superellipse accurately may be computationally intensive, user agents may approximate the path using bezier curves,
+as well as account for sharp edges and overlaps.
+
+Issue: describe the rendering requirements in more detail.
+
+
+'corner-shape' values
+
+
+ <> = ''round'' | ''scoop'' | ''bevel'' | ''notch'' | ''straight'' | ''squircle'' | superellipse(<>)
+
+
+
+ - ''round''
+
- Border radii define a convex elliptical curve at the corner. Equivalent to superellipse(2).
+
- ''scoop''
+
- Border radii define a concave elliptical curve at the corner. Equivalent to superellipse(0.5).
+
- ''bevel''
+
- Border radii define a diagonal slice at the corner. Equivalent to superellipse(1).
+
- ''notch''
+
- Border radii define a concave angle at the corner. Equivalent to superellipse(0).
+
- ''straight''
+
- Border radii define a convex angle at the corner.
+ This would have the same visual effect as a 'border-radius' of 0. This is different from having a 'border-radius' of 0 when animating.
+ Equivalent to superellipse(infinity).
+
- ''squircle''
+
- Border radii define a convex curve between an ellipse and an convex angle, equivalent to superellipse(4).
+
+
+ Issue: resolve on ''straight'' vs none.
+
+ The superellipse() function describes the curvature of the corner.
+ It accept a <> superellipse exponent, which defines the curvature of the corner, or the exponent of the formula.
+ The [=superellipse exponent=] accepts values between 0 (a straight concave angle) and infinity (a straight convex angle),
+ with the values in between representing the curvatures in between.
+
+ The ''superellipse()'' formula can be described in cartesian coordinates, as follows,
+ where a is the horizontal ''border-radius''
+ b is the vertical ''border-radius'', and k is the [=superellipse exponent=]:
+
+
+ |x/a|^k + |y/b|^k = 1
+
+
+
+
+Corner Shaping: the 'corner-*-*-shape' properties
+
+
+ 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
+ Value: <>
+ Initial: round
+ Applies to: all elements where 'border-radius' can apply
+ Inherited: no
+ Logical property group: corner-shape
+ Computed value: the corresponding ''superellipse()'' value
+ Animation Type: see [=superellipse interpolation=]
+
+
+ The [=flow-relative=] properties
+ 'corner-start-start-shape',
+ 'corner-start-end-shape',
+ 'corner-end-start-shape',
+ and 'corner-end-end-shape'
+ correspond to the [=physical=] properties
+ 'corner-top-left-shape',
+ 'corner-bottom-left-shape',
+ 'corner-top-right-shape',
+ and 'corner-bottom-right-shape'.
+ The mapping depends on the element’s 'writing-mode', 'direction', and 'text-orientation',
+ with the first start/end giving the block axis side,
+ and the second the inline-axis side
+ (i.e. patterned as 'corner-block-inline-shape').
+
+
+Shaping The Corners Of One Side:
+The 'corner-top-shape', 'corner-right-shape',
+'corner-bottom-shape', 'corner-left-shape',
+'corner-block-start-shape', 'corner-block-end-shape',
+'corner-inline-start-shape', 'corner-inline-end-shape' shorthands
+
+
+ Name: corner-top-shape, corner-right-shape, corner-bottom-shape, corner-left-shape,
+ corner-block-start-shape, corner-block-end-shape, corner-inline-start-shape, corner-inline-end-shape
+ Value: <> [ / <> ]
+ Initial: round
+ Applies to: all elements where 'border-radius' can apply
+ Inherited: no
+ Computed value: see individual properties
+ Animation type: see individual properties
+
+
+ The 'corner-*-shape' shorthands set the two 'corner-*-*-shape'
+ longhand properties of the related side. If values are given before
+ and after the slash, then the values before the slash set the
+ horizontal radius and the values after the slash set the vertical radius.
+ If there is no slash, then the values set both radii equally.
+ The two values for the radii are given in the order
+ top-left, top-right for 'corner-top-shape',
+ top-right, bottom-right for 'corner-right-shape',
+ bottom-left, bottom-right for 'corner-bottom-shape',
+ top-left, bottom-left for 'corner-left-shape',
+ start-start, start-end for 'corner-block-start-shape',
+ end-start, end-end for 'corner-block-end-shape'
+ start-start, end-start for 'corner-inline-start-shape',
+ and start-end, end-end for 'corner-inline-end-shape'.
+ If the second value is omitted it is copied from the first.
+
+
+Shaping all the corners at once
Name: corner-shape
- Value: [ round | angle ]{1,4}
+ Value: <>{1,2} / [ <>{1,2} ]?
Initial: round
- Applies to: all elements, except table element when 'border-collapse' is ''collapse''
+ Applies to: all elements where 'border-radius' can apply
Inherited: no
- Animation type: discrete
+ Animation type: see individual properties
- By default, non-zero border-radii define
- a quarter-ellipse that rounds the affected corners.
- However in some cases, other corner shapes are desired.
- The 'corner-shape' property specifies a reinterpretation of the radii
- to define other corner shapes.
+ Applies the shape to all corners, following the same rules as ''border-radius''.
-
- - ''round''
-
- Border radii define a convex elliptical curve at the corner.
-
- ''angle''
-
- Border radii define a diagonal slice at the corner.
-
+
+Interpolating corner shapes
+
+Since a <> can always be expressed a ''superellipse()'' with an [=superellipse exponent=] variable, interpolating between two
+<>s is done by interpolating the [=superellipse exponent=] itself.
+Since it's an exponent, interpolating it linearly would result in an effect where concave corners interpolate at a much higher velocity than convex corners.
+To balance that, the superellipse interpolation formula describes how a [=superellipse exponent=] is converted to a value between 0 and 1, and vice versa:
+
+
+To interpolate a <> |exponent| to an interpolation value between 0 and 1:
+ 1. If |exponent| is 0, return 0.
+ 1. If |exponent| is ∞, return 1.
+ 1. Return 1/(2^(1/|exponent|)).
+
+To convert a <> |interpolationValue| back to a [=superellipse exponent=]:
+ 1. If |interpolationValue| is 0, return 0.
+ 1. If |interpolationValue| is 1, return ∞.
+ 1. Return ln(0.5)/ln(|interpolationValue|).
+
+
+Issue: resolve on this or another interpolation formula.
+
+
+
+
For example, the following declarations create a right-pointing next button.
@@ -398,33 +540,6 @@ Corner Shaping: the 'corner-shape' property
How to allow custom corners? Perhaps a ''path()'' function? Or a ''cubic-bezier()''?
Something else?
-
-Corner Shape and Size: the 'corners' shorthand
-
-
- Name: corners
- Value: <<'corner-shape'>> || <<'border-radius'>>
-
-
- The 'corners' shorthand sets 'corner-shape' and 'border-radius' in the same declaration.
- If either is omitted, it is reset to its initial value.
-
-
- For example, the following declaration creates a diamond shape.
-
corners: angle 50%;
- In UAs that don't support 'corner-shape', the declaration is ignored
- (falls back to a rectangle).
-
-
-
- In this example, the first declaration creates tabs with vertical sides and rounded corners using 'border-radius',
- while the second example makes them trapezoid-shaped in UAs that support 'corners'.
-
- border-radius: 0.25em 0.25em 0 0;
- corners: angle 0.25em 0.25em 0 0 / 50% 50% 0 0;
-
-
-
Partial borders
From 137925d1fe77d8320bc0e8277df0f9bb76f685c1 Mon Sep 17 00:00:00 2001
From: Noam Rosenthal
Date: Thu, 30 Jan 2025 15:42:56 +0000
Subject: [PATCH 02/14] Add issue numbers
---
css-borders-4/Overview.bs | 18 +++++++++++-------
1 file changed, 11 insertions(+), 7 deletions(-)
diff --git a/css-borders-4/Overview.bs b/css-borders-4/Overview.bs
index bd42c4ffd9c..5150f7bde2e 100644
--- a/css-borders-4/Overview.bs
+++ b/css-borders-4/Overview.bs
@@ -357,7 +357,7 @@ Like 'border-radius', 'corner-shape' clips elements according to the [=overflow=
Since stroking a superellipse accurately may be computationally intensive, user agents may approximate the path using bezier curves,
as well as account for sharp edges and overlaps.
-Issue: describe the rendering requirements in more detail.
+Issue #11610: describe the rendering requirements in more detail.
'corner-shape' values
@@ -368,22 +368,26 @@ Issue: describe the rendering requirements in more detail.
- ''round''
-
- Border radii define a convex elliptical curve at the corner. Equivalent to superellipse(2).
+
-
+ Border radii define a convex elliptical curve at the corner. Equivalent to superellipse(2).
+
+ Note: this is the initial value of 'corner-shape' properties, as elements with 'border-radius' would be rounded.
+
- ''scoop''
- Border radii define a concave elliptical curve at the corner. Equivalent to superellipse(0.5).
- ''bevel''
- Border radii define a diagonal slice at the corner. Equivalent to superellipse(1).
- ''notch''
-
- Border radii define a concave angle at the corner. Equivalent to superellipse(0).
+
- Border radii define a concave 90deg angle at the corner. Equivalent to superellipse(0).
- ''straight''
-
- Border radii define a convex angle at the corner.
+
- Border radii define a convex 90deg angle at the corner.
This would have the same visual effect as a 'border-radius' of 0. This is different from having a 'border-radius' of 0 when animating.
Equivalent to superellipse(infinity).
- ''squircle''
- Border radii define a convex curve between an ellipse and an convex angle, equivalent to superellipse(4).
- Issue: resolve on ''straight'' vs none.
+ Issue #11607: resolve on ''straight'' vs none.
The superellipse() function describes the curvature of the corner.
It accept a <> superellipse exponent, which defines the curvature of the corner, or the exponent of the formula.
@@ -479,7 +483,7 @@ Shaping all the corners at once
Interpolating corner shapes
-Since a <> can always be expressed a ''superellipse()'' with an [=superellipse exponent=] variable, interpolating between two
+Since a <> can always be expressed by a ''superellipse()'' with an [=superellipse exponent=] variable, interpolating between two
<>s is done by interpolating the [=superellipse exponent=] itself.
Since it's an exponent, interpolating it linearly would result in an effect where concave corners interpolate at a much higher velocity than convex corners.
To balance that, the superellipse interpolation formula describes how a [=superellipse exponent=] is converted to a value between 0 and 1, and vice versa:
@@ -496,7 +500,7 @@ To convert a <> |interpolationValue| back to a [=superellipse expo
1. Return ln(0.5)/ln(|interpolationValue|).
-Issue: resolve on this or another interpolation formula.
+Issue #11608: resolve on this or another interpolation formula.
From 0be96d1d499327fc53ded411a81ff37d4f72f9fa Mon Sep 17 00:00:00 2001
From: Noam Rosenthal
Date: Thu, 30 Jan 2025 16:16:19 +0000
Subject: [PATCH 03/14] Add link to existing restriction
---
css-borders-4/Overview.bs | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/css-borders-4/Overview.bs b/css-borders-4/Overview.bs
index 5150f7bde2e..9b54babe348 100644
--- a/css-borders-4/Overview.bs
+++ b/css-borders-4/Overview.bs
@@ -357,7 +357,10 @@ Like 'border-radius', 'corner-shape' clips elements according to the [=overflow=
Since stroking a superellipse accurately may be computationally intensive, user agents may approximate the path using bezier curves,
as well as account for sharp edges and overlaps.
-Issue #11610: describe the rendering requirements in more detail.
+Note that `border-radius` already has a corner overlap restriction,
+and it's unclear whether 'corner-shape' would require additional restrictions.
+
+Issue #11610: check if we need additional rendering restrictions.
'corner-shape' values
From 9a2403a1a1678544157b8f46a4d7ac37321d09ca Mon Sep 17 00:00:00 2001
From: Noam Rosenthal
Date: Thu, 30 Jan 2025 17:48:53 +0000
Subject: [PATCH 04/14] Update css-borders-4/Overview.bs
Co-authored-by: Tab Atkins Jr.
---
css-borders-4/Overview.bs | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/css-borders-4/Overview.bs b/css-borders-4/Overview.bs
index 9b54babe348..cb3e935167e 100644
--- a/css-borders-4/Overview.bs
+++ b/css-borders-4/Overview.bs
@@ -392,7 +392,7 @@ Issue #11610: che
Issue #11607: resolve on ''straight'' vs none.
- The superellipse() function describes the curvature of the corner.
+ The superellipse( <> | infinity ) function describes the curvature of the corner.
It accept a <> superellipse exponent, which defines the curvature of the corner, or the exponent of the formula.
The [=superellipse exponent=] accepts values between 0 (a straight concave angle) and infinity (a straight convex angle),
with the values in between representing the curvatures in between.
From ff8cbd41f7bb3a3ca2b786df00c860c8286afc0d Mon Sep 17 00:00:00 2001
From: Noam Rosenthal
Date: Thu, 30 Jan 2025 17:48:59 +0000
Subject: [PATCH 05/14] Update css-borders-4/Overview.bs
Co-authored-by: Tab Atkins Jr.
---
css-borders-4/Overview.bs | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/css-borders-4/Overview.bs b/css-borders-4/Overview.bs
index cb3e935167e..857f1b27776 100644
--- a/css-borders-4/Overview.bs
+++ b/css-borders-4/Overview.bs
@@ -357,8 +357,8 @@ Like 'border-radius', 'corner-shape' clips elements according to the [=overflow=
Since stroking a superellipse accurately may be computationally intensive, user agents may approximate the path using bezier curves,
as well as account for sharp edges and overlaps.
-Note that `border-radius` already has a corner overlap restriction,
-and it's unclear whether 'corner-shape' would require additional restrictions.
+Issue: 'border-radius' already handles *adjacent* corners overlapping by shrinking the radiuses proportionally.
+A negative ''superellipse()'' parameter allows for *opposite* corners to sometimes overlap, and needs additional restrictions defined.
Issue #11610: check if we need additional rendering restrictions.
From 4246347d6fcb2113d47ff95b78459a7c61574983 Mon Sep 17 00:00:00 2001
From: Noam Rosenthal
Date: Thu, 30 Jan 2025 17:49:06 +0000
Subject: [PATCH 06/14] Update css-borders-4/Overview.bs
Co-authored-by: Tab Atkins Jr.
---
css-borders-4/Overview.bs | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/css-borders-4/Overview.bs b/css-borders-4/Overview.bs
index 857f1b27776..ccb8e6005aa 100644
--- a/css-borders-4/Overview.bs
+++ b/css-borders-4/Overview.bs
@@ -370,7 +370,7 @@ Issue #11610: che
- - ''round''
+
- round
-
Border radii define a convex elliptical curve at the corner. Equivalent to superellipse(2).
From ff932193c919c54f06b08ab677c04ee2d97b5640 Mon Sep 17 00:00:00 2001
From: Noam Rosenthal
Date: Thu, 30 Jan 2025 17:49:12 +0000
Subject: [PATCH 07/14] Update css-borders-4/Overview.bs
Co-authored-by: Tab Atkins Jr.
---
css-borders-4/Overview.bs | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/css-borders-4/Overview.bs b/css-borders-4/Overview.bs
index ccb8e6005aa..549df6300c6 100644
--- a/css-borders-4/Overview.bs
+++ b/css-borders-4/Overview.bs
@@ -376,7 +376,7 @@ Issue #11610: che
Note: this is the initial value of 'corner-shape' properties, as elements with 'border-radius' would be rounded.
-
- ''scoop''
+
- scoop
- Border radii define a concave elliptical curve at the corner. Equivalent to superellipse(0.5).
- ''bevel''
- Border radii define a diagonal slice at the corner. Equivalent to superellipse(1).
From 93397894879a58905b6498c4a3be2f2757514dd7 Mon Sep 17 00:00:00 2001
From: Noam Rosenthal
Date: Thu, 30 Jan 2025 17:49:18 +0000
Subject: [PATCH 08/14] Update css-borders-4/Overview.bs
Co-authored-by: Tab Atkins Jr.
---
css-borders-4/Overview.bs | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/css-borders-4/Overview.bs b/css-borders-4/Overview.bs
index 549df6300c6..a15f8283a58 100644
--- a/css-borders-4/Overview.bs
+++ b/css-borders-4/Overview.bs
@@ -369,7 +369,7 @@ Issue #11610: che
<> = ''round'' | ''scoop'' | ''bevel'' | ''notch'' | ''straight'' | ''squircle'' | superellipse(<>)
-
+
- round
-
Border radii define a convex elliptical curve at the corner. Equivalent to superellipse(2).
From 580ad8c9b6085f077a19b8f4eff7401a1b11803e Mon Sep 17 00:00:00 2001
From: Noam Rosenthal
Date: Thu, 30 Jan 2025 17:49:24 +0000
Subject: [PATCH 09/14] Update css-borders-4/Overview.bs
Co-authored-by: Tab Atkins Jr.
---
css-borders-4/Overview.bs | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/css-borders-4/Overview.bs b/css-borders-4/Overview.bs
index a15f8283a58..b73b410aba5 100644
--- a/css-borders-4/Overview.bs
+++ b/css-borders-4/Overview.bs
@@ -378,7 +378,7 @@ Issue #11610: che
- scoop
- Border radii define a concave elliptical curve at the corner. Equivalent to superellipse(0.5).
-
- ''bevel''
+
- bevel
- Border radii define a diagonal slice at the corner. Equivalent to superellipse(1).
- ''notch''
- Border radii define a concave 90deg angle at the corner. Equivalent to superellipse(0).
From 124849266cb36cccb3bc138ed4058ec52b3bbe49 Mon Sep 17 00:00:00 2001
From: Noam Rosenthal
Date: Thu, 30 Jan 2025 17:49:31 +0000
Subject: [PATCH 10/14] Update css-borders-4/Overview.bs
Co-authored-by: Tab Atkins Jr.
---
css-borders-4/Overview.bs | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/css-borders-4/Overview.bs b/css-borders-4/Overview.bs
index b73b410aba5..d6781057c3a 100644
--- a/css-borders-4/Overview.bs
+++ b/css-borders-4/Overview.bs
@@ -382,7 +382,7 @@ Issue #11610: che
- Border radii define a diagonal slice at the corner. Equivalent to superellipse(1).
- ''notch''
- Border radii define a concave 90deg angle at the corner. Equivalent to superellipse(0).
-
- ''straight''
+
- straight
- Border radii define a convex 90deg angle at the corner.
This would have the same visual effect as a 'border-radius' of 0. This is different from having a 'border-radius' of 0 when animating.
Equivalent to superellipse(infinity).
From e9ff305ba7c077996780f388be79bb7c9e20e4d9 Mon Sep 17 00:00:00 2001
From: Noam Rosenthal
Date: Thu, 30 Jan 2025 17:49:37 +0000
Subject: [PATCH 11/14] Update css-borders-4/Overview.bs
Co-authored-by: Tab Atkins Jr.
---
css-borders-4/Overview.bs | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/css-borders-4/Overview.bs b/css-borders-4/Overview.bs
index d6781057c3a..8e024ccee63 100644
--- a/css-borders-4/Overview.bs
+++ b/css-borders-4/Overview.bs
@@ -386,7 +386,7 @@ Issue #11610: che
- Border radii define a convex 90deg angle at the corner.
This would have the same visual effect as a 'border-radius' of 0. This is different from having a 'border-radius' of 0 when animating.
Equivalent to superellipse(infinity).
-
- ''squircle''
+
- squircle
- Border radii define a convex curve between an ellipse and an convex angle, equivalent to superellipse(4).
From 928c2728843e03ccc2f787a1b278c5cb079034fb Mon Sep 17 00:00:00 2001
From: Noam Rosenthal
Date: Thu, 30 Jan 2025 17:49:44 +0000
Subject: [PATCH 12/14] Update css-borders-4/Overview.bs
Co-authored-by: Tab Atkins Jr.
---
css-borders-4/Overview.bs | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/css-borders-4/Overview.bs b/css-borders-4/Overview.bs
index 8e024ccee63..2d7ccc6c284 100644
--- a/css-borders-4/Overview.bs
+++ b/css-borders-4/Overview.bs
@@ -393,7 +393,7 @@ Issue #11610: che
Issue #11607: resolve on ''straight'' vs none.
The superellipse( <> | infinity ) function describes the curvature of the corner.
- It accept a <> superellipse exponent, which defines the curvature of the corner, or the exponent of the formula.
+ It accepts a superellipse exponent, which defines the curvature of the corner, or the exponent of the formula.
The [=superellipse exponent=] accepts values between 0 (a straight concave angle) and infinity (a straight convex angle),
with the values in between representing the curvatures in between.
From 2da821d804bbd42a5ca258691decdc271433cefc Mon Sep 17 00:00:00 2001
From: "Tab Atkins Jr."
Date: Thu, 30 Jan 2025 13:09:49 -0800
Subject: [PATCH 13/14] Update css-borders-4/Overview.bs
---
css-borders-4/Overview.bs | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/css-borders-4/Overview.bs b/css-borders-4/Overview.bs
index 2d7ccc6c284..cd1ac465d8e 100644
--- a/css-borders-4/Overview.bs
+++ b/css-borders-4/Overview.bs
@@ -380,7 +380,7 @@ Issue #11610: che
- Border radii define a concave elliptical curve at the corner. Equivalent to superellipse(0.5).
- bevel
- Border radii define a diagonal slice at the corner. Equivalent to superellipse(1).
-
- ''notch''
+
- notch
- Border radii define a concave 90deg angle at the corner. Equivalent to superellipse(0).
- straight
- Border radii define a convex 90deg angle at the corner.
From 5ac86df01201353e33fe427415c4be1cb622fcd6 Mon Sep 17 00:00:00 2001
From: Noam Rosenthal
Date: Thu, 30 Jan 2025 21:17:02 +0000
Subject: [PATCH 14/14] Reorder props
---
css-borders-4/Overview.bs | 34 ++++++++++++----------------------
1 file changed, 12 insertions(+), 22 deletions(-)
diff --git a/css-borders-4/Overview.bs b/css-borders-4/Overview.bs
index cd1ac465d8e..e273160a2ad 100644
--- a/css-borders-4/Overview.bs
+++ b/css-borders-4/Overview.bs
@@ -405,9 +405,19 @@ Issue #11610: che
|x/a|^k + |y/b|^k = 1
+
+Corner Shaping: the 'corner-shape' and 'corner-*-shape' properties
+
+
+ Name: corner-shape
+ Value: <>{1,2} / [ <>{1,2} ]?
+ Initial: round
+ Applies to: all elements where 'border-radius' can apply
+ Inherited: no
+ Animation type: see individual properties
+
-
-Corner Shaping: the 'corner-*-*-shape' properties
+ Applies the shape to all corners, following the same rules as ''border-radius''.
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
@@ -435,13 +445,6 @@ Corner Shaping: the 'corner-*-*-shape' properties
and the second the inline-axis side
(i.e. patterned as 'corner-block-inline-shape').
-
-Shaping The Corners Of One Side:
-The 'corner-top-shape', 'corner-right-shape',
-'corner-bottom-shape', 'corner-left-shape',
-'corner-block-start-shape', 'corner-block-end-shape',
-'corner-inline-start-shape', 'corner-inline-end-shape' shorthands
-
Name: corner-top-shape, corner-right-shape, corner-bottom-shape, corner-left-shape,
corner-block-start-shape, corner-block-end-shape, corner-inline-start-shape, corner-inline-end-shape
@@ -469,19 +472,6 @@ The 'corner-top-shape', 'corner-right-shape',
and start-end, end-end for 'corner-inline-end-shape'.
If the second value is omitted it is copied from the first.
-
-Shaping all the corners at once
-
-
- Name: corner-shape
- Value: <>{1,2} / [ <>{1,2} ]?
- Initial: round
- Applies to: all elements where 'border-radius' can apply
- Inherited: no
- Animation type: see individual properties
-
-
- Applies the shape to all corners, following the same rules as ''border-radius''.
Interpolating corner shapes