Flexbox or grid - How to decide?

Поделиться
HTML-код
  • Опубликовано: 27 май 2024
  • Flexbox and grid are two fantastic layout tools. It can be hard to know which one to pick, but when you focus on the strengths of each one, it becomes a lot easier.
    🔗 Links
    ✅ The easiest way to get started with Grid: • Learn CSS Grid the eas...
    ✅ The easiest way to get started with Flexbox: • Learn flexbox the easy...
    ✅ Using the Grid inspector: • The grid inspector: ma...
    ✅ Why I love grid-template-areas: • Why CSS grid-area is t...
    ⌚ Timestamps
    00:00 - Introduction
    01:13 - Comparing their behaviors
    09:54 - When you should use flexbox
    13:40 - When you should use grid
    17:23 - Mixing flexbox and grid
    #css
    --
    Come hang out with other dev's in my Discord Community
    💬 / discord
    Keep up to date with everything I'm up to
    ✉ www.kevinpowell.co/newsletter
    Come hang out with me live every Monday on Twitch!
    📺 / kevinpowellcss
    ---
    Help support my channel
    👨‍🎓 Get a course: www.kevinpowell.co/courses
    👕 Buy a shirt: teespring.com/stores/making-t...
    💖 Support me on Patreon: / kevinpowell
    ---
    My editor: VS Code - code.visualstudio.com/
    ---
    I'm on some other places on the internet too!
    If you'd like a behind the scenes and previews of what's coming up on my RUclips channel, make sure to follow me on Instagram and Twitter.
    Twitter: / kevinjpowell
    Codepen: codepen.io/kevinpowell/
    Github: github.com/kevin-powell
    ---
    And whatever you do, don't forget to keep on making your corner of the internet just a little bit more awesome!

