This year has been weird but good, after suddenly becoming the most experienced frontend developer at the company I work at, Matise, I really had to step it up.
In this article I've listed 5 things I learned this year concerning web development.
1. Mix blend modes
Okay, I had heard about this one, but I never really delved in to it. mix-blend-mode
is a css property that determines how an element's content should blend with the content of the element's parent and the element's background [1]. It's a great way to add animated effects on images or implement a dark mode for example.
2. CSS Filters
CSS filter are amazing, I would only recommend using filters on images if you want to animate them. Because although browsers have become better at handling them, it's still a bit of a performance hit [2]. I actually used a SVG filter to create a duotone effect before realising it would be soooo much easier using blend modes and pseudo elements which are actually animatable.
3. Line clamping
A lot of our clients like it when excerpts on blog previews are the same height, I always explained to them that that's not possible because of varying text lengths and not using monotype fonts etc. I found out this year I was wrong! It is possible as an enhancement, this doesn't work in non webkit browsers, to 'line-clamp' text at three lines for example. I still instruct clients to keep their excerpts short and to the point but this is a nice extra for them.
.text-excerpt {
overflow: hidden;
display: -webkit-box;
-webkit-line-clamp: 3;
-webkit-box-orient: vertical;
}
4. CSS variables are funnnn
I've used CSS variables (or custom properties if you like it old school) to animate elements so much this year and bored people with talking about it so much, I might be it's biggest advocate.
They can be global, they can be scoped, you can change them in a lower scope IT'S GREAT.
I like to use the style.setProperty
method in stead of actually using JavaScript to add css properties directly. I always hate when I want to overwrite these JavaScript set properties I have to use !important
s. I also love that my logic stays in the SCSS file and the variables are available in all child elements. This can be useful if you want to set a style on multiple elements, no need for JavaScript loops anymore you can just simply set the property on the parent element and use a class selector to add it to all of them.
5. Text strokes
This is more just a really fun thing I've found out about this year, like line clamping it should really be used as an enhancement because of its browser support.
BONUSSS
I learned about clip-paths back in 2018. But I've still used them a lot this year, and learned some new things about animating them. For example you can't animate between two different types of clip-path like a circle
and polygon
type, which is understandable but really still a shame. You can fake it a little by first creating a square and then replacing the polygon type with a circle type, but it's not ideal.
What did you learn this year?
Top comments (32)
I was happy to notice that
line-clamp
is supported across most browsers (~95%) using the prefixed version ➡️ caniuse.com/#feat=css-line-clampThis is huge since designers seemingly always want to do this and I had to tell them this is not possible.
Thanks for doing the research✌️! It’s not bad indeed, but still rather an enhancement than a promise I think
Nice article!
This was my first year of web development. I learned a lot of WP template tags, a teensy bit of PHP, many fundamentals of JS and SCSS while also digging deep into Bootstrap documentation.
In the last quarter, I took a break from Bootstrap so I could dive into Flexbox and Grid. I'm finally feeling pretty comfortable with them! I got to this point by playing and completing every CSS game I could find (6 in case you were wondering).
You mean grid garden and stuff right? I loovvve those, I insist my interns play them in the first few weeks!
Yeah! Those are so great. These are the games I've discovered/completed so far.
thank you so much for this GREAT article and sharing all this super interesting knowledge !!! CSS power! 👍🏾 i'm a newbie aspiring frontend dev (2020!🤩) started my 100 days of code 2 weeks ago and learning to rewrite all my css with sass at the moment.
and thanks to you i just learned 5 amazing tips!! ❤️👍🏾 love your joyful energy while sharing your valuable experience ! 😉 thank you very much and happy New year in advance to you too!
mix-blend-mode - no support on Edge so far, so kind of useless for now :(
line-clamp, text-stroke - nice feature - I didn't know about it - Edge compatible - thanks!
clip-paths - this animation idea looks great but unfortunately there's again problem with Edge support :(
If you look at it as enhancements in stead of features an entire world of not edge supported coolness opens up ;)
Sure, but then the client writes - it's not working do something! :)
Enhancements are not features so you shouldn't use it on stuff that diminish the functionality of your website, that's the magic of enhancements ✨
Very enjoyable read.
Just a heads-up your above CodPen for the CSS vars looks like the image is missing. I love the animation though. I can't wait to see it with the image.
Ok, one tiny thing I learned recently that blew my mind is the
shape-outside
CSS attribute!Very cool! You can't see the space cat in the vars codepen? :(
Great Article. I have also learnt the css but I don't know about css tricks which you have mentioned. I learned a lot from your article. I am second year undergraduate student of Software engineering. I have learnt html, css, JavaScript, bootstrap, php just basic, nodejs, expressjs,mongodb, python,rust lang. Currently i am learning numpy and pandas. After this my aim is to learn react js and flutter. I am reading articles of developers such as you to know about latest technologies.
Again thanks for sharing such useful stuff.
Me too. Right now Im learning nodejs.
I didn't know most of this, thanks!
I am stealing everything here. Brilliant. The only one I use regularly are filters.
With our shop finally moving past IE, I am also going dive into variables. Thanks for the reminder!
I’m so happy for you that you no longer need to support ie! I wrote another article about variables a while back, maybe you’d like to check that out!
I've learned Restful web services, little mongo db, Spring boot, spring, Java 8 salient features recently introduced, Hibernate - ORM some new functionalities available, little Docker..
Thank you for your article. I have found lots of tricky and useful things here. This year was very unusual for me. I relised that 4 years in the humanitarian university was a big mistake, because I have lost all my skills as a developer. Anyway, I have improved my English (my mother tongue is Russian) and articles like yours are big reading plesure for me now.
Cool that you’re getting back to it. I recommend subscribing to some newsletters, like css weekly, it’s how I read about most new things.
Good luck!