cssdb logo

What’s next for CSS?

cssdb is a comprehensive list of CSS features and their positions in the process of becoming implemented web standards.

What are the stages?

all Property

A property for defining the reset of all properties of an element

Break Properties

Properties for defining the break behavior between and within boxes

Specification Mozilla Developer Network Documentation Stage 3

a {
  break-inside: avoid;
  break-before: avoid-column;
  break-after: always;
}
Use with a

Custom Properties

A syntax for defining custom values accepted by all CSS properties

Specification Mozilla Developer Network Documentation Stage 3

img {
  --some-length: 32px;

  height: var(--some-length);
  width: var(--some-length);
}
Use with a

font-variant Property

A property for defining the usage of alternate glyphs in a font

Specification Mozilla Developer Network Documentation Stage 3

h2 {
  font-variant: small-caps;
}
Use with a

Gap Properties

Properties for defining gutters within a layout

Specification Mozilla Developer Network Documentation Stage 3

.grid-1 {
  gap: 20px;
}

.grid-2 {
  column-gap: 40px;
  row-gap: 20px;
}
Use with a

Grid Layout

A syntax for using a grid concept to lay out content

Specification Mozilla Developer Network Documentation Stage 3

section {
  display: grid;
  grid-template-columns: 100px 100px 100px;
  grid-gap: 10px;
}
Use with a

Media Query Ranges

A syntax for defining media query ranges using ordinary comparison operators

Specification Mozilla Developer Network Documentation Stage 3

@media (width < 480px) {}

@media (480px <= width < 768px) {}

@media (width >= 768px) {}
Use with a

Case-Insensitive Attributes

An attribute selector matching attribute values case-insensitively

Specification Mozilla Developer Network Documentation Stage 2

[frame=hsides i] {
  border-style: solid none;
}
Use with a

color-adjust Property

The color-adjust property is a non-standard CSS extension that can be used to force printing of background colors and images

Specification Mozilla Developer Network Documentation Stage 2

.background {
  background-color:#ccc;
}
.background.color-adjust {
  color-adjust: economy;
}
.background.color-adjust-exact {
  color-adjust: exact;
}

:dir Directionality Pseudo-Class

A pseudo-class for matching elements based on their directionality

Specification Mozilla Developer Network Documentation Stage 2

blockquote:dir(rtl) {
  margin-right: 10px;
}

blockquote:dir(ltr) {
  margin-left: 10px;
}
Use with a

Double Position Gradients

A syntax for using two positions in a gradient.

Specification Stage 2