Комментарии • 467

  • @drawingfever7
    @drawingfever7 2 года назад +576

    If we want a FLEXIBLE layout (the layout adapts to fit the content), we use flex.
    If we want a more fixed layout (the content adapts to fit the layout), we use grid.

    • @kevinwaag9976
      @kevinwaag9976 Год назад +12

      and if we don't know which one it will be ? ^^ do both ^^ ?

    • @arshadsiddiqui9071
      @arshadsiddiqui9071 Год назад +32

      If I can picture the grid I use grid. If I can't I just use flex cuz it's easier.

    • @revi925
      @revi925 Год назад +3

      But isnt grid also flexible if you use minmax?

    • @lucidattf
      @lucidattf Год назад +10

      @@revi925 that's more for adapting a fixed grid to any screen size than having it be flexible to any content, though sometimes it works for either

    • @GooseGumlizzard
      @GooseGumlizzard Год назад +16

      nah fam absolute positioning for everything masterrace

  • @jackfrosch
    @jackfrosch Год назад +158

    As a mostly backend developer, every time I have to use CSS, it feels like I'm starting over. Your videos are my go-to resource to refresh and add to my CSS understanding.

    • @KevinPowell
      @KevinPowell  Год назад +9

      Thanks so much!

    • @userhenrolwest
      @userhenrolwest 7 месяцев назад +1

      As an inspiring backend developer, please can you refer me on the material that will guide me becoming a backend?

    • @27sosite73
      @27sosite73 6 месяцев назад +1

      @@userhenrolwest
      Hey!
      the inspiring backend developer hasn't replied yet. Are you still waiting or have you started working on something, Henrol West?
      if you are curious, how I know you're from India? Typically, only people from India ask questions in that manner.

    • @userhenrolwest
      @userhenrolwest 6 месяцев назад

      @@27sosite73 I'm still waiting.

  • @Detonat0r
    @Detonat0r 2 года назад +347

    I prefer to use grid for the whole page layout, while flex for smaller scale things as you showed in the last example.

    • @boukhadc
      @boukhadc 2 года назад +26

      This is the way

    • @Waruto
      @Waruto 2 года назад +10

      This is the way

    • @drwho9319
      @drwho9319 2 года назад +7

      Like a bantha. I have spoken

    • @BboyHotshot
      @BboyHotshot 2 года назад +4

      Same. This is the way.

    • @prateek5019
      @prateek5019 2 года назад +1

      Thank god, i am not alone😄

  • @zachjensz
    @zachjensz 2 года назад +801

    Obviously floats are the best layout tool

    • @c__beck
      @c__beck 2 года назад +41

      Dem be fightin' wordz!

    • @marcelijankowski9593
      @marcelijankowski9593 2 года назад +119

      floats?
      Bro they aint supported in IE, better stick with inline and blocks

    • @c__beck
      @c__beck 2 года назад +10

      ​@@marcelijankowski9593 🤣🤣🤣🤣🤣🤣

    • @jscode6330
      @jscode6330 2 года назад +18

      Obviously you are from the future. How did you leave a comment the day before the video came out?

    • @b1mind
      @b1mind 2 года назад +4

      @@jscode6330 patron, but he is from the future

  • @marcelijankowski9593
    @marcelijankowski9593 2 года назад +162

    I tend to use grid for overall layout of the web page or for larger components.
    While Flexbox often helps me with Individual components, basically I use it on the smaller scale.

    • @shoxruxraximov1018
      @shoxruxraximov1018 2 года назад +1

      yes

    • @ahndeux
      @ahndeux 2 года назад +4

      I do the same, except grid for the overall page design and if there is one grid where there is a complex layout (ie: a main page), I would use flexbox... NOT! I use a sub-grid instead. Flexbox is strictly for when I don't care about position exactly. I spent way too much time on flexbox to find out it still doesn't do what I want as the screen size changes.

    • @bradpirochta9293
      @bradpirochta9293 2 года назад

      exactly.

    • @MrBrancomusic
      @MrBrancomusic 2 года назад

      I do exactly the same thing.

    • @gabriellundmark
      @gabriellundmark 2 года назад +2

      This is the old adage, but it isn't how you should look at Grid in my opinion. I use Grid within button elements and all sorts of tiny things.

  • @vibonacci
    @vibonacci 2 года назад +176

    My rule: if I can't achieve it easily with flex, I'll pivot to grid. Flex is the go-to choice. But I have to admit that I have less experience with grid than with flex, so that definitely plays a role in the decision. And simply by the amount of choices you have, you can conclude that grid is quite a bit more complex.

    • @HarshRajAlwaysfree
      @HarshRajAlwaysfree 2 года назад +22

      same, i had tried grid once
      it was so traumatic, I never did it again

    • @sourandbitter3062
      @sourandbitter3062 Год назад +14

      grid-template-areas gives great results. Grid really isn’t too bad.

    • @turolretar
      @turolretar Год назад +5

      grid is actually op

    • @offgridvince
      @offgridvince Год назад +2

      @@HarshRajAlwaysfree 😁😂

    • @WyzrdCat
      @WyzrdCat Год назад +6

      Grid feels like JS not CSS. It's poorly implemented and doesn't belong in the language, but no going back now. Basically grid was their prototype at trying to get away from floats, then with flex they actually did it right.

  • @milos018
    @milos018 2 года назад +120

    This is probably the best summary of Flex vs Grid, the pros and cons and how they can work together. Great job!

  • @perkin524
    @perkin524 2 года назад +79

    You have made quite a few videos recently on flexbox and grid but I find the repetition enormously helpful. The basic principles are getting hammered in and I find I can now use them much more confidently. Keep on going and thank you!

  • @reflectionethio9662
    @reflectionethio9662 2 года назад +9

    I am using grid for the outer structure and flex for positioning items in certain layout inside the container. It holiday today in Ethiopia and am still viewing this tutorial because its kev . Thank you

  • @VV-wl8gb
    @VV-wl8gb 2 года назад +36

    Amazing demonstration! Kevin is the undisputed MVP!
    These clicked for me:
    - in flexbox each row/column is independent of the others
    - use flexbox when intrinsic sizes are important or useful
    - use grid when you need a rigid structure (e.g. some card archive, say a blog, shop or events)

  • @ShariLynnSmith
    @ShariLynnSmith 2 года назад +4

    Kevin, thank you for showing each of these as you did. I believe I now have a much better understanding of what each is good for in a way I never have & I've tried. Thank you!

  • @theyreMineralsMarie
    @theyreMineralsMarie 2 года назад +30

    Grid template areas are a lifesaver when scaffolding apps in a team environment. It's easy to teach other developers and makes it easy to maintain the layout as you add features.

  • @lamthaotran19
    @lamthaotran19 2 года назад +4

    I'm binge-watching your videos to teach myself CSS during my 30-min breaks at work. Thanks a ton.

  • @cipherxen2
    @cipherxen2 2 года назад +9

    Flex : asks children their size, tells their location
    Grid : tells children their size and location both
    Flex for lists
    Grid for tables

  • @codexaeterna
    @codexaeterna Год назад +17

    You did a way better explanation of flex vs. grid than my college professors. CSS is so awesome, I enjoy working with it more than any other languages, probably because of my artistic background.

  • @Gocks92
    @Gocks92 Год назад

    It's not very often I find one simple, concise video that answers the exact questions I have. Thank you!

  • @AdamLeis
    @AdamLeis Год назад +1

    Great video, Kevin. I like the benchmark of asking what determines the column widths: items or parent. That's a helpful way to conceptualize when to choose either. Bravo 👏

  • @batuhanbatur7409
    @batuhanbatur7409 Год назад +1

    the way you explain things is great man. as a person who gets distracted by the simpliest things, i can watch your videos without losing my focus for hours. much appreciated.

  • @DkzTW
    @DkzTW 5 дней назад

    You explain so well man, this is great!

  • @unblemished_
    @unblemished_ 2 года назад +3

    You sir, are a real hero. Making these kind of videos for totally free is an honorable work!

  • @terryg4415
    @terryg4415 2 года назад

    Thank you so much for these videos. This is the first time I've explored using flex for something, so this is invaluable.

  • @weshorrocks7554
    @weshorrocks7554 Год назад

    I’m so glad I watched this. I’ve been trying to figure out a problem on a site where a list of logos wasn’t working as I expected. Finally got it to work thanks to the mention of grid children and a flex/grid combo.

  • @hugefriend514
    @hugefriend514 Год назад +1

    This video came to me exactly while i was struggling to learn the differences between flexbox and grid, and explained that everything so clearly. Thank you for this amazing content.

  • @GildwareTechnologies
    @GildwareTechnologies 10 месяцев назад +7

    Flexbox and Grid are two powerful layout systems in CSS, each with its own strengths and use cases. Let's compare them to understand when to use Flexbox and when to use Grid:
    Flexbox:
    One-dimensional Layout: Flexbox is designed for one-dimensional layouts, either in rows or columns. It excels at distributing items along a single axis, making it ideal for creating flexible and responsive layouts.
    Content Ordering: Flexbox allows you to easily change the order of flex items without modifying the HTML structure, which is useful for responsive designs or reordering elements in different screen sizes.
    Alignment and Justification: Flexbox provides precise control over alignment and justification of flex items along the main axis and cross axis.
    Complexity: It is relatively easy to understand and implement, making it a good choice for simpler layouts.
    Grid:
    Two-dimensional Layout: Grid is designed for two-dimensional layouts, allowing you to create complex grid-based structures with rows and columns.
    Grid Items Control: It provides fine-grained control over the placement and sizing of grid items. You can define explicit sizes for rows and columns and position items anywhere on the grid.
    Responsive Layouts: Grid excels at creating responsive layouts where elements reflow based on available space, providing a powerful solution for complex responsive designs.
    Alignment and Spacing: Grid offers powerful alignment and spacing capabilities along both axes.
    Complexity: Grid may have a steeper learning curve compared to Flexbox, especially for complex layouts.
    When to Use Flexbox:
    For one-dimensional layouts, such as navigation menus, card layouts, or vertically stacked elements.
    When you need to distribute items along a single axis with flexible sizing.
    For aligning or justifying items within their container.
    When to Use Grid:
    For two-dimensional layouts, like complex grids, magazine-style layouts, or multi-column forms.
    When you need precise control over the placement and sizing of items in both rows and columns.
    For creating responsive layouts with automatic reflow and resizing.
    In many cases, Flexbox and Grid can be used together to create more sophisticated and responsive layouts. It is common to use Flexbox inside Grid cells to further control the alignment and ordering of elements within the grid.
    In summary, use Flexbox for simpler one-dimensional layouts and flexible content distribution, while Grid is best suited for more complex two-dimensional layouts and fine control over grid items. Understanding both Flexbox and Grid will give you the tools to create versatile and responsive web designs efficiently.

  • @enzocecillon1452
    @enzocecillon1452 2 года назад +21

    I started with flex as a beginner (I’m still) and tried to learn grid. I find it way more intuitive and easier to use overall. Just my newbie opinion 🤷‍♂️.

    • @Six5
      @Six5 2 года назад +1

      Exactly grid is just simpler to pick up and starting building with.

    • @charxcx_Purr
      @charxcx_Purr 2 года назад

      I totally agree

  • @gauthamnookala1776
    @gauthamnookala1776 Год назад +2

    Always wondered why Flex was considered 1D when we could lay it out in a 2D matrix like manner. Your video has clarified and cleared my doubts. Thank you.

  • @Niksorus
    @Niksorus 7 месяцев назад +1

    This is the most useful video about CSS I've ever watched! Thank you so much, Kevin :D

  • @MrVurtan
    @MrVurtan Год назад +1

    Thanks for the comparison of both. This will help me in future! I tend to forget how / which layout I should use due to not regulary using it.
    What me personally drives me crazy is the flex-direction. There I always think the opposite.

  • @Emily-yb3pd
    @Emily-yb3pd 2 года назад +7

    I always used to read about 'learn flex there, learn flex here' when I was learning css and I thought that grid was some outdated feature but it's not. It's good to know, amazing content

  • @aydanwessels761
    @aydanwessels761 Год назад

    That was an awesome tutorial! I love the energy you bring to helping me learn these concepts. Thanks so much!

  • @kalle4526
    @kalle4526 2 года назад +1

    Absolutely great explanation of flex and grid. Loved it! :)

  • @mohammedjelidi05
    @mohammedjelidi05 2 года назад +2

    It's crazy how it's highly unlikely that I would have known any of this if I hadn't found this video. Thanks, Kevin.

  • @arnaud_b42
    @arnaud_b42 9 месяцев назад +1

    Really great content! Coming from software then backend, all too often i have felt like CSS is a nightmare. In only 20min you just gave me the explanations i needed to fix my layout (i switched from grid to flex) and now it looks great and it is responsive. Keep doing what you do. Big thanksss!

  • @CyrilNeko
    @CyrilNeko 2 года назад

    your videos are so smooth and chill

  • @juansebastian6463
    @juansebastian6463 Год назад

    kevin's videos quality out league every other content creator. He explains every detail of the subject so smooth and clear.

  • @HarishChouhan
    @HarishChouhan 2 года назад +3

    I recently got back into this as I was working with a WordPress theme and now realize how in some cases flex is easy to use. One area would be a website header with the logo, menu and maybe social icons all aligned in a neat with with just few lines of code.

  • @dshl21
    @dshl21 11 месяцев назад

    exactly what i was looking for. Thank you!

  • @ecospider5
    @ecospider5 29 дней назад

    I was researching flexbox and came across this. It’s really great to know that grid is available

  • @luiseduardovieira3982
    @luiseduardovieira3982 Год назад +1

    clarified quite a lot for me, thanks my men, definitely will subscribe

  • @sep1ol
    @sep1ol 2 года назад +1

    i just love your videos man, so helpful! keep up this awesome work of yours! thanks :)

  • @ntnurobert218
    @ntnurobert218 Год назад

    Fantastic video with very clear examples . I finally understand the differences. You are awesome. Thank you so much 😊

  • @11gallery36
    @11gallery36 2 года назад

    Great video! You explained the pros and cons so perfectly! Thanks!

  • @-Wust-
    @-Wust- 2 года назад

    Fantastic video. Love the "focus on intrinsic sizing" approach.

  • @floverdevel
    @floverdevel 2 года назад

    Wow ! Thank you Kevin :)
    This video is great. It's so well explained. You really helped me understand the differences between Grid and Flexbox.

  • @eumm11
    @eumm11 2 года назад

    thank you so much Kevin, your lessons are always invaluable!

  • @TheSoulCrisis
    @TheSoulCrisis Год назад

    Thanks for this, it's just what the doctor ordered! I'm holding a web developer position now for a Financial Technology company and doing a lot of research and practice with CSS and JavaScript. I was looking to spice up my skills on Flex and Grid, I will be watching your other videos on them too!

  • @hjmnoguera
    @hjmnoguera 11 месяцев назад

    Thank you!! I really needed this explanation.

  • @britti73
    @britti73 2 года назад

    This was so useful! Awesome video 😃 thank you Kevin

  • @optimat4
    @optimat4 Год назад

    the best material about Grid and Flexbox I have evere found. Thanks!

  • @aCitizenJOSerased
    @aCitizenJOSerased 2 года назад +2

    Kevin, really thank you, you are such a magnificent teacher! All the best!

  • @MO-dg4wr
    @MO-dg4wr 9 месяцев назад

    Thanks, simplified illustration, yet thoroughly grasped the concept better now...

  • @cleanclothes
    @cleanclothes 2 года назад

    Clear explanation and examples. Superb teaching!

  • @romankrytski8687
    @romankrytski8687 2 месяца назад

    Wow, I love your content, man! That's awesome 😮

  • @lorenainfanter.3099
    @lorenainfanter.3099 Год назад

    Thank you! It really helps me to have a better understanding about this topic.

  • @WebDevChops
    @WebDevChops 2 года назад +1

    Flexbox with flex-wrap: wrap and justify-content: center for laying out a collection of items where you don't know how many there are and don't want one or two at the start or end of the last row

  • @fullStackInKannada
    @fullStackInKannada 9 месяцев назад

    Thank you! Very nice explanation!

  • @user-eh9li5tx7h
    @user-eh9li5tx7h 3 месяца назад

    This is a wonderful video. Thank you so much.

  • @halitturanarican3434
    @halitturanarican3434 6 месяцев назад

    Thank you Kevin, this cleared some things on my mind.

  • @arcosd63
    @arcosd63 2 года назад

    Very cool! And great demo! Thank you

  • @jamessummers5936
    @jamessummers5936 Год назад

    I've been using flex for years and love it, but I recently needed a way to layer a container above another container without using z-index and position properties, grid worked phenomenally with being able to tell 2 containers to be on the same row and column.
    I will admit that it's a bit more complex than flex, but I'm slowly comprehending it the more I use it, as with anything in life.

  • @jarrodverhey8563
    @jarrodverhey8563 11 месяцев назад

    Thank you so much for this video!

  • @michaeltan7855
    @michaeltan7855 2 года назад

    Thank you so much. Your videos have been a blessing to helping me start off and helping my fathers business grow.

  • @deadalnix
    @deadalnix 2 года назад +1

    Thanks man. I've been a webdev ~15 years ago, when we got to fight with IE6, and recently gettign back into it. Your content is super helpful to get back up to speed.

    • @jtinz74
      @jtinz74 2 года назад

      And nowadays we fight with IE11. How the world has changed.

    • @deadalnix
      @deadalnix 2 года назад +1

      @@jtinz74 It's nowhere near as bad as it used to be.

  • @rodrigoniveyro9763
    @rodrigoniveyro9763 2 года назад

    dude, thanks a lot for your work, its really useful and appreciated here.

  • @datkumar1024
    @datkumar1024 2 года назад

    Thank you!! I really needed this explanation💯

  • @paulofernando78
    @paulofernando78 Год назад

    Can't thank you enough for this. It's one of the best explanations who's struggling to understand that.

  • @vikram87in
    @vikram87in 2 года назад

    whenever you speak about css, it's sounds like a beautiful story. totally loved the video 😍

  • @davidkonevky7372
    @davidkonevky7372 Год назад +5

    Flexbox is better for objects with irregular sizes that need to be accomodated by building the layout around them. While grid on it's default works at it's best when the objects are similar to each other, making them easily fit in the simple layout instead of the opposite. Ofc both of these can be changed with properties but on their most primitive state they tend to work like this.

  • @Flash-bq5ts
    @Flash-bq5ts Год назад

    On-point explanation, thank you!

  • @michaelmann9090
    @michaelmann9090 Год назад

    freaking really good video my guy!

  • @muhammadamir4964
    @muhammadamir4964 8 месяцев назад

    I have learned a lot you. My deeper understanding of css is due to you.
    I am comfortable using vanilla css than any css framework.
    Grateful to you.

  • @eastquack3342
    @eastquack3342 2 года назад

    really useful thanks; also, your demeanor is highly appreciated

  • @ameregame4805
    @ameregame4805 7 месяцев назад

    Intrinsic sizing vs extrinsic! Love it!

  • @Bluukeson
    @Bluukeson Год назад +1

    Use grid if you want the parent to specify the columns and rows and use flex if you want the chrildren to do it.
    I find grid a lot easier to work with and it's a real godsend that saved a lot of time for me. Flex and flex-wrap however are still really nice if you want floating behavior with added features like justify: center, and without all the clearfix hassle.

  • @fogaamos6822
    @fogaamos6822 Год назад +1

    Thank you very much Kevin, you made me to fall in love with CSS, by simplifying some concept which are hard to understand

    • @lukas.webdev
      @lukas.webdev Год назад

      If you also want to fall in love with the CSS Framework "Tailwind CSS": I will post a video about it next week on my channel ... 😉

  • @wpeasy
    @wpeasy Год назад

    Brilliant and simple as always.

  • @araibebe
    @araibebe Год назад

    GREAT video! easy to understand. Thanks a lot.

  • @hichamamroussi9087
    @hichamamroussi9087 Год назад

    Awesome video! Thanks so much.

  • @teemos2732
    @teemos2732 Год назад

    Thank you - you're explainers are great.

  • @flowi84
    @flowi84 10 месяцев назад

    This is a great summery of flex and grid. I used alredy Booth. But never felt comfortable with it. this video is realy helpful to understand this two systems

  • @michaelkuhn6328
    @michaelkuhn6328 Год назад

    Thanks for a great explanation of this!

  • @shreyasgosavi9647
    @shreyasgosavi9647 5 месяцев назад

    Woww got different perspective for the flex-box with its intrinsic property !! thankss

  • @bernardus3289
    @bernardus3289 2 года назад +2

    I just use flex as a first option(even for layout of the page) but if I want something complicated that would take to long for flex I just say "screw it" and do grid.

  • @ruskasielu6261
    @ruskasielu6261 5 месяцев назад

    Thanks for this, you convinced me to start using more grid display instead of going for flexbox as my default option!

  • @sabinovelasquez
    @sabinovelasquez 2 года назад

    Great stuff man, kudos from Chile :)

  • @worldclasscode1847
    @worldclasscode1847 2 года назад

    Nice vid! I love Flexbox. It's so useful. I use it on each and every web page, multiple times.

  • @KojiKazama
    @KojiKazama Год назад

    Great video, thanks. This is the first time I am seeing your channel. Something about you reminds me of Fox Mulder, but I'm now subscribed.

  • @i_am_ergo
    @i_am_ergo Год назад

    Incredibly well explained!

  • @magnoid
    @magnoid 2 месяца назад

    Great stuff Kevin!

  • @broken_diesel
    @broken_diesel 11 месяцев назад

    I've watched quite a few videos on flex grid trying to understand were and how to use them. i can truthfully say with out any doubt that this was by far the easiest and best video of the topic for many reasons.
    I could have also gone to a bootcamp and payed a few $$$$ for this same information. But i highly doubt that it would have been as effective to get to explain the topic as well as this video.

  • @ziddy_mk
    @ziddy_mk Год назад

    Great vid, thank you!

  • @stevenwilson5556
    @stevenwilson5556 Год назад

    thank you so much. this really helped

  • @HocineKamikaz
    @HocineKamikaz Год назад

    Great job thanks a lot... That was a great explanation

  • @omidiw1124
    @omidiw1124 Год назад

    thank you so much on the explanation i was wondering what the heck is grid and now i know i can rely on both i was fighting with flex so much

  • @Gregorius421
    @Gregorius421 2 года назад

    Wonderful comparison of what use-cases fit best either grid of flex.

  • @erril8285
    @erril8285 Год назад

    Thank you! Very helpful!

  • @lonleybeer
    @lonleybeer 2 года назад

    YOOO everytime I'm starting on a project for college wondering what i could use the css king himself comes on my subscription with answers!

  • @WhatsMyNameAgain93
    @WhatsMyNameAgain93 2 года назад

    I don’t know how or where I stumbled upon your channel but I love it. I’ve watched a few of your shorts as well and everything is always explained clearly without “showboating” jargon that isn’t necessary. I’m at grid in my learning currently so finding this video is perfectly timed!

  • @DevRel1
    @DevRel1 Год назад +1

    I normally use grid for site layout and flexbox for UI layout but there are always situations where one is just better to use for whatever reason. You can easily learn both on a weekend.

  • @jscode6330
    @jscode6330 2 года назад +1

    I don't understand why people always confuse these two properties. They look different. I use flexbox when I need to get a table of tiles of the same size, and automatically wrap items if there isn't enough space. The grid is used for components where I want the elements to be aligned both vertically and horizontally. This can't be done with flexbox alone if you have a dynamic number of rows or columns. The grid also works well for the entire page layout. The so-called tabular layout. On flexbox, doing the same is much more difficult.