DEV Community

Cover image for Flexbox cheatsheet inside VS Code
Dzhavat Ushev
Dzhavat Ushev

Posted on • Originally published at dzhavat.github.io

 

Flexbox cheatsheet inside VS Code

This post was originally published on my blog.


Another week, another VS Code extension. I’ve published two so far and this is my third in just a month. I’m not participating in any sort of “30 VS Code extensions” challenge 😂. It’s just the ideas that keep popping up in my head and I can’t help myself but try to make something out of them.

It’s needless to say that I enjoy doing this quite a lot because these extensions are something I’ve been missing in my work. So by building them, I benefit directly and they make my work as a front-end developer a little bit easier.

Over the last few years flexbox got more and more popular. And rightly so, because it helps us build one-dimensional layouts much faster. Have you tried positioning something in the middle of an element using flexbox? It’s fun, right?

But there’s just one problem! Remembering all flexbox properties can be hard. I know it’s hard for me! Should I use justify-content or align-items to do X? What values does justify-content accept? There are quite many of them and we’re not always sure which one does what. That’s why we have our favorite articles, guides, cheatsheets, etc., to consult during those times. But they all “live” outside of the code editor and that forces us to switch context.

A week ago I asked myself “Why not have a flexbox cheatsheet inside VS Code where I can quickly look up what I need and continue my work? Why do I need to switch context? Why isn’t there a tool that lets me do that?”. That’d be great, right?

I think so too, so I built it! 🚀

I’m thrilled to share my new extension “CSS Flexbox Cheatsheet”. Here’s a little demo:

Demo

Currently there are two ways to open the cheatsheet:

  • By pressing Ctrl+Shift+P (Win) / Cmd+Shift+P (Mac) and searching for the Open Flexbox Cheatsheet command.
  • Hovering any display: flex declaration and clicking the Open Flexbox Cheatsheet link in the popup (as shown in the demo).

I have a few ideas for future improvements but I’d like to share it with the world in order to get feedback. So if you work with CSS, please give it a try. I hope you find it useful.

Top comments (40)

Collapse
 
jsphpndr profile image
Joseph Pinder

Do one for CSS Grid, too! Haha. Please and thank you! :)

Collapse
 
dzhavat profile image
Dzhavat Ushev

You're welcome :)

Having one for CSS Grid will be quite handy as well. Might consider it for a future project.

Collapse
 
macariojames profile image
Macario James

Oh! Installing this as soon as I get to my computer for the morning.

Collapse
 
macariojames profile image
Macario James • Edited

Update. I'm LOVING this. The visual representation of each attribute is exactly what I needed. I learned something. I was like, so THAT'S what "align-item: stretch" does. Sweet.

Added first review to the marketplace! Time to check out your other extensions.

Collapse
 
dzhavat profile image
Dzhavat Ushev

Thanks for your review! Really appreciate it 🙏

Hope you find the other extensions useful as well :)

Collapse
 
macariojames profile image
Macario James

Question, how did you create the .svg images for each attribute?

Thread Thread
 
dzhavat profile image
Dzhavat Ushev

The whole cheatsheet is based on the excellent work by Darek Kay. I'm not sure which tools he used to create them but you can check out the code on GitHub. :)

Collapse
 
sinewalker profile image
Mike Lockhart • Edited

Writing and choosing extensions for an editor are the surest way to making it "your" editor. I've enjoyed it for years in Emacs, and this is why Code has quickly become my new favourite. It's giving me incentive to finally learn JavaScript too.

Collapse
 
dzhavat profile image
Dzhavat Ushev

I also like how Code gets updated on a monthly basis. So bug fixes and new features land pretty fast. Good luck with learning JavaScript! If you need some resources, I can share a few that I find useful :)

Collapse
 
sinewalker profile image
Mike Lockhart

Yes please!

Thread Thread
 
dzhavat profile image
Dzhavat Ushev • Edited

Sorry for the late response. Was a bit busy today.

There are quite a lot of resources on the Web but the ones I can recommend are:

Books

  • JavaScript for impatient programmers by Axel Rauschmayer. This book was released recently and is available for free online. You can also buy it in paper format if you can spend some money.
  • Exploring ES6 by Axel Rauschmayer. It's is a bit older than the one above but still worth a look.
  • Eloquent JavaScript by Marijn Haverbeke is quite good as well.

