Head Ads

CSS: What happened in 2020?


 CSS: What happened in 2020?


The year 2020 has been a year to remember, but there have also been many themes and elements that you surely prefer to forget. We have had pandemic, natural disasters, social and personal disasters. If any of these problems have affected you, here I send you a lot of strength!


Forget CSS, learn CSS


One of the topics that you should also forget, or want to forget or reconsider, is related to everything you knew about CSS before 2020 - and a good part of 2019.

It turns out that in 2020 the CSS, Content Style Sheets, or cascading style sheets in Spanish has stopped looking like what you have been implementing for years in your web site and application development projects.


Some examples


If before you were used to using CSS breakpoints to make the content of your website respond according to the width of the device, now you can take advantage of the Grid properties, CSS Grid to create dynamic and responsive templates for the same effect, and with fewer lines of code.

You could also use CSS-in-JS to place your styles in your components. This way you don't have to rely on global style sheets and you can develop themeable design systems.

In the same way, Tailwind CSS has established itself in 2020, in the sector, thanks to its use of “ utility-first” CSS, encouraging to reconsider the use of famous and powerful frameworks, and also to reconsider the use of names! of semantic classes! : or


New features and adoption


Let's look together at some of these developments from the world of CSS and its adoption in 2020, building on the 2020 State of CSS survey conducted by Sacha Greif and Raphël Benitte. In addition, we will review what some of them mean for your web development processes with CSS.

Chart 2020.stateofcss.com

According to the Greif & Benitte survey, adoption of the new features is lagging a bit as the community absorbs the new properties.


Media Queries


Among 3 of the Media Queries properties that you probably don't know, prefers-color-scheme, prefers-reduced-motion, and color-gamut   prefers-color-scheme is the best known among developers and is also the most used with a ratio of 35.3%.


What is each of these properties for?




The prefers-color-scheme feature of media queries are used to detect whether the user has requested that the system use a light or dark color theme.




The prefers-reduced-motion function of media queries are used to detect whether the user has requested that the system minimize the amount of nonessential motion it uses.




The color-gamut property can be used to test the approximate gamut of colors supported by the user agent and the output devise.




Regarding typography, properties such as @ font-face or line break properties are still the most used such as the font-display property, which has a usage rate of 69.2%. Properties such as line-clamp, or font-variant do not reach a 50% ratio.


Let's take a look at what they mean!

@ font-face


@ font-face is a CSS at-rule ( at-rule ) that specifies a custom font to display text with; the font can be loaded from a remote server or from a font installed locally on the user's own machine.


Line break properties


The line break property sets how to break lines of Chinese, Japanese, or Korean text when working with punctuation marks, for example.




The font-display descriptor determines how a font is displayed based on whether it is downloaded and ready to use.


Layout and templates


According to the survey, Flexbox is still the best known and most used property with a ratio of 98%, but properties like Grid, as we have mentioned before, also deserve your attention since they have a utilization ratio of 74.1%. Property position: sticky with utilization ratio 81.4%, or the property of multi-column layout ( multi-column layout ) with use ratio of 59.2. Other properties such as exclusions, writing modes, subgrid, or CSS logical properties do not reach 50% usage.

Let's review what are some of the most important features.




CSS Grid Layout stands out for dividing a page into main regions or defining the relationship in terms of size, position, and layer between parts “of a control built from HTML primitives”.




CSS Flexible Box Layout is a CSS module that defines a CSS box model optimized for user interface layout and element layout in one dimension. In this model, the children of a flex container can be positioned in any direction and their sizes can be “ flexed ”, growing to fill unused spaces or shrinking to avoid overflowing the parent.


Multi-column Layout


CSS Multi-column Layout is a CSS module that adds support for multi-column layouts and templates. Support is included for setting the number of columns in a layout, as well as how content should flow from one column to another, and the sizes of the spaces between columns and column dividing lines.


Position: sticky


The CSS position property sets how an element is placed in a document. The top, right, bottom, and left properties determine the final location of positioned elements. An element with position: sticky is positioned according to the user's scroll position.


Shapes and graphics


Regarding shapes and graphics, filters and effects are the most used with a utilization rate of 73.4%, but properties such as object-fit (80.1%), clip-path (61.1%), blend-mode ( 55.3%) ) or backdrop-filter (52.9%) also have a lot of weight in the community.

Let's review what are some of the most important features.




The object-fit CSS property sets how the content of a replaced element, such as an <img> or <video> , should be resized to fit its container.


Filters and Effects


The filter property of CSS applies graphic effects such as blur or color change to an element. Filters are used to adjust images, backgrounds, or borders.




The clip-path property creates a clipping region that sets how much of an element to display. The parts that are within the region are displayed, while the parts that are outside are hidden.




The CSS data type <blend-mode> describes how colors should appear when elements overlap. It is used in the background-blend-mode and mix-blend-mode properties.


Animations and Transformations


The Transitions (95.5%),   Transformations (95.7%) and entertainment (92.7%) remain very important in the modern web development. The perspective is a bit far away , with a utilization ratio of 61.2%.

Let's remember what exactly these properties are.



The CSS Transitions module is a module that allows you to create gradual transitions between the values ​​of specific CSS properties. You can control the behavior of these transitions by specifying their timing, duration, and other attributes.




CSS Transforms is a module that defines how elements designed with CSS can be transformed into a two-dimensional or three-dimensional space.




CSS Animations is a module that allows you to animate CSS property values ​​over time, using keyframes. You can control these animations by specifying their timing, duration, number of repetitions, etc ...




In the interactions section, the pointer-events property is clearly the most important with a use rate of 85.1%, while other properties such as touch-action, scroll-snap, event-scroll-behavior, or overflow-anchor do not reach the 50% usage.

If you don't remember what exactly these properties are, we can go over them.




The pointer-events property establishes under what circumstances a graphical element can become the target of pointer-events.


Scroll Snap


CSS Scroll Snap is a CSS module that introduces scroll snap positions, which enforce scroll positions. Look at these examples. You will see that with scroll-snap you can lock the viewport on certain elements or locations after a user has finished scrolling.


Other features


calc () continues to have a fairly high usage with a 94.2% utilization rate, but other features such as variables (78.5%), will-change (63.6%), CSS comparison functions (57.9%), @supports (57.3 %). Far is the Contain property (34.2%), and even worse the CSS Houdini (5.7%).


What do some of these properties mean?




CSS Custom Properties for Cascading Variables is a module that allows the creation of custom properties that can be used more than once.




The will-change property tells browsers how an item is expected to change. Browsers can configure optimizations before an item is changed.


CSS Houdini


CSS Houdini is a set of low-level APIs that exposes parts of the CSS engine, giving developers the power to extend CSS, by connecting with the layout and design process of a browser's rendering engine. Houdini allows you to create new CSS functions without waiting for them to be implemented natively in browsers. You can learn more about Houdini in the Mozilla documentation.




These are just some of the properties, and changes that CSS has undergone in recent years and especially in 2020. If you have been working with CSS for years, I recommend you review them well (at the browser compatibility level ) and do tests before implementing them in your projects in production.

I think these new properties add a lot of value to web development and the CSS language, especially because they help reduce verbosity. I also think that the CSS community should rethink the true usefulness of some of these properties at a general level, since some of them are either not known to web developers or not used.

However, if you are a developer, I encourage you to try them and if possible, to improve them, because as you can see, CSS is an increasingly dynamic graphic design language and this is thanks to you.


No comments

Note: Only a member of this blog may post a comment.