CSS

Baseline Ready

A practical reference for deciding whether a CSS feature is ready to ship today.

  • Widely available
    236
    features
  • Newly available
    57
    features
  • Limited support
    118
    features

Widely available

Widely available
Widely Accessibility

outline

The outline CSS shorthand sets the color, style, and width of a line around an element, outside of the border.

Widely Accessibility

prefers-color-scheme media query

The prefers-color-scheme CSS media query sets styles based on the requested color scheme, light or dark.

Widely Accessibility

prefers-reduced-motion media query

The prefers-reduced-motion CSS media query sets styles based on whether the user prefers to minimize the amount of non-essential animations on the device, such as scrolling, panning, zooming, and strobing.

Widely Animation

2D transforms

The transform CSS property and its 2D transform functions allow rotating, scaling, skewing, and translating an element. Arbitrary 2D transforms are also possible using a transformation matrix.

Widely Animation

3D transforms

The transform CSS property and its 3D transform functions allow rotations and other transforms in three dimensions, including perspective transforms.

Widely Animation

animation-composition

The animation-composition CSS property chooses how to combine animations that affect the same property.

Widely Animation

Animations (CSS)

The animation CSS property animates an element's style over time, using keyframes described in @keyframes rules.

Widely Animation

cubic-bezier() easing

The cubic-bezier() CSS easing function interpolates along a smooth curve, creating animations and transitions with continuous changes in speed. The ease, ease-in, ease-out, and ease-in-out keyword values are presets for common Bézier curves.

Widely Animation

Individual transform properties

The translate, rotate, and scale CSS properties apply single transformations independently, as opposed to applying multiple transformations with the transform CSS property.

Widely Animation

steps() easing

The steps() CSS easing function divides an animation or transition into equidistant intervals, jumping from value to value. The step-start and step-end keyword values are presets with a single interval.

Widely Animation

Transitions (CSS)

The transition shorthand CSS property sets how changes to an element's styles may occur over time. Transitions can be applied to specific CSS properties, all properties, or none.

Widely Color

background-color

The background-color CSS property sets the fill color of an element, behind any content and background images or gradients.

Widely Color

Color

The color CSS property sets the primary foreground color of an element, which is used for text, the default border color, and text decorations.

Widely Color

color-scheme

The color-scheme CSS property sets which color schemes (light or dark) an element uses and may prevent automatic dark mode adjustments by the browser.

Widely Color

color()

The color() function picks a color from a given color space. Wide gamut color spaces like display-p3 allow showing more vibrant and saturated colors than the standard srgb color space.

Widely Color

currentColor

The currentColor CSS value allows you to reuse an element's computed text color for other properties.

Widely Color

Gradients

The linear-gradient() and radial-gradient() CSS functions and their repeating counterparts create backgrounds that progress smoothly between multiple colors.

Widely Color

HSL

The hsl() and hsla() CSS functions pick colors using hue, saturation, lightness, and alpha (transparency) channels.

Widely Color

HWB

The hwb() CSS function picks colors using hue, whiteness, and blackness channels.

Widely Color

Lab and LCH

The CIE Lab color space expresses colors in terms of lightness and how red/green and blue/yellow a color is. LCH is a variant of Lab with polar coordinates. These color spaces can be used with the CSS color(), lab(), and lch() functions. Also known as CIELAB and CIELCH.

Widely Color

Named colors

Some CSS color values can be referenced by name, such as red or limegreen. They stand in for specific RGB color values.

Widely Color

Oklab and OkLCh

The Oklab color space expresses colors in terms of lightness and how red/green and blue/yellow a color is, aiming to match how humans perceive colors. OkLCh is a variant of Oklab with polar coordinates. These color spaces can be used with the CSS oklab() and oklch() functions.

Widely Color

RGB

