Settings

Theme

Show HN: Layoutit – An interactive CSS Grid generator

layoutit.com

437 points by rofko 7 years ago · 74 comments

Reader

coding123 7 years ago

Very nice - I feel like I just learned CSS Grid in like 2 seconds. Also learned about fr units:

https://alligator.io/css/css-grid-layout-fr-unit/

ArlenBales 7 years ago

A lot of potential here to be the best CSS Grid visual editor, but there's some bugs to be ironed out for sure. Currently I can't finish my grid. I'm trying to increase the number of columns on my "Body" grid but when I hit the "Add" column button it's adding columns to my "Header" grid, despite my "Body" grid being selected. I also seem to be stuck in my "Body" grid and can't select other grids. Chrome 65 on Ubuntu.

  • rofkoOP 7 years ago

    We have just pushed an update that should fix this and other issues!

  • rofkoOP 7 years ago

    Thanks for your report! We'll definitely work on fixing bugs for complex nested grids. We usually update it every week.

    Cheers

reaperducer 7 years ago

If you're taking requests, a similar page for Flexbox would be the bee's knees.

  • gr3yh47 7 years ago

    not exactly what you're looking for but kind of close

    http://flexboxfroggy.com/

  • asdojasdosadsa 7 years ago

    Is there a case you would prefer Flexbox over Grid?

    • detaro 7 years ago

      Flexbox generally is better if you have a dynamic number of elements. Grid isn't a replacement for flexbox.

    • sarreph 7 years ago

      Browser support as well. Grid is only about <90% covered.

      https://caniuse.com/#feat=css-grid

    • westoncb 7 years ago

      Unless what I'm laying out looks just like a grid, I pretty much always prefer Flexbox. For the majority of cases where I need to do some layout with CSS these days, an image of how to do it via flexbox effortlessly pops into my head. I think that's the key: the majority of layout scenarios can easily be reduced to placing a sliding sequence of items along a string of sorts. Once you understand how that simple model is parameterized (to configure spacing between/around items, how their heights/widths should adapt etc.), I'd say (in my experience anyway) something like 80% of layout scenarios have a simple solution in terms of it, to the point where no thought is even required (though I do still often have to look up parameter names [e.g. align-content vs align-items]! which is kind of annoying).

    • ljoshua 7 years ago

      Here's a great explanation from Jen Simmons that really helped me understand the differences and respective strengths and weaknesses of each:

      https://www.youtube.com/watch?v=hs3piaN4b5I

      • kilburn 7 years ago

        TLDR: I don't think her examples are any good, so this clip gives the "rationale" behind it but no actual-world examples to really understand the differences.

        I don't think the example she uses is a good one. That thing is obviously achievable using absolute positioning, which in this case is arguably easier and will give you much better browser support.

        Also, the other examples she uses are really weird. Boxes of varying widths and heights. This is just not a thing in current websites.

        The flexbox example where she ends up with 3 items on the first row and 4 on the second is just fantasy according to my experience. That would only work for a manually crafted page, whereas most websites with that much content items are auto-generated from some backend (even if it is markdown files in a static website generator). Otherwise please show me how can I achieve that effect with similarly sized items and how do I make it responsive.

        • ArlenBales 7 years ago

          Her examples look like those you can find over at gridbyexample.com. She's just showing what the differences are between Flexbox and CSS Grid, not real-world usage.

          Responsiveness with Flexbox or CSS Grid is best achieved through media queries. You could make a really simple Flexbox or CSS Grid site with no media queries and have it be responsive, but if you want complicated layouts you'd make use of media queries. e.g. named grid-template-areas and media queries play really nice together.

    • swaggyBoatswain 7 years ago

      Grid suffers when you deal with things of unknown variable height and unknown number of child items.

      I use a mix of flexbox and floats to achieve any desired layout for RWD

      Grid only has 87% browser support

      • ArlenBales 7 years ago

        Implicit grids are for unknown number of child items. See grid-auto-rows, grid-auto-columns, and grid-auto-flow.

        I've been struggling to find use for Flexbox with CSS Grid. Flexbox is good for components still, but CSS Grid can do that stuff too and the automatic spacing with grid-gap is so damn appealing.

    • paulddraper 7 years ago

      (1) In cases where you want good browser support.

      (2) This is going to sound stupid...but if you don't have a grid. Flexbox is a more flexible tool in this more flexible case.

      • ArlenBales 7 years ago

        I actually think CSS Grid solves your #2. A lot of people who don't use grids were probably overwhelmed by all the grid libraries out there and the complexity and overhead of them. I made my own grids, if you could call them that, and then Flexbox showed up and everything became amazing and easier. Then CSS Grid showed up and said "You think Flexbox makes amazingly easy responsive layouts? Hold my beer."

        • paulddraper 7 years ago

          I might be a grid-noob, but let's take a super-duper common situation:

          I want to left align one element and right align another, keeping them in the same row.

          Flex makes this very easy:

              <div style="display:flex; justify-content:space-between">
                <div>Left</div>
                <div>Right</div>
              </div>
          
          Does grid also make this easy?
          • Whitestrake 7 years ago

            As another grid-noob, I thought I'd try to tackle this one. It seems to require only one additional style to define the grid:

                <div style="display:grid; grid:auto/repeat(auto-fit,minmax(min-content,0)); justify-content:space-between;">
                  <div>Left</div>
                  <div>Right</div>
                </div>
            
            There's one gotcha: repeat() doesn't seem to accept min-content as its own value, so I had to use minmax(min-content,0).

            It's strictly less effort to do this with flex, but I expect that as soon as you have more than two single-word divs as children, Grid becomes more useful.

    • zlepper 7 years ago

      IE support? Only an old version of grid is supported in IE. One which is not compatible with the new spec.

      • rofkoOP 7 years ago

        We offer some support for the previous version of the spec. In those cases you can add a media query to detect IE10+ and override some of the properties. It works well as a starting point for supporting the legacy grid. In our tests the positioning is working as expected, but the sizing units might need some tweaks.

        For me the biggest issue with IE grid is the lack of support for auto-positioning of elements. If you don't rely on that for your design you can support IE10+ pretty well.

