<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <id>https://web.dev/</id>
  <title>David Grogan on web.dev</title>
  <updated>2026-04-15T23:21:06Z</updated>
  <author>
    <name>David Grogan</name>
  </author>
  <link href="https://web.dev/authors/dgrogan/feed.xml" rel="self"/>
  <link href="https://web.dev/"/>
  <icon>https://web-dev.imgix.net/image/admin/qPVct6hKRbw1YO0qVMcc.jpg?auto=format</icon>
  <logo>https://web.dev/images/shared/rss-banner.png</logo>
  <subtitle>Our latest news, updates, and stories by David Grogan.</subtitle>
  
  
  <entry>
    <title>Chromium lands Flexbox `gap`</title>
    <link href="https://web.dev/flexbox-gap/"/>
    <updated>2020-05-07T00:00:00Z</updated>
    <id>https://web.dev/flexbox-gap/</id>
    <content type="html" mode="escaped">&lt;h2 id=&quot;css-gap&quot;&gt;CSS Gap &lt;a class=&quot;headline-link&quot; href=&quot;https://web.dev/flexbox-gap/#css-gap&quot;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;aside class=&quot;aside flow color-secondary-box-text bg-secondary-box-bg&quot;&gt;&lt;p class=&quot;cluster &quot;&gt;&lt;span class=&quot;aside__icon box-block &quot;&gt;&lt;svg width=&quot;24&quot; height=&quot;24&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;currentColor&quot; role=&quot;img&quot; aria-label=&quot;Highlighter pen&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;   &lt;path fill-rule=&quot;evenodd&quot; clip-rule=&quot;evenodd&quot; d=&quot;M10.22 9.49l-5.91 6c-.77.8-.7 2.05.08 2.85L.77 22h5.68l.74-.75c.78.81 1.95.86 2.73.05l5.96-6.05-5.66-5.76zm12.46-4l-2.82-2.87c-.78-.8-2.07-.84-2.84-.04l-5.75 5.85 5.66 5.75 5.69-5.78c.77-.81.83-2.11.06-2.91z&quot;&gt;&lt;/path&gt; &lt;/svg&gt;&lt;/span&gt;&lt;strong&gt;Key Term&lt;/strong&gt;&lt;/p&gt;&lt;div class=&quot; flow&quot;&gt; &lt;code&gt;gap&lt;/code&gt; is the spacing &lt;em&gt;between children&lt;/em&gt;. You may have heard of this type of spacing being called &amp;quot;gutters&amp;quot; or &amp;quot;alleys&amp;quot;. It&#39;s space only where the children box edges touch. &lt;/div&gt;&lt;/aside&gt;
&lt;p&gt;&lt;code&gt;gap&lt;/code&gt; is &lt;a href=&quot;https://www.w3.org/TR/css-logical-1/#intro&quot; rel=&quot;noopener&quot;&gt;flow relative&lt;/a&gt;, meaning it changes
dynamically based on the direction of content flow. For example, &lt;code&gt;gap&lt;/code&gt; will automatically
adjust for the different &lt;code&gt;writing-mode&lt;/code&gt; or &lt;code&gt;direction&lt;/code&gt; values that you set for your
international users. This significantly eases the burden of spacing challenges for
the component and CSS author. &lt;strong&gt;Less code scaling further.&lt;/strong&gt;&lt;/p&gt;
&lt;figure&gt;
  &lt;video controls=&quot;&quot; autoplay=&quot;&quot; loop=&quot;&quot; muted=&quot;&quot;&gt;
    &lt;source src=&quot;https://storage.googleapis.com/web-dev-assets/flexbox-gap/gap-i18n.webm&quot; type=&quot;video/webm&quot; /&gt;
    &lt;source src=&quot;https://storage.googleapis.com/web-dev-assets/flexbox-gap/gap-i18n.mp4&quot; /&gt;
  &lt;/video&gt;
  &lt;figcaption&gt;
    Gap demonstrating localization support, as it handles changes to direction and writing-mode:
    &lt;a href=&quot;https://codepen.io/argyleink/pen/MWaoZJM&quot;&gt;Codepen&lt;/a&gt; |
    &lt;a href=&quot;https://twitter.com/argyleink/status/1254794309263491072?s=20&quot;&gt;Tweet&lt;/a&gt;
  &lt;/figcaption&gt;
