{"id":5312,"date":"2017-09-15T14:29:54","date_gmt":"2017-09-15T14:29:54","guid":{"rendered":"https:\/\/cheesecakelabs.com\/blog\/?p=5312\/"},"modified":"2026-08-15T01:41:53","modified_gmt":"2026-08-15T01:41:53","slug":"dear-designers-love-developers-learned-display-grid","status":"publish","type":"post","link":"https:\/\/cheesecakelabs.com\/blog\/dear-designers-love-developers-learned-display-grid\/","title":{"rendered":"Dear designers, love your developers because they&#8217;ve learned display grid \u2013 and you&#8217;ve done it too"},"content":{"rendered":"<p><i><span style=\"font-weight: 400\">Depending on your journey as a <a href=\"https:\/\/cheesecakelabs.com\/blog\/blog\/building-app-phase-2-product-design\/\">designer<\/a>, you may be used to the freedom that graphic media allows: to create overlaps\/overlays or to elaborate compositions and grids that fill all the paper with pretty organized photos and texts. However, why is it so hard to build a web page with this same freedom? Fortunately, the capacity to build these layouts has been improving and what\u2019s best: it is so simple that you can start using it right now!<\/span><\/i><\/p>\n<p><!--more--><\/p>\n<h2><strong>How does web layout work?<\/strong><\/h2>\n<p><span style=\"font-weight: 400\">Layout on the web works under constraints that print never had. All the options mentioned above make sense when applied to static media where all copies will be the same, for example, books and magazines. But on the web, things usually work differently: there are infinite device sizes, and pages need to load quickly while being accessible for screen readers. You also need the developer&#8217;s ability to build everything that was drawn in Sketch or Photoshop, using the minimum possible amount of code so it can be reusable as much as possible.<\/span><\/p>\n<p><span style=\"font-weight: 400\">Having this structure in mind, it is easy to mentally picture the largely adopted 12\/16-column grid in order to build responsive websites and define the transition from desktop to smartphone browsers. However, there are still big limitations (such as the fact that the HTML order directly interferes with the content visualization), resulting in a big and complex amount of code.&nbsp;<\/span><span style=\"font-weight: 400\">There are some CSS frameworks that try to solve the grid problem. The most famous are <a href=\"https:\/\/getbootstrap.com\/docs\/3.3\/css\/#grid\" target=\"_blank\" rel=\"noopener noreferrer\">Bootstrap<\/a>, <a href=\"http:\/\/foundation.zurb.com\/grid.html\" target=\"_blank\" rel=\"noopener noreferrer\">Foundation<\/a>, <a href=\"http:\/\/flexboxgrid.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">Flexbox Grid<\/a>, and <a href=\"http:\/\/lostgrid.org\/\" target=\"_blank\" rel=\"noopener noreferrer\">Lost Grid<\/a>. But let\u2019s see the written code in these frameworks:<\/span><\/p>\n<pre><code class=\"language-html\">&lt;div class=\"row\"&gt;\n &lt;div class=\"col-xs-6\"&gt;.col-xs-6&lt;\/div&gt;\n &lt;div class=\"col-xs-6\"&gt;.col-xs-6&lt;\/div&gt;\n&lt;\/div&gt;\n&lt;div class=\"row\"&gt;\n &lt;div class=\"col-xs-8\"&gt;.col-xs-8&lt;\/div&gt;\n &lt;div class=\"col-xs-4\"&gt;.col-xs-4&lt;\/div&gt;\n&lt;\/div&gt;\n&lt;div class=\"row\"&gt;\n &lt;div class=\"col-xs-4\"&gt;.col-xs-4&lt;\/div&gt;\n &lt;div class=\"col-xs-4\"&gt;.col-xs-4&lt;\/div&gt;\n &lt;div class=\"col-xs-4\"&gt;.col-xs-4&lt;\/div&gt;\n&lt;\/div&gt;\n<\/code><\/pre>\n<p><span style=\"font-weight: 400\">In addition to having to import a considerable amount of code, these structures are usually unreadable, and in practice there are always some exceptions that the framework can\u2019t solve. This was a battle won by pure CSS.<\/span><\/p>\n<h2><strong>What is display grid in CSS?<\/strong><\/h2>\n<p><span style=\"font-weight: 400\">The display grid is a <a href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/CSS\/CSS_Grid_Layout\" target=\"_blank\" rel=\"noopener noreferrer\">new specification<\/a> from CSS that drastically reduces the complexity of building web layouts and structures. Now we can divide the page into areas that can be flexible or fixed, which can then be filled with content.<\/span><\/p>\n<p><span style=\"font-weight: 400\">Let&#8217;s create a 12-column grid and try to understand what has changed:<\/span><\/p>\n<pre><code class=\"language-css\"><span style=\"font-weight: 400\">#container {<\/span>\n<span style=\"font-weight: 400\"> &nbsp;\/* 1: Set the width *\/<\/span>\n<span style=\"font-weight: 400\"> &nbsp;width: 960px;<\/span>\n\n<span style=\"font-weight: 400\"> &nbsp;\/* Invoke the grid *\/<\/span>\n<span style=\"font-weight: 400\"> &nbsp;display: grid; <\/span>\n\n<span style=\"font-weight: 400\"> &nbsp;\/* 2: Define the columns, in this case 12 columns with liquid width *\/<\/span>\n<span style=\"font-weight: 400\"> &nbsp;grid-template-columns: repeat(12, 1fr);<\/span>\n\n<span style=\"font-weight: 400\"> &nbsp;\/* Define 8 rows with 110px of height *\/<\/span>\n<span style=\"font-weight: 400\"> &nbsp;grid-template-rows: repeat(8, 110px);<\/span>\n\n<span style=\"font-weight: 400\"> &nbsp;\/* 3: And the gap width 10px *\/<\/span>\n<span style=\"font-weight: 400\"> &nbsp;grid-gap: 10px;<\/span>\n<span style=\"font-weight: 400\">}\n<\/span><\/code><\/pre>\n<figure id=\"attachment_5365\" aria-describedby=\"caption-attachment-5365\" style=\"width: 1294px\" class=\"wp-caption aligncenter\"><img decoding=\"async\" class=\"wp-image-5365 size-full\" src=\"https:\/\/ckl-website-static.s3.amazonaws.com\/wp-content\/uploads\/2017\/09\/Screen-Shot-2017-09-14-at-17.59.53.png\" alt=\"\" width=\"1294\" height=\"315\" srcset=\"https:\/\/ckl-website-static.s3.amazonaws.com\/wp-content\/uploads\/2017\/09\/Screen-Shot-2017-09-14-at-17.59.53.png 1294w, https:\/\/ckl-website-static.s3.amazonaws.com\/wp-content\/uploads\/2017\/09\/Screen-Shot-2017-09-14-at-17.59.53-768x187.png 768w\" sizes=\"(max-width: 1294px) 100vw, 1294px\" \/><figcaption id=\"caption-attachment-5365\" class=\"wp-caption-text\">12-column grid in Display grid and you can see the full code <a href=\"https:\/\/codepen.io\/danilowzn\/pen\/NvzYoN\" target=\"_blank\" rel=\"noopener noreferrer\">here<\/a><\/figcaption><\/figure>\n<p><span style=\"font-weight: 400\">Using only this <\/span><b>amount of code<\/b><span style=\"font-weight: 400\">, the elements will already fit inside the grid and will never break or exceed the configured width \u2013 a problem that existed in CSS frameworks. And we can still easily get all these values from Sketch.<\/span><\/p>\n<p><span style=\"font-weight: 400\">And the elements from the page are described like this:<\/span><\/p>\n<pre><code class=\"language-css\"><span style=\"font-weight: 400\">.box {<\/span>\n<span style=\"font-weight: 400\"> &nbsp;\/* Occupy the third to the eleventh column row *\/<\/span>\n<span style=\"font-weight: 400\"> &nbsp;grid-column: 3\/11;<\/span>\n\n<span style=\"font-weight: 400\"> &nbsp;\/* And occupy the region from 1 to 2 line *\/<\/span>\n<span style=\"font-weight: 400\"> &nbsp;grid-row: 1\/2;<\/span>\n<span style=\"font-weight: 400\">}<\/span><\/code><\/pre>\n<p>If you wish to learn and understand more about the syntax and distribution options of the elements, I recommend reading the documentation on <a href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/CSS\/CSS_Grid_Layout\" target=\"_blank\" rel=\"noopener noreferrer\">MDN<\/a> or <a href=\"https:\/\/css-tricks.com\/snippets\/css\/complete-guide-grid\/\" target=\"_blank\" rel=\"noopener noreferrer\">CSS Tricks<\/a>.<\/p>\n<h2><strong>How do you set up the layout grid in Sketch?<\/strong><\/h2>\n<p><span style=\"font-weight: 400\">First, you need to allow the layout view in Sketch by using the command &#8220;Option + L&#8221;, and then you just need to configure it in View &gt; Canvas &gt; Layout Settings. As you can see, we use the same values for both CSS and Sketch.<\/span><\/p>\n<p><img decoding=\"async\" class=\"aligncenter wp-image-5319 size-full\" src=\"https:\/\/ckl-website-static.s3.amazonaws.com\/wp-content\/uploads\/2017\/09\/Screen-Shot-2017-09-12-at-16.25.22-e1505422740678.png\" alt=\"Sketch layout\" width=\"457\" height=\"521\"><\/p>\n<p><span style=\"font-weight: 400\">Incredibly simple and beautiful \ud83d\ude42<\/span><\/p>\n<h2><span style=\"font-weight: 400\"><strong>Responsive layout is now fun<\/strong> <\/span><\/h2>\n<p><span style=\"font-weight: 400\">Let&#8217;s create a classic website as an example, using a header, sidebar, article, and footer. Then, we will introduce the concept of grid-area within the specification of the display grid.<br \/>\n<\/span><\/p>\n<p><span style=\"font-weight: 400\">Again, we need to define the columns and rows of the layout, and then we start naming the sections of the page with the grid-area property, so you can <b>describe<\/b> what the layout format will be, like this:<\/span><\/p>\n<pre><code class=\"language-css\">.container {\n display: grid;\n grid-template-columns: repeat(3, 1fr);\n grid-template-rows: 100px 400px 100px 100px;\n grid-gap: 10px;\n \n grid-template-areas: 'header header header'\n                      'sidebar article article'\n                      'sidebar footer footer';\n}\n\n.header { grid-area: header }\n.sidebar { grid-area: sidebar }\n.article { grid-area: article }\n.footer { grid-area: footer }<\/code><\/pre>\n<figure id=\"attachment_5380\" aria-describedby=\"caption-attachment-5380\" style=\"width: 850px\" class=\"wp-caption aligncenter\"><img decoding=\"async\" class=\"size-full wp-image-5380\" src=\"https:\/\/ckl-website-static.s3.amazonaws.com\/wp-content\/uploads\/2017\/09\/desktop.jpg\" alt=\"\" width=\"850\" height=\"799\" srcset=\"https:\/\/ckl-website-static.s3.amazonaws.com\/wp-content\/uploads\/2017\/09\/desktop.jpg 850w, https:\/\/ckl-website-static.s3.amazonaws.com\/wp-content\/uploads\/2017\/09\/desktop-768x722.jpg 768w\" sizes=\"(max-width: 850px) 100vw, 850px\" \/><figcaption id=\"caption-attachment-5380\" class=\"wp-caption-text\">Classic desktop website, but in display grid&nbsp;and you can see the full code <a href=\"https:\/\/codepen.io\/danilowzn\/pen\/rzRzzE?editors=1100\" target=\"_blank\" rel=\"noopener noreferrer\">here<\/a><\/figcaption><\/figure>\n<p><span style=\"font-weight: 400\">And to change the layout on mobile, you just have to set up the layout, like this:<\/span><\/p>\n<pre><code class=\"language-css\"><span style=\"font-weight: 400\">@media screen and (max-width: 768px) {<\/span>\n<span style=\"font-weight: 400\"> &nbsp;.container {<\/span>\n<span style=\"font-weight: 400\"> &nbsp;&nbsp;&nbsp;grid-template-areas: 'header header header'<\/span>\n<span style=\"font-weight: 400\"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'article article article'<\/span>\n<span style=\"font-weight: 400\"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'sidebar sidebar sidebar'<\/span>\n<span style=\"font-weight: 400\"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'footer footer footer';<\/span>\n<span style=\"font-weight: 400\"> &nbsp;}<\/span>\n<span style=\"font-weight: 400\">}<\/span><\/code><\/pre>\n<figure id=\"attachment_5388\" aria-describedby=\"caption-attachment-5388\" style=\"width: 308px\" class=\"wp-caption aligncenter\"><img decoding=\"async\" class=\"wp-image-5388 size-full\" src=\"https:\/\/ckl-website-static.s3.amazonaws.com\/wp-content\/uploads\/2017\/09\/mobile1-e1505424469597.jpg\" alt=\"\" width=\"308\" height=\"425\"><figcaption id=\"caption-attachment-5388\" class=\"wp-caption-text\">Classic mobile website, &nbsp;you can see the full code <a href=\"https:\/\/codepen.io\/danilowzn\/pen\/rzRzzE?editors=1100\" target=\"_blank\" rel=\"noopener noreferrer\">here<\/a><\/figcaption><\/figure>\n<p>As you can see, the order or position of the HTML doesn&#8217;t matter, because what really matters is how we set the layout position in CSS.<\/p>\n<h2><strong>What will change in my layout?<\/strong><\/h2>\n<p><span style=\"font-weight: 400\">You will be able to create more dynamic responsive layouts, with more distinction between desktop and mobile, using elements that previously could not change positions because of their relation with HTML. Now the elements can be free to occupy areas of the layout that were unreachable before, without repeating code and content (which is bad for SEO and maintenance) and without demanding great effort.<\/span><\/p>\n<p><span style=\"font-weight: 400\">To make the changes clearer, imagine a desktop layout that looks like this:<\/span><\/p>\n<p><img decoding=\"async\" class=\"size-full wp-image-5393 aligncenter\" src=\"https:\/\/ckl-website-static.s3.amazonaws.com\/wp-content\/uploads\/2017\/09\/grid-1.jpg\" alt=\"\" width=\"828\" height=\"556\" srcset=\"https:\/\/ckl-website-static.s3.amazonaws.com\/wp-content\/uploads\/2017\/09\/grid-1.jpg 828w, https:\/\/ckl-website-static.s3.amazonaws.com\/wp-content\/uploads\/2017\/09\/grid-1-768x516.jpg 768w\" sizes=\"(max-width: 828px) 100vw, 828px\" \/><\/p>\n<p><span style=\"font-weight: 400\">On the mobile it can look like this:<\/span><\/p>\n<p><img decoding=\"async\" class=\"size-full wp-image-5394 aligncenter\" src=\"https:\/\/ckl-website-static.s3.amazonaws.com\/wp-content\/uploads\/2017\/09\/grid-2.jpg\" alt=\"\" width=\"291\" height=\"264\"><\/p>\n<p><span style=\"font-weight: 400\">Can you see the new possibilities?<\/span><\/p>\n<h2><strong>Think outside the grid<\/strong><\/h2>\n<p><span style=\"font-weight: 400\">There are many possibilities that &#8220;display grid&#8221; has created, without creating complexity, unreadable code, and upset developers. To see more about these possibilities, I recommend the website <a href=\"https:\/\/gridbyexample.com\/examples\/\" target=\"_blank\" rel=\"noopener noreferrer\">Grid by Example<\/a>,<\/span><span style=\"font-weight: 400\">&nbsp;which shows the power of this new specification and helps to demonstrate what we can accomplish.<\/span><\/p>\n<p><span style=\"font-weight: 400\">And that changes everything again: since the web\u2019s early days, there have been a lot of attempts to write some practical and reusable specifications to build web layouts, from terrible tables to floats and now flexbox and grid. Today, the web takes important steps towards friendly code and possibilities that don\u2019t limit designers\u2019 and developers\u2019 creativity.<\/span><\/p>\n<p>&nbsp;<\/p>\n<p><b>References<\/b><\/p>\n<p><a href=\"https:\/\/gridbyexample.com\/examples\/\" target=\"_blank\" rel=\"noopener noreferrer\"><span style=\"font-weight: 400\">https:\/\/gridbyexample.com\/examples\/<\/span><\/a><\/p>\n<p><a href=\"http:\/\/maketea.co.uk\/2016\/09\/28\/css-grid-layout-is-a-step-change.html\" target=\"_blank\" rel=\"noopener noreferrer\"><span style=\"font-weight: 400\">http:\/\/maketea.co.uk\/2016\/09\/28\/css-grid-layout-is-a-step-change.html<\/span><\/a><\/p>\n<p><a href=\"http:\/\/fantasai.inkedblade.net\/weblog\/2012\/css-layout-evolution\/\" target=\"_blank\" rel=\"noopener noreferrer\"><span style=\"font-weight: 400\">http:\/\/fantasai.inkedblade.net\/weblog\/2012\/css-layout-evolution\/<\/span><\/a><\/p>\n<p><a href=\"https:\/\/rachelandrew.co.uk\/archives\/2015\/02\/04\/css-grid-layout-creating-complex-grids\/\" target=\"_blank\" rel=\"noopener noreferrer\"><span style=\"font-weight: 400\">https:\/\/rachelandrew.co.uk\/archives\/2015\/02\/04\/css-grid-layout-creating-complex-grids\/<\/span><\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Depending on your journey as a designer, you may be used to the freedom that graphic media allows: to create overlaps\/overlays or to elaborate compositions and grids that fill all the paper with pretty organized photos and texts. However, why is it so hard to build a web page with this same freedom? Fortunately, the [&hellip;]<\/p>\n","protected":false},"author":65,"featured_media":5403,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_yoast_wpseo_focuskw":"designer","_yoast_wpseo_title":"Dear Designers: CSS Display Grid Makes Layout Simple","_yoast_wpseo_metadesc":"Build responsive web layouts with far less code: how CSS display grid works, how to match the same grid values in Sketch, and how to start using it today.","_yoast_wpseo_meta-robots-noindex":"","_yoast_wpseo_canonical":"","footnotes":"","ckl_wpml_lang":"","ckl_wpml_source_id":0,"ckl_wpml_status":""},"categories":[1425,6],"tags":[319],"class_list":["post-5312","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-product-engineering","category-product-design","tag-tag-design"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.1.1 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Dear Designers: CSS Display Grid Makes Layout Simple<\/title>\n<meta name=\"description\" content=\"Build responsive web layouts with far less code: how CSS display grid works, how to match the same grid values in Sketch, and how to start using it today.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/cheesecakelabs.com\/blog\/dear-designers-love-developers-learned-display-grid\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Dear Designers: CSS Display Grid Makes Layout Simple\" \/>\n<meta property=\"og:description\" content=\"Build responsive web layouts with far less code: how CSS display grid works, how to match the same grid values in Sketch, and how to start using it today.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/cheesecakelabs.com\/blog\/dear-designers-love-developers-learned-display-grid\/\" \/>\n<meta property=\"og:site_name\" content=\"Cheesecake Labs\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/cheesecakelabs\" \/>\n<meta property=\"article:published_time\" content=\"2017-09-15T14:29:54+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-08-15T01:41:53+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/ckl-website-static.s3.amazonaws.com\/wp-content\/uploads\/2017\/09\/nativereact_banner.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"2000\" \/>\n\t<meta property=\"og:image:height\" content=\"720\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Cheesecake Labs\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@cheesecakelabs\" \/>\n<meta name=\"twitter:site\" content=\"@cheesecakelabs\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/cheesecakelabs.com\/blog\/dear-designers-love-developers-learned-display-grid\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/cheesecakelabs.com\/blog\/dear-designers-love-developers-learned-display-grid\/\"},\"author\":{\"name\":\"Danilo Woznica\"},\"headline\":\"Dear designers, love your developers because they&#8217;ve learned display grid \u2013 and you&#8217;ve done it too\",\"datePublished\":\"2017-09-15T14:29:54+00:00\",\"dateModified\":\"2026-08-15T01:41:53+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/cheesecakelabs.com\/blog\/dear-designers-love-developers-learned-display-grid\/\"},\"wordCount\":927,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/cheesecakelabs.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/cheesecakelabs.com\/blog\/dear-designers-love-developers-learned-display-grid\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/ckl-website-static.s3.amazonaws.com\/wp-content\/uploads\/2017\/09\/nativereact_banner.jpg\",\"keywords\":[\"Design\"],\"articleSection\":[\"Product Engineering\",\"Product Design\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/cheesecakelabs.com\/blog\/dear-designers-love-developers-learned-display-grid\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/cheesecakelabs.com\/blog\/dear-designers-love-developers-learned-display-grid\/\",\"url\":\"https:\/\/cheesecakelabs.com\/blog\/dear-designers-love-developers-learned-display-grid\/\",\"name\":\"Dear Designers: CSS Display Grid Makes Layout Simple\",\"isPartOf\":{\"@id\":\"https:\/\/cheesecakelabs.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/cheesecakelabs.com\/blog\/dear-designers-love-developers-learned-display-grid\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/cheesecakelabs.com\/blog\/dear-designers-love-developers-learned-display-grid\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/ckl-website-static.s3.amazonaws.com\/wp-content\/uploads\/2017\/09\/nativereact_banner.jpg\",\"datePublished\":\"2017-09-15T14:29:54+00:00\",\"dateModified\":\"2026-08-15T01:41:53+00:00\",\"description\":\"Build responsive web layouts with far less code: how CSS display grid works, how to match the same grid values in Sketch, and how to start using it today.\",\"breadcrumb\":{\"@id\":\"https:\/\/cheesecakelabs.com\/blog\/dear-designers-love-developers-learned-display-grid\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/cheesecakelabs.com\/blog\/dear-designers-love-developers-learned-display-grid\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/cheesecakelabs.com\/blog\/dear-designers-love-developers-learned-display-grid\/#primaryimage\",\"url\":\"https:\/\/ckl-website-static.s3.amazonaws.com\/wp-content\/uploads\/2017\/09\/nativereact_banner.jpg\",\"contentUrl\":\"https:\/\/ckl-website-static.s3.amazonaws.com\/wp-content\/uploads\/2017\/09\/nativereact_banner.jpg\",\"width\":2000,\"height\":720,\"caption\":\"nativereact_banner | | Cheesecake Labs\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/cheesecakelabs.com\/blog\/dear-designers-love-developers-learned-display-grid\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/cheesecakelabs.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Dear designers, love your developers because they&#8217;ve learned display grid \u2013 and you&#8217;ve done it too\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/cheesecakelabs.com\/blog\/#website\",\"url\":\"https:\/\/cheesecakelabs.com\/blog\/\",\"name\":\"Cheesecake Labs\",\"description\":\"AI Implementation, Data and Product Engineering\",\"publisher\":{\"@id\":\"https:\/\/cheesecakelabs.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/cheesecakelabs.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/cheesecakelabs.com\/blog\/#organization\",\"name\":\"Cheesecake Labs\",\"alternateName\":\"Cheesecake Labs Inc\",\"url\":\"https:\/\/cheesecakelabs.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/cheesecakelabs.com\/#logo\",\"url\":\"https:\/\/ckl-website-static.s3.amazonaws.com\/wp-content\/uploads\/2022\/06\/cheesecake-labs-1.png\",\"contentUrl\":\"https:\/\/ckl-website-static.s3.amazonaws.com\/wp-content\/uploads\/2022\/06\/cheesecake-labs-1.png\",\"caption\":\"Cheesecake Labs\",\"inLanguage\":\"en\"},\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/cheesecakelabs.com\/#primary-image\",\"url\":\"https:\/\/ckl-website-v4-strapi-prod.s3.us-east-2.amazonaws.com\/ai_software_development_company_83fb512983.webp\",\"contentUrl\":\"https:\/\/ckl-website-v4-strapi-prod.s3.us-east-2.amazonaws.com\/ai_software_development_company_83fb512983.webp\",\"width\":1920,\"height\":1080,\"caption\":\"Cheesecake Labs \u2014 AI, Data & Blockchain software development services\",\"inLanguage\":\"en\"},\"sameAs\":[\"https:\/\/www.facebook.com\/cheesecakelabs\",\"https:\/\/x.com\/cheesecakelabs\",\"https:\/\/www.instagram.com\/cheesecakelabs\/\",\"https:\/\/www.linkedin.com\/company\/cheesecake-labs\/\",\"https:\/\/www.youtube.com\/channel\/UCdGEQ5AHJcmIlaOaI5fGGVA\",\"https:\/\/clutch.co\/profile\/cheesecake-labs\",\"https:\/\/www.behance.net\/cheesecakelabs\",\"https:\/\/dribbble.com\/cheesecakelabs\",\"https:\/\/www.designrush.com\/agency\/profile\/cheesecake-labs\",\"https:\/\/www.g2.com\/products\/cheesecake-labs\/reviews\"],\"description\":\"Cheesecake Labs is a software development studio that designs and builds custom digital products \u2014 web, mobile, and platforms \u2014 combining product design and high-performance engineering.\",\"foundingDate\":\"2013\"},{\"@type\":\"Person\",\"name\":\"Danilo Woznica\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/cheesecakelabs.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/ckl-website-static.s3.amazonaws.com\/wp-content\/uploads\/2017\/09\/danilo-300x300.jpg\",\"contentUrl\":\"https:\/\/ckl-website-static.s3.amazonaws.com\/wp-content\/uploads\/2017\/09\/danilo-300x300.jpg\",\"caption\":\"Danilo Woznica\"},\"description\":\"10 years of experience in Marketing and Sales in the Technology sector. My main purpose is help, support and structure efficient operations and also develop independent and multidisciplinary teams.\",\"url\":\"https:\/\/cheesecakelabs.com\/blog\/autor\/danilo\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Dear Designers: CSS Display Grid Makes Layout Simple","description":"Build responsive web layouts with far less code: how CSS display grid works, how to match the same grid values in Sketch, and how to start using it today.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/cheesecakelabs.com\/blog\/dear-designers-love-developers-learned-display-grid\/","og_locale":"en_US","og_type":"article","og_title":"Dear Designers: CSS Display Grid Makes Layout Simple","og_description":"Build responsive web layouts with far less code: how CSS display grid works, how to match the same grid values in Sketch, and how to start using it today.","og_url":"https:\/\/cheesecakelabs.com\/blog\/dear-designers-love-developers-learned-display-grid\/","og_site_name":"Cheesecake Labs","article_publisher":"https:\/\/www.facebook.com\/cheesecakelabs","article_published_time":"2017-09-15T14:29:54+00:00","article_modified_time":"2026-08-15T01:41:53+00:00","og_image":[{"width":2000,"height":720,"url":"https:\/\/ckl-website-static.s3.amazonaws.com\/wp-content\/uploads\/2017\/09\/nativereact_banner.jpg","type":"image\/jpeg"}],"author":"Cheesecake Labs","twitter_card":"summary_large_image","twitter_creator":"@cheesecakelabs","twitter_site":"@cheesecakelabs","twitter_misc":{"Written by":null,"Est. reading time":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/cheesecakelabs.com\/blog\/dear-designers-love-developers-learned-display-grid\/#article","isPartOf":{"@id":"https:\/\/cheesecakelabs.com\/blog\/dear-designers-love-developers-learned-display-grid\/"},"author":{"name":"Danilo Woznica"},"headline":"Dear designers, love your developers because they&#8217;ve learned display grid \u2013 and you&#8217;ve done it too","datePublished":"2017-09-15T14:29:54+00:00","dateModified":"2026-08-15T01:41:53+00:00","mainEntityOfPage":{"@id":"https:\/\/cheesecakelabs.com\/blog\/dear-designers-love-developers-learned-display-grid\/"},"wordCount":927,"commentCount":0,"publisher":{"@id":"https:\/\/cheesecakelabs.com\/blog\/#organization"},"image":{"@id":"https:\/\/cheesecakelabs.com\/blog\/dear-designers-love-developers-learned-display-grid\/#primaryimage"},"thumbnailUrl":"https:\/\/ckl-website-static.s3.amazonaws.com\/wp-content\/uploads\/2017\/09\/nativereact_banner.jpg","keywords":["Design"],"articleSection":["Product Engineering","Product Design"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/cheesecakelabs.com\/blog\/dear-designers-love-developers-learned-display-grid\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/cheesecakelabs.com\/blog\/dear-designers-love-developers-learned-display-grid\/","url":"https:\/\/cheesecakelabs.com\/blog\/dear-designers-love-developers-learned-display-grid\/","name":"Dear Designers: CSS Display Grid Makes Layout Simple","isPartOf":{"@id":"https:\/\/cheesecakelabs.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/cheesecakelabs.com\/blog\/dear-designers-love-developers-learned-display-grid\/#primaryimage"},"image":{"@id":"https:\/\/cheesecakelabs.com\/blog\/dear-designers-love-developers-learned-display-grid\/#primaryimage"},"thumbnailUrl":"https:\/\/ckl-website-static.s3.amazonaws.com\/wp-content\/uploads\/2017\/09\/nativereact_banner.jpg","datePublished":"2017-09-15T14:29:54+00:00","dateModified":"2026-08-15T01:41:53+00:00","description":"Build responsive web layouts with far less code: how CSS display grid works, how to match the same grid values in Sketch, and how to start using it today.","breadcrumb":{"@id":"https:\/\/cheesecakelabs.com\/blog\/dear-designers-love-developers-learned-display-grid\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/cheesecakelabs.com\/blog\/dear-designers-love-developers-learned-display-grid\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/cheesecakelabs.com\/blog\/dear-designers-love-developers-learned-display-grid\/#primaryimage","url":"https:\/\/ckl-website-static.s3.amazonaws.com\/wp-content\/uploads\/2017\/09\/nativereact_banner.jpg","contentUrl":"https:\/\/ckl-website-static.s3.amazonaws.com\/wp-content\/uploads\/2017\/09\/nativereact_banner.jpg","width":2000,"height":720,"caption":"nativereact_banner | | Cheesecake Labs"},{"@type":"BreadcrumbList","@id":"https:\/\/cheesecakelabs.com\/blog\/dear-designers-love-developers-learned-display-grid\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/cheesecakelabs.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Dear designers, love your developers because they&#8217;ve learned display grid \u2013 and you&#8217;ve done it too"}]},{"@type":"WebSite","@id":"https:\/\/cheesecakelabs.com\/blog\/#website","url":"https:\/\/cheesecakelabs.com\/blog\/","name":"Cheesecake Labs","description":"AI Implementation, Data and Product Engineering","publisher":{"@id":"https:\/\/cheesecakelabs.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/cheesecakelabs.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/cheesecakelabs.com\/blog\/#organization","name":"Cheesecake Labs","alternateName":"Cheesecake Labs Inc","url":"https:\/\/cheesecakelabs.com\/","logo":{"@type":"ImageObject","@id":"https:\/\/cheesecakelabs.com\/#logo","url":"https:\/\/ckl-website-static.s3.amazonaws.com\/wp-content\/uploads\/2022\/06\/cheesecake-labs-1.png","contentUrl":"https:\/\/ckl-website-static.s3.amazonaws.com\/wp-content\/uploads\/2022\/06\/cheesecake-labs-1.png","caption":"Cheesecake Labs","inLanguage":"en"},"image":{"@type":"ImageObject","@id":"https:\/\/cheesecakelabs.com\/#primary-image","url":"https:\/\/ckl-website-v4-strapi-prod.s3.us-east-2.amazonaws.com\/ai_software_development_company_83fb512983.webp","contentUrl":"https:\/\/ckl-website-v4-strapi-prod.s3.us-east-2.amazonaws.com\/ai_software_development_company_83fb512983.webp","width":1920,"height":1080,"caption":"Cheesecake Labs \u2014 AI, Data & Blockchain software development services","inLanguage":"en"},"sameAs":["https:\/\/www.facebook.com\/cheesecakelabs","https:\/\/x.com\/cheesecakelabs","https:\/\/www.instagram.com\/cheesecakelabs\/","https:\/\/www.linkedin.com\/company\/cheesecake-labs\/","https:\/\/www.youtube.com\/channel\/UCdGEQ5AHJcmIlaOaI5fGGVA","https:\/\/clutch.co\/profile\/cheesecake-labs","https:\/\/www.behance.net\/cheesecakelabs","https:\/\/dribbble.com\/cheesecakelabs","https:\/\/www.designrush.com\/agency\/profile\/cheesecake-labs","https:\/\/www.g2.com\/products\/cheesecake-labs\/reviews"],"description":"Cheesecake Labs is a software development studio that designs and builds custom digital products \u2014 web, mobile, and platforms \u2014 combining product design and high-performance engineering.","foundingDate":"2013"},{"@type":"Person","name":"Danilo Woznica","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/cheesecakelabs.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/ckl-website-static.s3.amazonaws.com\/wp-content\/uploads\/2017\/09\/danilo-300x300.jpg","contentUrl":"https:\/\/ckl-website-static.s3.amazonaws.com\/wp-content\/uploads\/2017\/09\/danilo-300x300.jpg","caption":"Danilo Woznica"},"description":"10 years of experience in Marketing and Sales in the Technology sector. My main purpose is help, support and structure efficient operations and also develop independent and multidisciplinary teams.","url":"https:\/\/cheesecakelabs.com\/blog\/autor\/danilo\/"}]}},"_links":{"self":[{"href":"https:\/\/cheesecakelabs.com\/blog\/wp-json\/wp\/v2\/posts\/5312","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cheesecakelabs.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/cheesecakelabs.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/cheesecakelabs.com\/blog\/wp-json\/wp\/v2\/users\/65"}],"replies":[{"embeddable":true,"href":"https:\/\/cheesecakelabs.com\/blog\/wp-json\/wp\/v2\/comments?post=5312"}],"version-history":[{"count":2,"href":"https:\/\/cheesecakelabs.com\/blog\/wp-json\/wp\/v2\/posts\/5312\/revisions"}],"predecessor-version":[{"id":14626,"href":"https:\/\/cheesecakelabs.com\/blog\/wp-json\/wp\/v2\/posts\/5312\/revisions\/14626"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/cheesecakelabs.com\/blog\/wp-json\/wp\/v2\/media\/5403"}],"wp:attachment":[{"href":"https:\/\/cheesecakelabs.com\/blog\/wp-json\/wp\/v2\/media?parent=5312"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/cheesecakelabs.com\/blog\/wp-json\/wp\/v2\/categories?post=5312"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/cheesecakelabs.com\/blog\/wp-json\/wp\/v2\/tags?post=5312"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}