Courses

  • freeCodeCamp. Not really a course but they have different tracks and learning JS is part of them.
  • MDN has a section dedicated to JS as well. It's a good resource for both learning and as a reference.
  • Getting Started with JavaScript, v2 by Kyle Simpson. I haven't watched this course but have read some of his books and like his style of explaining stuff. So I think the course will be just as good. FrontendMasters is paid so if you decide to give it a try, you can also watch other courses as well.

Building stuff

The are tons of other resources as well but I hope you'll find these useful :)

Edit: Oh, I forgot our lovely DEV.to :) You can follow the js tag. There are a lot of good posts.

Collapse
 
n8trufe profile image
n8trufe

Thank you for that. I will install it immediately. If you would make the same with Grid would be awesome.
I also love your css to MDN.

Collapse
 
dzhavat profile image
Dzhavat Ushev

Thanks. Hope it serves you well :)

Will appreciate your feedback once you've used them for some time. If you feel like there's something that can be improved, let me know.

Collapse
 
s_aitchison profile image
Suzanne Aitchison

So good! I can stop mixing up align-items and justify-content now 🙈

Collapse
 
dzhavat profile image
Dzhavat Ushev

I feel you! Hope this little tool can help you with that :)

Collapse
 
kerzhain profile image
Kerzhain

Thanks it's really helpfull.

"justify-content: space-evenly;" is missing from your cheatsheet

Collapse
 
dzhavat profile image
Dzhavat Ushev

Thanks for letting me know! Will add it in the next update :)

Collapse
 
kaos profile image
Kai Oswald

Now make one for CSS Grid, where you can generate and export your grid 😉.

Collapse
 
s_aitchison profile image
Suzanne Aitchison

It's not an extension but this generator is pretty amazing cssgrid-generator.netlify.com/

Collapse
 
dzhavat profile image
Dzhavat Ushev

Yes, it is! Sarah Drasner has released a lot of amazing tools. All of them deserve to be bookmarked :)

Collapse
 
dzhavat profile image
Dzhavat Ushev

That's a really good idea :)

I might give it a try in the future, or of someone wants to take on the challenge, he/she can do it as well.

It's going to be great if my little extension inspires other people to build more tools like this embedded in the code editor.

Collapse
 
chrisachard profile image
Chris Achard

Building cheatsheets right into extensions is such a good idea! Do you have any good resources for how to go about building an extension?

Collapse
 
dzhavat profile image
Dzhavat Ushev • Edited

When I think about it, I can’t understand why we haven’t explored this idea earlier. It makes a lot of sense to me now (or maybe I’m already biased :)). We work with code so the tools needed to support our work should be as close as possible. I’d love to see more extensions similar to this one. An obvious one is a Grid cheatsheet.

As for resources, I’m only looking at the official documentation at the moment. Sometimes I find them a bit hard to understand, though, but it helps by looking at the examples. They have a nice CLI tool for generating new extensions. It makes it very easy to get started. :)

Collapse
 
chrisachard profile image
Chris Achard

Absolutely! This post has given me a bunch of similar ideas of information or little tools that I want available when I'm writing code; but before this I would have to go look up separately, etc. So thanks for the inspiration!

Those docs look great, thanks :) I'll take a look.

Collapse
 
yuanhao profile image
YuanHao Chiang • Edited

Amazing Dzhavat! I just installed it :)

I really like hovering on display: flex and being able to open it 👍

Collapse
 
lucashogie profile image
Lucas H.

Thank you so much! I love it.

Collapse
 
k3nnet profile image
k3nnet

Thanks for this 😀

Collapse
 
nickytonline profile image
Nick Taylor

Nice work @dzhavat ! 💪🏻🗳️

Collapse
 
mehdiraash profile image
Mehdi Raash

If someone needs to see this cheatsheet to solve the problem, the problem wouldn't be solved!

Collapse
 
dzhavat profile image
Dzhavat Ushev • Edited

I see what you mean and I agree. But many times the problem is remembering the right property, not much about the end result.

Collapse
 
cameronapak profile image
cameronapak

Thanks for making this! It'll come in handy soon

Collapse
 
refiloedig profile image
Refiloe Digoamaye

genius!

Welcome! 👋 New to DEV? Head over to our Welcome Thread and tell us what you're working on!