.pie_chart {
  background-image: conic-gradient(yellowgreen 40%, gold 0deg 75%, #f06 0deg);
}
Use with a

:focus-visible Focus-Indicated Pseudo-Class

A pseudo-class for matching focused elements that indicate that focus to a user

Specification Mozilla Developer Network Documentation Stage 2

: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

Specification Mozilla Developer Network Documentation Stage 2

form:focus-within {
  background: rgba(0, 0, 0, 0.3);
}

gray() Function

A function for specifying fully desaturated colors

Specification Stage 2

p {
  color: gray(50);
}
Use with a

:has() Relational Pseudo-Class

A pseudo-class for matching ancestor and sibling elements

Specification Mozilla Developer Network Documentation Stage 2

a:has(> img) {
  display: block;
}

Hexadecimal Alpha Notation

A 4 & 8 character hex color notation for specifying the opacity level

Specification Mozilla Developer Network Documentation Stage 2

section {
  background-color: #f3f3f3f3;
  color: #0003;
}
Use with a

hwb() Function

A function for specifying colors by hue and then a degree of whiteness and blackness to mix into it

Specification Stage 2

p {
  color: hwb(120 44% 50%);
}
Use with a

image-set() Function

A function for specifying image sources based on the user’s resolution

Specification Stage 2

p {
  background-image: image-set(
    "foo.png" 1x,
    "foo-2x.png" 2x,
    "foo-print.png" 600dpi
  );
}
Use with a

:in-range and :out-of-range Pseudo-Classes

A pseudo-class for matching elements that have range limitations

Specification Mozilla Developer Network Documentation Stage 2

input:in-range {
  background-color: rgba(0, 255, 0, 0.25);
}
input:out-of-range {
  background-color: rgba(255, 0, 0, 0.25);
  border: 2px solid red;
}

lab() Function

A function for specifying colors expressed in the CIE Lab color space

Specification Stage 2

body {
  color: lab(240 50 20);
}
Use with a

lch() Function

A function for specifying colors expressed in the CIE Lab color space with chroma and hue

Specification Stage 2

body {
  color: lch(53 105 40);
}
Use with a

Logical Properties and Values

Flow-relative (left-to-right or right-to-left) properties and values

Specification Mozilla Developer Network Documentation Stage 2

span:first-child {
  float: inline-start;
  margin-inline-start: 10px;
}
Use with a

:matches() Matches-Any Pseudo-Class

A pseudo-class for matching elements in a selector list

Specification Mozilla Developer Network Documentation Stage 2

p:matches(:first-child, .special) {
  margin-top: 1em;
}
Use with a

:not() Negation List Pseudo-Class

A pseudo-class for ignoring elements in a selector list

Specification Mozilla Developer Network Documentation Stage 2

p:not(:first-child, .special) {
  margin-top: 1em;
}
Use with a

overflow Shorthand Property

A property for defining overflow-x and overflow-y

Specification Mozilla Developer Network Documentation Stage 2

html {
  overflow: hidden auto;
}
Use with a

overflow-wrap Property

A property for defining whether to insert line breaks within words to prevent overflowing

Specification Mozilla Developer Network Documentation Stage 2

p {
  overflow-wrap: break-word;
}
Use with a

Place Properties

Properties for defining alignment within a layout

Specification Mozilla Developer Network Documentation Stage 2

.example {
  place-content: flex-end;
  place-items: center / space-between;
  place-self: flex-start / center;
}
Use with a

:read-only and :read-write selectors

Pseudo-classes to match elements which are considered user-alterable

Specification Mozilla Developer Network Documentation Stage 2

input:read-only {
  background-color: #ccc;
}

rebeccapurple Color

A particularly lovely shade of purple in memory of Rebecca Alison Meyer

Specification Mozilla Developer Network Documentation Stage 2

html {
  color: rebeccapurple;
}
Use with a

system-ui Font Family

A generic font used to match the user’s interface

Specification Mozilla Developer Network Documentation Stage 2

body {
  font-family: system-ui;
}
Use with a

Color Functional Notation

A space and slash separated notation for specifying colors

Specification Stage 1

em {
  background-color: hsl(120deg 100% 25%);
  box-shadow: 0 0 0 10px hwb(120deg 100% 25% / 80%);
  color: rgb(0 255 0);
}
Use with a

Custom Media Queries

An at-rule for defining aliases that represent media queries

Specification Stage 1

@custom-media --narrow-window (max-width: 30em);

@media (--narrow-window) {}
Use with a

Custom Selectors

An at-rule for defining aliases that represent selectors

Specification Stage 1

@custom-selector :--heading h1, h2, h3, h4, h5, h6;

article :--heading + p {}
Use with a

overscroll-behavior Property

Properties for controlling when the scroll position of a scroll container reaches the edge of a scrollport

Specification Mozilla Developer Network Documentation Stage 1

.messages {
  height: 220px;
  overflow: auto;
  overscroll-behavior-y: contain;
}

body {
  margin: 0;
  overscroll-behavior: none;
}

prefers-color-scheme Media Query

A media query to detect if the user has requested the system use a light or dark color theme

Specification Stage 1

body {
  background-color: white;
  color: black;
}

@media (prefers-color-scheme: dark) {
  body {
    background-color: black;
    color: white;
  }
}

prefers-reduced-motion Media Query

A media query to detect if the user has requested less animation and general motion on the page

Specification Mozilla Developer Network Documentation Stage 1

.animation {
  animation: vibrate 0.3s linear infinite both; 
}

@media (prefers-reduced-motion: reduce) {
  .animation {
    animation: none;
  }
}

:where() Zero-Specificity Pseudo-Class

A pseudo-class for matching elements in a selector list without contributing specificity

Specification Stage 1

a:where(:not(:hover)) {
  text-decoration: none;
}

Custom Environment Variables

A syntax for using custom values accepted by CSS globally

Specification Mozilla Developer Network Documentation Stage 0

@media (max-width: env(--brand-small)) {
  body {
    padding: env(--brand-spacing);
  }
}
Use with a

Nesting Rules

A syntax for nesting relative rules within rules

Specification Stage 0

article {
  & p {
    color: #333;
  }
}
Use with a

When/Else Rules

At-rules for specifying media queries and support queries in a single grammar

Specification Stage 0

@when media(width >= 640px) and (supports(display: flex) or supports(display: grid)) {
  /* A */
} @else media(pointer: coarse) {
  /* B */
} @else {
  /* C */
}

Want to contribute? Checkout the cssdb on GitHub