Features
						
							all Property
						
					
					
					
				A property for defining the reset of all properties of an element
/* all-property */
a {
  all: initial;
}
						
							alpha() Function
						
					
					
					
				Relative alpha colors
/* alpha-function */
p {
  color: alpha(from red / calc(alpha * 0.5));
}
						
							:any-link Hyperlink Pseudo-Class
						
					
					
					
				A pseudo-class for matching anchor elements independent of whether they have been visited
/* any-link-pseudo-class */
nav :any-link > span {
  background-color: yellow;
}
						
							:blank Empty-Value Pseudo-Class
						
					
					
					
				A pseudo-class for matching form elements when they are empty
/* blank-pseudo-class */
input:blank {
  background-color: yellow;
}Break Properties
Properties for defining the break behavior between and within boxes
/* break-properties */
a {
  break-inside: avoid;
  break-before: avoid-column;
  break-after: always;
}CSS Cascade Layers
					The @layer at-rule allows authors to explicitly layer their styles in the cascade, before specificity and order of appearance are considered.
				
/* cascade-layers */
/* Un-layered styles have the highest priority */
a {
  color: mediumvioletred;
}
@layer defaults {
  a { color: maroon; }
}Case-Insensitive Attributes
An attribute selector matching attribute values case-insensitively
/* case-insensitive-attributes */
[frame=hsides i] {
  border-style: solid none;
}
						
							clamp Function
						
					
					
					
				The clamp() CSS function clamps a value between an upper and lower bound. It enables selecting a middle value within a range of values between a defined minimum and maximum.
/* clamp */
button {
  font-size: clamp(1rem, 2.5vw, 2rem);
}
						
							color() Function
						
					
					
					
				A function that allows a color to be specified in a particular, specified color space rather than the implicit sRGB color space that most of the other color functions operate in.
/* color-function */
p {
  color: color(display-p3 1 0.5 0);
  color: color(display-p3 1 0.5 0 / .5);
}
						
							The display-p3-linear Color Space for the color() Function
						
					
					
					
				
					The display-p3-linear predefined color space is the same as display-p3 except that the transfer function is linear-light.
				
/* color-function-display-p3-linear */
p {
  color: color(display-p3-linear 0.3081 0.014 0.0567);
}Color Functional Notation
A space and slash separated notation for specifying colors
/* color-functional-notation */
em {
  background-color: hsl(120deg 100% 25%);
  color: rgb(0 255 0);
}
						
							color-mix() Function
						
					
					
					
				A function for mixing colors
/* color-mix */
p {
  color: color-mix(in lch, purple 50%, plum 50%);
}
						
							color-mix() Function with 1+ arguments
						
					
					
					
				Mix any number of colors
/* color-mix-variadic-function-arguments */
p {
  color: color-mix(in lch, red, lime, blue);
}
						
							Alt text for content
						
					
					
					
				Syntax that allows setting alternative text
/* content-alt-text */
.element {
  content: url(tree.jpg) / "image with a tree";
}
						
							contrast-color() Function
						
					
					
					
				Dynamically specifying a text color with adequate contrast.
/* contrast-color-function */
p {
  color: contrast-color( purple max );
}Custom Media Queries
An at-rule for defining aliases that represent media queries
/* custom-media-queries */
@custom-media --narrow-window (max-width: 30em);
@media (--narrow-window) {}Custom Properties
A syntax for defining custom values accepted by all CSS properties
/* custom-properties */
:root {
  --some-length: 32px;
  height: var(--some-length);
  width: var(--some-length);
}Custom Selectors
An at-rule for defining aliases that represent selectors
/* custom-selectors */
@custom-selector :--heading h1, h2, h3, h4, h5, h6;
article :--heading + p {}
						
							:dir Directionality Pseudo-Class
						
					
					
					
				A pseudo-class for matching elements based on their directionality
/* dir-pseudo-class */
blockquote:dir(rtl) {
  margin-right: 10px;
}
blockquote:dir(ltr) {
  margin-left: 10px;
}
						
							Two values syntax for display
						
					
					
					
				Syntax that allows definition of outer and inner displays types for an element