&lt;/figure&gt;
&lt;h3 id=&quot;browser-compatibility&quot;&gt;Browser compatibility &lt;a class=&quot;headline-link&quot; href=&quot;https://web.dev/flexbox-gap/#browser-compatibility&quot;&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;wdi-browser-compat&quot;&gt;
  &lt;span class=&quot;wdi-browser-compat__label&quot;&gt;Browser support&lt;/span&gt;
  &lt;ul class=&quot;wdi-browser-compat__items&quot;&gt;
    &lt;li class=&quot;wdi-browser-compat__item&quot;&gt;
    &lt;span class=&quot;wdi-browser-compat__icon&quot; data-browser=&quot;chrome&quot;&gt;
      &lt;span class=&quot;visually-hidden&quot;&gt;Chrome 57, Supported&lt;/span&gt;
    &lt;/span&gt;
    &lt;span class=&quot;wdi-browser-compat__version&quot; data-compat=&quot;yes&quot; title=&quot;Supported&quot; aria-label=&quot;Supported&quot;&gt;
      57
    &lt;/span&gt;
    &lt;/li&gt;&lt;li class=&quot;wdi-browser-compat__item&quot;&gt;
    &lt;span class=&quot;wdi-browser-compat__icon&quot; data-browser=&quot;firefox&quot;&gt;
      &lt;span class=&quot;visually-hidden&quot;&gt;Firefox 52, Supported&lt;/span&gt;
    &lt;/span&gt;
    &lt;span class=&quot;wdi-browser-compat__version&quot; data-compat=&quot;yes&quot; title=&quot;Supported&quot; aria-label=&quot;Supported&quot;&gt;
      52
    &lt;/span&gt;
    &lt;/li&gt;&lt;li class=&quot;wdi-browser-compat__item&quot;&gt;
    &lt;span class=&quot;wdi-browser-compat__icon&quot; data-browser=&quot;edge&quot;&gt;
      &lt;span class=&quot;visually-hidden&quot;&gt;Edge 16, Supported&lt;/span&gt;
    &lt;/span&gt;
    &lt;span class=&quot;wdi-browser-compat__version&quot; data-compat=&quot;yes&quot; title=&quot;Supported&quot; aria-label=&quot;Supported&quot;&gt;
      16
    &lt;/span&gt;
    &lt;/li&gt;&lt;li class=&quot;wdi-browser-compat__item&quot;&gt;
    &lt;span class=&quot;wdi-browser-compat__icon&quot; data-browser=&quot;safari&quot;&gt;
      &lt;span class=&quot;visually-hidden&quot;&gt;Safari 10.1, Supported&lt;/span&gt;
    &lt;/span&gt;
    &lt;span class=&quot;wdi-browser-compat__version&quot; data-compat=&quot;yes&quot; title=&quot;Supported&quot; aria-label=&quot;Supported&quot;&gt;
      10.1
    &lt;/span&gt;
    &lt;/li&gt;
  &lt;/ul&gt;
  &lt;a class=&quot;wdi-browser-compat__link&quot; href=&quot;https://developer.mozilla.org/docs/Web/CSS/gap#browser_compatibility&quot; target=&quot;_blank&quot;&gt;Source&lt;/a&gt;
