inline-flex
@@ -775,6 +784,7 @@ Flex Containers: the ''flex'' and ''inline-flex'' 'display' values
padding-overflow-crash.html
padding-overflow.html
text-overflow-on-flexbox-001.html
+ synthesize-vrl-baseline.html
Flex containers are not block containers,
@@ -861,6 +871,7 @@ Flex Items
hittest-anonymous-box.html
percentage-descendant-of-anonymous-flex-item.html
percentage-size-subitems-001.html
+ whitespace-in-flexitem-001.html
@@ -1461,6 +1472,8 @@ Grid doesn't have similarly meaningful shrinkability, so it doesn't need to care
getcomputedstyle/flexbox_computedstyle_min-auto-size.html
getcomputedstyle/flexbox_computedstyle_min-height-auto.html
getcomputedstyle/flexbox_computedstyle_min-width-auto.html
+ select-element-zero-height-001.html
+ select-element-zero-height-002.html
Note: The [=content-based minimum size=] is a type of [=intrinsic size contribution=],
@@ -2257,6 +2270,8 @@ The 'flex' Shorthand
parsing/flex-grow-computed.html
parsing/flex-grow-invalid.html
parsing/flex-grow-valid.html
+ table-item-flex-percentage-min-width.html
+ table-item-flex-percentage-width.html
@@ -2329,6 +2344,8 @@ The 'flex' Shorthand
parsing/flex-shrink-computed.html
parsing/flex-shrink-invalid.html
parsing/flex-shrink-valid.html
+ table-item-flex-percentage-min-width.html
+ table-item-flex-percentage-width.html
Note: The flex shrink factor is multiplied by the flex base size when distributing negative space.
@@ -2389,6 +2406,7 @@ The 'flex' Shorthand
parsing/flex-basis-computed.html
parsing/flex-basis-invalid.html
parsing/flex-basis-valid.html
+ table-as-item-percent-width-cell-001.html
<<'flex-basis'>> accepts the same values as the 'width' and 'height' properties
@@ -2914,7 +2932,8 @@ Axis Alignment: the 'justify-content' property
justify-content_space-between-001.html
justify-content_space-between-002.html
scrollbars-auto.html
-
+ scrollbars.html
+ scrollbars-no-margin.html
The 'justify-content' property aligns flex items along the main axis of the current line of the flex container.
@@ -3092,6 +3111,13 @@ Cross-axis Alignment: the 'align-items' and 'align-self' properties
position-relative-percentage-top-002.html
position-relative-percentage-top-003.html
relayout-align-items.html
+ stretch-input-in-column.html
+ stretch-requires-computed-auto-size.html
+ table-as-item-stretch-cross-size-2.html
+ table-as-item-stretch-cross-size-3.html
+ table-as-item-stretch-cross-size-4.html
+ table-as-item-stretch-cross-size-5.html
+ table-as-item-stretch-cross-size.html
item-with-table-with-infinite-max-intrinsic-width.html
multiline-min-max.html
orthogonal-writing-modes-and-intrinsic-sizing.html
+ svg-root-as-flex-item-001.html
+ svg-root-as-flex-item-002.html
+ svg-root-as-flex-item-003.html
+ svg-root-as-flex-item-004.html
+ svg-root-as-flex-item-005.html
+ svg-root-as-flex-item-006.html
+ table-as-item-min-height-1.html
+ table-as-item-wide-content.html
+ table-with-infinite-max-intrinsic-width.html
@@ -3739,6 +3784,10 @@ Line Length Determination
clamped according to its used min and max main sizes
(and flooring the content box size at zero).
+
+ text-as-flexitem-size-001.html
+
+
Determine the main size of the flex container
using the rules of the formatting context in which it participates.
@@ -3929,6 +3978,10 @@ Cross Size Determination
treating this used size as its definite cross size
so that percentage-sized children can be resolved.
+
+ table-as-item-cross-size.html
+
+
Note that this step does not affect the main size of the flex item,
even if it has a [=preferred aspect ratio=].
@@ -4131,6 +4184,10 @@ Resolving Flexible Lengths
item-with-max-height-and-scrollbar.html
max-width-violation.html
relayout-image-load.html
+ table-as-item-inflexible-in-column-1.html
+ table-as-item-inflexible-in-column-2.html
+ table-as-item-inflexible-in-row-1.html
+ table-as-item-inflexible-in-row-2.html
+
+ Name: border
+ Value: <> || <> || <>
+
+
+
+ parsing/border-invalid.html
+ parsing/border-shorthand.html
+ parsing/border-valid.html
+
+
+ The 'border' property is a [=shorthand property=] for setting
+ the same 'border-width', 'border-color', and 'border-style'
+ for all four borders of a box.
+ Unlike the shorthand 'margin' and 'padding' properties,
+ the 'border' property cannot set different values on the four borders.
+ To do so, one or more of the other border properties must be used.
+
+ The 'border' shorthand also resets 'border-image' to its initial value.
+ It is therefore recommended that authors use the 'border' shorthand,
+ rather than other shorthands or the individual properties,
+ to override any border settings earlier in the cascade.
+ This will ensure that 'border-image' has also been reset
+ to allow the new styles to take effect.
+
+ Note: The CSS Working Group intends for the 'border' shorthand
+ to reset all border properties in future levels of CSS as well.
+ For example, if a border-characters property
+ is introduced in the future to allow glyphs as borders,
+ it will also be reset by the 'border' shorthand.
+ By using the 'border' shorthand to reset borders,
+ authors can be guaranteed a “blank canvas”
+ no matter what properties are introduced in the future.
+
+
+ For example, the first rule below is equivalent to the set of five
+ rules shown after it:
+
+
+
+ In the above example,
+ the color of the left border is black, while the other borders are red.
+ This is due to 'border-left' setting the width, style, and color.
+ Since the color value is not given by the 'border-left' property,
+ it will be taken from the 'color' property.
+ The fact that the 'color' property is set after the 'border-left' property
+ is not relevant.
+
+
Corners
+ The [=padding edge=] (inner border) radius is
+ the outer border radius minus the corresponding border thickness.
+ In the case where this results in a negative value,
+ the inner radius is zero.
+ (In such cases the center of the border’s inner curve might not coincide
+ with that of its outer curve.)
+ Likewise the [=content edge=] radius is
+ the [=padding edge=] radius minus the corresponding [=padding=],
+ or if that is negative, zero.
+ The border and padding thicknesses in the curved region
+ are thus interpolated from the adjoining sides,
+ and when two adjoining borders are of different thicknesses
+ the corner will show a smooth transition
+ between the thicker and thinner borders.
+
+ All border styles (''border-style/solid'', ''border-style/dotted'', ''border-style/inset'', etc.)
+ follow the curve of the border.
+
+
+
+
+
+ The effect of a rounded corner when the two borders it connects
+ are of unequal thickness (left)
+ and the effect of a rounded corner on borders
+ that are thicker than the radius of the corner (right).
+
+
+
+
+ Note: If the center of a corner's outer curve
+ is past an opposite [=padding edge=]
+ (in the [=border area=] of a side opposite the corner),
+ the inner curve will not be a full quarter ellipse.
+
+
+
+ Where the border-radius curve extends into the opposite sides' borders,
+ the arc of the padding edge is less than 90°.
+
+
+
+ The [=margin edge=], being outside the [=border edge=],
+ calculates its radius by adding the corresponding margin thickness
+ to each border radius.
+ However, in order to create a sharper corner when the border radius is small
+ (and thus ensure continuity between round and sharp corners),
+ when the [=border radius=] is less than the margin,
+ the margin is multiplied by the proportion 1 + (r-1)3,
+ where r is the ratio of the border radius to the margin,
+ in calculating the corner radii of the margin box shape.
+
+
+
+Corner Clipping
+
+ Although border images
+ are not affected by 'border-radius',
+ other effects that clip painting or event handling
+ to the [=border edge|border=], [=padding edge|padding=], or [=content edge|content=] edge
+ must clip to their respective curves.
+ For example,
+ backgrounds clip to the curve specified by 'background-clip',
+ 'overflow' values other than ''visible'' to the curved [=padding edge=]
+ (when 'overflow' on both axes is not ''visible''),
+ [=replaced element=] content to the curved [=content edge=],
+ pointer events to the curved [=border edge=],
+ etc.
+
+ Note: As 'border-radius' reduces the interactive area of an element
+ authors should make sure the remaining interactive area conforms
+ to recommended minima for the platforms they target;
+ in particular, conforming to recommended minimum touch target sizes
+ may require larger widths and heights when 'border-radius' is used.
+
+
+ This example adds appropriate padding,
+ so that the contents do not overflow the corners.
+ Note that there is no border,
+ but the background will still have rounded corners.
+
+
+
+ Color and style transitions must be contained
+ within the segment of the border that intersects
+ the smallest rectangle that contains both border radii
+ as well as the center of the inner curve
+ (which may be a point representing the corner of the padding edge,
+ if the border radii are smaller than the [=border width=]).
+
+ If one of these borders is zero-width,
+ then the other border takes up the entire transitional area.
+ Otherwise,
+ the center of color and style transitions between adjoining borders
+ is a point along the curve that is a continuous monotonic function
+ of the ratio of the border widths.
+ However it is not defined what these transitions look like
+ or what function maps from this ratio to a point on the curve.
+
+
+
+
+
+ Given these corner shapes, color and style transitions
+ must be contained within the green region.
+ In case D the rectangle defined by the border radii
+ does not include the center of the inner curve (which is a sharp corner),
+ so the transition region is expanded to include that corner.
+ Transitions may take up the entire transition region,
+ but are not required to:
+ For example, a gradient color transition between two solid border styles
+ might take up only the region bounded by
+ the tips of the outer radii and the tips of the inner radii
+ (represented in case D by the dark green region).
+
+
+
+
+Overlapping Curves
+
+ Corner curves must not overlap:
+ When the sum of any two adjacent border radii
+ exceeds the size of the border box,
+ UAs must proportionally reduce
+ the used values of all border radii
+ until none of them overlap.
+ The algorithm for reducing radii is as follows:
+
+ Let f = min(Li/Si),
+ where i ∈ {top, right, bottom, left},
+ Si is the sum of the two corresponding radii
+ of the corners on side i,
+ and Ltop = Lbottom = the width of the box,
+ and Lleft = Lright = the height of the box.
+ If f < 1, then all corner radii are reduced
+ by multiplying them by f.
+
+ Note: This formula ensures that quarter circles remain quarter circles
+ and large radii remain larger than smaller ones,
+ but it may reduce corners that were already small enough,
+ which may make borders of nearby elements that should look the same
+ look different.
+
+ If the curve interferes with UI elements such as scrollbars,
+ the UA may further reduce the used value of the affected border radii
+ (and only the affected border radii)
+ as much as necessary, but no more.
+
+
+ For example, the borders A of the figure below
+ might be the result of
+
+
+
+ all corners need to be reduced by a factor 0.8 to make them fit.
+ The used border radii thus are
+ 0.4em (instead of 0.5em) and 1.6em (instead of 2em).
+ See borders B in the figure.
+
+
+
+
+
+ These rounded corner might be the result of
+ ''width: 6em; height: 2.5em; border-radius: 0.5em 2em 0.5em 2em''
+ for A; and ditto but with ''height: 2em'' for B.
+
+
+
+
+
+Effect on Tables
+
+ The 'border-radius' properties do apply to
+ ''display/table'', ''inline-table'', and ''table-cell'' boxes
+ in separated borders mode (''border-collapse: separate'').
+ When 'border-collapse' is ''border-collapse/collapse'', they have no effect.
+
+
+ ttwf-reftest-borderRadius.html
+
+
Corner Sizing: the 'border-*-*-radius' properties
-
+
Name: border-top-left-radius, border-top-right-radius, border-bottom-right-radius, border-bottom-left-radius, border-start-start-radius, border-start-end-radius, border-end-start-radius, border-end-end-radius
Value: <>{1,2}
Initial: 0
@@ -290,6 +812,41 @@ Corner Sizing: the 'border-*-*-radius' properties
Animation Type: by computed value
+ The two <> values of the 'border-*-radius' properties
+ define the radii of
+ a quarter ellipse that defines the shape of the corner
+ of the outer [=border edge=] (see the diagram below).
+ The first value is the horizontal radius,
+ the second the vertical radius.
+ If the second value is omitted it is copied from the first.
+ If either length is zero, the corner is square, not rounded.
+ Percentages for the horizontal radius refer to the width of the [=border box=],
+ whereas percentages for the vertical radius refer to the height of the [=border box=].
+ Negative values are invalid.
+
+
+
+
+
+ The two values of ''border-top-left-radius: 55pt 25pt''
+ define the curvature of the corner.
+
+
+
+
+ This example draws ovals of 15em wide and 10em high:
+
+
Sizing All Corners At Once:
The 'border-radius' shorthand
-
+
Name: border-radius
Value: <>{1,4} [ / <>{1,4} ]?
- Initial: 0
- Applies to: all elements, except table element when 'border-collapse' is ''collapse''
- Inherited: no
- Animation type: see individual properties
- See [[CSS3BG]].
+ The 'border-radius' shorthand sets all four 'border-*-radius' properties.
+ If values are given before and after the slash,
+ then the values before the slash set the horizontal radii
+ and the values after the slash set the vertical radii.
+ If there is no slash, then the values set the radii in both axes equally.
+ The four values for each radii are given in the order
+ top-left, top-right, bottom-right, bottom-left.
+ If bottom-left is omitted it is the same as top-right.
+ If bottom-right is omitted it is the same as top-left.
+ If top-right is omitted it is the same as top-left.
-
Name: corner-top, corner-right, corner-bottom, corner-left,
corner-block-start, corner-block-end, corner-inline-start, corner-inline-end
Value: <<'border-top-radius'>> || <<'corner-top-shape'>>
@@ -981,6 +1627,647 @@ To interpolate a [=superellipse parameter=] |s| to an interpolation value betwee
corner-shape/corner-shape-interpolation.html
+
+Border Images
+
+ Authors can specify an image to be used in place of the border styles.
+ In this case, the border's design is taken from the sides and corners
+ of an image specified with 'border-image-source',
+ whose pieces may be sliced, scaled, and stretched in various ways
+ to fit the size of the [=border image area=].
+ The border-image properties do not affect layout:
+ layout of the box, its content, and surrounding content
+ is based on the 'border-width' and 'border-style' properties only.
+
+
+ This example creates
+ a top and bottom border consisting of a whole number of orange diamonds
+ and a left and right border of a single, stretched diamond.
+ The corners are diamonds of a different color.
+ The image to tile is as follows.
+ Apart from the diamonds, it is transparent:
+
+
+
+ The image is 81 by 81 pixels and has to be divided into 9 equal parts.
+ The style rules could thus be as follows:
+
+
+
+ The result, when applied to a DIV of 12 by 5em,
+ will be similar to this:
+
+
+
+
+
+ This shows a more complicated example,
+ demonstrating how the border image corresponds to the fallback border-style
+ but can also extend beyond the border area.
+ The border image is a wavy green border with an extended corner effect:
+
+
+
+
+
+ The 'border-image-source' image,
+ with the four 'border-image-slice' cuts at 124px
+ dividing the image into nine parts.
+
+
+
+ The rest of the border properties then interact
+ to lay out the tiles as follows:
+
+
+
+
+
+ Diagram of all border-image properties and how they interact,
+ and showing the rendering with and without the border-image in effect.
+
+
+
+ Here, even though the 'border-width' is 12px,
+ the 'border-image-width' property computes to 124px.
+ The [=border image area=] is then outset 31px from the [=border box=]
+ and into the [=margin area=].
+ If the border-image fails to load
+ (or if border images are not supported by the UA),
+ the fallback rendering uses a green double border.
+
+
+
+ Notice that the 'border' shorthand resets 'border-image'.
+ This makes it easy to turn off or reset all border effects:
+
+
+ .notebox {
+ border: double orange;
+ /* must set 'border' shorthand first, otherwise it erases 'border-image' */
+ border-image: url("border.png") 30 round;
+ /* but other 'border' properties can be set after */
+ border-width: thin thick;
+ }
+ ...
+ .sidebar .notebox {
+ box-shadow: 0 0 5px gray;
+ border-radius: 5px;
+ border: none; /* turn off all borders */
+ /* 'border' shorthand resets 'border-image' */
+ }
+
+
+
+
+Image Source: the 'border-image-source' property
+
+
+ Name: border-image-source
+ Value: none | <>
+ Initial: none
+ Applies to: All elements, except internal table elements when 'border-collapse' is ''border-collapse/collapse''
+ Inherited: no
+ Percentages: N/A
+ Computed value: the keyword ''border-image-source/none'' or the computed <>
+ Animation type: discrete
+
+
+
+ animations/border-image-source-interpolation.html
+ css3-border-image-source.html
+ parsing/border-image-source-computed.sub.html
+ parsing/border-image-source-invalid.html
+ parsing/border-image-source-valid.html
+
+
+ Specifies an image to use as a border
+ in place of the rendering specified by the 'border-style' properties
+ and, if given the ''fill'' keyword in 'border-image-slice',
+ as an additional image backdrop for the element.
+ If the value is ''border-image-source/none'' or if the image cannot be displayed
+ (or the property doesn't apply), the border styles will be used;
+ otherwise the element's 'border-style' borders are not drawn
+ and this border image is drawn
+ as described in the sections below.
+
+
+Image Slicing: the 'border-image-slice' property
+
+
+ Name: border-image-slice
+ Value: [<> | <>]{1,4} && fill?
+ Initial: 100%
+ Applies to: All elements, except internal table elements when 'border-collapse' is ''border-collapse/collapse''
+ Inherited: no
+ Percentages: refer to size of the border image
+ Computed value: four values, each either a number or percentage; plus a ''fill'' keyword if specified
+ Animation type: by computed value
+
+
+
+ animations/border-image-slice-composition.html
+ animations/border-image-slice-interpolation-stability.html
+ animations/border-image-slice-interpolation.html
+ border-image-slice-001.xht
+ border-image-slice-002.xht
+ border-image-slice-003.xht
+ border-image-slice-004.htm
+ border-image-slice-005.htm
+ border-image-slice-006.htm
+ border-image-slice-007.htm
+ border-image-slice-fill-001.html
+ border-image-slice-fill-002.html
+ border-image-slice-fill-003.html
+ border-image-slice-percentage.html
+ border-image-slice-shorthand-reset.html
+ parsing/border-image-slice-computed.html
+ parsing/border-image-slice-invalid.html
+ parsing/border-image-slice-valid.html
+
+
+ This property specifies inward offsets from
+ the top, right, bottom, and left edges of the image,
+ dividing it into nine regions: four corners, four edges and a middle.
+ The middle image part is discarded (treated as fully transparent)
+ unless the ''fill'' keyword is present.
+ (It is drawn over the background;
+ see Drawing the Border Image.)
+
+ If there is only one component value,
+ it applies to all sides.
+ If there are two values,
+ the top and bottom are set to the first value
+ and the right and left are set to the second.
+ If there are three values,
+ the top is set to the first value,
+ the left and right are set to the second,
+ and the bottom is set to the third.
+ If there are four values
+ they apply to the top, right, bottom, and left, respectively.
+
+
+
<>
+
+ Percentages are relative to the size of the image:
+ the width of the image for the horizontal offsets,
+ the height for vertical offsets.
+
+
<>
+
+ Numbers represent pixels in the image
+ (if the image is a raster image)
+ or vector coordinates
+ (if the image is a vector image).
+
+
fill
+
+ The ''fill'' keyword, if present,
+ causes the middle part of the border-image to be preserved.
+ (By default it is discarded, i.e., treated as empty.)
+
+
+ Negative values are invalid.
+ Computed values larger than the size of the image are interpreted as ''100%''.
+
+ The regions given by the 'border-image-slice' values may overlap.
+ However if the sum of the right and left widths
+ is equal to or greater than the width of the image,
+ the images for the top and bottom edge and the middle part are empty--
+ which has the same effect as if a nonempty transparent image
+ had been specified for those parts.
+ Analogously for the top and bottom values.
+
+ If the image must be sized to determine the slices
+ (for example, for SVG images with no [=natural dimensions=]),
+ then it is sized using the default sizing algorithm
+ with no [=specified size=] and the [=border image area=] as the [=default object size=].
+
+
+
+
+
+ Diagram illustrating the cuts corresponding to the value ''25% 30% 12% 20%''
+
+
+
+
+Drawing Areas: the 'border-image-width' property
+
+
+ Name: border-image-width
+ Value: [ <> | <> | auto ]{1,4}
+ Initial: 1
+ Applies to: All elements,
+ except internal table elements when 'border-collapse' is ''border-collapse/collapse''
+ Inherited: no
+ Percentages: Relative to width/height of the [=border image area=]
+ Computed value: four values,
+ each either a number,
+ the keyword ''border-image-width/auto'',
+ or a computed <> value
+ Animation type: by computed value
+
+
+
+ border-image-width-001.htm
+ border-image-width-005.xht
+ border-image-width-006.xht
+ border-image-width-007.xht
+ border-image-width-008.html
+ border-image-width-009.html
+ border-image-width-should-extend-to-padding.html
+ parsing/border-image-width-computed.html
+ parsing/border-image-width-invalid.html
+ parsing/border-image-width-valid.html
+
+
+ The [=border image=] is drawn inside an area called the border image area.
+ This is an area whose boundaries by default correspond to the [=border box=],
+ see 'border-image-outset'.
+
+ The four values of 'border-image-width' specify offsets
+ that are used to divide the [=border image area=] into nine
+ regions.
+ The offsets represent inward distances from
+ the top, right, bottom, and left sides of the area, respectively.
+
+ If there is only one component value,
+ it applies to all sides.
+ If there are two values,
+ the top and bottom are set to the first value
+ and the right and left are set to the second.
+ If there are three values,
+ the top is set to the first value,
+ the left and right are set to the second,
+ and the bottom is set to the third.
+ If there are four values
+ they apply to the top, right, bottom, and left, respectively.
+
+ Values have the following meanings:
+
+
+
<>
+
+ Percentages refer to the size of the [=border image area=]:
+ the width of the area for horizontal offsets,
+ the height for vertical offsets.
+
+
<>
+
+ Numbers represent multiples of the corresponding computed
+ border-width.
+
+
auto
+
+ If ''border-image-width/auto'' is specified
+ then the used 'border-image-width' is
+ the [=natural size|natural=] width or height (whichever is applicable)
+ of the corresponding image slice (see 'border-image-slice').
+ If the image does not have the required [=natural dimension=]
+ then the corresponding computed 'border-width' is used instead.
+
+
+ Negative values are invalid for any 'border-image-width' values.
+
+ If two opposite 'border-image-width' offsets are large enough that they overlap,
+ then the [=used values=] of all 'border-image-width' offsets
+ are proportionally reduced until they no longer overlap.
+ In mathematical notation:
+ Given Lwidth
+ as the width of the [=border image area=],
+ Lheight
+ as its height,
+ and Wside
+ as the 'border-image-width' offset for the side side,
+ let f = min(Lwidth/(Wleft+Wright),
+ Lheight/(Wtop+Wbottom)).
+ If f < 1,
+ then all W are reduced by multiplying them by f.
+
+
+Edge Overhang: the 'border-image-outset' property
+
+
+ Name: border-image-outset
+ Value: [ <> | <> ]{1,4}
+ Initial: 0
+ Applies to: All elements, except internal table elements when 'border-collapse' is ''border-collapse/collapse''
+ Inherited: no
+ Percentages: N/A
+ Computed value: four values, each a number or absolute length
+ Animation type: by computed value
+
+
+
+ animations/border-image-outset-composition.html
+ animations/border-image-outset-interpolation.html
+ border-image-outset-003.html
+ parsing/border-image-outset-computed.html
+ parsing/border-image-outset-invalid.html
+ parsing/border-image-outset-valid.html
+
+
+ The values specify the amount by which the [=border image area=]
+ extends beyond the [=border box=].
+
+ If there is only one component value,
+ it applies to all sides.
+ If there are two values,
+ the top and bottom are set to the first value
+ and the right and left are set to the second.
+ If there are three values,
+ the top is set to the first value,
+ the left and right are set to the second,
+ and the bottom is set to the third.
+ If there are four values
+ they apply to the top, right, bottom, and left, respectively.
+
+
+
<>
+
+ Represents an outset of the specified length.
+
+
<>
+
+ Represents an outset of the specified multiple of
+ the corresponding computed border-width.
+
+
+ Negative values are invalid.
+
+ Portions of the border-image that are rendered outside the [=border box=]
+ are [=ink overflow=] and
+ do not trigger scrolling.
+ Also such portions are invisible to mouse events
+ and do not capture such events on behalf of the element.
+
+ Note: Even though they never cause a scrolling mechanism,
+ outset images may still be clipped by an ancestor or by the viewport.
+
+
+Image Tiling: the 'border-image-repeat' property
+
+
+ Name: border-image-repeat
+ Value: [ stretch | repeat | round | space ]{1,2}
+ Initial: stretch
+ Applies to: All elements, except internal table elements when 'border-collapse' is ''border-collapse/collapse''
+ Inherited: no
+ Percentages: N/A
+ Computed value: two keywords, one per axis
+ Animation type: discrete
+
+
+
+ animations/discrete-no-interpolation.html
+ border-image-repeat-002.htm
+ border-image-repeat-004.htm
+ border-image-repeat-005.html
+ border-image-repeat-1.html
+ border-image-repeat-repeat-001.html
+ border-image-repeat-round-003.html
+ border-image-repeat-round-1.html
+ border-image-repeat-round-2.html
+ border-image-repeat-round-stretch-001.html
+ border-image-repeat-round.html
+ border-image-repeat-space-011.html
+ border-image-repeat-space-1.html
+ border-image-repeat-space-10.html
+ border-image-repeat-space-2.html
+ border-image-repeat-space-3.html
+ border-image-repeat-space-4-ref-1.html
+ border-image-repeat-space-4.html
+ border-image-repeat-space-5-ref-1.html
+ border-image-repeat-space-5.html
+ border-image-repeat-space-6.html
+ border-image-repeat-space-7.html
+ border-image-repeat-space-8.html
+ border-image-repeat-space-9.html
+ border-image-repeat-stretch-round-001.html
+ border-image-repeat_repeatnegx_none_50px.html
+ css3-border-image-repeat-repeat.html
+ css3-border-image-repeat-stretch.html
+ parsing/border-image-repeat-computed.html
+ parsing/border-image-repeat-invalid.html
+ parsing/border-image-repeat-valid.html
+
+
+ This property specifies how the images for the sides
+ and the middle part of the [=border image=]
+ are scaled and tiled.
+ The first keyword applies to the horizontal scaling and tiling
+ of the top, middle and bottom parts,
+ the second to the vertical scaling and tiling
+ of the left, middle and right parts;
+ see Drawing the Border Image.
+ If the second keyword is absent, it is assumed to be the same as the first.
+ Values have the following meanings:
+
+
+
stretch
+
+ The image is stretched to fill its corresponding [=region=].
+
repeat
+
+ The image is tiled (repeated) to fill its corresponding [=region=].
+
round
+
+ The image is tiled (repeated) to fill its corresponding [=region=].
+ If it does not fill the area with a whole number of tiles,
+ the image is rescaled so that it does.
+
space
+
+ The image is tiled (repeated) to fill its corresponding [=region=].
+ If it does not fill the region with a whole number of tiles,
+ the extra space is distributed around the tiles.
+
+
+ The exact process for scaling and tiling the border-image parts
+ is given in the section below.
+
+
+Drawing the Border Image
+
+ After the [=border image=] given by 'border-image-source'
+ is sliced by the 'border-image-slice' values,
+ the resulting nine images are scaled, positioned, and tiled
+ into their corresponding [=border image regions=] in four steps:
+
+
+
Scale to 'border-image-width'.
+
+
The two images for the top and bottom edges are made as tall
+ as the top and bottom [=border image regions=], respectively,
+ and their width is scaled proportionally.
+
+
The images for the left and right edges are made as wide
+ as the left and right [=border image regions=], respectively,
+ and their height is scaled proportionally.
+
+
The corner images are scaled to be as wide and as tall
+ as the their respective [=border image regions=].
+
+
The middle image's width is scaled by the same factor as the top image
+ unless that factor is zero or infinity,
+ in which case the scaling factor of the bottom is substituted,
+ and failing that, the width is not scaled.
+ The height of the middle image is scaled by the same factor as the left image
+ unless that factor is zero or infinity,
+ in which case the scaling factor of the right image is substituted,
+ and failing that, the height is not scaled.
+
+
+
Scale to 'border-image-repeat'.
+
+
If the first keyword is ''border-image-repeat/stretch'',
+ the top, middle and bottom images are further scaled
+ to be as wide as the middle region of the [=border image area=].
+ The height is not changed any further.
+
+
If the first keyword is ''border-image-repeat/round'',
+ the top, middle and bottom images are resized in width,
+ so that exactly a whole number of them fit
+ in the middle region of the [=border image area=],
+ exactly as for ''background-repeat/round'' in the 'background-repeat' property.
+
+
If the first keyword is ''border-image-repeat/repeat'' or ''border-image-repeat/space'',
+ the top, middle, and bottom images are not changed any further.
+
+
The effects of ''border-image-repeat/stretch'', ''border-image-repeat/round'', ''border-image-repeat/repeat'', and ''border-image-repeat/space''
+ for the second keyword are analogous,
+ acting on the height of the left, middle and right images.
+
+
+
Position the first tile.
+
+
If the first keyword is ''border-image-repeat/repeat'',
+ the top, middle, and bottom images
+ are centered horizontally in their respective regions.
+ Otherwise the images are placed at the left edge
+ of their respective regions of the [=border image area=].
+
+
If the second keyword is ''border-image-repeat/repeat'',
+ the left, middle, and right images
+ are centered vertically in their respective regions.
+ Otherwise the images are placed at the top edge
+ of their respective regions of the [=border image area=].
+
+
+
Tile and draw.
+
+
The images are then tiled to fill their respective regions.
+
+
In the case of ''border-image-repeat/space'',
+ any partial tiles are discarded and the extra space distributed
+ before, after, and between the tiles.
+ (I.e. the gap before the first tile,
+ the gap after the last tile,
+ and the gaps between tiles are equalized.)
+ This can result in empty border-image side regions.
+
+
The images are drawn at the same stacking level as normal borders:
+ immediately in front of the background layers.
+
+
The middle image is not drawn
+ unless ''fill'' was specified for 'border-image-source'.
+
+
+
+
+Border Image Shorthand: the 'border-image' property
+
+
+ Name: border-image
+ Value: <<'border-image-source'>> || <<'border-image-slice'>> [ / <<'border-image-width'>> | / <<'border-image-width'>>? / <<'border-image-outset'>> ]? || <<'border-image-repeat'>>
+ Initial: See individual properties
+ Applies to: See individual properties
+ Inherited: no
+ Percentages: N/A
+ Computed value: See individual properties
+ Animation Type: See individual properties
+
+
+
+ border-image-002.html
+ border-image-003.html
+ border-image-004.html
+ border-image-006.html
+ border-image-007.html
+ border-image-011.html
+ border-image-012.html
+ border-image-013.html
+ border-image-017.xht
+ border-image-018.xht
+ border-image-019.xht
+ border-image-020.xht
+ border-image-calc.html
+ border-image-image-type-001.htm
+ border-image-image-type-002.htm
+ border-image-image-type-003.htm
+ border-image-image-type-004.htm
+ border-image-image-type-005.htm
+ border-image-round-and-stretch.html
+ border-image-shorthand-001.htm
+ border-image-shorthand-002.htm
+ border-image-shorthand-003.htm
+ border-image-space-001.html
+ parsing/border-image-invalid.html
+ parsing/border-image-shorthand.sub.html
+ parsing/border-image-valid.html
+
+
+ This is a shorthand property for setting
+ 'border-image-source',
+ 'border-image-slice',
+ 'border-image-width',
+ 'border-image-outset',
+ and 'border-image-repeat'
+ in a single declaration.
+ Omitted values are set to their [=initial values=].
+
+
Effect on Tables
+
+ The 'border-image' properties apply
+ to the border of tables and inline tables
+ that have 'border-collapse' set to ''border-collapse/collapse''.
+ However, this specification does not define
+ how such an image border is rendered.
+ In particular, it does not define how the image border interacts
+ with the borders of cells, rows and row groups at the edges of the table
+ (see border conflict resolution in [[!CSS2]]).
+
+ It is expected that a future specification will define the rendering.
+ It is recommended that UAs do not apply border images
+ to tables with collapsed borders until then.
+
Partial borders
@@ -1325,7 +2612,7 @@ The 'border-clip' properties
tentative/parsing/border-clip-valid.html
-
+
Drop Shadows
@@ -1545,6 +2832,173 @@ Drop Shadows Shorthand: the 'box-shadow' property
+
+ An [=outer box-shadow=] casts a shadow
+ as if the border-box of the element were opaque.
+ Assuming a spread distance of zero, its perimeter has
+ the exact same size and shape as the border box.
+ The shadow is drawn outside the border edge only:
+ it is clipped inside the border-box of the element.
+
+ An [=inner box-shadow=] casts a shadow
+ as if everything outside the padding edge were opaque.
+ Assuming a spread distance of zero, its perimeter has
+ the exact same size and shape as the padding box.
+ The shadow is drawn inside the padding edge only:
+ it is clipped outside the padding box of the element.
+
+ If a [=spread distance=] is defined,
+ the shadow perimeter defined above
+ is expanded outward (for [=outer box-shadows=])
+ or contracted inward (for [=inner box-shadows=])
+ by outsetting (insetting, for inner shadows)
+ the shadow's straight edges by the [=spread distance=]
+ (and flooring the resulting width/height at zero).
+
+
+ Below are some examples of an orange box with a blue border
+ being given a drop shadow.
+
+
+
+ To preserve the box's shape when spread is applied,
+ the corner radii of the shadow are also increased (decreased, for inner shadows)
+ from the border-box (padding-box) radii by adding (subtracting)
+ the [=spread distance=] (and flooring at zero).
+ However, in order to create a sharper corner when the border radius is small
+ (and thus ensure continuity between round and sharp corners),
+ when the [=border radius=] is less than the [=spread distance=]
+ (or in the case of an inner shadow,
+ less than the absolute value of a negative [=spread distance=]),
+ the [=spread distance=]
+ is first multiplied by the proportion 1 + (r-1)3,
+ where r is the ratio of the border radius to the [=spread distance=],
+ in calculating the corner radii of the spread shadow shape.
+ For example, if the border radius is 10px and the [=spread distance=] is 20px (r = .5),
+ the corner radius of the shadow shape will be 10px + 20px × (1 + (.5 - 1)3) = 27.5px
+ rather than 30px.
+ This adjustment is applied independently to the radii in each dimension.
+
+ The 'border-image' does not affect the shape of the box-shadow.
+
+
+Blurring Shadow Edges
+
+ A non-zero [=blur radius=] indicates
+ that the resulting shadow should be blurred,
+ such as by a Gaussian filter.
+ The exact algorithm is not defined;
+ however the resulting shadow must approximate
+ (with each pixel being within 5% of its expected value)
+ the image that would be generated by applying to the shadow
+ a Gaussian blur with a standard deviation equal to half the blur radius.
+
+ Note: This means for a long, straight shadow edge,
+ the blur radius will create a visibly apparent color transition
+ approximately the twice length of the blur radius
+ that is perpendicular to and centered on the shadow's edge,
+ and that ranges
+ from almost the full shadow color at the endpoint inside the shadow
+ to almost fully transparent at the endpoint outside it.
+
Layering, Layout, and Other Details
@@ -1554,7 +3008,7 @@ Layering, Layout, and Other Details
with 'box-shadow-offset' as the [=coordinating list base property=].
See [[css-values-4#linked-properties]].
-
The shadow effects are applied front-to-back:
+ The shadow effects are applied front-to-back:
the first shadow is on top and the others are layered behind.
Shadows do not influence layout and may overlap (or be overlapped by)
other boxes and text or their shadows.
@@ -1563,13 +3017,13 @@ Layering, Layout, and Other Details
and the inner shadows of an element are drawn immediately above the background of that element
(below the borders and border image, if any).
-
Unless otherwise specified, drop shadows are only applied to the [=principal box=].
+ Unless otherwise specified, drop shadows are only applied to the [=principal box=].
If the affected box has multiple fragments,
the shadows are applied as specified in 'box-decoration-break'.
-
Shadows do not trigger scrolling or increase the size of the scrollable area.
+ Shadows do not trigger scrolling or increase the size of the scrollable area.
-
Outer shadows have no effect on internal table elements in the collapsing border model.
+ Outer shadows have no effect on internal table elements in the collapsing border model.
If a shadow is defined for single border edge in the collapsing border model
that has multiple border thicknesses
(e.g. an outer shadow on a table where one row has thicker borders than the others,
@@ -1579,11 +3033,11 @@ Layering, Layout, and Other Details
Border Shaping
-While 'corner-shape' and 'border-radius' allow some expressiveness to styling a border,
-they still work with the assumption that the border is rectangular.
+ While 'corner-shape' and 'border-radius' allow some expressiveness to styling a border,
+ they still work with the assumption that the border is rectangular.
-The 'border-shape' function augments these capabilities,
-by enabling the author to use any [=basic shape=] to specify the path of the border.
+ The 'border-shape' function augments these capabilities,
+ by enabling the author to use any [=basic shape=] to specify the path of the border.
From 5812df67e291c08c628ced23a6b6f386f6d2d421 Mon Sep 17 00:00:00 2001
From: Noam Rosenthal
Date: Tue, 14 Oct 2025 21:02:09 +0100
Subject: [PATCH 09/14] [css-borders-4] [css-shapes-1] Specify rendering of
single-path border-shape (#12897)
* [css-borders-4] [css-shapes-1] Specify rendering of single-path border-shape
border-shape takes its color (and thickness if single-path) from one of the
border sides, namely the first one (in logical order) that has a border-style
other than none.
Also define half-border-box as per resolution, in css-shapes-1.
https://github.com/w3c/csswg-drafts/issues/11662#issuecomment-3357273733
Closes #11662
* Update css-borders-4/Overview.bs
Co-authored-by: Tab Atkins Jr.
---------
Co-authored-by: Tab Atkins Jr.
---
css-borders-4/Overview.bs | 32 +++++++++++++++++++++++---------
css-shapes-1/Overview.bs | 5 ++++-
2 files changed, 27 insertions(+), 10 deletions(-)
diff --git a/css-borders-4/Overview.bs b/css-borders-4/Overview.bs
index 9615aa15183..31a6e3357f9 100644
--- a/css-borders-4/Overview.bs
+++ b/css-borders-4/Overview.bs
@@ -3048,23 +3048,33 @@ The 'border-shape' property
Initial: none
Applies to: all elements
Inherited: no
- Percentages: relative to the given <>, or to [=border box=] if not given.
+ Percentages: see prose
Computed value: list, each item a computed color
Animation type: by computed value
-Issue: what do we do about 'border-style'? It can't exactly work for every arbitrary shape.
tentative/border-shape/border-shape-clips-background.html
diff --git a/css-shapes-1/Overview.bs b/css-shapes-1/Overview.bs
index fd06a7be321..d6a9843ae95 100644
--- a/css-shapes-1/Overview.bs
+++ b/css-shapes-1/Overview.bs
@@ -1358,7 +1358,7 @@ Shapes from Box Values
Its syntax is:
The definitions of the values are:
@@ -1394,6 +1394,9 @@ Shapes from Box Values
is the larger of 0
or border-radius - border-width - padding.
+ The half-border-box value defines the shape
+ enclosed by a box that is in the middle between the ''padding-box'' and the ''border-box''.
+
Given the 100px square below with
From 732bee021e401a1d564ddbad626e9e022baf773d Mon Sep 17 00:00:00 2001
From: Kevin Babbitt
Date: Wed, 15 Oct 2025 10:03:38 -0700
Subject: [PATCH 10/14] [css-conditional-5] Spec at-rule() per CSSWG
resolutions. #2463, #6966, #11116, #11117 (#12945)
* [css-conditional-5] Spec at-rule() per CSSWG resolutions. #2463, #6966, #11116, #11117
* Update css-conditional-5/Overview.bs
* Add to "Additions since Level 4"
---------
Co-authored-by: Tab Atkins Jr.
---
css-conditional-5/Overview.bs | 53 +++++++++++++++++++++++++++++------
1 file changed, 45 insertions(+), 8 deletions(-)
diff --git a/css-conditional-5/Overview.bs b/css-conditional-5/Overview.bs
index 228199b5cd8..092040c737d 100644
--- a/css-conditional-5/Overview.bs
+++ b/css-conditional-5/Overview.bs
@@ -114,18 +114,15 @@ Extensions to the ''@supports'' rule
This level of the specification extends the <> syntax as follows:
-
- at-supports-font-format-001.html
- at-supports-font-tech-001.html
- js/CSS-supports-L5.html
-
-
: <>
::
The result is true if the UA
@@ -138,9 +135,24 @@ Extensions to the ''@supports'' rule
supports the font format
provided as an argument to the function.
+ : <>
+ ::
+ The result is true if the UA
+ supports the at-rule
+ provided as an argument to the function.
+
Extensions to the definition of support
+
+Font techs and formats
+
+
+ at-supports-font-format-001.html
+ at-supports-font-tech-001.html
+ js/CSS-supports-L5.html
+
+
A CSS processor is considered to
support a font tech
when it is capable of utilizing the specified [[css-fonts-4#font-tech-definitions]]
@@ -152,6 +164,21 @@ Extensions to the definition of support
in layout and rendering,
and this format is not specified as a <>.
+
+At-rules
+
+
+ js/supports-at-rule.html
+
+
+ A CSS processor is considered to
+ support an at-rule
+ if it would accept an [=at-rule=] beginning with the specified at-keyword
+ within any context.
+
+ Note: Because ''@charset'' is not a valid [=at-rule=],
+ it is not considered to be supported under this definition.
+
Generalized Conditional Rules: the ''@when'' rule
@@ -1812,6 +1839,14 @@ Changes since the #10544)
+
+ Extended [=supports queries=] to express [=at-rule=] capabilities
+ via ''at-rule()''.
+ (#2463,
+ #6966,
+ #11116,
+ #11117)
+
@@ -1849,6 +1884,8 @@ Additions since Level 4
Added ''@when'' and ''@else''.
Extended [=supports queries=] to express font capabilities
via ''font-tech()'' and ''font-format()''.
+
Extended [=supports queries=] to express at-rule capabilities
+ via ''at-rule()''.
Moved Container Queries from [[CSS-CONTAIN-3]] to this specification.
(See also the [[CSS-CONTAIN-3#changes]] for more information
on the evolution of this feature.)
From 55681570a6a5eefe81dccd07063386e5bb8e8847 Mon Sep 17 00:00:00 2001
From: Sebastian Zartner
Date: Sun, 12 Oct 2025 01:37:57 +0200
Subject: [PATCH 11/14] [css-conditional-5] Defined @supports-query
`@supports-query` is meant to allow authors to define and name custom support queries.
---
css-cascade-5/Overview.bs | 2 +-
css-conditional-5/Overview.bs | 117 +++++++++++++++++++++++++++++++++-
2 files changed, 115 insertions(+), 4 deletions(-)
diff --git a/css-cascade-5/Overview.bs b/css-cascade-5/Overview.bs
index 0c1d6a4e1e9..a3d44de0959 100644
--- a/css-cascade-5/Overview.bs
+++ b/css-cascade-5/Overview.bs
@@ -129,7 +129,7 @@ Importing Style Sheets: the ''@import'' rule
as if they were written literally into the stylesheet at the point of the ''@import''.
Any ''@import'' rules must precede all other valid at-rules and style rules in a style sheet
- (ignoring ''@charset'' and @layer statement rules)
+ (ignoring ''@charset'', ''@supports-query'', and @layer statement rules)
and must not have any other valid at-rules or style rules between it and previous ''@import'' rules,
or else the ''@import'' rule is invalid.
The syntax of ''@import'' is:
diff --git a/css-conditional-5/Overview.bs b/css-conditional-5/Overview.bs
index 092040c737d..cde06b3a3f5 100644
--- a/css-conditional-5/Overview.bs
+++ b/css-conditional-5/Overview.bs
@@ -78,7 +78,7 @@ Introduction
CSS Conditional Level 5 extends
the ''@supports'' rule and [=supports query=] syntax
- to allow testing for supported font technologies.
+ to allow testing for custom support queries as well as supported font technologies.
It also adds an ''@when'' rule,
which generalizes the concept of a conditional rule.
@@ -117,12 +117,26 @@ Extensions to the ''@supports'' rule
<supports-feature> = <>
| <> | <>
| <>
- | <>
+ | <>
+ <supports-decl> = ( [ <> | <> ] )
<supports-font-tech-fn> = font-tech( <> )
<supports-font-format-fn> = font-format( <> )
<supports-at-rule-fn> = at-rule( <> )
+
+ at-supports-font-format-001.html
+ at-supports-font-tech-001.html
+ js/CSS-supports-L5.html
+
+
+ : <>
+ ::
+ The result is true if the UA
+ supports the named query.
+ If the name is not recognized,
+ the result is false.
+
: <>
::
The result is true if the UA
@@ -179,6 +193,13 @@ At-rules
Note: Because ''@charset'' is not a valid [=at-rule=],
it is not considered to be supported under this definition.
+
+Defining Custom Support Queries: the ''@supports-query'' rule
+
+The @supports-query [=at-rule=] is a [=conditional group rule=] that allows authors to define and name a [=supports query=] for later reuse,
+creating a named supports query.
+This enables complex or frequently-used feature queries to be referenced by name,
+improving maintainability and readability.
+
+
+ @supports-query <> {
+ <>
+ }
+
+
+ Where <> is an <> that defines the name of the supports query.
+
+ Anything inside the block is evaluated to test whether the user agent supports the features used.
+ The contents do not have any effect on the document's rendering.
+
+ Once defined, the named supports query can be used in subsequent ''@supports'' or ''@when'' conditions.
+
+ Multiple ''@supports-query'' rules with the same name in a style sheet are invalid and must be ignored.
+
+
+ For example, we can define a supports query checking multiple properties at once:
+
+
+ Issue: The name of the at-rule is under discussion.
+ Alternatives include ''@supports-condition'', ''@supports-test'', and ''@custom-supports''.
+ The name should be consistent with the one chosen for custom media queries.
+
APIs
The CSSContainerRule interface
- The {{CSSContainerRule}} interface represents a ''@container'' rule.
+ The {{CSSContainerRule}} interface represents an ''@container'' rule.
[Exposed=Window]
@@ -1805,6 +1899,23 @@ The CSSContainerRule interface
When measuring layout sizes, it behaves Similar to resizeObserver,
but it provides the additional Container Query syntax and features.
+
+The CSSSupportsQueryRule interface
+
+ The {{CSSSupportsQueryRule}} interface represents an ''@supports-query'' rule.
+
+
This attribute is the name of the [=named supports query=].
+
+
Security Considerations
No security issues have been raised against this document
From 0d0f9e982c5b0d8fe411e6681bfeb9ee94cd6252 Mon Sep 17 00:00:00 2001
From: Sebastian Zartner
Date: Sun, 12 Oct 2025 02:27:10 +0200
Subject: [PATCH 12/14] [css-conditional-5] Added Lea Verou as editor
---
css-conditional-5/Overview.bs | 1 +
1 file changed, 1 insertion(+)
diff --git a/css-conditional-5/Overview.bs b/css-conditional-5/Overview.bs
index cde06b3a3f5..266ebd592d5 100644
--- a/css-conditional-5/Overview.bs
+++ b/css-conditional-5/Overview.bs
@@ -13,6 +13,7 @@ Editor: L. David Baron, Google https://www.google.com/, https://dbaron.org/, w3c
Editor: Elika J. Etemad / fantasai, Apple, http://fantasai.inkedblade.net/contact, w3cid 35400
Editor: Chris Lilley, W3C, https://svgees.us/, w3cid 1438
Editor: Miriam E. Suzanne, Invited Expert, https://www.miriamsuzanne.com/who/, w3cid 117151
+Editor: Lea Verou, Invited Expert, https://lea.verou.me/about, w3cid 52258
Abstract: This module contains the features of CSS
for conditional processing of parts of style sheets,
based on capabilities of the processor or the environment
From 5aec461e5945e255df45ed30511d5dcc8c21bc32 Mon Sep 17 00:00:00 2001
From: Sebastian Zartner
Date: Mon, 13 Oct 2025 21:15:42 +0200
Subject: [PATCH 13/14] [css-conditional-5] Renamed @supports-query to
@supports-condition
---
css-cascade-5/Overview.bs | 2 +-
css-conditional-5/Overview.bs | 44 +++++++++++++++++------------------
2 files changed, 23 insertions(+), 23 deletions(-)
diff --git a/css-cascade-5/Overview.bs b/css-cascade-5/Overview.bs
index a3d44de0959..daa5995e33c 100644
--- a/css-cascade-5/Overview.bs
+++ b/css-cascade-5/Overview.bs
@@ -129,7 +129,7 @@ Importing Style Sheets: the ''@import'' rule
as if they were written literally into the stylesheet at the point of the ''@import''.
Any ''@import'' rules must precede all other valid at-rules and style rules in a style sheet
- (ignoring ''@charset'', ''@supports-query'', and @layer statement rules)
+ (ignoring ''@charset'', ''@supports-condition'', and @layer statement rules)
and must not have any other valid at-rules or style rules between it and previous ''@import'' rules,
or else the ''@import'' rule is invalid.
The syntax of ''@import'' is:
diff --git a/css-conditional-5/Overview.bs b/css-conditional-5/Overview.bs
index 266ebd592d5..ab48ef4ebfe 100644
--- a/css-conditional-5/Overview.bs
+++ b/css-conditional-5/Overview.bs
@@ -119,7 +119,7 @@ Extensions to the ''@supports'' rule
| <> | <>
| <>
| <>
- <supports-decl> = ( [ <> | <> ] )
+ <supports-decl> = ( [ <> | <> ] )
<supports-font-tech-fn> = font-tech( <> )
<supports-font-format-fn> = font-format( <> )
<supports-at-rule-fn> = at-rule( <> )
@@ -131,10 +131,10 @@ Extensions to the ''@supports'' rule
js/CSS-supports-L5.html
- : <>
+ : <>
::
The result is true if the UA
- supports the named query.
+ supports the named condition.
If the name is not recognized,
the result is false.
@@ -194,12 +194,12 @@ At-rules
Note: Because ''@charset'' is not a valid [=at-rule=],
it is not considered to be supported under this definition.
-
-Named queries
+
+Named conditions
A CSS processor is considered to
- support a named query
- when the related [=named supports query=] returns true.
+ support a named condition
+ when the related [=named supports condition=] returns true.
-Defining Custom Support Queries: the ''@supports-query'' rule
+
+Defining Custom Support Queries: the ''@supports-condition'' rule
-The @supports-query [=at-rule=] is a [=conditional group rule=] that allows authors to define and name a [=supports query=] for later reuse,
-creating a named supports query.
+The @supports-condition [=at-rule=] is a [=conditional group rule=] that allows authors to define and name a [=supports query=] for later reuse,
+creating a named supports condition.
This enables complex or frequently-used feature queries to be referenced by name,
improving maintainability and readability.
- Where <> is an <> that defines the name of the supports query.
+ Where <> is an <> that defines the name of the supports query.
Anything inside the block is evaluated to test whether the user agent supports the features used.
The contents do not have any effect on the document's rendering.
- Once defined, the named supports query can be used in subsequent ''@supports'' or ''@when'' conditions.
+ Once defined, the named supports condition can be used in subsequent ''@supports'' or ''@when'' conditions.
- Multiple ''@supports-query'' rules with the same name in a style sheet are invalid and must be ignored.
+ Multiple ''@supports-condition'' rules with the same name in a style sheet are invalid and must be ignored.
For example, we can define a supports query checking multiple properties at once:
@@ -1807,7 +1807,7 @@ improving maintainability and readability.
- ''@supports-query'' rules are allowed before ''@import'' and ''@namespace'' rules (after the ''@charset'' rule, if any).
+ ''@supports-condition'' rules are allowed before ''@import'' and ''@namespace'' rules (after the ''@charset'' rule, if any).
As support queries can contain arbitrary declarations,
@@ -1835,7 +1835,7 @@ improving maintainability and readability.
Issue: The name of the at-rule is under discussion.
- Alternatives include ''@supports-condition'', ''@supports-test'', and ''@custom-supports''.
+ Alternatives include ''@supports-query'', ''@supports-test'', and ''@custom-supports''.
The name should be consistent with the one chosen for custom media queries.
APIs
@@ -1900,21 +1900,21 @@ The CSSContainerRule interface
When measuring layout sizes, it behaves Similar to resizeObserver,
but it provides the additional Container Query syntax and features.
-
-The CSSSupportsQueryRule interface
+
+The CSSSupportsConditionRule interface
- The {{CSSSupportsQueryRule}} interface represents an ''@supports-query'' rule.
+ The {{CSSSupportsConditionRule}} interface represents an ''@supports-condition'' rule.
Added ''@container/stuck/none''-keywords to scroll-state() features (#10874)
Added container-type:scroll-state, and scroll-state() queries for stuck, snapped, and scrollable features
(#6402,
#10784,
@@ -1986,7 +1986,7 @@ Changes since the #8110)
Updated to use the new parsing algorithm names and block production names
Corrected a typo in the grammar of <font-format>
-
Corrected extra spaces in the font-tech and font-format productions (#7369 )
+
Corrected extra spaces in the font-tech and font-format productions (#7369)
@@ -2001,6 +2001,7 @@ Additions since Level 4
Moved Container Queries from [[CSS-CONTAIN-3]] to this specification.
(See also the [[CSS-CONTAIN-3#changes]] for more information
on the evolution of this feature.)
+
Added ''@supports-condition'' at-rule and related {{CSSSupportsConditionRule}} interface.