A list of amazing things that CSS can do!
EDIT: Some of these properties won't work in some browsers because of support. We can check for browser support using @supports and add fallback styles accordingly. Please use Chrome to view the examples 🙂
1. box-decoration-break
This CSS property specifies how an element's fragments should be rendered when broken across multiple lines, columns, or pages.
2. attr()
We can retrieve values of the selected element in CSS by using attr(). This method could be really helpful with accessibility purposes.
3. backface-visibility
This CSS property sets whether the back face of an element is visible when turned towards the user. Thinking of a card flip UI?
4. conic-gradient
Gradients are a wonderful thing. You might've used to style backgrounds with linear gradients but do you know we can use pure css to create pie charts with the help of conic-gradient!
To better understand how conic-gradients, reference the MDN docs on it
5. filter
Who needs photoshop filter effects when you have CSS filters. 🙃
Filter functions applies graphical changes to the appearance of an input image. The effects we can achieve are as follows - blur, brightness, contrast, grayscale, hue-rotate, opacity, invert, sepia, saturate, drop-shadow.
drop-shadow filter is pretty amazing. It lets you apply drop shadow to the input image.
6. mix-blend-mode
This CSS property sets how an element's content should blend with the content of the element's background or its parent.
Amazing things can be achieved by mixing blend modes and filters with images and text. Learn more on MDN Docs.
7. first-letter
One of my favourite things in books and magazines are the beautiful drop-caps. We can create drop with first-letter pseudo-element.
8. shape-outside
This CSS property provides a way to customise wrapping adjacent inline content around complex objects rather than simple rectangular boxes.
Open the example in a different tab and try changing the width of the window and notice how the text wraps around the image.
9. writing-mode
This CSS property sets whether the lines of text are laid out horizontally or vertically. We can have these values-
-
horizontal-tb- Content flows horizontally from left to right, vertically from top to bottom. -
vertical-lr- Content flows horizontally from left to right, vertically from top to bottom. -
vertical-rl- Content flows horizontally from right to left, vertically from top to bottom.
Checkout this this example to see it in action.
10. Adding gradient to text
This is achieved with the combination of -webkit-background-clip: text and -webkit-text-fill-color: transparent CSS properties.
11. Smooth scroll snap
scroll-snap-type CSS property sets how snap points are applied on the scroll container.
This example shows vertical(y) scroll with value mandatory. MDN docs does a great job on explaining how to use other values such as proximity and horizontal scroll(x).
These are just a few great things CSS can do. Possibilities are endless! 🥳
Oldest comments (120)
It was a seminal article. Thanks 😄
The conic-gradient blew my mind !
Wow, that's awesome.
very cool, but i wonder though how well supported these are across browsers. thanks for showing the examples.
You can use caniuse to see how well-supported things are, and a great thing about CSS is it tends to gracefully degrade anyway.
The filters one had me yelling at my screen. Excellent list - definitely one I'll save.
Intresting, some of them I haven't heard. Loved the gredient text color and pie chart.
Thanks for digging and sharing with us.
This is really helpfull in so many situations! Thanks for sharing!
Very nice.
Recently i tried mix-blend-mode but due to some strange reason, it did not work on one of my android phone chrome browser. Worked on others. So, the point is to make sure it works for you on supported platforms.
Yes, of course, we should always to check for browser support. But the good thing about CSS is that we can always add fallback styles in cases where our desired css properties are not supported. If a property is not supported CSS won't throw out errors, it will silently cascade to other styles so adding fallback styles works out of the box.
Completely agree. Thanks
Great tips! Thanks for sharing.
First time I see most of these attributes. And they look great. Thank you!
Some comments may only be visible to logged-in visitors. Sign in to view all comments.