&lt;/div&gt;
&lt;h3 id=&quot;usage&quot;&gt;Usage &lt;a class=&quot;headline-link&quot; href=&quot;https://web.dev/flexbox-gap/#usage&quot;&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;gap&lt;/code&gt; accepts any CSS &lt;a href=&quot;https://drafts.csswg.org/css-values-4/#lengths&quot; rel=&quot;noopener&quot;&gt;length&lt;/a&gt;
or &lt;a href=&quot;https://www.w3.org/TR/css-values-3/#percentages&quot; rel=&quot;noopener&quot;&gt;percentage&lt;/a&gt; as a value.&lt;/p&gt;
&lt;div&gt;&lt;pre class=&quot;language-css&quot;&gt;&lt;code class=&quot;language-css&quot;&gt;&lt;span class=&quot;token selector&quot;&gt;.gap-example&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token property&quot;&gt;display&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; grid&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token property&quot;&gt;gap&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; 10px&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token property&quot;&gt;gap&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; 2ch&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token property&quot;&gt;gap&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; 5%&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token property&quot;&gt;gap&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; 1em&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token property&quot;&gt;gap&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; 3vmax&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;p&gt;Gap can be passed 1 length, which will be used for both row and column.&lt;/p&gt;
&lt;div class=&quot;switcher&quot;&gt;
&lt;figure class=&quot;compare flow&quot; data-type=&quot;better&quot; data-size=&quot;full&quot;&gt;&lt;p class=&quot;compare__label&quot;&gt;Shorthand&lt;/p&gt;
&lt;div&gt;&lt;pre class=&quot;language-css&quot;&gt;&lt;code class=&quot;language-css&quot;&gt;&lt;span class=&quot;token selector&quot;&gt;.grid&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token property&quot;&gt;display&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; grid&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token property&quot;&gt;gap&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; 10px&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;&lt;figcaption class=&quot;compare__caption&quot;&gt;
&lt;p&gt;Set both rows and columns &lt;strong&gt;together&lt;/strong&gt; at once&lt;/p&gt;
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure class=&quot;compare flow&quot; data-type=&quot;better&quot; data-size=&quot;full&quot;&gt;&lt;p class=&quot;compare__label&quot;&gt;Expanded&lt;/p&gt;
&lt;div&gt;&lt;pre class=&quot;language-css&quot;&gt;&lt;code class=&quot;language-css&quot;&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token selector&quot;&gt;.grid&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;  &lt;span class=&quot;token property&quot;&gt;display&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; grid&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;mark class=&quot;highlight-line highlight-line-active&quot;&gt;  &lt;span class=&quot;token property&quot;&gt;row-gap&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; 10px&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/mark&gt;&lt;br /&gt;&lt;mark class=&quot;highlight-line highlight-line-active&quot;&gt;  &lt;span class=&quot;token property&quot;&gt;column-gap&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; 10px&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/mark&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;&lt;/figure&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;p&gt;Gap can be passed 2 lengths, which will be used for row and column.&lt;/p&gt;
&lt;div class=&quot;switcher&quot;&gt;
&lt;figure class=&quot;compare flow&quot; data-type=&quot;better&quot; data-size=&quot;full&quot;&gt;&lt;p class=&quot;compare__label&quot;&gt;Shorthand&lt;/p&gt;
&lt;div&gt;&lt;pre class=&quot;language-css&quot;&gt;&lt;code class=&quot;language-css&quot;&gt;&lt;span class=&quot;token selector&quot;&gt;.grid&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token property&quot;&gt;display&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; grid&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token property&quot;&gt;gap&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; 10px 5%&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;&lt;figcaption class=&quot;compare__caption&quot;&gt;
&lt;p&gt;Set both rows and columns &lt;strong&gt;separately&lt;/strong&gt; at once&lt;/p&gt;
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure class=&quot;compare flow&quot; data-type=&quot;better&quot; data-size=&quot;full&quot;&gt;&lt;p class=&quot;compare__label&quot;&gt;Expanded&lt;/p&gt;
&lt;div&gt;&lt;pre class=&quot;language-css&quot;&gt;&lt;code class=&quot;language-css&quot;&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token selector&quot;&gt;.grid&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;  &lt;span class=&quot;token property&quot;&gt;display&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; grid&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;mark class=&quot;highlight-line highlight-line-active&quot;&gt;  &lt;span class=&quot;token property&quot;&gt;row-gap&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; 10px&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/mark&gt;&lt;br /&gt;&lt;mark class=&quot;highlight-line highlight-line-active&quot;&gt;  &lt;span class=&quot;token property&quot;&gt;column-gap&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; 5%&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/mark&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;&lt;/figure&gt;
&lt;/div&gt;
&lt;h2 id=&quot;flexbox-gap&quot;&gt;Flexbox &lt;code&gt;gap&lt;/code&gt; &lt;a class=&quot;headline-link&quot; href=&quot;https://web.dev/flexbox-gap/#flexbox-gap&quot;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Before &lt;code&gt;gap&lt;/code&gt; was in Flexbox, strategies involved negative margins, complex selectors,
&lt;code&gt;:last&lt;/code&gt; or &lt;code&gt;:first&lt;/code&gt; type pseudo-class selectors, or other means to manage the space
of a dynamically layed-out and wrapping set of children.&lt;/p&gt;
&lt;h3 id=&quot;previous-attempts&quot;&gt;Previous Attempts &lt;a class=&quot;headline-link&quot; href=&quot;https://web.dev/flexbox-gap/#previous-attempts&quot;&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;The following are patterns that folks have used to get gap-like spacing.&lt;/p&gt;
&lt;div class=&quot;switcher&quot;&gt;
&lt;figure class=&quot;compare flow&quot; data-type=&quot;worse&quot; data-size=&quot;full&quot;&gt;&lt;p class=&quot;compare__label&quot;&gt;pseudo-class selectors&lt;/p&gt;
&lt;div&gt;&lt;pre class=&quot;language-css&quot;&gt;&lt;code class=&quot;language-css&quot;&gt;&lt;span class=&quot;token selector&quot;&gt;.layout &gt; :not(:last-child)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token property&quot;&gt;margin-bottom&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; 10px&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token property&quot;&gt;margin-right&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; 10px&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;&lt;/figure&gt;
&lt;figure class=&quot;compare flow&quot; data-type=&quot;worse&quot; data-size=&quot;full&quot;&gt;&lt;p class=&quot;compare__label&quot;&gt;lobotomized owl&lt;/p&gt;
&lt;div&gt;&lt;pre class=&quot;language-css&quot;&gt;&lt;code class=&quot;language-css&quot;&gt;&lt;span class=&quot;token selector&quot;&gt;.layout &gt; * + *&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token property&quot;&gt;margin-bottom&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; 10px&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token property&quot;&gt;margin-right&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; 10px&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;&lt;figcaption class=&quot;compare__caption&quot;&gt;
&lt;p&gt;&lt;a href=&quot;https://alistapart.com/article/axiomatic-css-and-lobotomized-owls/&quot; rel=&quot;noopener&quot;&gt;Source&lt;/a&gt;&lt;/p&gt;
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;p&gt;The above are not a full replacement for &lt;code&gt;gap&lt;/code&gt; though, and often need &lt;code&gt;@media&lt;/code&gt;
or &lt;code&gt;:lang()&lt;/code&gt; adjustments to account for wrapping scenarios, writing modes or direction.
Adding one or two media queries doesn&#39;t seem so bad, but they can add up and
lead to complicated layout logic.&lt;/p&gt;
&lt;p&gt;What the above author really intended was to have none of the child items touch.&lt;/p&gt;
&lt;h3 id=&quot;the-antidote-gap&quot;&gt;The Antidote: gap &lt;a class=&quot;headline-link&quot; href=&quot;https://web.dev/flexbox-gap/#the-antidote-gap&quot;&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div&gt;&lt;pre class=&quot;language-css&quot;&gt;&lt;code class=&quot;language-css&quot;&gt;&lt;span class=&quot;token selector&quot;&gt;.layout&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token property&quot;&gt;display&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; flex&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token property&quot;&gt;gap&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; 10px&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;&lt;aside class=&quot;aside flow bg-state-info-bg color-state-info-text&quot;&gt;&lt;div class=&quot; flow&quot;&gt; The ownership of the spacing shifts from the child to the parent &lt;/div&gt;&lt;/aside&gt;
&lt;p&gt;In the first 2 examples (without Flexbox &lt;code&gt;gap&lt;/code&gt;), the children are targeted and
assigned spacing from other elements. In the antidote gap example, the container
owns the spacing. Each child can relieve itself of the burden, while also
centralizing the spacing ownership. Simplifying consistency. Reorder,
change viewports, remove elements, append new elements, etc. and spacing remains
consistent. No new selectors, no new media queries, just space.&lt;/p&gt;
&lt;h2 id=&quot;chromium-devtools-updates&quot;&gt;Chromium DevTools updates &lt;a class=&quot;headline-link&quot; href=&quot;https://web.dev/flexbox-gap/#chromium-devtools-updates&quot;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;With these updates come changes to Chromium DevTools, notice how the &lt;strong&gt;Styles&lt;/strong&gt;
pane handles &lt;code&gt;grid-gap&lt;/code&gt; and &lt;code&gt;gap&lt;/code&gt; now 👍&lt;/p&gt;
&lt;figure&gt;
  &lt;img alt=&quot;An office with two people working at a table.&quot; decoding=&quot;async&quot; height=&quot;273&quot; loading=&quot;lazy&quot; sizes=&quot;(min-width: 400px) 400px, calc(100vw - 48px)&quot; src=&quot;https://web-dev.imgix.net/image/admin/7ZxgySczxUR1qxuD8cbC.png?auto=format&quot; srcset=&quot;https://web-dev.imgix.net/image/admin/7ZxgySczxUR1qxuD8cbC.png?auto=format&amp;w=200 200w, https://web-dev.imgix.net/image/admin/7ZxgySczxUR1qxuD8cbC.png?auto=format&amp;w=228 228w, https://web-dev.imgix.net/image/admin/7ZxgySczxUR1qxuD8cbC.png?auto=format&amp;w=260 260w, https://web-dev.imgix.net/image/admin/7ZxgySczxUR1qxuD8cbC.png?auto=format&amp;w=296 296w, https://web-dev.imgix.net/image/admin/7ZxgySczxUR1qxuD8cbC.png?auto=format&amp;w=338 338w, https://web-dev.imgix.net/image/admin/7ZxgySczxUR1qxuD8cbC.png?auto=format&amp;w=385 385w, https://web-dev.imgix.net/image/admin/7ZxgySczxUR1qxuD8cbC.png?auto=format&amp;w=439 439w, https://web-dev.imgix.net/image/admin/7ZxgySczxUR1qxuD8cbC.png?auto=format&amp;w=500 500w, https://web-dev.imgix.net/image/admin/7ZxgySczxUR1qxuD8cbC.png?auto=format&amp;w=571 571w, https://web-dev.imgix.net/image/admin/7ZxgySczxUR1qxuD8cbC.png?auto=format&amp;w=650 650w, https://web-dev.imgix.net/image/admin/7ZxgySczxUR1qxuD8cbC.png?auto=format&amp;w=741 741w, https://web-dev.imgix.net/image/admin/7ZxgySczxUR1qxuD8cbC.png?auto=format&amp;w=800 800w&quot; width=&quot;400&quot; /&gt;
  &lt;figcaption&gt;Devtools shows the both &lt;code&gt;grid-gap&lt;code&gt; and &lt;code&gt;gap&lt;/code&gt;, with &lt;code&gt;gap&lt;/code&gt; shown used below &lt;code&gt;grid-gap&lt;/code&gt; as to let the cascade use the latest syntax.&lt;/code&gt;&lt;/code&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;DevTools supports both &lt;code&gt;grid-gap&lt;/code&gt; and &lt;code&gt;gap&lt;/code&gt;, this is because &lt;code&gt;gap&lt;/code&gt; is essentially