The rgb(), rgba(), and hexadecimal (as in #004488ff) notations pick colors using red, green, blue, and alpha (transparency) channels.

Widely Color

System colors

The system color CSS keywords, such as ButtonBorder or LinkText, allow you to match default colors from the user agent.

Widely Effects

Animatable clipping paths

The clip-path property can be animated using CSS transitions and animations.

Widely Effects

background-blend-mode

The background-blend-mode CSS property blends an element's background image and background color using blend modes like multiply, difference, or color.

Widely Effects

background-clip

The background-clip CSS property sets the extent of the background: the padding box, the content box, or the default border box.

Widely Effects

background-origin

The background-origin CSS property sets the background starting position relative to the border and padding of an element.

Widely Effects

Border images

The border-image CSS property draws an image around an element.

Widely Effects

Borders

The border CSS property sets the color, style, and width of the line around an element.

Widely Effects

Conic gradients

The conic-gradient() and repeating-conic-gradient() CSS functions create backgrounds that progress between two or more colors around a center point.

Widely Effects

isolation

The isolation CSS property creates a new stacking context, which impacts z-index ordering and blend modes.

Widely Effects

mask-type

The mask-type CSS property on an SVG <mask> element sets whether the mask is a luminance or alpha mask.

Widely Effects

mix-blend-mode

The mix-blend-mode CSS property blends an element's content with its background or parent elements using blend modes like multiply, difference, or color.

Widely Effects

shape-outside

The shape-outside CSS property, along with shape-margin and shape-image-threshold, sets the shape around which adjacent content will wrap.

Widely Effects

shapes

The circle(), ellipse(), inset(), and polygon() CSS shape functions create shapes for use with clip-path and shape-outside.

Widely Interaction

:indeterminate

The :indeterminate CSS pseudo-class selects any form element whose state is indeterminate, such as checkboxes that have been set to an indeterminate state with JavaScript, or radio buttons which are members of a group in which all radio buttons are unchecked.

Widely Interaction

:read-only and :read-write

The :read-only and :read-write CSS pseudo-classes match elements that are read-only or read-write, respectively. For example, :read-only matches <input> and <textarea> elements with the readonly attribute.

Widely Interaction

Input selectors

The :checked, :disabled, and :enabled CSS pseudo-classes match form elements based on their state.

Widely Interaction

overscroll-behavior

The overscroll-behavior CSS property disables default scrolling behaviors when the edges of a scrolling area are reached.

Widely Interaction

Scroll snap

CSS scroll snap controls the panning and scrolling behavior within a scroll container.

Widely Interaction

scroll-behavior

The scroll-behavior CSS property controls whether scrolling is smooth or snaps, for scroll actions not performed by the user such as those triggered by navigation.

Widely Internationalization

Logical properties

CSS logical properties control borders, size, margin, and padding with directions and dimensions relative to the writing mode. For example, in a left to right, top to bottom writing mode, block-end refers to the bottom. Also known as flow relative.

Widely Layout

Absolute positioning

The position: absolute CSS declaration removes an element from the normal flow and positions it relative to its containing block, which is often the root element, or closest positioned ancestor.

Widely Layout

aspect-ratio

The aspect-ratio CSS property controls the width-to-height ratio of elements. For <img> and <video> elements, the width and height attributes used together with height: auto control the aspect ratio while the image/video is loading.

Widely Layout

box-sizing

The box-sizing CSS property sets whether an element's width and height are calculated based on the content-box, which does not count the size of borders or padding, or border-box, which does count them.

Widely Layout

column-fill

The column-fill CSS property sets the distribution of content across columns in a multi-column layout.

Widely Layout

column-span

The column-span CSS property controls whether a child element extends across all columns of a multi-column parent.

Widely Layout

contain-intrinsic-size

The contain-intrinsic-size CSS property sets the intrinsic size of an element. When using size containment, the browser will lay out the element as if it had a single child of this size.

Widely Layout

Display

The display CSS property sets the display behavior of an element's box within its layout and sets the layout behavior for its child elements.

Widely Layout

display: flow-root

The display: flow-root CSS declaration sets an element as the root element of a new flow layout for its children, preventing margin collapse with sibling elements.

Widely Layout

display: list-item

The display: list-item CSS declaration renders an element with the box layout of a <li> HTML element.

Widely Layout

display: table

The display: table CSS declaration renders an element with the box layout of a <table> HTML element. Child elements may use equivalents to <table> internal elements such as display: table-row for <tr>.

Widely Layout

fit-content

The fit-content CSS keyword expands a box as needed to fit its contents until the maximum size is reached, preserving the content's preferred aspect ratio.

Widely Layout

Fixed positioning

The position: fixed CSS declaration removes an element from the normal flow and positions it relative to the viewport or page.

Widely Layout

Flexbox

Flexbox is a one-dimensional layout system, which places content either horizontally or vertically, with optional wrapping.

Widely Layout

Flexbox gap

The gap CSS property in a flexbox layout sets the size of the space between items.

Widely Layout

Grid

CSS grid is a two-dimensional layout system, which lays content out in rows and columns.

Widely Layout

Grid animation

Grid animation allows you to animate the grid-template-columns and grid-template-rows CSS properties.

Widely Layout

image-rendering

The image-rendering CSS property sets how images are scaled, retaining smoothness for photos, or hard edges for pixel art and QR codes.

Widely Layout

Inline-size containment

The contain: inline-size CSS declaration prevents the element's inline dimension from being set by the element's contents. This permits the browser to avoid slower layout calculations.

Widely Layout

Layout containment

The contain: layout CSS declaration isolates the inside of an element such that it cannot affect the layout of the rest of the page or be affected by the rest of the page. This permits the browser to avoid slower layout calculations.

Widely Layout

margin

The margin CSS property sets space around an element. It is a shorthand for margin-top, margin-right, margin-bottom, and margin-left.

Widely Layout

Min and max width and height

The min-width, min-height, max-width, and max-height CSS properties set the minimum and maximum size of an element.

Widely Layout

min-content and max-content

The min-content and max-content CSS keywords represent the smallest and largest intrinsic sizes of an element.

Widely Layout

Multi-column layout

Multi-column layout flows an element's content across one or more columns in a single row, without affecting the display property of its children.

Widely Layout

Overflow media queries

The overflow-block and overflow-inline CSS media queries set styles based on the way a device displays content that's larger than the viewport or page area. For example, a laptop lets users scroll to reveal content, while a printer displays overflowing content on additional pages.

Widely Layout

padding

The padding CSS property sets space between an element's edge and its contents. It is a shorthand for padding-top, padding-right, padding-bottom, and padding-left.

Widely Layout

Page breaks

In printed page layouts, the break-after, break-before, break-inside CSS properties control where printed pages start and end. Also known as pagination or page breaking.

Widely Layout

Paint containment

The contain: paint CSS declaration prevents an element's descendants from being drawn outside the boundaries of the containing element, with any overflow clipped. This permits the browser to avoid slower painting calculations.

Widely Layout

Position

The position CSS property sets the origin position of an element to an element, the element's scrollport, or the viewport.

Widely Layout

Relative positioning

The position: relative CSS declaration offsets the position of an element relative to its position in the normal flow.

Widely Layout

Size containment

The contain: size CSS declaration sets an element's dimensions exclusively by its height and width properties, ignoring its contents and descendants. This permits the browser to avoid slower layout calculations.

Widely Layout

Static positioning

The position: static CSS declaration positions an element in the normal flow. A statically positioned element ignores physical and logical properties such as top or inset-block-start.

Widely Layout

Sticky positioning

The position: sticky CSS declaration positions an element in the normal flow until it crosses a specified threshold, at which points it becomes fixed (stuck) at that position.

Widely Layout

Style containment

The contain: style CSS declaration permits the browser to avoid slower layout calculations by preventing modification to counter (counter-increment and counter-set) and quotation styles (content property quote values) beyond the element's descendants.

Widely Layout

Subgrid

The subgrid value for the grid-template-columns and grid-template-rows properties allows a grid item to inherit the grid definition of its parent grid container.

Widely Layout

Width and height

The width and height CSS properties set the preferred physical size of an element.

Widely Media

object-fit

The object-fit CSS property sets how images, videos, and other replaced elements are scaled within their container.

Widely Media queries

@supports (compatibility prefix)

The @supports (-webkit-transform-3d) CSS media query is a standardized compatibility alternative to @supports (transform-style).

Widely Media queries

color-gamut media query

The color-gamut media query sets styles based on the colors a device can display.

Widely Media queries

dynamic-range media query

The dynamic-range CSS media query sets styles based on whether a device can display at least standard range colors or at least high range colors. Non-visual devices will match neither.

Widely Media queries

Interaction media queries

The pointer, any-pointer, hover, and any-hover CSS media queries set styles based on the presence of pointing devices and their ability to hover over elements. For example, most smartphones match the (hover: none) and (pointer: coarse) media query.

Widely Media queries

Media queries

The @media CSS rule conditionally applies styles based on the output device type, its capabilities, and the user's preferences. Media queries are composed of an optional media type such as screen or print, and one or more mandatory media features, such as prefers-reduced-animations.

Widely Media queries

Media query range syntax

The range syntax of CSS media queries allows you to use mathematical comparison operators such as <, >, <=, and >= to define a range of values for a media query. For example, (400px < width < 1000px) returns true if the viewport width is between 400px and 1000px.

Widely Media queries

prefers-contrast media query

The prefers-contrast CSS media query sets styles based on whether the user prefers more or less contrast, the difference between foreground and background colors.

Widely Media queries

resolution media query

The resolution CSS media query sets styles based on the pixel density, or how many pixels a device uses to display a single CSS pixel.

Widely Media queries

resolution media query (compatibility prefixes)

The -webkit-device-pixel-ratio, -webkit-min-device-pixel-ratio, and -webkit-max-device-pixel-ratio CSS media queries are standardized compatibility alternatives to resolution media queries.

Widely Media queries

Update frequency media query

The update CSS media query sets styles based on whether and how fast the user's device can modify display after it has been rendered. For example, you can avoid animations on devices that aren't fast enough to display them smoothly.

Widely Other

::before and ::after

The ::before and ::after CSS pseudo-elements select inline boxes preceding and following an element. They are often used with the content property to generate cosmetic content.

Widely Other

object-position

The object-position CSS property places images, videos, and other replaced elements within their boxes.

Widely Other

Outlines

The outline-color, outline-style, and outline-width and outline-offset CSS properties style a line around an element, outside of the border.

Widely Other

Small, large, and dynamic viewport units

The sv*, lv*, and dv* CSS viewport units are relative to the smallest, largest, and current (dynamic) viewport size. They are used to size elements in relation to the viewport's dimensions.

Widely Other

System font

The font-family: system-ui CSS declaration uses the operating system default font for text.

Widely Other

text-decoration

The text-decoration CSS property sets the style and color of decorative lines including underline, overline, line-through, or a combination of lines.

Widely Other

text-decoration-skip-ink

The text-decoration-skip-ink CSS property sets whether underlines and overlines may be interrupted where the line would cross a glyph.

Widely Other

text-emphasis

The text-emphasis CSS property sets position and style for text emphasis marks, especially for East Asian languages.

Widely Other

touch-action

The touch-action CSS property sets whether an element on a touch screen can be panned or pinched to zoom.

Widely Performance

contain

The contain CSS property sets limits to the scope of styles, layout, and paint rendering for speed and efficiency. The none keyword value disables containment, strict is equivalent to contain: size layout style paint, and content is equivalent to contain: layout style paint.

Widely Responsive Design

Container queries

Container size queries with the @container at-rule apply styles to an element based on the dimensions of its container.

Widely Selectors

::backdrop

The ::backdrop CSS pseudo-element is a box underneath an element in the top layer, such as a <dialog>. It can be used to create obscuring effects distinguishing a modal element from the elements underneath.

Widely Selectors

::file-selector-button

The ::file-selector-button CSS pseudo-element selects the button of a <input type="file"> element.

Widely Selectors

::first-letter

The ::first-letter CSS pseudo-element selects the first letter in an element for styling.

Widely Selectors

::first-line

The ::first-line CSS pseudo-element selects the first line of text in an element for styling.

Widely Selectors

::placeholder

The ::placeholder CSS pseudo-element selects help text in <input> and <textarea> elements when no value is set.

Widely Selectors

:default

The :default CSS pseudo-class matches the default element in a group of related form controls, such as checkboxes and radio buttons with the checked attribute.

Widely Selectors

:empty

The :empty CSS pseudo-class matches elements without child elements.

Widely Selectors

:focus-visible

The :focus-visible CSS pseudo-class selects elements that match the :focus pseudo-class and meets the browser's criteria for visually emphasizing focused elements.

Widely Selectors

:focus-within

The :focus-within CSS pseudo-class matches an element if the element or any of its children are focused.

Widely Selectors

:is()

The :is() CSS functional pseudo-class takes a selector list as its argument, and matches any element that can be selected by one of the selectors in that list.

Widely Selectors

:lang()

The :lang() CSS functional pseudo-class matches elements based on their content language.

Widely Selectors

:modal

The :modal pseudo-class selects elements that put other elements into a non-interactive state, such as a fullscreen element or a <dialog> element used with showModal().

Widely Selectors

:not()

The :not() functional pseudo-class matches elements that do not match the selectors in its argument.

Widely Selectors

:nth-child()

The :nth-child() and :nth-last-child() CSS functional pseudo-classes match elements based on their index within a list of elements. The :first-child and :last-child pseudo-classes match the first and last element in a list, and the :only-child pseudo-class matches an element with no siblings.

Widely Selectors

:nth-child() of <selector>

The of syntax for the :nth-child() and :nth-last-child() CSS functional pseudo-classes match elements by the relative position of elements, counted from the first or last sibling matching a selector list.

Widely Selectors

:nth-of-type() pseudo-classes

The :nth-of-type() and :nth-last-of-type() CSS functional pseudo-classes match elements based on their position among siblings of the same type. The :first-of-type, :last-of-type, and :only-of-type pseudo-classes match the first, last, and only elements of its type.

Widely Selectors

:placeholder-shown

The :placeholder-shown CSS pseudo-element selects <input> and <textarea> elements when no value is set and the element's placeholder attribute is not empty. Not to be confused with ::placeholder, which selects the placeholder text itself.

Widely Selectors

:root

The :root pseudo-class matches the root element of the document, usually the <html> element.

Widely Selectors

:scope (pseudo-class)

The :scope CSS pseudo-class matches the scoping root, for instance the element that querySelector() is called on, or the root of a DOM subtree specified with @scope.

Widely Selectors

:target

The :target CSS pseudo-class matches the element with an ID matching the URL fragment.

Widely Selectors

:where()

The :where() CSS functional pseudo-class takes a selector list as its argument, and matches any element that can be selected by one of the selectors in that list. It is functionally equivalent to the selectors in the list, but doesn't affect the CSS rule specificity.

Widely Selectors

Case-insensitive attribute selector

The i identifier in a CSS attribute selector matches attribute values case-insensitively in document languages like XML where attribute values are case-sensitive.

Widely Selectors

Form validity pseudo-classes

The form validity CSS pseudo-classes match <form> elements based on the constraints of a form field, such as validity (:valid, :invalid, :in-range, :out-of-range) and necessity (:optional or :required).

Widely Selectors

Host

The :host CSS pseudo-class selects the containing element of the shadow tree in which it is used. The :host() CSS pseudo-class selects the that element only if it matches the provided selector.

Widely Selectors

Link selectors

The :link CSS pseudo-class matches unvisited links, :visited matches visited links, and :any-link matches both.

Widely Selectors

Selectors (core)

CSS selectors match elements based on their type, attributes, and relationship to other elements. They define the specific elements to which a block of styles will be applied. This feature represents the oldest selectors of CSS.

Widely Selectors

Shadow parts

The part and exportparts HTML attributes expose elements of a shadow DOM as named parts, which can be selected by the ::part() CSS pseudo-element for styling.

Widely Selectors

User action pseudo-classes

The :active, :focus, and :hover CSS pseudo-classes match elements based on how users are interacting with them.

Widely SVG

Opacity (SVG)

The fill-opacity, and stroke-opacity SVG attributes and CSS properties control the transparency of a stroke or fill of an SVG element.

Widely SVG

SVG

The SVG image format, represented by the <svg> element, creates two-dimensional vector graphics with declarative or scripted interaction and animation.

Widely SVG

SVG filters

The <filter> SVG element applies custom effects such as color manipulation, blurring, or morphing to SVG elements.

Widely Syntax and cascade

@charset

The @charset CSS at-rule specifies the character encoding of an external style sheet.

Widely Syntax and cascade

@import

The @import CSS at-rule loads styles from another stylesheet.

Widely Syntax and cascade

@namespace

The @namespace CSS rule sets a default namespace or namespace prefix. Namespace prefixes allow CSS selectors to distinguish elements with the same name but different document types, such as the HTML <a> element and the SVG <a> element.

Widely Syntax and cascade

@supports

The @supports at-rule applies styles based on a browser's support for CSS features, such as a CSS property and value. Also known as feature queries.

Widely Syntax and cascade

all

The all CSS property is a shorthand for all CSS properties, except for direction and unicode-bidi. It accepts only the keywords for explicit defaulting (such as initial and inherit), since they are the only values supported on all CSS properties.

Widely Syntax and cascade

appearance

The appearance CSS property controls the appearance of form controls. Using appearance: none disables any default native appearance and allows the elements to be styled with CSS.

Widely Syntax and cascade

attr() (content only)

The attr() CSS function, in content property declarations, sets a ::before or ::after pseudo-element's content to the value of the specified HTML attribute.

Widely Syntax and cascade

caret-color

The caret-color CSS property sets the color of the text insertion pointer in a text input.

Widely Syntax and cascade

Cascade layers

The @layer CSS at-rule avoids specificity conflicts by providing priority levels for different groups of CSS rules, such as low-priority styles like resets, and high-priority styles like UI components.

Widely Syntax and cascade

color-mix()

The color-mix() function mixes two colors in a given color space and by a given amount. Commonly, lighter or darker variations of a color are created by mixing with white or black.

Widely Syntax and cascade

Content

The content CSS property sets the content inside of an element or pseudo-element, replacing the current value. It's often used with the ::before and ::after pseudo-elements to generate cosmetic content.

Widely Syntax and cascade

Custom properties

Custom properties are CSS properties prefixed with -- that set values you can reuse with the var() function. For example, you can set a --key-color property to reuse as border-color: var(--key-color). Also known as CSS variables.

Widely Syntax and cascade

float and clear

The float CSS property aligns an element to either side of its container, allowing text and inline elements to flow around it. The clear CSS property sets whether an element is moved below floating elements that proceed it.

Widely Syntax and cascade

Forced colors

The forced-colors CSS @media rule detects when a user has chosen to use a forced colors mode, also known as high-contrast mode, and the forced-color-adjust CSS property sets whether forced colors apply to an element.

Widely Syntax and cascade

Hyphenation

The hyphens CSS property controls when long words are broken by line wrapping. Although called hyphens, the property applies to word-splitting behavior across languages, such as customary spelling changes or the use of other characters. Support for non-English languages varies significantly.

Widely Syntax and cascade

image-set()

The image-set() CSS function provides a set of images at different resolutions or pixel densities, which the browser can pick from, depending on the device capabilities.

Widely Syntax and cascade

inherit

The inherit keyword resets any CSS property to the computed value of that property from the parent element.

Widely Syntax and cascade

initial

The initial keyword resets any CSS property to its initial value as defined by the specification. For example, the initial value of the display property is inline, regardless of the element being styled. Not to be confused with revert, which resets to the user or browser default style.

Widely Syntax and cascade

Layout direction override

The unicode-bidi and direction CSS properties override the Unicode layout algorithm. They are intended for Document Type Definition (DTD) designers. For HTML documents, you should use the dir global HTML attribute and <bdo> HTML element instead.

Widely Syntax and cascade

min(), max(), and clamp()

The min() and max() CSS functions return the minimum or maximum of the arguments, while clamp() clamps a value to a given range.

Widely Syntax and cascade

Motion path

The offset CSS property animates an element along a defined motion path.

Widely Syntax and cascade

overflow

The overflow CSS property sets the behavior for when content doesn't fit in an element.

Widely Syntax and cascade

overflow: clip

The overflow: clip CSS declaration clips an element's overflowing content to the box that's defined by the overflow-clip-margin property. Unlike overflow: hidden, it allows you to hide overflow on one axis while keeping overflow on the other axis visible.

Widely Syntax and cascade

Physical properties

The physical CSS properties, top, right, bottom, and left, set the inset position of an element relative to the corresponding side of a container determined by the element's position property.

Widely Syntax and cascade

pointer-events

The pointer-events CSS property sets whether a user can interact with an element using a mouse, touch, or other pointing input device.

Widely Syntax and cascade

Quotes

The quotes CSS property sets the quotation marks inserted via the content CSS property or <q> element.

Widely Syntax and cascade

revert

The revert CSS keyword resets any property to its previous default, provided by either the user or browser stylesheets. For example, setting display: revert on a <div> will likely result in display: block, the browser default style. This is often confused with initial.

Widely Syntax and cascade

Safe area inset environment variables

The safe-area-inset- CSS environment variables represent a rectangle that cannot cut off content within a non-rectangular screen. For example, top:\ env(safe-area-inset-top); positions the top of an element below the notch on an iPhone.

Widely Syntax and cascade

sin(), cos(), tan(), asin(), acos(), atan(), and atan2() (CSS)

The sin(), cos(), tan(), asin(), acos(), atan(), and atan2() CSS functions compute various trigonometric functions.

Widely Syntax and cascade

Text overflow

The text-overflow CSS property sets how hidden overflow content appears to users. The property can clip content, truncate content with an ellipsis (…), or truncate with a custom string.

Widely Syntax and cascade

Text stroke and fill (compatibility prefixes)

The -webkit-text-stroke-width and -webkit-text-stroke-color CSS properties set the thickness and color of text outlines. The -webkit-text-fill-color sets the color within text character outlines. Both default to the text color.

Widely Syntax and cascade

text-indent

The text-indent CSS property sets the size of the empty space (indentation) at the beginning of lines in a text.

Widely Syntax and cascade

Two-value display property

The display CSS property accepts multiple keyword values, such as inline flex or block flow, to explicitly set an element's inner and outer layout mode. Also known as 2-value, multi-keyword, or multiple value syntax.

Widely Syntax and cascade

unset

The unset keyword resets any CSS property, removing any values previously set by the author, user, or browser. Inherited properties (like color) reset to the parent element's computed value. Non-inherited properties (like display) reset to the specified initial value (inline).

Widely Syntax and cascade

vertical-align

The vertical-align CSS property sets the vertical alignment of inline, inline-block, and table cell elements. It has no effect on block-level elements.

Widely Syntax and cascade

visibility

The visibility CSS property sets whether an element is shown. Invisible elements still affect the document layout.

Widely Syntax and cascade

will-change

The will-change CSS property gives hints to the browser about expected changes to an element's scroll position, contents, or style. These hints allow browsers to optimize for upcoming style changes.

Widely Syntax and cascade

z-index

The z-index CSS property orders overlapping elements, with higher values appearing in front of or on top of lower values.

Widely Typography

@counter-style

The @counter-style CSS at-rule sets custom counter styles for list items. For example, you can use a sequence of specific symbols instead of numbers for an ordered list.

Widely Typography

@font-face

The @font-face CSS at-rule creates a custom font-family value. The at-rule's descriptors set the font's name, source, and various display settings.

Widely Typography

COLRv0

COLRv0 is a font format that supports multi-color glyphs. COLRv0 supports only solid colors.

Widely Typography

Counters (CSS)

The counter-reset and counter-increment CSS properties and the counter() and counters() functions automatically number headings or ordered list items.

Widely Typography

dominant-baseline

The dominant-baseline CSS property sets the specific baseline used to align an elements's text and inline-level contents.

Widely Typography

Font shorthand

The font CSS property shorthand sets multiple font properties, including style, weight, size, and font family.

Widely Typography

font-display

The font-display CSS descriptor sets whether to show a substitute font or nothing while a font face loads. The property manages what's known as a flash of unstyled text or flash of invisible text.

Widely Typography

font-family

The font-family CSS property sets the desired font face for text, along with optional fallback font faces.

Widely Typography

font-feature-settings

The font-feature-settings CSS property sets low-level OpenType feature tags for a font. When possible, use font-variant instead.

Widely Typography

font-kerning

The font-kerning CSS property sets whether kerning data from a font is used to adjust the space between letters.

Widely Typography

font-optical-sizing

The font-optical-sizing CSS property sets whether text rendering is optimized for viewing at different sizes.

Widely Typography

font-palette

The font-palette CSS property selects a color palette from the font, optionally overriding individual colors in the @font-palette-values at-rule.

Widely Typography

font-size

The font-size CSS property sets the text height.

Widely Typography

font-stretch

The font-stretch CSS property selects a font face from a font family based on width, either by a keyword such as condensed or a percentage.

Widely Typography

font-style

The font-style CSS property sets the text style, with normal, italic, and oblique options.

Widely Typography

font-synthesis

The font-synthesis CSS shorthand property disables all font synthesis except the given kinds. To disable a specific kind of font synthesis, instead use the longhand properties such as font-synthesis-style and font-synthesis-weight.

Widely Typography

font-synthesis-small-caps

The font-synthesis-small-caps CSS property sets whether or not the browser should synthesize small caps typefaces when they're missing from the font.

Widely Typography

font-synthesis-style

The font-synthesis-style CSS property sets whether or not the browser should synthesize italic and oblique typefaces when they're missing from the font.

Widely Typography

font-synthesis-weight

The font-synthesis-weight CSS property sets whether or not the browser should synthesize bold typefaces when they're missing from the font.

Widely Typography

font-variant

The font-variant CSS property is a shorthand for font-variant-alternates, font-variant-caps, font-variant-east-asian, font-variant-emoji, font-variant-ligatures, font-variant-numeric, and font-variant-position.

Widely Typography

font-variant-alternates

The font-variant-alternates CSS property, along with the @font-feature-values at-rule, chooses when to use a font's alternate glyphs.

Widely Typography

font-variant-caps

The font-variant-caps CSS property sets whether text should be displayed in small caps, petite caps, or with capital letters designed for titles.

Widely Typography

font-variant-east-asian

The font-variant-east-asian CSS property controls glyph substitution and sizing in East Asian text.

Widely Typography

font-variant-ligatures

The font-variant-ligatures CSS property sets how characters can be visually combined for readability or stylistic reasons.

Widely Typography

font-variant-numeric

The font-variant-numeric CSS property sets how numeric characters are displayed. For example, you can align columns of numbers or use zeroes that have a slash.

Widely Typography

font-variation-settings

The font-variation-settings CSS property sets an "axis of variability" on a variable font, such as weight, optical size, or a custom axis defined by the typeface designer. When possible, use other CSS font properties, such as font-weight: bold. Also known as variable fonts.

Widely Typography

font-weight

The font-weight CSS property controls the thickness of a font. It is set explicitly with the keyword bold or a number, or relative to the inherited thickness with the keywords bolder or lighter.

Widely Typography

Hyphenate character

The hyphenate-character CSS property sets the character or string to use at the end of a line before a line break.

Widely Typography

letter-spacing

The letter-spacing CSS property controls the amount of space between each letter in an element or block of text.

Widely Typography

line-break

The line-break CSS property sets how strictly to apply rules for wrapping text to new lines, especially for symbols and punctuation.

Widely Typography

line-height

The line-height CSS property sets the spacing between text baselines, oriented to the horizontal or vertical writing mode.

Widely Typography

List style

The list-style shorthand CSS property and the list-style-image, list-style-position, and list-style-type longhand properties set the position and appearance of a list item's marker.

Widely Typography

overflow-wrap

The overflow-wrap CSS property breaks a line of text onto multiple lines inside the targeted element in an otherwise unbreakable place to prevent overflow. The legacy property is word-wrap.

Widely Typography

tab-size

The tab-size CSS property sets the width of the tab character.

Widely Typography

text-align

The text-align CSS property sets the horizontal placement of the inner content of a block element.

Widely Typography

text-align-last

The text-align-last CSS property sets the alignment of the last line of text before a forced line break.

Widely Typography

text-combine-upright

The text-combine-upright CSS property displays multiple characters in the space of a single character in vertical text. This is used in East Asian documents to display Latin-based strings such as components of a date or letters of an initialism.

Widely Typography

text-orientation

The text-orientation CSS property sets the how text is typeset within a line when the writing mode is vertical.

Widely Typography

text-shadow

The text-shadow CSS property sets the position and styles of shadow on text.

Widely Typography

text-transform

The text-transform CSS property sets text case and capitalization.

Widely Typography

text-underline-offset

The text-underline-offset CSS property shifts underlines on text from the initial position by a given distance. The initial position is affected by the text-underline-position property.

Widely Typography

text-underline-position

The text-underline-position CSS property sets the position of underlines on text. For example, text-underline-position: under places the underline below the text, avoiding crossing descenders. The underline may be further adjusted by the text-underline-offset property.

Widely Typography

white-space

The white-space CSS property sets how white space is collapsed and how lines wrap. It is a shorthand for white-space-collapse and text-wrap-mode.

Widely Typography

word-break

The word-break CSS property sets how lines break within words.

Widely Typography

word-spacing

The word-spacing CSS property sets the amount of white space between words.

Widely Typography

writing-mode

The writing-mode CSS property sets whether text is laid out horizontally or vertically, and left to right, or right to left.

Widely Units and functions

calc()

The calc() CSS function computes mathematical expressions such a calc(100%/3 - 1em).

Widely Units and functions

calc() keywords

The e, pi, infinity, and NaN keywords represent well-defined constants accepted in CSS math functions such as calc().

Widely Units and functions

ch unit

The ch CSS length unit is a font-relative length based on the width of the zero (0) character.

Widely Units and functions

em unit

The em CSS length unit is a font-relative length equal to the specified font size. In an element with a 2 inch font, 1em equals 2 inches.

Widely Units and functions

ex unit

The ex CSS length unit is a font-relative length equal to the used x-height of the first available font. X-height is often equal to the height of the lowercase x.

Widely Units and functions

ic unit

The ic CSS length unit corresponds to the width of CJK ideographic characters.

Widely Units and functions

image-orientation

The image-orientation CSS property corrects the rotation of an image using the image's metadata, such as EXIF.

Widely Units and functions

Q unit

The Q CSS length unit is an absolute length anchored to the physical measurement of quarter-millimeters. 1Q is equivalent to 1/40 of 1 centimeter.

Widely Units and functions

rem

The rem CSS length unit is a font-relative length that is equal to the font size of the root HTML element which for most browsers is 16px.

Widely Units and functions

Viewport units

The vw, vh, vmin, and vmax CSS viewport units are relative to the size of the viewport, and are used to size elements in relation to the viewport's dimensions.

Widely Visual styling

background

The background CSS property is a shorthand that sets several background properties at once.

Widely Visual styling

background-image

The background-image CSS property sets the graphics to display behind the content of an element and in front of the background color. Graphics may be any combination of images or gradients.

Widely Visual styling

background-position

The background-position CSS property offsets the initial position of background images relative to the background origin.

Widely Visual styling

background-repeat

The background-repeat CSS property sets how a background image is tiled.

Widely Visual styling

background-size

The background-size CSS property scales or stretches a background based on the size of the element (with the contain and cover keywords), a length, or percentage.

Widely Visual styling

border-radius

The border-radius CSS property rounds the corners of the border drawn around an element.

Widely Visual styling

box-shadow

The box-shadow CSS property applies shadow effects around an element's frame. This can create drop shadow and inner shadow effects.

Widely Visual styling

clip-path

The clip-path CSS property and SVG attribute set the visible area of an element. Everything outside the area will be hidden.

Widely Visual styling

filter

The filter CSS property applies one or more graphic effects to an element. You can use filter functions, such as blur() and drop-shadow(), alone or combined to produce different effects. For instance, filter: blur(2px).

Widely Visual styling

opacity

The opacity CSS property sets the transparency of an element.

Widely Web Components

Autonomous custom elements

Autonomous custom elements are HTML elements with a hyphenated tag name (like <example-element>) that have behaviors you define.

Available with conditions

Newly available
Newly Animation

Active view transition

The :active-view-transition CSS pseudo-class matches the root element when a view transition is active. The :active-view-transition-type() CSS pseudo-class matches only when the active view transition was started with the specified type.

Newly Animation

transition-behavior

The transition-behavior: allow-discrete CSS declaration allows transitions for properties whose animation behavior is discrete. Such properties can't be interpolated and swap from their start value to the end value at 50%.

Newly Animation

View transitions

View transitions allow you to create animated visual transitions between different states of a document.

Newly Animation

view-transition-class

The view-transition-class CSS property sets a name that can be used to apply styles to multiple named view transition pseudo-elements.

Newly Effects

Clip path boxes

The fill-box, stroke-box, and view-box values for clip-path set an edge of the element's box to use as the clipping shape.

Newly Effects

Gradient interpolation

Gradient interpolation controls how the colors between gradient stops are calculated in CSS. For example, linear-gradient(to right in oklch longer hue, red, red); calculates in the oklch color space, with the hue going all the way around the hue circle from red back to red.

Newly Effects

Masks

The mask CSS property (and several longhand properties) partially or completely hides an element according to the shape and depth of an image.

Newly Effects

rect() and xywh()

The rect() CSS function creates a rectangle shape with insets from the edges of an element. The xywh() CSS function creates a rectangle shifted by an x and y distance. They can be used with clip-path and shape-outside.

Newly Effects

shape()

The shape() CSS function creates shapes with a series of commands like line, move, and curve. It can be used with clip-path and shape-outside.

Newly Layout

align-content in block layouts

The align-content property vertically aligns content in block layouts, like it does in flex or grid layouts.

Newly Layout

Page setup

The @page CSS at-rule sets the page-specific dimensions and margins for content such as printed documents, ebooks, or slides.

Newly Media queries

print-color-adjust

The print-color-adjust CSS property sets whether styles of printed pages should be adjusted to use less ink, in cases such as light text on a dark background.

Newly Media queries

scripting media query

The scripting CSS media query sets styles based on whether scripting such as JavaScript is available. Values are enabled if scripting is available, initial-only if scripting is only available on page load (for example, printed content), or none.

Newly Other

Math font family

The font-family: math CSS declaration uses the browser default font face for displaying mathematical expressions.

Newly Other

Registered custom properties

The CSS.registerProperty() static method and the @property CSS at-rule register custom properties for which types and behaviors can be defined.

Newly Other

Spelling and grammar text decorations

The text-decoration-line: spelling-error and text-decoration-line: grammar-error CSS declarations apply the browser's marking for spelling and grammatical mistakes. This is typically a wavy underline in red or green.

Newly Other

transform-box

The transform-box CSS property sets the position and dimensions of the reference box relative to which an element's transformations are calculated.

Newly Other

zoom

The zoom CSS property scales the size of an element. Unlike the transform property, a zoomed element affects page layout.

Newly Scrolling

scrollbar-color

The scrollbar-color CSS property sets the color of the scrollbar track and thumb.

Newly Scrolling

scrollbar-gutter

The scrollbar-gutter CSS property reserves space for the scrollbar, preventing unwanted layout changes as the scrollbar appears and disappears.

Newly Scrolling

scrollbar-width

The scrollbar-width CSS property sets the width of the scrollbar.

Newly Selectors

::details-content

The ::details-content pseudo-element selects the expandable content of a <details> element, excluding the <summary>.

Newly Selectors

:dir()

The :dir() CSS functional pseudo-class matches elements by text direction, either right to left (rtl) or left to right (ltr).

Newly Selectors

:has()

The :has() CSS functional pseudo-class matches an element if any of the selectors passed as parameters would match at least one element.

Newly Selectors

:user-valid and :user-invalid

The :user-valid and :user-invalid pseudo-classes match form controls that have been marked as valid or invalid based on their validation constraints.

Newly Syntax and cascade

@scope

The @scope CSS at-rule sets the scope for a group of rules.

Newly Syntax and cascade

@starting-style

The @starting-style CSS at-rule sets the starting values for properties that are transitioning when the target element's style is first updated.

Newly Syntax and cascade

abs() and sign()

The abs() and sign() CSS functions compute the absolute value or the sign of the input.

Newly Syntax and cascade

Alt text for generated content

The / notation in content CSS property values adds alternative text to generated content. For example, the content: url('upvote-icon.svg') / 'Upvote' declaration adds accessible 'Upvote' text to the SVG icon. Also known as alternate text.

Newly Syntax and cascade

backdrop-filter

The backdrop-filter CSS property applies graphical effects such as blurring or color shifting to the area behind an element.

Newly Syntax and cascade

content-visibility

The content-visibility CSS property delays rendering an element, including layout and painting, until it is needed.

Newly Syntax and cascade

light-dark()

The light-dark() CSS function accepts two colors and uses one depending on the current color scheme.

Newly Syntax and cascade

linear() easing

The linear() easing function for animations and transitions interpolates linearly between the control points, and can be used to approximate complex easing functions, such as a bounce effect.

Newly Syntax and cascade

Nesting

CSS nesting allows for shorter selectors, easier reading, and more modularity by nesting rules inside others.

Newly Syntax and cascade

paint-order

The paint-order CSS property sets the z-order of strokes, fills, and (in SVG content) markers. For example, paint-order: markers stroke fill; draws the markers, then stroke on top of markers, then fill on top of both markers and stroke.

Newly Syntax and cascade

pow(), sqrt(), hypot(), log(), and exp()

The pow(), sqrt(), hypot(), log(), and exp() CSS functions compute various exponential functions.

Newly Syntax and cascade

Relative colors

The from keyword for color functions (color(), hsl(), oklch(), etc.) creates a new color based on a given color by modifying the values of the input color. Also known as relative color syntax (RCS).

Newly Syntax and cascade

round(), mod(), and rem()

The round(), mod(), and rem() CSS functions compute rounded values and the remainder after division.

Newly Syntax and cascade

Vertical form controls

The writing-mode CSS property orients form elements (such as radio buttons, progress bars, or select menus) vertically when the writing mode is vertical-lr or vertical-rl. The direction CSS property sets whether inputs flow from top to bottom or bottom to top.

Newly Typography

::target-text

The ::target-text pseudo-element allows you to style text highlighted by a URL text fragment such as #:~:text=snippet.

Newly Typography

counter-set

The counter-set CSS property creates (and optionally sets a value for) a counter, the numbers for a series of headings or ordered list items.

Newly Typography

font-size-adjust

The font-size-adjust CSS property preserves apparent text size, regardless of the font used, by scaling fonts to the same size with respect to a specific metric, such as x-height. This can help make fallback fonts look the same size.

Newly Typography

ruby-align

The ruby-align CSS property sets the spacing and alignment of ruby annotation text when it does not fill its available space.

Newly Typography

ruby-position

The ruby-position CSS property sets the position of a ruby annotation in relation to its base text. Annotations can display over, under, or interleaved with the base text.

Newly Typography

text-indent: each-line

The text-indent: each-line CSS declaration indents text after forced breaks as well as to the first line of a block.

Newly Typography

text-indent: hanging

The text-indent: hanging CSS declaration indents all lines except the first.

Newly Typography

text-wrap

The text-wrap CSS property sets how lines break in text that overflows the container. It is a shorthand for text-wrap-style and text-wrap-mode.

Newly Typography

text-wrap: balance

The text-wrap: balance CSS declaration balances the length of each line when text is broken into multiple lines. Also known as headline balancing.

Newly Typography

white-space-collapse

The white-space-collapse CSS property sets whether new line characters are shown as line breaks, and whether multiple consecutive spaces are all displayed or combined.

Newly Units and functions

cap unit

The cap CSS length unit corresponds to the height of Latin capital letters.

Newly Units and functions

lh unit

The lh CSS length unit corresponds to the requested line height, the computed value of the line-height property. Some lines may be higher than this based on their content.

Newly Units and functions

rcap unit

The rcap CSS length unit is a font-relative length equal to the value of the cap unit on the root element. Cap-height is approximately equal to the height of a capital Latin letter.

Newly Units and functions

rch unit

The rch CSS length unit is a font-relative length equal to the value of the ch unit on the root element. ch length is based on the width of the zero (0) character.

Newly Units and functions

rex unit

The rex CSS length unit is a font-relative length that is equal to the x-height of the root element.

Newly Units and functions

ric unit

The ric CSS length unit, or root international character, is a font-relative length equal to the width of CJK character relative to the root element.

Newly Units and functions

rlh unit

The rlh CSS length unit is a font-relative length relative to the line height of root element.

Newly Web Components

:state()

The :state() CSS pseudo-class matches custom elements based on their custom state, set through the ElementInternals.states API.

Browse by category

WidelyAccessibility

outline

The outline CSS shorthand sets the color, style, and width of a line around an element, outside of the border.

AccessibilityFocusVisual styling
WidelyAccessibility

prefers-color-scheme media query

The prefers-color-scheme CSS media query sets styles based on the requested color scheme, light or dark.

AccessibilityThemesMedia Queries
WidelyAccessibility

prefers-reduced-motion media query

The prefers-reduced-motion CSS media query sets styles based on whether the user prefers to minimize the amount of non-essential animations on the device, such as scrolling, panning, zooming, and strobing.

AccessibilityMotionMedia Queries
WidelyAnimation

2D transforms

The transform CSS property and its 2D transform functions allow rotating, scaling, skewing, and translating an element. Arbitrary 2D transforms are also possible using a transformation matrix.

Animation
WidelyAnimation

3D transforms

The transform CSS property and its 3D transform functions allow rotations and other transforms in three dimensions, including perspective transforms.

Animation
WidelyAnimation

animation-composition

The animation-composition CSS property chooses how to combine animations that affect the same property.

Animation
WidelyAnimation

Animations (CSS)

The animation CSS property animates an element's style over time, using keyframes described in @keyframes rules.

Animation
WidelyAnimation

cubic-bezier() easing

The cubic-bezier() CSS easing function interpolates along a smooth curve, creating animations and transitions with continuous changes in speed. The ease, ease-in, ease-out, and ease-in-out keyword values are presets for common Bézier curves.

Animation
WidelyAnimation

Individual transform properties

The translate, rotate, and scale CSS properties apply single transformations independently, as opposed to applying multiple transformations with the transform CSS property.

Animation
WidelyAnimation

steps() easing

The steps() CSS easing function divides an animation or transition into equidistant intervals, jumping from value to value. The step-start and step-end keyword values are presets with a single interval.

Animation
WidelyAnimation

Transitions (CSS)

The transition shorthand CSS property sets how changes to an element's styles may occur over time. Transitions can be applied to specific CSS properties, all properties, or none.

Animation
WidelyColor

background-color

The background-color CSS property sets the fill color of an element, behind any content and background images or gradients.

ColorBackgroundsSurfaces
WidelyColor

Color

The color CSS property sets the primary foreground color of an element, which is used for text, the default border color, and text decorations.

ColorTextStyling
WidelyColor

color-scheme

The color-scheme CSS property sets which color schemes (light or dark) an element uses and may prevent automatic dark mode adjustments by the browser.

ColorThemesForms
WidelyColor

color()

The color() function picks a color from a given color space. Wide gamut color spaces like display-p3 allow showing more vibrant and saturated colors than the standard srgb color space.

Color
WidelyColor

currentColor

The currentColor CSS value allows you to reuse an element's computed text color for other properties.

ColorTokensInheritance
WidelyColor

Gradients

The linear-gradient() and radial-gradient() CSS functions and their repeating counterparts create backgrounds that progress smoothly between multiple colors.

ColorBackgroundsGradients
WidelyColor

HSL

The hsl() and hsla() CSS functions pick colors using hue, saturation, lightness, and alpha (transparency) channels.

ColorFunctionsStyling
WidelyColor

HWB

The hwb() CSS function picks colors using hue, whiteness, and blackness channels.

Color
WidelyColor

Lab and LCH

The CIE Lab color space expresses colors in terms of lightness and how red/green and blue/yellow a color is. LCH is a variant of Lab with polar coordinates. These color spaces can be used with the CSS color(), lab(), and lch() functions. Also known as CIELAB and CIELCH.

Color
WidelyColor

Named colors

Some CSS color values can be referenced by name, such as red or limegreen. They stand in for specific RGB color values.

ColorKeywordsStyling
WidelyColor

Oklab and OkLCh

The Oklab color space expresses colors in terms of lightness and how red/green and blue/yellow a color is, aiming to match how humans perceive colors. OkLCh is a variant of Oklab with polar coordinates. These color spaces can be used with the CSS oklab() and oklch() functions.

Color
WidelyColor

RGB

The rgb(), rgba(), and hexadecimal (as in #004488ff) notations pick colors using red, green, blue, and alpha (transparency) channels.

ColorFunctionsStyling
WidelyColor

System colors

The system color CSS keywords, such as ButtonBorder or LinkText, allow you to match default colors from the user agent.

Color
WidelyEffects

Animatable clipping paths

The clip-path property can be animated using CSS transitions and animations.

Effects
WidelyEffects

background-blend-mode

The background-blend-mode CSS property blends an element's background image and background color using blend modes like multiply, difference, or color.

Effects
WidelyEffects

background-clip

The background-clip CSS property sets the extent of the background: the padding box, the content box, or the default border box.

Effects
WidelyEffects

background-origin

The background-origin CSS property sets the background starting position relative to the border and padding of an element.

Effects
WidelyEffects

Border images

The border-image CSS property draws an image around an element.

Effects
WidelyEffects

Borders

The border CSS property sets the color, style, and width of the line around an element.

Effects
WidelyEffects

Conic gradients

The conic-gradient() and repeating-conic-gradient() CSS functions create backgrounds that progress between two or more colors around a center point.

Effects
WidelyEffects

isolation

The isolation CSS property creates a new stacking context, which impacts z-index ordering and blend modes.

Effects
WidelyEffects

mask-type

The mask-type CSS property on an SVG <mask> element sets whether the mask is a luminance or alpha mask.

Effects
WidelyEffects

mix-blend-mode

The mix-blend-mode CSS property blends an element's content with its background or parent elements using blend modes like multiply, difference, or color.

Effects
WidelyEffects

shape-outside

The shape-outside CSS property, along with shape-margin and shape-image-threshold, sets the shape around which adjacent content will wrap.

Effects
WidelyEffects

shapes

The circle(), ellipse(), inset(), and polygon() CSS shape functions create shapes for use with clip-path and shape-outside.

Effects
WidelyInteraction

:indeterminate

The :indeterminate CSS pseudo-class selects any form element whose state is indeterminate, such as checkboxes that have been set to an indeterminate state with JavaScript, or radio buttons which are members of a group in which all radio buttons are unchecked.

Interaction
WidelyInteraction

:read-only and :read-write

The :read-only and :read-write CSS pseudo-classes match elements that are read-only or read-write, respectively. For example, :read-only matches <input> and <textarea> elements with the readonly attribute.

Interaction
WidelyInteraction

Input selectors

The :checked, :disabled, and :enabled CSS pseudo-classes match form elements based on their state.

Interaction
WidelyInteraction

overscroll-behavior

The overscroll-behavior CSS property disables default scrolling behaviors when the edges of a scrolling area are reached.

InteractionScrollingContainment
WidelyInteraction

Scroll snap

CSS scroll snap controls the panning and scrolling behavior within a scroll container.

InteractionScrollingCarousels
WidelyInteraction

scroll-behavior

The scroll-behavior CSS property controls whether scrolling is smooth or snaps, for scroll actions not performed by the user such as those triggered by navigation.

InteractionScrolling
WidelyInternationalization

Logical properties

CSS logical properties control borders, size, margin, and padding with directions and dimensions relative to the writing mode. For example, in a left to right, top to bottom writing mode, block-end refers to the bottom. Also known as flow relative.

LayoutInternationalizationWriting modes
WidelyLayout

Absolute positioning

The position: absolute CSS declaration removes an element from the normal flow and positions it relative to its containing block, which is often the root element, or closest positioned ancestor.

LayoutPositioningOffset
WidelyLayout

aspect-ratio

The aspect-ratio CSS property controls the width-to-height ratio of elements. For <img> and <video> elements, the width and height attributes used together with height: auto control the aspect ratio while the image/video is loading.

LayoutSizing
WidelyLayout

box-sizing

The box-sizing CSS property sets whether an element's width and height are calculated based on the content-box, which does not count the size of borders or padding, or border-box, which does count them.

LayoutSizingBoxes
WidelyLayout

column-fill

The column-fill CSS property sets the distribution of content across columns in a multi-column layout.

Layout
WidelyLayout

column-span

The column-span CSS property controls whether a child element extends across all columns of a multi-column parent.

Layout
WidelyLayout

contain-intrinsic-size

The contain-intrinsic-size CSS property sets the intrinsic size of an element. When using size containment, the browser will lay out the element as if it had a single child of this size.

Layout
WidelyLayout

Display

The display CSS property sets the display behavior of an element's box within its layout and sets the layout behavior for its child elements.

LayoutFormatting contextsCore CSS
WidelyLayout

display: flow-root

The display: flow-root CSS declaration sets an element as the root element of a new flow layout for its children, preventing margin collapse with sibling elements.

LayoutFlowFormatting context
WidelyLayout

display: list-item

The display: list-item CSS declaration renders an element with the box layout of a <li> HTML element.

LayoutListsMarkers
WidelyLayout

display: table

The display: table CSS declaration renders an element with the box layout of a <table> HTML element. Child elements may use equivalents to <table> internal elements such as display: table-row for <tr>.

LayoutTablesFormatting context
WidelyLayout

fit-content

The fit-content CSS keyword expands a box as needed to fit its contents until the maximum size is reached, preserving the content's preferred aspect ratio.

Layout
WidelyLayout

Fixed positioning

The position: fixed CSS declaration removes an element from the normal flow and positions it relative to the viewport or page.

LayoutPositioningViewport
WidelyLayout

Flexbox

Flexbox is a one-dimensional layout system, which places content either horizontally or vertically, with optional wrapping.

LayoutAlignment
WidelyLayout

Flexbox gap

The gap CSS property in a flexbox layout sets the size of the space between items.

Layout
WidelyLayout

Grid

CSS grid is a two-dimensional layout system, which lays content out in rows and columns.

LayoutGrid
WidelyLayout

Grid animation

Grid animation allows you to animate the grid-template-columns and grid-template-rows CSS properties.

Layout
WidelyLayout

image-rendering

The image-rendering CSS property sets how images are scaled, retaining smoothness for photos, or hard edges for pixel art and QR codes.

Layout
WidelyLayout

Inline-size containment

The contain: inline-size CSS declaration prevents the element's inline dimension from being set by the element's contents. This permits the browser to avoid slower layout calculations.

Layout
WidelyLayout

Layout containment

The contain: layout CSS declaration isolates the inside of an element such that it cannot affect the layout of the rest of the page or be affected by the rest of the page. This permits the browser to avoid slower layout calculations.

Layout
WidelyLayout

margin

The margin CSS property sets space around an element. It is a shorthand for margin-top, margin-right, margin-bottom, and margin-left.

LayoutSpacingBox model
WidelyLayout

Min and max width and height

The min-width, min-height, max-width, and max-height CSS properties set the minimum and maximum size of an element.

LayoutSizingConstraints
WidelyLayout

min-content and max-content

The min-content and max-content CSS keywords represent the smallest and largest intrinsic sizes of an element.

LayoutIntrinsic sizingSizing
WidelyLayout

Multi-column layout

Multi-column layout flows an element's content across one or more columns in a single row, without affecting the display property of its children.

Layout
WidelyLayout

Overflow media queries

The overflow-block and overflow-inline CSS media queries set styles based on the way a device displays content that's larger than the viewport or page area. For example, a laptop lets users scroll to reveal content, while a printer displays overflowing content on additional pages.

LayoutScrollingClipping
WidelyLayout

padding

The padding CSS property sets space between an element's edge and its contents. It is a shorthand for padding-top, padding-right, padding-bottom, and padding-left.

LayoutSpacingBox model
WidelyLayout

Page breaks

In printed page layouts, the break-after, break-before, break-inside CSS properties control where printed pages start and end. Also known as pagination or page breaking.

Layout
WidelyLayout

Paint containment

The contain: paint CSS declaration prevents an element's descendants from being drawn outside the boundaries of the containing element, with any overflow clipped. This permits the browser to avoid slower painting calculations.

Layout
WidelyLayout

Position

The position CSS property sets the origin position of an element to an element, the element's scrollport, or the viewport.

LayoutPositioning
WidelyLayout

Relative positioning

The position: relative CSS declaration offsets the position of an element relative to its position in the normal flow.

LayoutPositioning
WidelyLayout

Size containment

The contain: size CSS declaration sets an element's dimensions exclusively by its height and width properties, ignoring its contents and descendants. This permits the browser to avoid slower layout calculations.

Layout
WidelyLayout

Static positioning

The position: static CSS declaration positions an element in the normal flow. A statically positioned element ignores physical and logical properties such as top or inset-block-start.

Layout
WidelyLayout

Sticky positioning

The position: sticky CSS declaration positions an element in the normal flow until it crosses a specified threshold, at which points it becomes fixed (stuck) at that position.

LayoutPositioningScrolling
WidelyLayout

Style containment

The contain: style CSS declaration permits the browser to avoid slower layout calculations by preventing modification to counter (counter-increment and counter-set) and quotation styles (content property quote values) beyond the element's descendants.

Layout
WidelyLayout

Subgrid

The subgrid value for the grid-template-columns and grid-template-rows properties allows a grid item to inherit the grid definition of its parent grid container.

LayoutGridAlignment
WidelyLayout

Width and height

The width and height CSS properties set the preferred physical size of an element.

LayoutSizingDimensions
WidelyMedia

object-fit

The object-fit CSS property sets how images, videos, and other replaced elements are scaled within their container.

MediaImagesVideo
WidelyMedia queries

@supports (compatibility prefix)

The @supports (-webkit-transform-3d) CSS media query is a standardized compatibility alternative to @supports (transform-style).

Feature detectionCompatibilityProgressive enhancement
WidelyMedia queries

color-gamut media query

The color-gamut media query sets styles based on the colors a device can display.

ColorMedia queryDisplays
WidelyMedia queries

dynamic-range media query

The dynamic-range CSS media query sets styles based on whether a device can display at least standard range colors or at least high range colors. Non-visual devices will match neither.

HDRMedia queryDisplays
WidelyMedia queries

Interaction media queries

The pointer, any-pointer, hover, and any-hover CSS media queries set styles based on the presence of pointing devices and their ability to hover over elements. For example, most smartphones match the (hover: none) and (pointer: coarse) media query.

PointerHoverInput modes
WidelyMedia queries

Media queries

The @media CSS rule conditionally applies styles based on the output device type, its capabilities, and the user's preferences. Media queries are composed of an optional media type such as screen or print, and one or more mandatory media features, such as prefers-reduced-animations.

Responsive designConditionsAdaptation
WidelyMedia queries

Media query range syntax

The range syntax of CSS media queries allows you to use mathematical comparison operators such as <, >, <=, and >= to define a range of values for a media query. For example, (400px < width < 1000px) returns true if the viewport width is between 400px and 1000px.

Media queries
WidelyMedia queries

prefers-contrast media query

The prefers-contrast CSS media query sets styles based on whether the user prefers more or less contrast, the difference between foreground and background colors.

ContrastUser preferencesAccessibility
WidelyMedia queries

resolution media query

The resolution CSS media query sets styles based on the pixel density, or how many pixels a device uses to display a single CSS pixel.

ResolutionDisplaysMedia query
WidelyMedia queries

resolution media query (compatibility prefixes)

The -webkit-device-pixel-ratio, -webkit-min-device-pixel-ratio, and -webkit-max-device-pixel-ratio CSS media queries are standardized compatibility alternatives to resolution media queries.

ResolutionCompatibilityLegacy support
WidelyMedia queries

Update frequency media query

The update CSS media query sets styles based on whether and how fast the user's device can modify display after it has been rendered. For example, you can avoid animations on devices that aren't fast enough to display them smoothly.

Display behaviorPerformanceMedia query
WidelyOther

::before and ::after

The ::before and ::after CSS pseudo-elements select inline boxes preceding and following an element. They are often used with the content property to generate cosmetic content.

Other
WidelyOther

object-position

The object-position CSS property places images, videos, and other replaced elements within their boxes.

Other
WidelyOther

Outlines

The outline-color, outline-style, and outline-width and outline-offset CSS properties style a line around an element, outside of the border.

Other
WidelyOther

Small, large, and dynamic viewport units

The sv*, lv*, and dv* CSS viewport units are relative to the smallest, largest, and current (dynamic) viewport size. They are used to size elements in relation to the viewport's dimensions.

Other
WidelyOther

System font

The font-family: system-ui CSS declaration uses the operating system default font for text.

Other
WidelyOther

text-decoration

The text-decoration CSS property sets the style and color of decorative lines including underline, overline, line-through, or a combination of lines.

Other
WidelyOther

text-decoration-skip-ink

The text-decoration-skip-ink CSS property sets whether underlines and overlines may be interrupted where the line would cross a glyph.

Other
WidelyOther

text-emphasis

The text-emphasis CSS property sets position and style for text emphasis marks, especially for East Asian languages.

Other
WidelyOther

touch-action

The touch-action CSS property sets whether an element on a touch screen can be panned or pinched to zoom.

Other
WidelyPerformance

contain

The contain CSS property sets limits to the scope of styles, layout, and paint rendering for speed and efficiency. The none keyword value disables containment, strict is equivalent to contain: size layout style paint, and content is equivalent to contain: layout style paint.

PerformanceContainmentLayout
WidelyResponsive Design

Container queries

Container size queries with the @container at-rule apply styles to an element based on the dimensions of its container.

ResponsiveComponents
WidelySelectors

::backdrop

The ::backdrop CSS pseudo-element is a box underneath an element in the top layer, such as a <dialog>. It can be used to create obscuring effects distinguishing a modal element from the elements underneath.

Selectors
WidelySelectors

::file-selector-button

The ::file-selector-button CSS pseudo-element selects the button of a <input type="file"> element.

Selectors
WidelySelectors

::first-letter

The ::first-letter CSS pseudo-element selects the first letter in an element for styling.

Selectors
WidelySelectors

::first-line

The ::first-line CSS pseudo-element selects the first line of text in an element for styling.

Selectors
WidelySelectors

::placeholder

The ::placeholder CSS pseudo-element selects help text in <input> and <textarea> elements when no value is set.

Selectors
WidelySelectors

:default

The :default CSS pseudo-class matches the default element in a group of related form controls, such as checkboxes and radio buttons with the checked attribute.

Selectors
WidelySelectors

:empty

The :empty CSS pseudo-class matches elements without child elements.

Selectors
WidelySelectors

:focus-visible

The :focus-visible CSS pseudo-class selects elements that match the :focus pseudo-class and meets the browser's criteria for visually emphasizing focused elements.

Selectors
WidelySelectors

:focus-within

The :focus-within CSS pseudo-class matches an element if the element or any of its children are focused.

Selectors
WidelySelectors

:is()

The :is() CSS functional pseudo-class takes a selector list as its argument, and matches any element that can be selected by one of the selectors in that list.

Selectors
WidelySelectors

:lang()

The :lang() CSS functional pseudo-class matches elements based on their content language.

Selectors
WidelySelectors

:modal

The :modal pseudo-class selects elements that put other elements into a non-interactive state, such as a fullscreen element or a <dialog> element used with showModal().

Selectors
WidelySelectors

:not()

The :not() functional pseudo-class matches elements that do not match the selectors in its argument.

Selectors
WidelySelectors

:nth-child()

The :nth-child() and :nth-last-child() CSS functional pseudo-classes match elements based on their index within a list of elements. The :first-child and :last-child pseudo-classes match the first and last element in a list, and the :only-child pseudo-class matches an element with no siblings.

Selectors
WidelySelectors

:nth-child() of <selector>

The of syntax for the :nth-child() and :nth-last-child() CSS functional pseudo-classes match elements by the relative position of elements, counted from the first or last sibling matching a selector list.

Selectors
WidelySelectors

:nth-of-type() pseudo-classes

The :nth-of-type() and :nth-last-of-type() CSS functional pseudo-classes match elements based on their position among siblings of the same type. The :first-of-type, :last-of-type, and :only-of-type pseudo-classes match the first, last, and only elements of its type.

Selectors
WidelySelectors

:placeholder-shown

The :placeholder-shown CSS pseudo-element selects <input> and <textarea> elements when no value is set and the element's placeholder attribute is not empty. Not to be confused with ::placeholder, which selects the placeholder text itself.

Selectors
WidelySelectors

:root

The :root pseudo-class matches the root element of the document, usually the <html> element.

Selectors
WidelySelectors

:scope (pseudo-class)

The :scope CSS pseudo-class matches the scoping root, for instance the element that querySelector() is called on, or the root of a DOM subtree specified with @scope.

Selectors
WidelySelectors

:target

The :target CSS pseudo-class matches the element with an ID matching the URL fragment.

Selectors
WidelySelectors

:where()

The :where() CSS functional pseudo-class takes a selector list as its argument, and matches any element that can be selected by one of the selectors in that list. It is functionally equivalent to the selectors in the list, but doesn't affect the CSS rule specificity.

Selectors
WidelySelectors

Case-insensitive attribute selector

The i identifier in a CSS attribute selector matches attribute values case-insensitively in document languages like XML where attribute values are case-sensitive.

Selectors
WidelySelectors

Form validity pseudo-classes

The form validity CSS pseudo-classes match <form> elements based on the constraints of a form field, such as validity (:valid, :invalid, :in-range, :out-of-range) and necessity (:optional or :required).

Selectors
WidelySelectors

Host

The :host CSS pseudo-class selects the containing element of the shadow tree in which it is used. The :host() CSS pseudo-class selects the that element only if it matches the provided selector.

Selectors
WidelySelectors

Link selectors

The :link CSS pseudo-class matches unvisited links, :visited matches visited links, and :any-link matches both.

Selectors
WidelySelectors

Selectors (core)

CSS selectors match elements based on their type, attributes, and relationship to other elements. They define the specific elements to which a block of styles will be applied. This feature represents the oldest selectors of CSS.

Selectors
WidelySelectors

Shadow parts

The part and exportparts HTML attributes expose elements of a shadow DOM as named parts, which can be selected by the ::part() CSS pseudo-element for styling.

Selectors
WidelySelectors

User action pseudo-classes

The :active, :focus, and :hover CSS pseudo-classes match elements based on how users are interacting with them.

Selectors
WidelySVG

Opacity (SVG)

The fill-opacity, and stroke-opacity SVG attributes and CSS properties control the transparency of a stroke or fill of an SVG element.

SVG
WidelySVG

SVG

The SVG image format, represented by the <svg> element, creates two-dimensional vector graphics with declarative or scripted interaction and animation.

SVG
WidelySVG

SVG filters

The <filter> SVG element applies custom effects such as color manipulation, blurring, or morphing to SVG elements.

SVG
WidelySyntax and cascade

@charset

The @charset CSS at-rule specifies the character encoding of an external style sheet.

Syntax and cascade
WidelySyntax and cascade

@import

The @import CSS at-rule loads styles from another stylesheet.

Syntax and cascade
WidelySyntax and cascade

@namespace

The @namespace CSS rule sets a default namespace or namespace prefix. Namespace prefixes allow CSS selectors to distinguish elements with the same name but different document types, such as the HTML <a> element and the SVG <a> element.

Syntax and cascade
WidelySyntax and cascade

@supports

The @supports at-rule applies styles based on a browser's support for CSS features, such as a CSS property and value. Also known as feature queries.

Syntax and cascade
WidelySyntax and cascade

all

The all CSS property is a shorthand for all CSS properties, except for direction and unicode-bidi. It accepts only the keywords for explicit defaulting (such as initial and inherit), since they are the only values supported on all CSS properties.

Syntax and cascade
WidelySyntax and cascade

appearance

The appearance CSS property controls the appearance of form controls. Using appearance: none disables any default native appearance and allows the elements to be styled with CSS.

Syntax and cascade
WidelySyntax and cascade

attr() (content only)

The attr() CSS function, in content property declarations, sets a ::before or ::after pseudo-element's content to the value of the specified HTML attribute.

Syntax and cascade
WidelySyntax and cascade

caret-color

The caret-color CSS property sets the color of the text insertion pointer in a text input.

Syntax and cascade
WidelySyntax and cascade

Cascade layers

The @layer CSS at-rule avoids specificity conflicts by providing priority levels for different groups of CSS rules, such as low-priority styles like resets, and high-priority styles like UI components.

Syntax and cascade
WidelySyntax and cascade

color-mix()

The color-mix() function mixes two colors in a given color space and by a given amount. Commonly, lighter or darker variations of a color are created by mixing with white or black.

Syntax and cascade
WidelySyntax and cascade

Content

The content CSS property sets the content inside of an element or pseudo-element, replacing the current value. It's often used with the ::before and ::after pseudo-elements to generate cosmetic content.

Syntax and cascade
WidelySyntax and cascade

Custom properties

Custom properties are CSS properties prefixed with -- that set values you can reuse with the var() function. For example, you can set a --key-color property to reuse as border-color: var(--key-color). Also known as CSS variables.

Syntax and cascade
WidelySyntax and cascade

float and clear

The float CSS property aligns an element to either side of its container, allowing text and inline elements to flow around it. The clear CSS property sets whether an element is moved below floating elements that proceed it.

Syntax and cascade
WidelySyntax and cascade

Forced colors

The forced-colors CSS @media rule detects when a user has chosen to use a forced colors mode, also known as high-contrast mode, and the forced-color-adjust CSS property sets whether forced colors apply to an element.

Syntax and cascade
WidelySyntax and cascade

Hyphenation

The hyphens CSS property controls when long words are broken by line wrapping. Although called hyphens, the property applies to word-splitting behavior across languages, such as customary spelling changes or the use of other characters. Support for non-English languages varies significantly.

Syntax and cascade
WidelySyntax and cascade

image-set()

The image-set() CSS function provides a set of images at different resolutions or pixel densities, which the browser can pick from, depending on the device capabilities.

Syntax and cascade
WidelySyntax and cascade

inherit

The inherit keyword resets any CSS property to the computed value of that property from the parent element.

Syntax and cascade
WidelySyntax and cascade

initial

The initial keyword resets any CSS property to its initial value as defined by the specification. For example, the initial value of the display property is inline, regardless of the element being styled. Not to be confused with revert, which resets to the user or browser default style.

Syntax and cascade
WidelySyntax and cascade

Layout direction override

The unicode-bidi and direction CSS properties override the Unicode layout algorithm. They are intended for Document Type Definition (DTD) designers. For HTML documents, you should use the dir global HTML attribute and <bdo> HTML element instead.

Syntax and cascade
WidelySyntax and cascade

min(), max(), and clamp()

The min() and max() CSS functions return the minimum or maximum of the arguments, while clamp() clamps a value to a given range.

Syntax and cascade
WidelySyntax and cascade

Motion path

The offset CSS property animates an element along a defined motion path.

Syntax and cascade
WidelySyntax and cascade

overflow

The overflow CSS property sets the behavior for when content doesn't fit in an element.

Syntax and cascade
WidelySyntax and cascade

overflow: clip

The overflow: clip CSS declaration clips an element's overflowing content to the box that's defined by the overflow-clip-margin property. Unlike overflow: hidden, it allows you to hide overflow on one axis while keeping overflow on the other axis visible.

Syntax and cascade
WidelySyntax and cascade

Physical properties

The physical CSS properties, top, right, bottom, and left, set the inset position of an element relative to the corresponding side of a container determined by the element's position property.

Syntax and cascade
WidelySyntax and cascade

pointer-events

The pointer-events CSS property sets whether a user can interact with an element using a mouse, touch, or other pointing input device.

Syntax and cascade
WidelySyntax and cascade

Quotes

The quotes CSS property sets the quotation marks inserted via the content CSS property or <q> element.

Syntax and cascade
WidelySyntax and cascade

revert

The revert CSS keyword resets any property to its previous default, provided by either the user or browser stylesheets. For example, setting display: revert on a <div> will likely result in display: block, the browser default style. This is often confused with initial.

Syntax and cascade
WidelySyntax and cascade

Safe area inset environment variables

The safe-area-inset- CSS environment variables represent a rectangle that cannot cut off content within a non-rectangular screen. For example, top:\ env(safe-area-inset-top); positions the top of an element below the notch on an iPhone.

Syntax and cascade
WidelySyntax and cascade

sin(), cos(), tan(), asin(), acos(), atan(), and atan2() (CSS)

The sin(), cos(), tan(), asin(), acos(), atan(), and atan2() CSS functions compute various trigonometric functions.

Syntax and cascade
WidelySyntax and cascade

Text overflow

The text-overflow CSS property sets how hidden overflow content appears to users. The property can clip content, truncate content with an ellipsis (…), or truncate with a custom string.

Syntax and cascade
WidelySyntax and cascade

Text stroke and fill (compatibility prefixes)

The -webkit-text-stroke-width and -webkit-text-stroke-color CSS properties set the thickness and color of text outlines. The -webkit-text-fill-color sets the color within text character outlines. Both default to the text color.

Syntax and cascade
WidelySyntax and cascade

text-indent

The text-indent CSS property sets the size of the empty space (indentation) at the beginning of lines in a text.

Syntax and cascade
WidelySyntax and cascade

Two-value display property

The display CSS property accepts multiple keyword values, such as inline flex or block flow, to explicitly set an element's inner and outer layout mode. Also known as 2-value, multi-keyword, or multiple value syntax.

Syntax and cascade
WidelySyntax and cascade

unset

The unset keyword resets any CSS property, removing any values previously set by the author, user, or browser. Inherited properties (like color) reset to the parent element's computed value. Non-inherited properties (like display) reset to the specified initial value (inline).

Syntax and cascade
WidelySyntax and cascade

vertical-align

The vertical-align CSS property sets the vertical alignment of inline, inline-block, and table cell elements. It has no effect on block-level elements.

Syntax and cascade
WidelySyntax and cascade

visibility

The visibility CSS property sets whether an element is shown. Invisible elements still affect the document layout.

Syntax and cascade
WidelySyntax and cascade

will-change

The will-change CSS property gives hints to the browser about expected changes to an element's scroll position, contents, or style. These hints allow browsers to optimize for upcoming style changes.

Syntax and cascade
WidelySyntax and cascade

z-index

The z-index CSS property orders overlapping elements, with higher values appearing in front of or on top of lower values.

Syntax and cascade
WidelyTypography

@counter-style

The @counter-style CSS at-rule sets custom counter styles for list items. For example, you can use a sequence of specific symbols instead of numbers for an ordered list.

Typography
WidelyTypography

@font-face

The @font-face CSS at-rule creates a custom font-family value. The at-rule's descriptors set the font's name, source, and various display settings.

Typography
WidelyTypography

COLRv0

COLRv0 is a font format that supports multi-color glyphs. COLRv0 supports only solid colors.

Typography
WidelyTypography

Counters (CSS)

The counter-reset and counter-increment CSS properties and the counter() and counters() functions automatically number headings or ordered list items.

Typography
WidelyTypography

dominant-baseline

The dominant-baseline CSS property sets the specific baseline used to align an elements's text and inline-level contents.

Typography
WidelyTypography

Font shorthand

The font CSS property shorthand sets multiple font properties, including style, weight, size, and font family.

Typography
WidelyTypography

font-display

The font-display CSS descriptor sets whether to show a substitute font or nothing while a font face loads. The property manages what's known as a flash of unstyled text or flash of invisible text.

Typography
WidelyTypography

font-family

The font-family CSS property sets the desired font face for text, along with optional fallback font faces.

Typography
WidelyTypography

font-feature-settings

The font-feature-settings CSS property sets low-level OpenType feature tags for a font. When possible, use font-variant instead.

Typography
WidelyTypography

font-kerning

The font-kerning CSS property sets whether kerning data from a font is used to adjust the space between letters.

Typography
WidelyTypography

font-optical-sizing

The font-optical-sizing CSS property sets whether text rendering is optimized for viewing at different sizes.

Typography
WidelyTypography

font-palette

The font-palette CSS property selects a color palette from the font, optionally overriding individual colors in the @font-palette-values at-rule.

Typography
WidelyTypography

font-size

The font-size CSS property sets the text height.

Typography
WidelyTypography

font-stretch

The font-stretch CSS property selects a font face from a font family based on width, either by a keyword such as condensed or a percentage.

Typography
WidelyTypography

font-style

The font-style CSS property sets the text style, with normal, italic, and oblique options.

Typography
WidelyTypography

font-synthesis

The font-synthesis CSS shorthand property disables all font synthesis except the given kinds. To disable a specific kind of font synthesis, instead use the longhand properties such as font-synthesis-style and font-synthesis-weight.

Typography
WidelyTypography

font-synthesis-small-caps

The font-synthesis-small-caps CSS property sets whether or not the browser should synthesize small caps typefaces when they're missing from the font.

Typography
WidelyTypography

font-synthesis-style

The font-synthesis-style CSS property sets whether or not the browser should synthesize italic and oblique typefaces when they're missing from the font.

Typography
WidelyTypography

font-synthesis-weight

The font-synthesis-weight CSS property sets whether or not the browser should synthesize bold typefaces when they're missing from the font.

Typography
WidelyTypography

font-variant

The font-variant CSS property is a shorthand for font-variant-alternates, font-variant-caps, font-variant-east-asian, font-variant-emoji, font-variant-ligatures, font-variant-numeric, and font-variant-position.

Typography
WidelyTypography

font-variant-alternates

The font-variant-alternates CSS property, along with the @font-feature-values at-rule, chooses when to use a font's alternate glyphs.

Typography
WidelyTypography

font-variant-caps

The font-variant-caps CSS property sets whether text should be displayed in small caps, petite caps, or with capital letters designed for titles.

Typography
WidelyTypography

font-variant-east-asian

The font-variant-east-asian CSS property controls glyph substitution and sizing in East Asian text.

Typography
WidelyTypography

font-variant-ligatures

The font-variant-ligatures CSS property sets how characters can be visually combined for readability or stylistic reasons.

Typography
WidelyTypography

font-variant-numeric

The font-variant-numeric CSS property sets how numeric characters are displayed. For example, you can align columns of numbers or use zeroes that have a slash.

Typography
WidelyTypography

font-variation-settings

The font-variation-settings CSS property sets an "axis of variability" on a variable font, such as weight, optical size, or a custom axis defined by the typeface designer. When possible, use other CSS font properties, such as font-weight: bold. Also known as variable fonts.

Typography
WidelyTypography

font-weight

The font-weight CSS property controls the thickness of a font. It is set explicitly with the keyword bold or a number, or relative to the inherited thickness with the keywords bolder or lighter.

Typography
WidelyTypography

Hyphenate character

The hyphenate-character CSS property sets the character or string to use at the end of a line before a line break.

Typography
WidelyTypography

letter-spacing

The letter-spacing CSS property controls the amount of space between each letter in an element or block of text.

Typography
WidelyTypography

line-break

The line-break CSS property sets how strictly to apply rules for wrapping text to new lines, especially for symbols and punctuation.

Typography
WidelyTypography

line-height

The line-height CSS property sets the spacing between text baselines, oriented to the horizontal or vertical writing mode.

Typography
WidelyTypography

List style

The list-style shorthand CSS property and the list-style-image, list-style-position, and list-style-type longhand properties set the position and appearance of a list item's marker.

Typography
WidelyTypography

overflow-wrap

The overflow-wrap CSS property breaks a line of text onto multiple lines inside the targeted element in an otherwise unbreakable place to prevent overflow. The legacy property is word-wrap.

Typography
WidelyTypography

tab-size

The tab-size CSS property sets the width of the tab character.

Typography
WidelyTypography

text-align

The text-align CSS property sets the horizontal placement of the inner content of a block element.

Typography
WidelyTypography

text-align-last

The text-align-last CSS property sets the alignment of the last line of text before a forced line break.

Typography
WidelyTypography

text-combine-upright

The text-combine-upright CSS property displays multiple characters in the space of a single character in vertical text. This is used in East Asian documents to display Latin-based strings such as components of a date or letters of an initialism.

Typography
WidelyTypography

text-orientation

The text-orientation CSS property sets the how text is typeset within a line when the writing mode is vertical.

Typography
WidelyTypography

text-shadow

The text-shadow CSS property sets the position and styles of shadow on text.

Typography
WidelyTypography

text-transform

The text-transform CSS property sets text case and capitalization.

Typography
WidelyTypography

text-underline-offset

The text-underline-offset CSS property shifts underlines on text from the initial position by a given distance. The initial position is affected by the text-underline-position property.

Typography
WidelyTypography

text-underline-position

The text-underline-position CSS property sets the position of underlines on text. For example, text-underline-position: under places the underline below the text, avoiding crossing descenders. The underline may be further adjusted by the text-underline-offset property.

Typography
WidelyTypography

white-space

The white-space CSS property sets how white space is collapsed and how lines wrap. It is a shorthand for white-space-collapse and text-wrap-mode.

TypographyWrappingWhitespace
WidelyTypography

word-break

The word-break CSS property sets how lines break within words.

TypographyWrappingText
WidelyTypography

word-spacing

The word-spacing CSS property sets the amount of white space between words.

TypographySpacingText
WidelyTypography

writing-mode

The writing-mode CSS property sets whether text is laid out horizontally or vertically, and left to right, or right to left.

TypographyVertical textLayout
WidelyUnits and functions

calc()

The calc() CSS function computes mathematical expressions such a calc(100%/3 - 1em).

calcLayoutSizing
WidelyUnits and functions

calc() keywords

The e, pi, infinity, and NaN keywords represent well-defined constants accepted in CSS math functions such as calc().

calcMathFunctions
WidelyUnits and functions

ch unit

The ch CSS length unit is a font-relative length based on the width of the zero (0) character.

UnitsTypographyMeasure
WidelyUnits and functions

em unit

The em CSS length unit is a font-relative length equal to the specified font size. In an element with a 2 inch font, 1em equals 2 inches.

UnitsTypographyRelative sizing
WidelyUnits and functions

ex unit

The ex CSS length unit is a font-relative length equal to the used x-height of the first available font. X-height is often equal to the height of the lowercase x.

UnitsTypographyRelative sizing
WidelyUnits and functions

ic unit

The ic CSS length unit corresponds to the width of CJK ideographic characters.

UnitsCJKTypography
WidelyUnits and functions

image-orientation

The image-orientation CSS property corrects the rotation of an image using the image's metadata, such as EXIF.

Units and functions
WidelyUnits and functions

Q unit

The Q CSS length unit is an absolute length anchored to the physical measurement of quarter-millimeters. 1Q is equivalent to 1/40 of 1 centimeter.

Units and functions
WidelyUnits and functions

rem

The rem CSS length unit is a font-relative length that is equal to the font size of the root HTML element which for most browsers is 16px.

Units and functions
WidelyUnits and functions

Viewport units

The vw, vh, vmin, and vmax CSS viewport units are relative to the size of the viewport, and are used to size elements in relation to the viewport's dimensions.

Units and functions
WidelyVisual styling

background

The background CSS property is a shorthand that sets several background properties at once.

VisualBackgroundsShorthand
WidelyVisual styling

background-image

The background-image CSS property sets the graphics to display behind the content of an element and in front of the background color. Graphics may be any combination of images or gradients.

VisualBackgroundsImages
WidelyVisual styling

background-position

The background-position CSS property offsets the initial position of background images relative to the background origin.

VisualBackgroundsAlignment
WidelyVisual styling

background-repeat

The background-repeat CSS property sets how a background image is tiled.

VisualBackgroundsPatterns
WidelyVisual styling

background-size

The background-size CSS property scales or stretches a background based on the size of the element (with the contain and cover keywords), a length, or percentage.

VisualBackgroundsSizing
WidelyVisual styling

border-radius

The border-radius CSS property rounds the corners of the border drawn around an element.

VisualCornersBoxes
WidelyVisual styling

box-shadow

The box-shadow CSS property applies shadow effects around an element's frame. This can create drop shadow and inner shadow effects.

VisualDepthEffects
WidelyVisual styling

clip-path

The clip-path CSS property and SVG attribute set the visible area of an element. Everything outside the area will be hidden.

VisualClippingShapes
WidelyVisual styling

filter

The filter CSS property applies one or more graphic effects to an element. You can use filter functions, such as blur() and drop-shadow(), alone or combined to produce different effects. For instance, filter: blur(2px).

VisualEffectsImages
WidelyVisual styling

opacity

The opacity CSS property sets the transparency of an element.

VisualTransparencyStates
WidelyWeb Components

Autonomous custom elements

Autonomous custom elements are HTML elements with a hyphenated tag name (like <example-element>) that have behaviors you define.

Web Components
NewlyAnimation

Active view transition

The :active-view-transition CSS pseudo-class matches the root element when a view transition is active. The :active-view-transition-type() CSS pseudo-class matches only when the active view transition was started with the specified type.

Animation
NewlyAnimation

transition-behavior

The transition-behavior: allow-discrete CSS declaration allows transitions for properties whose animation behavior is discrete. Such properties can't be interpolated and swap from their start value to the end value at 50%.

Animation
NewlyAnimation

View transitions

View transitions allow you to create animated visual transitions between different states of a document.

Animation
NewlyAnimation

view-transition-class

The view-transition-class CSS property sets a name that can be used to apply styles to multiple named view transition pseudo-elements.

Animation
NewlyEffects

Clip path boxes

The fill-box, stroke-box, and view-box values for clip-path set an edge of the element's box to use as the clipping shape.

Effects
NewlyEffects

Gradient interpolation

Gradient interpolation controls how the colors between gradient stops are calculated in CSS. For example, linear-gradient(to right in oklch longer hue, red, red); calculates in the oklch color space, with the hue going all the way around the hue circle from red back to red.

Effects
NewlyEffects

Masks

The mask CSS property (and several longhand properties) partially or completely hides an element according to the shape and depth of an image.

Effects
NewlyEffects

rect() and xywh()

The rect() CSS function creates a rectangle shape with insets from the edges of an element. The xywh() CSS function creates a rectangle shifted by an x and y distance. They can be used with clip-path and shape-outside.

Effects
NewlyEffects

shape()

The shape() CSS function creates shapes with a series of commands like line, move, and curve. It can be used with clip-path and shape-outside.

Effects
NewlyLayout

align-content in block layouts

The align-content property vertically aligns content in block layouts, like it does in flex or grid layouts.

Layout
NewlyLayout

Page setup

The @page CSS at-rule sets the page-specific dimensions and margins for content such as printed documents, ebooks, or slides.

Layout
NewlyMedia queries

print-color-adjust

The print-color-adjust CSS property sets whether styles of printed pages should be adjusted to use less ink, in cases such as light text on a dark background.

Media queries
NewlyMedia queries

scripting media query

The scripting CSS media query sets styles based on whether scripting such as JavaScript is available. Values are enabled if scripting is available, initial-only if scripting is only available on page load (for example, printed content), or none.

Media queries
NewlyOther

Math font family

The font-family: math CSS declaration uses the browser default font face for displaying mathematical expressions.

Other
NewlyOther

Registered custom properties

The CSS.registerProperty() static method and the @property CSS at-rule register custom properties for which types and behaviors can be defined.

Other
NewlyOther

Spelling and grammar text decorations

The text-decoration-line: spelling-error and text-decoration-line: grammar-error CSS declarations apply the browser's marking for spelling and grammatical mistakes. This is typically a wavy underline in red or green.

Other
NewlyOther

transform-box

The transform-box CSS property sets the position and dimensions of the reference box relative to which an element's transformations are calculated.

Other
NewlyOther

zoom

The zoom CSS property scales the size of an element. Unlike the transform property, a zoomed element affects page layout.

Other
NewlyScrolling

scrollbar-color

The scrollbar-color CSS property sets the color of the scrollbar track and thumb.

Scrolling
NewlyScrolling

scrollbar-gutter

The scrollbar-gutter CSS property reserves space for the scrollbar, preventing unwanted layout changes as the scrollbar appears and disappears.

Scrolling
NewlyScrolling

scrollbar-width

The scrollbar-width CSS property sets the width of the scrollbar.

Scrolling
NewlySelectors

::details-content

The ::details-content pseudo-element selects the expandable content of a <details> element, excluding the <summary>.

Selectors
NewlySelectors

:dir()

The :dir() CSS functional pseudo-class matches elements by text direction, either right to left (rtl) or left to right (ltr).

Selectors
NewlySelectors

:has()

The :has() CSS functional pseudo-class matches an element if any of the selectors passed as parameters would match at least one element.

Selectors
NewlySelectors

:user-valid and :user-invalid

The :user-valid and :user-invalid pseudo-classes match form controls that have been marked as valid or invalid based on their validation constraints.

Selectors
NewlySyntax and cascade

@scope

The @scope CSS at-rule sets the scope for a group of rules.

Syntax and cascade
NewlySyntax and cascade

@starting-style

The @starting-style CSS at-rule sets the starting values for properties that are transitioning when the target element's style is first updated.

Syntax and cascade
NewlySyntax and cascade

abs() and sign()

The abs() and sign() CSS functions compute the absolute value or the sign of the input.

Syntax and cascade
NewlySyntax and cascade

Alt text for generated content

The / notation in content CSS property values adds alternative text to generated content. For example, the content: url('upvote-icon.svg') / 'Upvote' declaration adds accessible 'Upvote' text to the SVG icon. Also known as alternate text.

Syntax and cascade
NewlySyntax and cascade

backdrop-filter

The backdrop-filter CSS property applies graphical effects such as blurring or color shifting to the area behind an element.

Syntax and cascade
NewlySyntax and cascade

content-visibility

The content-visibility CSS property delays rendering an element, including layout and painting, until it is needed.

Syntax and cascade
NewlySyntax and cascade

light-dark()

The light-dark() CSS function accepts two colors and uses one depending on the current color scheme.

Syntax and cascade
NewlySyntax and cascade

linear() easing

The linear() easing function for animations and transitions interpolates linearly between the control points, and can be used to approximate complex easing functions, such as a bounce effect.

Syntax and cascade
NewlySyntax and cascade

Nesting

CSS nesting allows for shorter selectors, easier reading, and more modularity by nesting rules inside others.

Syntax and cascade
NewlySyntax and cascade

paint-order

The paint-order CSS property sets the z-order of strokes, fills, and (in SVG content) markers. For example, paint-order: markers stroke fill; draws the markers, then stroke on top of markers, then fill on top of both markers and stroke.

Syntax and cascade
NewlySyntax and cascade

pow(), sqrt(), hypot(), log(), and exp()

The pow(), sqrt(), hypot(), log(), and exp() CSS functions compute various exponential functions.

Syntax and cascade
NewlySyntax and cascade

Relative colors

The from keyword for color functions (color(), hsl(), oklch(), etc.) creates a new color based on a given color by modifying the values of the input color. Also known as relative color syntax (RCS).

Syntax and cascade
NewlySyntax and cascade

round(), mod(), and rem()

The round(), mod(), and rem() CSS functions compute rounded values and the remainder after division.

Syntax and cascade
NewlySyntax and cascade

Vertical form controls

The writing-mode CSS property orients form elements (such as radio buttons, progress bars, or select menus) vertically when the writing mode is vertical-lr or vertical-rl. The direction CSS property sets whether inputs flow from top to bottom or bottom to top.

Syntax and cascade
NewlyTypography

::target-text

The ::target-text pseudo-element allows you to style text highlighted by a URL text fragment such as #:~:text=snippet.

Typography
NewlyTypography

counter-set

The counter-set CSS property creates (and optionally sets a value for) a counter, the numbers for a series of headings or ordered list items.

Typography
NewlyTypography

font-size-adjust

The font-size-adjust CSS property preserves apparent text size, regardless of the font used, by scaling fonts to the same size with respect to a specific metric, such as x-height. This can help make fallback fonts look the same size.

Typography
NewlyTypography

ruby-align

The ruby-align CSS property sets the spacing and alignment of ruby annotation text when it does not fill its available space.

Typography
NewlyTypography

ruby-position

The ruby-position CSS property sets the position of a ruby annotation in relation to its base text. Annotations can display over, under, or interleaved with the base text.

Typography
NewlyTypography

text-indent: each-line

The text-indent: each-line CSS declaration indents text after forced breaks as well as to the first line of a block.

Typography
NewlyTypography

text-indent: hanging

The text-indent: hanging CSS declaration indents all lines except the first.

Typography
NewlyTypography

text-wrap

The text-wrap CSS property sets how lines break in text that overflows the container. It is a shorthand for text-wrap-style and text-wrap-mode.

Typography
NewlyTypography

text-wrap: balance

The text-wrap: balance CSS declaration balances the length of each line when text is broken into multiple lines. Also known as headline balancing.

Typography
NewlyTypography

white-space-collapse

The white-space-collapse CSS property sets whether new line characters are shown as line breaks, and whether multiple consecutive spaces are all displayed or combined.

Typography
NewlyUnits and functions

cap unit

The cap CSS length unit corresponds to the height of Latin capital letters.

Units and functions
NewlyUnits and functions

lh unit

The lh CSS length unit corresponds to the requested line height, the computed value of the line-height property. Some lines may be higher than this based on their content.

Units and functions
NewlyUnits and functions

rcap unit

The rcap CSS length unit is a font-relative length equal to the value of the cap unit on the root element. Cap-height is approximately equal to the height of a capital Latin letter.

Units and functions
NewlyUnits and functions

rch unit

The rch CSS length unit is a font-relative length equal to the value of the ch unit on the root element. ch length is based on the width of the zero (0) character.

Units and functions
NewlyUnits and functions

rex unit

The rex CSS length unit is a font-relative length that is equal to the x-height of the root element.

Units and functions
NewlyUnits and functions

ric unit

The ric CSS length unit, or root international character, is a font-relative length equal to the width of CJK character relative to the root element.

Units and functions
NewlyUnits and functions

rlh unit

The rlh CSS length unit is a font-relative length relative to the line height of root element.

Units and functions
NewlyWeb Components

:state()

The :state() CSS pseudo-class matches custom elements based on their custom state, set through the ElementInternals.states API.

Web Components
LimitedAnimation

Cross-document view transitions

The @view-transition CSS rule sets whether a document opts-in to transitions between documents in a multi-page application. Both the old and new document must opt-in for a transition to be triggered.

Animation
LimitedAnimation

interpolate-size

The interpolate-size CSS property sets whether animations and transitions interpolate between a numeric value and a keyword value, such as from a fixed length to auto or fit-content.

Animation
LimitedAnimation

text-decoration-line: blink

The text-decoration: blink CSS declaration flashes text between visible and invisible.

Animation
LimitedColor

contrast-color()

The contrast-color() CSS function picks a color that has guaranteed contrast against a specified foreground or background color.

Color
LimitedEffects

background-attachment

The background-attachment CSS property sets whether an element's background image or gradient moves as the element scrolls.

Effects
LimitedEffects

background-clip: border-area

The background-clip: border-area CSS declaration draws the background underneath only the border of an element.

Effects
LimitedEffects

background-clip: text

The background-clip: text CSS declaration draws the background underneath only the text in the element.

Effects
LimitedEffects

clip

The clip CSS property sets the visible area of an absolutely positioned element.

Effects
LimitedEffects

mask-border

The mask-border CSS property sets how the edges of an element are masked. It is a shorthand for mask-border-outset, mask-border-repeat, mask-border-slice, mask-border-source, and mask-border-width.

Effects
LimitedForms

accent-color

The accent-color CSS property sets a color for checkboxes, radio buttons, and other form controls.

FormsColorControls
LimitedInteraction

:autofill

The :autofill pseudo-class matches <input> elements that have been filled in automatically by the browser.

Interaction
LimitedInteraction

Cursor styles

The cursor CSS property styles the pointer, allowing you to provide hints to the user on how to interact with the hovered element.

InteractionPointersAffordance
LimitedInteraction

resize (CSS property)

The resize CSS property sets whether an element can be resized by the user, and on which axes.

InteractionResizingText input
LimitedInteraction

user-select

The user-select CSS property controls which elements can be selected by the user.

InteractionTextSelection
LimitedLayout

::column

The ::column CSS pseudo-element represents the individual columns of a multi-column layout container. Columns can only be styled with scroll snap CSS properties and can also have a ::scroll-marker pseudo-element, which scrolls to the column when activated.

Layout
LimitedLayout

Column breaks

In columnar layouts (created by the columns or column-count CSS properties), the break-after, break-before, break-inside properties control where columns start or end.

Layout
LimitedLayout

Container scroll-state queries

Container scroll-state queries with the @container scroll-state(...) at-rule apply styles to an element based on the sticky positioning, snapped, and scrollable state of the container.

Layout
LimitedLayout

Container style queries

Container style queries with the @container at-rule apply styles to an element based on the values of custom properties of its container.

Layout
LimitedLayout

crisp-edges

The image-rendering: crisp-edges CSS declaration scales images to preserve lines without blurring.

Layout
LimitedLayout

fit-content()

The fit-content() CSS function, used outside of a grid layout property, clamps a length between min-content and max-content.

Layout
LimitedLayout

image-rendering: smooth

The image-rendering: smooth CSS declaration scales images while retaining a gradual color blending that is useful for photos.

Layout
LimitedLayout

justify-self in block layouts

The justify-self CSS property aligns an item along a container's inline axis in block layouts, like it does in grid layouts. Likewise, the justify-items property sets a default justify-self value for all items in a container in a block layout.

Layout
LimitedLayout

Masonry

The display: grid-lanes or display: inline-grid-lanes CSS declaration creates a layout where items are tightly packed, like brickwork, in parallel lanes. Items are placed one by one in the lane that has the most available space.

Layout
LimitedLayout

Page break aliases

The page-break-before, page-break-inside, and page-break-after CSS properties are aliases to the break-before, break-inside, and break-after properties.

Layout
LimitedLayout

page-orientation

The page-orientation CSS property sets the rotation of a page after pagination. This allows pages with the same size declaration to display with different orientations.

Layout
LimitedLayout

Range syntax for style queries

The @container style() CSS at-rule and if(style()) CSS function queries accept a range syntax, such as >, <, >=, <=, to query for inexact values.

Layout
LimitedLayout

stretch

The stretch CSS keyword expands a box as needed to fit its contents until the maximum size is reached, without preserving the content's preferred aspect ratio.

Layout
LimitedLayout

Widows and orphans

The widows and orphans CSS properties set the minimum lines included in a text fragment created by page, column, or region breaks.

Layout
LimitedMedia queries

color-adjust

The color-adjust shorthand CSS property allows multiple performance related color adjustments to be set at once. Setting the print-color-adjust CSS property directly is preferred, as it is the only such adjustment so far defined.

Media queries
LimitedMedia queries

Custom media queries

The @custom-media CSS at-rule names a media query, which you can reuse in multiple @media rules.

Media queries
LimitedMedia queries

Device media queries

The device-aspect-ratio, device-height, and device-width media features describe physical properties of the displaying output device.

Media queries
LimitedMedia queries

display-mode media query

The display-mode CSS media query sets styles based on whether the web page is in an ordinary browser tab mode or another mode, such as fullscreen, standalone, or minimal-ui.

Media queries
LimitedMedia queries

inverted-colors media query

The inverted-colors CSS media query sets styles based on whether the user has inverted all colors, such as with mobile accessibility settings.

Media queries
LimitedMedia queries

prefers-reduced-data media query

The prefers-reduced-data CSS media query detects whether the user has a preference for using less network traffic. For example, you can use this media query to avoid loading large font files and use a system font instead.

Media queries
LimitedMedia queries

prefers-reduced-transparency media query

The prefers-reduced-transparency CSS media query sets styles based on whether the user prefers to reduce the amount of transparent effects on their device, for example to improve contrast and legibility.

Media queries
LimitedMedia queries

video-dynamic-range media query

The video-dynamic-range CSS media query sets styles based on whether a device can display video with at least standard range colors or at least high range colors. Non-visual devices will match neither.

Media queries
LimitedOther

Anchor position container queries

Anchor position container queries with the @container anchored(fallback: …) at-rule apply styles to an element based on the element's anchor position.

Other
LimitedOther

Anchor positioning

Anchor positioning places an element based on the position of another element. For example, you can place a tooltip next to the content it references.

Other
LimitedOther

baseline-source

The baseline-source CSS property controls how inline-level boxes with multiple lines of text are aligned with the surrounding text. By default, which typographic baseline is used depends on the display property value.

Other
LimitedOther

box-decoration-break

The box-decoration-break CSS property sets whether box decorations, such as borders or backgrounds, of an element divided across a page, column, or region wraps each fragment or splits across the break.

Other
LimitedOther

caret-shape

The caret-shape CSS property sets the shape of the insertion caret, the symbol that shows where the next character is to be inserted or deleted.

Other
LimitedOther

corner-shape

The corner-shape CSS property sets the shape of an element's corners when using border-radius, allowing for shapes other than rounded corners. For example, corner-shape: squircle is a shape in between a square and rounded corner.

Other
LimitedOther

Custom ellipses

The text-overflow CSS property with a string value sets the string representing clipped text.

Other
LimitedOther

Custom highlights

Custom highlights style arbitrary text ranges, without adding extra elements to the DOM.

Other
LimitedOther

element()

The element() CSS function creates a live-updating image from an HTML element that can be used as an image or background image.

Other
LimitedOther

Hanging punctuation

The hanging-punctuation CSS property puts punctuation characters outside of the box to align the text with the rest of the document.

Other
LimitedOther

interactivity

The interactivity: inert CSS declaration makes an element and its descendants inert, like when using the inert HTML attribute. Inert elements can't be focused or clicked, their text can't be selected or found using the browser's find-in-page feature.

Other
LimitedOther

Media element pseudo-classes

The :playing, :paused, :seeking, :buffering, :stalled, :muted, and :volume-locked CSS pseudo-classes match <audio> and <video> elements based on their state.

Other
LimitedOther

path()

The path() CSS shape function creates a shape for clip-path, shape-outside, and the SVG attribute d.

Other
LimitedOther

scroll-initial-target

The scroll-initial-target: nearest CSS declaration sets the initial scroll position of its scroll container to the top of the element, much like scrolling to a URL fragment.

OtherScrolling
LimitedOther

SVG 1.1

The SVG 1.1 image format has several components that were excluded from SVG 2, such as fonts, alternate glyphs, and the xlink namespace.

Other
LimitedOther

text-autospace

The text-autospace CSS property sets whether and how to insert spaces in inter-script text (such as when mixing Latin and Chinese characters) and around punctuation.

OtherTypography
LimitedOther

text-decoration-skip-ink: all

The text-decoration-skip-ink: all CSS declaration forces interruptions in underlines and overlines where the line would cross a glyph. This contrasts with auto, which does not skip for CJK glyphs.

OtherTypography
LimitedOther

text-size-adjust

The text-size-adjust CSS property disables or modifies the browser's default text size adjustment for small screen sizes.

OtherTypography
LimitedScrolling

::scroll-button

The ::scroll-button(<dir>) CSS pseudo-element is a focusable button which scrolls its originating scroll container element in the specified direction.

Scrolling
LimitedScrolling

overflow-anchor

The overflow-anchor CSS property sets an element as a possible scroll anchor, reducing unintended scrolling when document changes occur above the current scrollport. This is enabled by default where supported.

Scrolling
LimitedScrolling

Scroll marker target pseudo-classes

The :target-current CSS pseudo-class selects the active scroll marker (as in ::scroll-marker), while the :target-after and :target-before pseudo-classes select the inactive markers preceding and following the active scroll marker.

Scrolling
LimitedScrolling

Scroll markers

A scroll marker scrolls a container to a scroll target. The ::scroll-marker CSS pseudo-element selects a scroll marker in a ::scroll-marker-group pseudo-element, generated before or after the scroll container. You can use them to navigate and style tables of contents, tab panels, and carousels.

Scrolling
LimitedScrolling

Scroll-driven animations

The animation-timeline, scroll-timeline, and view-timeline CSS properties advance animations based on the user's scroll position.

Scrolling
LimitedScrolling

scroll-target-group

The scroll-target-group CSS property sets the container where anchor links act as scroll markers. Using selectors such as :target-current, you can style elements when a target has scrolled into view. It's an alternative to the ::scroll-marker-group pseudo-element, which generates scroll markers.

Scrolling
LimitedSelectors

::selection

The ::selection CSS pseudo-element selects text a user has highlighted.

Selectors
LimitedSelectors

::spelling-error and ::grammar-error

The ::spelling-error and ::grammar-error CSS pseudo-elements match text that is highlighted as misspelled and grammatically incorrect, respectively.

Selectors
LimitedSelectors

:has-slotted

The :has-slotted CSS pseudo-class matches <slot> elements where the fallback content is not shown. The pseudo-class matches any slotted content, including white space, text nodes, or elements.

Selectors
LimitedSelectors

:host-context()

The :host-context() CSS pseudo-class selects the containing element of the shadow tree in which it is used if that element or an ancestor matches the provided selector.

Selectors
LimitedSelectors

:open

The :open CSS pseudo-class matches elements that have open states, like <details>, <dialog>, or <select>, based on their state.

Selectors
LimitedSelectors

Case-sensitive attribute selector

The s identifier in a CSS attribute selector matches attribute values case-sensitively in document languages like HTML where attribute values are case-insensitive.

Selectors
LimitedSelectors

Heading pseudo-classes

The :heading and :heading() CSS pseudo-classes match headings of varying levels. The :heading pseudo-class matches any heading (<h1> through <h6>). The :heading() selector matches any of the given levels. For example, :heading(1, 2) matches headings level 1 and 2.

Selectors
LimitedSelectors

Page selectors

The :first, :left, and :right pseudo-classes select pages based on their position in sequence after pagination.

Selectors
LimitedSelectors

text-decoration in ::selection

The text-decoration CSS property in a ::selection rule sets the underline and other text decoration styles on the text a user has highlighted.

Selectors
LimitedSelectors

Time-relative pseudo-selectors

The :past and :future CSS pseudo-classes match prior or upcoming text track cues during media playback.

Selectors
LimitedSyntax and cascade

@function

The @function CSS at-rule defines a custom function that takes CSS values or custom properties as arguments, and returns a CSS value. It can be based on conditional logic such as by using the @media at-rule.

Syntax and cascadeFunctions
LimitedSyntax and cascade

attr()

The attr() CSS function, in the context of any property, returns the value of an attribute of an HTML element, with the option to return it as a specific type or unit. You can set a default value for missing or invalid attributes.

Syntax and cascadeFunctions
LimitedSyntax and cascade

calc-size()

The calc-size() CSS function computes mathematical expressions that include height and width keyword values, for example calc-size(fit-content, size / 2). Not to be confused with the calc() CSS function, which cannot use keyword values.

Syntax and cascadeFunctions
LimitedSyntax and cascade

display animation

You can animate elements between display: none and any other display value or animate between content-visibility: hidden and any other content-visibility value. This also applies to transitions.

Syntax and cascadeLayout
LimitedSyntax and cascade

display: contents

The display: contents CSS declaration sets an element to display only its contents, not itself.

Syntax and cascadeLayout
LimitedSyntax and cascade

display: ruby

The display: ruby CSS declaration renders an element with the box layout of a <ruby> HTML element. Child elements may use equivalents to <ruby> internal elements such as display: ruby-base for <rb>.

Syntax and cascadeTypographyLayout
LimitedSyntax and cascade

field-sizing

The field-sizing CSS property allows form controls such as <textarea> to be sized based on their content.

Syntax and cascade
LimitedSyntax and cascade

filter()

The filter() CSS function applies one or more graphic effects to a CSS image, such as a background image. You can use functions, such as blur() and drop-shadow(), alone or combined to produce different effects. For instance, background: filter(url(image.png), blur(2px)).

Syntax and cascadeVisual styling
LimitedSyntax and cascade

glyph-orientation-vertical

The glyph-orientation-vertical CSS property sets the orientation of glyphs in text rendered in a vertical writing mode.

Syntax and cascade
LimitedSyntax and cascade

if()

The if() CSS function is an inline conditional value that returns a value based on a set of conditions.

Syntax and cascade
LimitedSyntax and cascade

ime-mode

The ime-mode CSS property sets the state of the input method editor for text fields.

Syntax and cascade
LimitedSyntax and cascade

initial-letter

The initial-letter CSS property sets the number of lines the first letter of an element occupies. You can use the property to make a raised capital or drop cap.

Syntax and cascade
LimitedSyntax and cascade

line-clamp

The line-clamp CSS property limits the text in a block container to a certain number of lines. The prefixed -webkit-line-clamp is widely supported but only works with -webkit-box-orient: vertical in combination with display: -webkit-box or display: -webkit-inline-box.

Syntax and cascadeTypography
LimitedSyntax and cascade

margin-trim

The margin-trim CSS property removes the margins of child elements when they meet the edges of the container.

Syntax and cascadeLayout
LimitedSyntax and cascade

object-view-box

The object-view-box CSS property crops and zooms to an inset area of an image.

Syntax and cascade
LimitedSyntax and cascade

overflow-clip-margin

The overflow-clip-margin CSS property sets how far overflow content may appear outside the bounds of an element before it's clipped by effects such as overflow: clip.

Syntax and cascadeScrollingLayout
LimitedSyntax and cascade

overflow: overlay

The overflow: overlay CSS declaration is an alias to overflow: auto. Historically, it caused non-standard behavior, allowing scrollbars to overlay content without taking up layout space.

Syntax and cascadeVisual stylingScrolling
LimitedSyntax and cascade

overlay

The overlay CSS property, used as an allow-discrete CSS transition, prevents a top layer element, such as a popover or a <dialog>, from being removed from the top layer before it has finished animating. You can't set the value of the overlay property; only use it as transition property.

Syntax and cascadeVisual styling
LimitedSyntax and cascade

paint()

The paint() CSS function creates a custom image, drawn using a paint worklet, for an element's background or border.

Syntax and cascadeVisual styling
LimitedSyntax and cascade

progress()

The progress() CSS function returns a ratio for the relative position of one value between two other values, clamped between 0 and 1. You can use it to interpolate a value for other calculations.

Syntax and cascade
LimitedSyntax and cascade

random()

The random() CSS function chooses a random numeric value within a specified range. This allows for dynamic, randomized styling using CSS.

Syntax and cascadeFunctions
LimitedSyntax and cascade

reading-flow

The reading-flow CSS property sets the order in which flex or grid elements are rendered to speech or reached via focus navigation. The reading-order property overrides this order.

Syntax and cascadeLayout
LimitedSyntax and cascade

sibling-count() and sibling-index()

The sibling-count() and sibling-index() CSS functions return integers that are useful to style elements based on their positions among siblings or on the number of siblings, for example as part of a calc() expression.

Syntax and cascade
LimitedSyntax and cascade

text-spacing-trim

The text-spacing-trim CSS property controls spacing around CJK characters, avoiding excessive whitespace when using full-width punctuation characters.

Syntax and cascadeTypography
LimitedSyntax and cascade

word-break: break-word

The word-break: break-word CSS declaration sets word breaks to occur according to their customary rules.

Syntax and cascadeTypography
LimitedSyntax and cascade

writing-mode SVG 1.1 values

The lr, lr-tb, rl, rl-tb, tb, and tb-rl keyword values for the writing-mode CSS property set the text direction for elements in SVG 1.1 documents.

Syntax and cascade
LimitedTypography

::marker

The ::marker CSS pseudo-element selects list item markers for styling numbers or bullets.

Typography
LimitedTypography

alignment-baseline

The alignment-baseline CSS property sets which baseline of an element is aligned with the corresponding baseline of its parent.

Typography
LimitedTypography

baseline-shift

The baseline-shift CSS property sets the position of an element relative to its dominant baseline.

Typography
LimitedTypography

COLRv1

COLRv1 is a font format that supports multi-color glyphs. COLRv1 extends COLRv0 to support gradients, transforms, and blending modes.

Typography
LimitedTypography

Font metric overrides

The ascent-override, descent-override, and line-gap-override descriptors adjust the display of a font declared in an @font-face statement. This can help make fallback fonts look the same size.

Typography
LimitedTypography

font-language-override

The font-language-override CSS property sets which language-specific glyphs are displayed.

Typography
LimitedTypography

font-palette animation

You can animate color fonts between two font-palette values.

Typography
LimitedTypography

font-synthesis-position

The font-synthesis-position CSS property sets whether or not the browser should synthesize subscript and superscript typefaces when they're missing from the font.

Typography
LimitedTypography

font-variant-emoji

The font-variant-emoji CSS property sets the default presentation for emoji characters.

Typography
LimitedTypography

font-variant-position

The font-variant-position CSS property sets whether to use alternate glyphs for subscript and superscript text.

Typography
LimitedTypography

font-width

The font-width CSS property selects a font face from a font family based on width, either by a keyword such as condensed or a percentage.

Typography
LimitedTypography

Hyphenate limit chars

The hyphenate-limit-chars CSS property sets the number of characters in a word before it is hyphenated and the minimum number of characters on either side of the hyphen.

Typography
LimitedTypography

Reversed counter-reset

The reversed() CSS function for counter-reset creates a counter that counts down.

Typography
LimitedTypography

ruby-overhang

The ruby-overhang CSS property sets whether ruby annotations may overlap adjacent text.

Typography
LimitedTypography

speak

The speak CSS property sets whether or not text should be spoken.

Typography
LimitedTypography

speak-as

The speak-as CSS property sets how any element's content is spoken. Not to be confused with the speak-as descriptor of @counter-style at-rules.

Typography
LimitedTypography

text-box

The text-box CSS property sets the spacing above and below text based on a font's typographic features. For example, text-box: trim-both ex alphabetic trims the top to the top of the letter x and the bottom to the bottom of most letters, without descenders.

Typography
LimitedTypography

text-justify

The text-justify CSS property sets the justification method of text when text-align: justify is set.

Typography
LimitedTypography

text-wrap: pretty

The text-wrap: pretty CSS declaration prioritizes better layout over speed when text is broken into multiple lines.

Typography
LimitedTypography

UI fonts

The ui-serif, ui-sans-serif, ui-monospace and ui-rounded values for the font-family CSS property use device-default user interface fonts for text.

Typography
LimitedTypography

word-break: auto-phrase

The word-break: auto-phrase CSS declaration specifies that wrapping should occur at natural phrase boundaries, especially in CJK languages.

Typography
LimitedUnits and functions

cross-fade()

The cross-fade() CSS function generates an image by mixing two images.

Units and functionsVisual styling