amichal 7 years ago

Very helpful! I don't know much about css grid support but I played around with "Grid Gap" and got it working in your tool but when i exported it to a "CodePen" (awesome feature BTW) it didn't come over. The pen is https://codepen.io/anon/pen/RBZOgv. I had a Grid Gap of 10% for both rows and columns

dnadler 7 years ago

This is cool, but I'm having a lot of trouble reshaping the grids, and editing things that I've already created.

For example, I can't click on certain elements, dragging to make something bigger actually makes it smaller, etc. This will be a really nice tool once the UI is ironed out.

rhencke 7 years ago

This is pretty slick. Nice job on visualizing CSS grids and their properties.

There are some really nice touches, like when you drag a grid boundary, it highlights the changing properties in green. I'd love to see that expanded to also highlight when you have an area selected - highlight on the side what rows/columns it is participating in.

There are a few things that would be nice to touch up - when you have a grid area at the top, and you attempt to create a grid inside it, the 'tabs' at the top left and top right get obscured behind the top header. A concept of a document outline on the left might be nice, too, to understand which grid exactly you are editing, when there are nested grids.

This is very cool, though. :)

  • rofkoOP 7 years ago

    Thank you! We'll work on those those UI bugs, the nested grids are a challenge.

peterjonesio 7 years ago

Nice tool, will take a proper look at this later this evening.

Reminds me of this offline tool: https://cssgrid.cc/ which is also quite well rated

  • ghostbrainalpha 7 years ago

    Do you actually use that tool?

    It looks promising but I really don't like having to download software to make a web layout.

    • peterjonesio 7 years ago

      I agree I personally don't like to download offline tools for this sort of work. I haven't used it for anything serious - I just took an overall look at it after https://wesbos.com/ gave it a shout out and like you - decided it looked promising.

      Mainly just posted the link to share the knowledge :)

okonomiyaki3000 7 years ago

This is very helpful and hope you'll consider making a whole series of generators for the trickier parts of css for example: gradientit animatit transformtit flexboxtit box-shadowtit

stuntkite 7 years ago

This is super cool! Only sort of related, I wonder how long they stared at that name and that it had `tit` in it before they decided to go all lowercase because they thought it was funny. I can't imagine that discussion didn't happen while planning to launch this.

What's weird is that my eye sees the word `tit` before the rest of the context. I'm not a weird pervert or anything as far as I know. It actually does cut through the signal to noise in internet promo.

snowpanda 7 years ago

It won't load for me :(

Loading failed for the <script> with source “https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.10/lod....

kjsthree 7 years ago

This looks great! Extra kudos for it working on mobile (iOS 11 anyway). I’m usually checking HN on my phone and these things rarely work there.

nicostouch 7 years ago

I used to really love the bootstrap layoutit tool. Used that heaps in the past. Can you guys please make one for design systems (like Prime React, Element, Vue Admin etc) in React/Vue so you can visually build using components from those systems? That would be beyond amazing.

werber 7 years ago

https://codepen.io/werber/pen/oMGNQe

What I see in the editor is totally different than what comes over to codepen. Seems like this tool has some amazing potential!

  • rofkoOP 7 years ago

    CSS doesn’t allow selectors to begin with a number. We may add a warning or a workaround for this though!

unicornporn 7 years ago

Would it be possible to build a simple layout with two columns and a footer consisting of one column below? It seems the footer will also have to columns, no matter how I do things.

isostatic 7 years ago

Meh, I'll just stick with <table>, and a few frames.

tries it out

Wow, that's amazing. I'm tempted to build a new gui right now to replace a rather long in the tooth linear divs.

anonytrary 7 years ago

It's really slow, especially when you get to 40x40-ish. Does something like this need to be that slow? I'm curious if there are more optimized solutions.

Edmond 7 years ago

whoa!!great to see these guys are still at it! I have kept an eye out for what you might come up with next as I am interested in possibly integrating it for Solvent:

http://codesolvent.com/static-assets/gif-studio/ui-builder/s...

Kudos!!

melvster 7 years ago

I like the export to codepen feature. Anyone know how that works?

ak39 7 years ago

Does CSS grid support size transition animations?

lbj 7 years ago

Just use SabreCMS :) You can set up your grid in much the same way, then build a full blown webshop or site directly on top of that.

zmix 7 years ago

Mixing in flexbox would be nice...

jordache 7 years ago

very nice. very good click interactions for defining a grid area

orliesaurus 7 years ago

The site is great, but the name of the domain is unfortunate

agiledevers 7 years ago

Very nice tool!

Keyboard Shortcuts

j
Next item
k
Previous item
o / Enter
Open selected item
?
Show this help
Esc
Close modal / clear selection