an alias to the previous syntaxes.&lt;/p&gt;
&lt;h2 id=&quot;new-layout-potential&quot;&gt;New layout potential &lt;a class=&quot;headline-link&quot; href=&quot;https://web.dev/flexbox-gap/#new-layout-potential&quot;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;With Flexbox &lt;code&gt;gap&lt;/code&gt;, we unlock more than convenience. We unlock powerful, perfectly
spaced, intrinsic layouts. In the video and following code sample below, Grid
cannot achieve the layout that Flexbox can. Grid must have equal rows and columns,
even if they&#39;re intrinsically assigned.&lt;/p&gt;
&lt;figure&gt;
  &lt;video controls=&quot;&quot; autoplay=&quot;&quot; loop=&quot;&quot; muted=&quot;&quot;&gt;
    &lt;source src=&quot;https://storage.googleapis.com/web-dev-assets/flexbox-gap/flex-gap-v1.webm&quot; type=&quot;video/webm&quot; /&gt;
    &lt;source src=&quot;https://storage.googleapis.com/web-dev-assets/flexbox-gap/flex-gap-v1.mp4&quot; /&gt;
  &lt;/video&gt;
  &lt;figcaption&gt;
    &lt;a href=&quot;https://twitter.com/argyleink/status/1255201934241198081?s=20&quot;&gt;Tweet&lt;/a&gt;
  &lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;Also, notice how dynamic the spacing between children is when they wrap intrinsically
