Cascading Style Sheets (CSS) is a stylesheet language used to describe the design/layout of a document written in HTML. It basically tells the browser where and how to display HTML elements on the screen.
The simplest elements that can be defined are the width and height, but also the color, font family and size, and many other parameters such as shadows, borders, border radius and animations. CSS is also used to organise the layout defined in HTML, usually through a grid system which states a container in which elements will be displayed and places them inside in columns and rows. There are different techniques to create grids in CSS, the classic way involves using floating blocks, lately flex and css grid have added new possibilities and a simpler syntax.
CSS is at the base of front-end web development so we have obviously been using the language since many years, like most we used CSS frameworks like Bootstrap or Foundation, but quickly preferred to switch to our own custom CSS to avoid the bloat of CSS frameworks.
CSS is a static language but it can also be thought as object-oriented, styles “objects” or “modules”—nestable chunks of HTML that define a section of a webpage—with reusable styles. This is especially clear through the use of pre-processors like Sass/SCSS which allows to separate the code in different files for more clarity.