
An In-Depth Look at New CSS Features in 2022-2023

An In-Depth Look at New CSS Features in 2022-2023
1. Container Queries
Container Queries enable styling elements based on their container’s dimensions, not just the viewport size, which is especially useful for adaptive design.
Example:
.container { container-type: inline-size; }
.card { container-name: container; background: lightblue; }
@container (min-width: 500px){ .card { background: pink; } }
In this example, .card changes its background to pink if the .container width exceeds 500 pixels.
2. :focus-visible Pseudo-Class
:focus-visible improves accessibility by adding focus indicators only when necessary, like for keyboard users.
Example:
button:focus-visible { outline: 2px solid blue; }
Here, the outline appears around the button only during keyboard navigation.
3. :has() Selector
The :has() selector allows for styling an element based on the presence of other elements inside it.
Example:
div:has(> p.highlight) { background-color: yellow; }
Here, div gets a yellow background if it contains a child p with the class highlight.
4. Subgrid
Subgrid allows grid items to inherit grid layout from their parent grid.
Example:
.grid { display: grid; grid-template-columns: 1fr 1fr; }
.item { display: grid; grid-template-columns: subgrid; }
Inner elements .item inherit the grid structure from their parent .grid.
5. Accent-Color
The accent-color property simplifies styling form control elements.
Example:
input[type="checkbox"] { accent-color: blue; }
This changes the checkbox color to blue.
6. Individual Transform Properties
These properties (scale, translate, rotate) simplify applying and modifying CSS transformations.
Example:
div { rotate: 45deg; scale: 1.5; }
Here, the div is rotated by 45 degrees and scaled up by 1.5 times.
7. Wide-Gamut Color Spaces
These color spaces allow for the use of more saturated and vivid colors.
Example:
div { background-color: color(display-p3 1 0 0); }
This code sets a bright red color for div in the display-p3 color space.
8. New Viewport Units
New units (svh, svw, lvh, lvw, dvh, dvw) provide more precise sizing of elements relative to the viewport size.
Example:
.large-element { height: 50lvh; /* Height for large viewports */ }
.small-element { width: 80svw; /* Width for small viewports */ }
.large-element has a height of 50% of large viewports, and .small-element has a width of 80% of small viewports.
9. Text-Wrap Balance
Text-wrap balance improves text distribution in headings and titles.
Example:
h1 { text-wrap: balance; }
This evenly distributes the text in h1 headings, enhancing readability.
10. Initial-Letter
The initial-letter property allows for custom styling of the first letter in a paragraph.
Example:
p::first-letter { initial-letter: 3 2; }
This sets the first letter of a paragraph p to be the size of three lines and raised by two lines.
These innovations in CSS significantly expand the capabilities of web developers, making websites more adaptive, accessible, and visually appealing.