/* display-two-values */
.element {
  display: inline flow-root;
  display: inline flex;
  display: block grid;
}Double Position Gradients
A syntax for using two positions in a gradient.
/* double-position-gradients */
.pie_chart {
  background-image: conic-gradient(yellowgreen 40%, gold 0deg 75%, #f06 0deg);
}
						
							pow(), sqrt(), hypot(), log(), exp() exponential functions
						
					
					
					
				Compute various exponential functions with their arguments
/* exponential-functions */
p {
  font-size: calc(pow(10, 12) * 1rem);
  font-size: calc(sqrt(100) * 1rem);
  font-size: calc(hypot(3, 4) * 1rem);
  font-size: calc(log(10) * 1rem);
  font-size: calc(exp(10) * 1rem);
}Logical Values in float and clear
Flow-relative (inline-start and inline-end) values for float and clear
/* float-clear-logical-values */
span:first-child {
  float: inline-start;
}
						
							:focus-visible Focus-Indicated Pseudo-Class
						
					
					
					
				A pseudo-class for matching focused elements that indicate that focus to a user
/* focus-visible-pseudo-class */
:focus:not(:focus-visible) {
  outline: 0;
}
						
							:focus-within Focus Container Pseudo-Class
						
					
					
					
				A pseudo-class for matching elements that are either focused or that have focused descendants
/* focus-within-pseudo-class */
form:focus-within {
  background: rgb(0 128 0);
}
						
							Font format() Keywords
						
					
					
					
				
					A syntax for specifying font format as a keyword in @font-face rule’s format() function
				
/* font-format-keywords */
@font-face {
  src: url(file.woff2) format(woff2);
}
						
							font-variant Property
						
					
					
					
				A property for defining the usage of alternate glyphs in a font
/* font-variant-property */
h2 {
  font-variant: small-caps;
}Gamut mapping for CSS color functions
Gamut map css colors to fit display specific gamuts.
/* gamut-mapping */
@media (color-gamut: rec2020) {
	p {
		color: oklch(40% 0.234 0.39 / 0.5);
	}
}Gap Properties
Properties for defining gutters within a layout
/* gap-properties */
.grid-1 {
  gap: 20px;
}
.grid-2 {
  column-gap: 40px;
  row-gap: 20px;
}Gradients Interpolation Method
Define the interpolation method for gradients
/* gradients-interpolation-method */
.pie_chart {
  background-image: conic-gradient(in oklch, yellowgreen 40%, gold 0deg 75%, #f06 0deg);
}
						
							:has() Relational Pseudo-Class
						
					
					
					
				A pseudo-class for matching ancestor and sibling elements
/* has-pseudo-class */
a:has(> img) {
  display: block;
}Hexadecimal Alpha Notation
A 4 & 8 character hex color notation for specifying the opacity level
/* hexadecimal-alpha-notation */
section {
  background-color: #f3f3f3f3;
  color: #0003;
}
						
							hwb() Function
						
					
					
					
				A function for specifying colors by hue and then a degree of whiteness and blackness to mix into it
/* hwb-function */
p {
  color: hwb(120 44% 50%);
}
						
							ic length unit
						
					
					
					
				Equal to the used advance measure of the "水" (CJK water ideograph, U+6C34) glyph found in the font used to render it
/* ic-unit */
p {
  text-indent: 2ic;
}
						
							image-set() Function
						
					
					
					
				A function for specifying image sources based on the user’s resolution
/* image-set-function */
p {
  background-image: image-set(
    "foo.png" 1x,
    "foo-2x.png" 2x,
    "foo-print.png" 600dpi
  );
}
						
							:is() Matches-Any Pseudo-Class
						
					
					
					
				A pseudo-class for matching elements in a selector list
/* is-pseudo-class */
p:is(:first-child, .special) {
  margin-top: 1em;
}
						
							lab() Function
						
					
					
					
				A function for specifying colors expressed in the CIE Lab color space
/* lab-function */
body {
  color: lab(80% 50 20);
}
						
							light-dark() Function
						
					
					
					
				
					React to the current used color-scheme value
				
/* light-dark-function */
body {
  color: light-dark(cyan, magenta);
}Logical Overflow
					Flow-relative overflow properties
				
/* logical-overflow */
div {
  overflow-block: scroll;
}Logical Overscroll Behavior
					Flow-relative overscroll-behavior properties
				
/* logical-overscroll-behavior */
div {
  overscroll-behavior-block: scroll;
}Logical Properties and Values
Flow-relative (left-to-right or right-to-left) properties and values
/* logical-properties-and-values */
span:first-child {
  margin-inline-start: 10px;
}
						
							Logical values in the resize property
						
					
					
					
				Flow-relative (block or inline) values in resize
/* logical-resize */
area {
  resize: inline;
}Logical Viewport Units
Flow-relative (horizontal or vertical) Viewport Units
/* logical-viewport-units */
span:first-child {
  width: 5vi; height: 10vb; 
}Aspect-Ratio number values
					Support <ratio> values with <number> components in @media
				
/* media-queries-aspect-ratio-number-values */
@media (aspect-ratio: 1.77) {
  html {
    background-color: cyan;
  }
}Media Query Ranges
A syntax for defining media query ranges using ordinary comparison operators
/* media-query-ranges */
@media (width < 480px) {}
@media (480px <= width < 768px) {}
@media (width >= 768px) {}
						
							Nested calc()
						
					
					
					
				Nest calc functions with the calc function name
/* nested-calc */
p {
  padding: calc(1px + calc(4 / 3));
}Nesting Rules
A syntax for nesting relative rules within rules
/* nesting-rules */
article {
  & p {
    color: #333;
  }
}
						
							:not() Negation List Pseudo-Class
						
					
					
					
				A pseudo-class for ignoring elements in a selector list
/* not-pseudo-class */
p:not(:first-child, .special) {
  margin-top: 1em;
}
						
							oklab and oklch color functions
						
					
					
					
				Functions that allow colors to be expressed in OKLab and OKLCH.
/* oklab-function */
p {
  color: oklab(72.322% -0.0465 -0.1150);
  color: oklch(72.322% 0.12403 247.996);
}
						
							Support for percentages for opacity
						
					
					
					
				Syntactic sugar to use percentages instead of a float between 0 and 1.
/* opacity-percentage */
img {
  opacity: 90%;
}
						
							overflow Shorthand Property
						
					
					
					
				
					A property for defining overflow-x and overflow-y
				
/* overflow-property */
html {
  overflow: hidden auto;
}
						
							overflow-wrap Property
						
					
					
					
				A property for defining whether to insert line breaks within words to prevent overflowing
/* overflow-wrap-property */
p {
  overflow-wrap: break-word;
}Place Properties
Properties for defining alignment within a layout
/* place-properties */
.example {
  place-content: flex-end;
  place-items: center / space-between;
  place-self: flex-start / center;
}
						
							prefers-color-scheme Media Query
						
					
					
					
				A media query to detect if the user has requested the system use a light or dark color theme
/* prefers-color-scheme-query */
body {
  background-color: white;
  color: black;
}
@media (prefers-color-scheme: dark) {
  body {
    background-color: black;
    color: white;
  }
}
						
							random() function
						
					
					
					
				Represents a random value between a minimum and maximum value, drawn from a uniform distribution, optionally limiting the possible values to a step between those limits
/* random-function */
div {
  color: oklch(0.7, 0.2, random(120deg, 240deg));
}
						
							rebeccapurple Color
						
					
					
					
				A particularly lovely shade of purple in memory of Rebecca Alison Meyer
/* rebeccapurple-color */
html {
  color: rebeccapurple;
}Relative Colors
Modify existing colors using color functions
/* relative-color-syntax */
p {
  color: lch(from peru calc(l * 0.8) c h);
}
						
							:scope() Reference Element Pseudo-class
						
					
					
					
				A pseudo-class for matching one or more scoping roots
/* scope-pseudo-class */
:scope {
  background-color: pink;
}
						
							abs() and sign() functions
						
					
					
					
				The sign-related functions—abs() and sign()—compute various functions related to the sign of their argument
/* sign-functions */
div {
  order: abs(-10);
  order: sign(-10);
}
						
							round(), mod() and rem() functions
						
					
					
					
				
					The stepped-value functions, round(), mod(), and rem(), all transform a given value according to another "step value", in different ways
				
/* stepped-value-functions */
div {
  left: mod(18px, 5px);
  top: rem(18px, 5px);
  right: round(2.5px, 1px);
  bottom: round(up, 15px, 7px);
}
						
							system-ui Font Family
						
					
					
					
				A generic font used to match the user’s interface
/* system-ui-font-family */
body {
  font-family: system-ui;
}
						
							text-decoration shorthand
						
					
					
					
				
					A property for defining text-decoration-line, text-decoration-thickness, text-decoration-style and text-decoration-color
				
/* text-decoration-shorthand */
p {
  text-decoration: green wavy underline 2px;
}
						
							sin(), cos(), tan(), asin(), acos(), atan() and atan2() functions
						
					
					
					
				Functions to calculate various basic trigonometric relationships
/* trigonometric-functions */
body {
  left: sin(45deg);
  left: cos(45deg);
  left: tan(45deg);
  left: asin(0.5);
  left: acos(0.5);
  left: atan(10);
  left: atan2(-1, 1);
}
						
							unset Keyword
						
					
					
					
				The unset CSS keyword resets a property to its inherited value if the property naturally inherits from its parent, and to its initial value if not.
/* unset-value */
div {
  border-color: unset;
  color: unset;
}