like that. Media queries can&#39;t detect wrapping like that to make intelligent adjustments.
Flexbox &lt;code&gt;gap&lt;/code&gt; can, and will, do it for you across all internationalizations.&lt;/p&gt;
&lt;h2 id=&quot;multi-column-gap&quot;&gt;Multi-column &lt;code&gt;gap&lt;/code&gt; &lt;a class=&quot;headline-link&quot; href=&quot;https://web.dev/flexbox-gap/#multi-column-gap&quot;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;In addition to Flexbox supporting the &lt;code&gt;gap&lt;/code&gt; syntax, multi-column layouts also support
the shorter &lt;code&gt;gap&lt;/code&gt; syntax.&lt;/p&gt;
&lt;div&gt;&lt;pre class=&quot;language-css&quot;&gt;&lt;code class=&quot;language-css&quot;&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token selector&quot;&gt;article&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;  &lt;span class=&quot;token property&quot;&gt;column-width&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; 40ch&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;del class=&quot;highlight-line highlight-line-remove&quot;&gt;  &lt;span class=&quot;token property&quot;&gt;column-gap&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; 5ch&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/del&gt;&lt;br /&gt;&lt;ins class=&quot;highlight-line highlight-line-add&quot;&gt;  &lt;span class=&quot;token property&quot;&gt;gap&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; 5ch&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/ins&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;&lt;p&gt;Pretty rad.&lt;/p&gt;
</content>
    <author>
      <name>Adam Argyle</name>
    </author><author>
      <name>David Grogan</name>
    </author>
  </entry>
</feed>
