{"componentChunkName":"component---src-templates-tags-js","path":"/tags/css-media-features/","result":{"data":{"allMarkdownRemark":{"totalCount":1,"edges":[{"node":{"id":"aba3b0f4-8b62-51e5-bbdd-4c71f3870a50","html":"<p>If you have ever tried to add responsiveness to your web application you would know it’s difficult or at least takes a while to get it right. As progressive web apps (PWAs) are the first class citizens on many devices with the ability to get installed, it’s even more important to make sure user’s have the best experience possible. But technology advances in a much faster pace. We have now foldable devices like the shiny new <a href=\"https://devblogs.microsoft.com/surface-duo/microsoft-surface-duo-is-released/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Microsoft Surface Duo</a> which add more complexity to this equation.</p>\n<!--more-->\n<h2 id=\"problem\" style=\"position:relative;\"><a href=\"#problem\" aria-label=\"problem permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Problem</h2>\n<p>What if you wanted to show your page across two screens without hiding the content under the middle edge? At least for now we don’t have any device with bending glass to be able to not worry about what appears where on the screen.</p>\n<p>In order to continue with this we need a demo application to make sure we’re on the same page. So let’s create one, say we have an image gallery which has 5 columns and someone is looking at it on their brand new Surface Duo:</p>\n<div\n              class=\"gatsby-code-button-container\"\n              data-toaster-id=\"19892596453604463000\"\n              data-toaster-class=\"gatsby-code-button-toaster\"\n              data-toaster-text-class=\"gatsby-code-button-toaster-text\"\n              data-toaster-text=\"Copied to clipboard ✅\"\n              data-toaster-duration=\"3500\"\n              onClick=\"copyToClipboard(`<div class=&quot;gallery&quot;>\r\n  <div class=&quot;grid&quot;>\r\n    <div class=&quot;card&quot;>\r\n      <img\r\n        class=&quot;card-img-top&quot;\r\n        src=&quot;https://picsum.photos/200/200?random=5&quot;\r\n        alt=&quot;Card image cap&quot;\r\n      />\r\n      <div class=&quot;card-body&quot;>\r\n        <h5 class=&quot;card-title&quot;>Card title</h5>\r\n        <p class=&quot;card-text&quot;>\r\n          This card has supporting text below as a natural lead-in to\r\n          additional content.\r\n        </p>\r\n        <p class=&quot;card-text&quot;>\r\n          <small class=&quot;text-muted&quot;>Last updated 3 mins ago</small>\r\n        </p>\r\n      </div>\r\n    </div>\r\n    <div class=&quot;card p-3&quot;>\r\n      <img\r\n        class=&quot;card-img-top&quot;\r\n        src=&quot;https://picsum.photos/200/200?random=4&quot;\r\n        alt=&quot;Card image cap&quot;\r\n      />\r\n      <div class=&quot;card-body&quot;>\r\n        <h5 class=&quot;card-title&quot;>Card title</h5>\r\n        <p class=&quot;card-text&quot;>\r\n          This card has supporting text below as a natural lead-in to\r\n          additional content.\r\n        </p>\r\n        <p class=&quot;card-text&quot;>\r\n          <small class=&quot;text-muted&quot;>Last updated 3 mins ago</small>\r\n        </p>\r\n      </div>\r\n    </div>\r\n    <div class=&quot;card&quot;>\r\n      <img\r\n        class=&quot;card-img-top&quot;\r\n        src=&quot;https://picsum.photos/200/200?random=3&quot;\r\n        alt=&quot;Card image cap&quot;\r\n      />\r\n      <div class=&quot;card-body&quot;>\r\n        <h5 class=&quot;card-title&quot;>Card title</h5>\r\n        <p class=&quot;card-text&quot;>\r\n          This card has supporting text below as a natural lead-in to\r\n          additional content.\r\n        </p>\r\n        <p class=&quot;card-text&quot;>\r\n          <small class=&quot;text-muted&quot;>Last updated 3 mins ago</small>\r\n        </p>\r\n      </div>\r\n    </div>\r\n    <div class=&quot;card&quot;>\r\n      <img\r\n        class=&quot;card-img-top&quot;\r\n        src=&quot;https://picsum.photos/200/200?random=2&quot;\r\n        alt=&quot;Card image cap&quot;\r\n      />\r\n      <div class=&quot;card-body&quot;>\r\n        <h5 class=&quot;card-title&quot;>Card title</h5>\r\n        <p class=&quot;card-text&quot;>\r\n          This card has supporting text below as a natural lead-in to\r\n          additional content.\r\n        </p>\r\n        <p class=&quot;card-text&quot;>\r\n          <small class=&quot;text-muted&quot;>Last updated 3 mins ago</small>\r\n        </p>\r\n      </div>\r\n    </div>\r\n    <div class=&quot;card&quot;>\r\n      <img\r\n        class=&quot;card-img-top&quot;\r\n        src=&quot;https://picsum.photos/200/200?random=1&quot;\r\n        alt=&quot;Card image cap&quot;\r\n      />\r\n      <div class=&quot;card-body&quot;>\r\n        <h5 class=&quot;card-title&quot;>Card title</h5>\r\n        <p class=&quot;card-text&quot;>\r\n          This card has supporting text below as a natural lead-in to\r\n          additional content.\r\n        </p>\r\n        <p class=&quot;card-text&quot;>\r\n          <small class=&quot;text-muted&quot;>Last updated 3 mins ago</small>\r\n        </p>\r\n      </div>\r\n    </div>\r\n    <div class=&quot;card&quot;>\r\n      <img\r\n        class=&quot;card-img-top&quot;\r\n        src=&quot;https://picsum.photos/200/200?random=7&quot;\r\n        alt=&quot;Card image cap&quot;\r\n      />\r\n      <div class=&quot;card-body&quot;>\r\n        <h5 class=&quot;card-title&quot;>Card title</h5>\r\n        <p class=&quot;card-text&quot;>\r\n          This card has supporting text below as a natural lead-in to\r\n          additional content.\r\n        </p>\r\n        <p class=&quot;card-text&quot;>\r\n          <small class=&quot;text-muted&quot;>Last updated 3 mins ago</small>\r\n        </p>\r\n      </div>\r\n    </div>\r\n    <div class=&quot;card&quot;>\r\n      <img\r\n        class=&quot;card-img-top&quot;\r\n        src=&quot;https://picsum.photos/200/200?random=8&quot;\r\n        alt=&quot;Card image cap&quot;\r\n      />\r\n      <div class=&quot;card-body&quot;>\r\n        <h5 class=&quot;card-title&quot;>Card title</h5>\r\n        <p class=&quot;card-text&quot;>\r\n          This card has supporting text below as a natural lead-in to\r\n          additional content.\r\n        </p>\r\n        <p class=&quot;card-text&quot;>\r\n          <small class=&quot;text-muted&quot;>Last updated 3 mins ago</small>\r\n        </p>\r\n      </div>\r\n    </div>\r\n    <div class=&quot;card&quot;>\r\n      <img\r\n        class=&quot;card-img-top&quot;\r\n        src=&quot;https://picsum.photos/200/200?random=9&quot;\r\n        alt=&quot;Card image cap&quot;\r\n      />\r\n      <div class=&quot;card-body&quot;>\r\n        <h5 class=&quot;card-title&quot;>Card title</h5>\r\n        <p class=&quot;card-text&quot;>\r\n          This card has supporting text below as a natural lead-in to\r\n          additional content.\r\n        </p>\r\n        <p class=&quot;card-text&quot;>\r\n          <small class=&quot;text-muted&quot;>Last updated 3 mins ago</small>\r\n        </p>\r\n      </div>\r\n    </div>\r\n  </div>\r\n</div>`, `19892596453604463000`)\"\n            >\n              <div\n                class=\"gatsby-code-button\"\n                data-tooltip=\"\"\n              >\n                Copy<svg class=\"gatsby-code-button-icon\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path fill=\"none\" d=\"M0 0h24v24H0V0z\"/><path d=\"M16 1H2v16h2V3h12V1zm-1 4l6 6v12H6V5h9zm-1 7h5.5L14 6.5V12z\"/></svg>\n              </div>\n            </div>\n<div class=\"gatsby-highlight\" data-language=\"html\"><pre style=\"counter-reset: linenumber NaN\" class=\"language-html line-numbers\"><code class=\"language-html\"><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>div</span> <span class=\"token attr-name\">class</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>gallery<span class=\"token punctuation\">\"</span></span><span class=\"token punctuation\">></span></span>\r\n  <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>div</span> <span class=\"token attr-name\">class</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>grid<span class=\"token punctuation\">\"</span></span><span class=\"token punctuation\">></span></span>\r\n    <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>div</span> <span class=\"token attr-name\">class</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>card<span class=\"token punctuation\">\"</span></span><span class=\"token punctuation\">></span></span>\r\n      <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>img</span>\r\n        <span class=\"token attr-name\">class</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>card-img-top<span class=\"token punctuation\">\"</span></span>\r\n        <span class=\"token attr-name\">src</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>https://picsum.photos/200/200?random=5<span class=\"token punctuation\">\"</span></span>\r\n        <span class=\"token attr-name\">alt</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>Card image cap<span class=\"token punctuation\">\"</span></span>\r\n      <span class=\"token punctuation\">/></span></span>\r\n      <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>div</span> <span class=\"token attr-name\">class</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>card-body<span class=\"token punctuation\">\"</span></span><span class=\"token punctuation\">></span></span>\r\n        <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>h5</span> <span class=\"token attr-name\">class</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>card-title<span class=\"token punctuation\">\"</span></span><span class=\"token punctuation\">></span></span>Card title<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>h5</span><span class=\"token punctuation\">></span></span>\r\n        <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>p</span> <span class=\"token attr-name\">class</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>card-text<span class=\"token punctuation\">\"</span></span><span class=\"token punctuation\">></span></span>\r\n          This card has supporting text below as a natural lead-in to\r\n          additional content.\r\n        <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>p</span><span class=\"token punctuation\">></span></span>\r\n        <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>p</span> <span class=\"token attr-name\">class</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>card-text<span class=\"token punctuation\">\"</span></span><span class=\"token punctuation\">></span></span>\r\n          <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>small</span> <span class=\"token attr-name\">class</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>text-muted<span class=\"token punctuation\">\"</span></span><span class=\"token punctuation\">></span></span>Last updated 3 mins ago<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>small</span><span class=\"token punctuation\">></span></span>\r\n        <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>p</span><span class=\"token punctuation\">></span></span>\r\n      <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>div</span><span class=\"token punctuation\">></span></span>\r\n    <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>div</span><span class=\"token punctuation\">></span></span>\r\n    <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>div</span> <span class=\"token attr-name\">class</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>card p-3<span class=\"token punctuation\">\"</span></span><span class=\"token punctuation\">></span></span>\r\n      <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>img</span>\r\n        <span class=\"token attr-name\">class</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>card-img-top<span class=\"token punctuation\">\"</span></span>\r\n        <span class=\"token attr-name\">src</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>https://picsum.photos/200/200?random=4<span class=\"token punctuation\">\"</span></span>\r\n        <span class=\"token attr-name\">alt</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>Card image cap<span class=\"token punctuation\">\"</span></span>\r\n      <span class=\"token punctuation\">/></span></span>\r\n      <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>div</span> <span class=\"token attr-name\">class</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>card-body<span class=\"token punctuation\">\"</span></span><span class=\"token punctuation\">></span></span>\r\n        <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>h5</span> <span class=\"token attr-name\">class</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>card-title<span class=\"token punctuation\">\"</span></span><span class=\"token punctuation\">></span></span>Card title<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>h5</span><span class=\"token punctuation\">></span></span>\r\n        <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>p</span> <span class=\"token attr-name\">class</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>card-text<span class=\"token punctuation\">\"</span></span><span class=\"token punctuation\">></span></span>\r\n          This card has supporting text below as a natural lead-in to\r\n          additional content.\r\n        <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>p</span><span class=\"token punctuation\">></span></span>\r\n        <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>p</span> <span class=\"token attr-name\">class</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>card-text<span class=\"token punctuation\">\"</span></span><span class=\"token punctuation\">></span></span>\r\n          <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>small</span> <span class=\"token attr-name\">class</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>text-muted<span class=\"token punctuation\">\"</span></span><span class=\"token punctuation\">></span></span>Last updated 3 mins ago<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>small</span><span class=\"token punctuation\">></span></span>\r\n        <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>p</span><span class=\"token punctuation\">></span></span>\r\n      <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>div</span><span class=\"token punctuation\">></span></span>\r\n    <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>div</span><span class=\"token punctuation\">></span></span>\r\n    <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>div</span> <span class=\"token attr-name\">class</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>card<span class=\"token punctuation\">\"</span></span><span class=\"token punctuation\">></span></span>\r\n      <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>img</span>\r\n        <span class=\"token attr-name\">class</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>card-img-top<span class=\"token punctuation\">\"</span></span>\r\n        <span class=\"token attr-name\">src</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>https://picsum.photos/200/200?random=3<span class=\"token punctuation\">\"</span></span>\r\n        <span class=\"token attr-name\">alt</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>Card image cap<span class=\"token punctuation\">\"</span></span>\r\n      <span class=\"token punctuation\">/></span></span>\r\n      <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>div</span> <span class=\"token attr-name\">class</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>card-body<span class=\"token punctuation\">\"</span></span><span class=\"token punctuation\">></span></span>\r\n        <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>h5</span> <span class=\"token attr-name\">class</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>card-title<span class=\"token punctuation\">\"</span></span><span class=\"token punctuation\">></span></span>Card title<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>h5</span><span class=\"token punctuation\">></span></span>\r\n        <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>p</span> <span class=\"token attr-name\">class</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>card-text<span class=\"token punctuation\">\"</span></span><span class=\"token punctuation\">></span></span>\r\n          This card has supporting text below as a natural lead-in to\r\n          additional content.\r\n        <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>p</span><span class=\"token punctuation\">></span></span>\r\n        <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>p</span> <span class=\"token attr-name\">class</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>card-text<span class=\"token punctuation\">\"</span></span><span class=\"token punctuation\">></span></span>\r\n          <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>small</span> <span class=\"token attr-name\">class</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>text-muted<span class=\"token punctuation\">\"</span></span><span class=\"token punctuation\">></span></span>Last updated 3 mins ago<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>small</span><span class=\"token punctuation\">></span></span>\r\n        <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>p</span><span class=\"token punctuation\">></span></span>\r\n      <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>div</span><span class=\"token punctuation\">></span></span>\r\n    <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>div</span><span class=\"token punctuation\">></span></span>\r\n    <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>div</span> <span class=\"token attr-name\">class</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>card<span class=\"token punctuation\">\"</span></span><span class=\"token punctuation\">></span></span>\r\n      <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>img</span>\r\n        <span class=\"token attr-name\">class</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>card-img-top<span class=\"token punctuation\">\"</span></span>\r\n        <span class=\"token attr-name\">src</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>https://picsum.photos/200/200?random=2<span class=\"token punctuation\">\"</span></span>\r\n        <span class=\"token attr-name\">alt</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>Card image cap<span class=\"token punctuation\">\"</span></span>\r\n      <span class=\"token punctuation\">/></span></span>\r\n      <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>div</span> <span class=\"token attr-name\">class</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>card-body<span class=\"token punctuation\">\"</span></span><span class=\"token punctuation\">></span></span>\r\n        <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>h5</span> <span class=\"token attr-name\">class</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>card-title<span class=\"token punctuation\">\"</span></span><span class=\"token punctuation\">></span></span>Card title<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>h5</span><span class=\"token punctuation\">></span></span>\r\n        <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>p</span> <span class=\"token attr-name\">class</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>card-text<span class=\"token punctuation\">\"</span></span><span class=\"token punctuation\">></span></span>\r\n          This card has supporting text below as a natural lead-in to\r\n          additional content.\r\n        <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>p</span><span class=\"token punctuation\">></span></span>\r\n        <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>p</span> <span class=\"token attr-name\">class</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>card-text<span class=\"token punctuation\">\"</span></span><span class=\"token punctuation\">></span></span>\r\n          <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>small</span> <span class=\"token attr-name\">class</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>text-muted<span class=\"token punctuation\">\"</span></span><span class=\"token punctuation\">></span></span>Last updated 3 mins ago<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>small</span><span class=\"token punctuation\">></span></span>\r\n        <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>p</span><span class=\"token punctuation\">></span></span>\r\n      <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>div</span><span class=\"token punctuation\">></span></span>\r\n    <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>div</span><span class=\"token punctuation\">></span></span>\r\n    <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>div</span> <span class=\"token attr-name\">class</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>card<span class=\"token punctuation\">\"</span></span><span class=\"token punctuation\">></span></span>\r\n      <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>img</span>\r\n        <span class=\"token attr-name\">class</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>card-img-top<span class=\"token punctuation\">\"</span></span>\r\n        <span class=\"token attr-name\">src</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>https://picsum.photos/200/200?random=1<span class=\"token punctuation\">\"</span></span>\r\n        <span class=\"token attr-name\">alt</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>Card image cap<span class=\"token punctuation\">\"</span></span>\r\n      <span class=\"token punctuation\">/></span></span>\r\n      <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>div</span> <span class=\"token attr-name\">class</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>card-body<span class=\"token punctuation\">\"</span></span><span class=\"token punctuation\">></span></span>\r\n        <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>h5</span> <span class=\"token attr-name\">class</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>card-title<span class=\"token punctuation\">\"</span></span><span class=\"token punctuation\">></span></span>Card title<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>h5</span><span class=\"token punctuation\">></span></span>\r\n        <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>p</span> <span class=\"token attr-name\">class</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>card-text<span class=\"token punctuation\">\"</span></span><span class=\"token punctuation\">></span></span>\r\n          This card has supporting text below as a natural lead-in to\r\n          additional content.\r\n        <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>p</span><span class=\"token punctuation\">></span></span>\r\n        <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>p</span> <span class=\"token attr-name\">class</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>card-text<span class=\"token punctuation\">\"</span></span><span class=\"token punctuation\">></span></span>\r\n          <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>small</span> <span class=\"token attr-name\">class</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>text-muted<span class=\"token punctuation\">\"</span></span><span class=\"token punctuation\">></span></span>Last updated 3 mins ago<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>small</span><span class=\"token punctuation\">></span></span>\r\n        <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>p</span><span class=\"token punctuation\">></span></span>\r\n      <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>div</span><span class=\"token punctuation\">></span></span>\r\n    <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>div</span><span class=\"token punctuation\">></span></span>\r\n    <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>div</span> <span class=\"token attr-name\">class</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>card<span class=\"token punctuation\">\"</span></span><span class=\"token punctuation\">></span></span>\r\n      <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>img</span>\r\n        <span class=\"token attr-name\">class</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>card-img-top<span class=\"token punctuation\">\"</span></span>\r\n        <span class=\"token attr-name\">src</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>https://picsum.photos/200/200?random=7<span class=\"token punctuation\">\"</span></span>\r\n        <span class=\"token attr-name\">alt</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>Card image cap<span class=\"token punctuation\">\"</span></span>\r\n      <span class=\"token punctuation\">/></span></span>\r\n      <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>div</span> <span class=\"token attr-name\">class</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>card-body<span class=\"token punctuation\">\"</span></span><span class=\"token punctuation\">></span></span>\r\n        <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>h5</span> <span class=\"token attr-name\">class</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>card-title<span class=\"token punctuation\">\"</span></span><span class=\"token punctuation\">></span></span>Card title<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>h5</span><span class=\"token punctuation\">></span></span>\r\n        <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>p</span> <span class=\"token attr-name\">class</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>card-text<span class=\"token punctuation\">\"</span></span><span class=\"token punctuation\">></span></span>\r\n          This card has supporting text below as a natural lead-in to\r\n          additional content.\r\n        <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>p</span><span class=\"token punctuation\">></span></span>\r\n        <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>p</span> <span class=\"token attr-name\">class</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>card-text<span class=\"token punctuation\">\"</span></span><span class=\"token punctuation\">></span></span>\r\n          <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>small</span> <span class=\"token attr-name\">class</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>text-muted<span class=\"token punctuation\">\"</span></span><span class=\"token punctuation\">></span></span>Last updated 3 mins ago<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>small</span><span class=\"token punctuation\">></span></span>\r\n        <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>p</span><span class=\"token punctuation\">></span></span>\r\n      <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>div</span><span class=\"token punctuation\">></span></span>\r\n    <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>div</span><span class=\"token punctuation\">></span></span>\r\n    <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>div</span> <span class=\"token attr-name\">class</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>card<span class=\"token punctuation\">\"</span></span><span class=\"token punctuation\">></span></span>\r\n      <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>img</span>\r\n        <span class=\"token attr-name\">class</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>card-img-top<span class=\"token punctuation\">\"</span></span>\r\n        <span class=\"token attr-name\">src</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>https://picsum.photos/200/200?random=8<span class=\"token punctuation\">\"</span></span>\r\n        <span class=\"token attr-name\">alt</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>Card image cap<span class=\"token punctuation\">\"</span></span>\r\n      <span class=\"token punctuation\">/></span></span>\r\n      <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>div</span> <span class=\"token attr-name\">class</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>card-body<span class=\"token punctuation\">\"</span></span><span class=\"token punctuation\">></span></span>\r\n        <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>h5</span> <span class=\"token attr-name\">class</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>card-title<span class=\"token punctuation\">\"</span></span><span class=\"token punctuation\">></span></span>Card title<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>h5</span><span class=\"token punctuation\">></span></span>\r\n        <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>p</span> <span class=\"token attr-name\">class</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>card-text<span class=\"token punctuation\">\"</span></span><span class=\"token punctuation\">></span></span>\r\n          This card has supporting text below as a natural lead-in to\r\n          additional content.\r\n        <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>p</span><span class=\"token punctuation\">></span></span>\r\n        <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>p</span> <span class=\"token attr-name\">class</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>card-text<span class=\"token punctuation\">\"</span></span><span class=\"token punctuation\">></span></span>\r\n          <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>small</span> <span class=\"token attr-name\">class</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>text-muted<span class=\"token punctuation\">\"</span></span><span class=\"token punctuation\">></span></span>Last updated 3 mins ago<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>small</span><span class=\"token punctuation\">></span></span>\r\n        <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>p</span><span class=\"token punctuation\">></span></span>\r\n      <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>div</span><span class=\"token punctuation\">></span></span>\r\n    <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>div</span><span class=\"token punctuation\">></span></span>\r\n    <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>div</span> <span class=\"token attr-name\">class</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>card<span class=\"token punctuation\">\"</span></span><span class=\"token punctuation\">></span></span>\r\n      <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>img</span>\r\n        <span class=\"token attr-name\">class</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>card-img-top<span class=\"token punctuation\">\"</span></span>\r\n        <span class=\"token attr-name\">src</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>https://picsum.photos/200/200?random=9<span class=\"token punctuation\">\"</span></span>\r\n        <span class=\"token attr-name\">alt</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>Card image cap<span class=\"token punctuation\">\"</span></span>\r\n      <span class=\"token punctuation\">/></span></span>\r\n      <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>div</span> <span class=\"token attr-name\">class</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>card-body<span class=\"token punctuation\">\"</span></span><span class=\"token punctuation\">></span></span>\r\n        <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>h5</span> <span class=\"token attr-name\">class</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>card-title<span class=\"token punctuation\">\"</span></span><span class=\"token punctuation\">></span></span>Card title<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>h5</span><span class=\"token punctuation\">></span></span>\r\n        <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>p</span> <span class=\"token attr-name\">class</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>card-text<span class=\"token punctuation\">\"</span></span><span class=\"token punctuation\">></span></span>\r\n          This card has supporting text below as a natural lead-in to\r\n          additional content.\r\n        <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>p</span><span class=\"token punctuation\">></span></span>\r\n        <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>p</span> <span class=\"token attr-name\">class</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>card-text<span class=\"token punctuation\">\"</span></span><span class=\"token punctuation\">></span></span>\r\n          <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>small</span> <span class=\"token attr-name\">class</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>text-muted<span class=\"token punctuation\">\"</span></span><span class=\"token punctuation\">></span></span>Last updated 3 mins ago<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>small</span><span class=\"token punctuation\">></span></span>\r\n        <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>p</span><span class=\"token punctuation\">></span></span>\r\n      <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>div</span><span class=\"token punctuation\">></span></span>\r\n    <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>div</span><span class=\"token punctuation\">></span></span>\r\n  <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>div</span><span class=\"token punctuation\">></span></span>\r\n<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>div</span><span class=\"token punctuation\">></span></span></code><span aria-hidden=\"true\" class=\"line-numbers-rows\" style=\"white-space: normal; width: auto; left: 0;\"><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span></span></pre></div>\n<p>And in our CSS file we just put a 5 column layout for the card column like so:</p>\n<div\n              class=\"gatsby-code-button-container\"\n              data-toaster-id=\"1167216960117367600\"\n              data-toaster-class=\"gatsby-code-button-toaster\"\n              data-toaster-text-class=\"gatsby-code-button-toaster-text\"\n              data-toaster-text=\"Copied to clipboard ✅\"\n              data-toaster-duration=\"3500\"\n              onClick=\"copyToClipboard(`.grid {\r\n  display: grid;\r\n  grid-template-columns: repeat(5, 1fr);\r\n  grid-row: auto;\r\n}`, `1167216960117367600`)\"\n            >\n              <div\n                class=\"gatsby-code-button\"\n                data-tooltip=\"\"\n              >\n                Copy<svg class=\"gatsby-code-button-icon\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path fill=\"none\" d=\"M0 0h24v24H0V0z\"/><path d=\"M16 1H2v16h2V3h12V1zm-1 4l6 6v12H6V5h9zm-1 7h5.5L14 6.5V12z\"/></svg>\n              </div>\n            </div>\n<div class=\"gatsby-highlight\" data-language=\"css\"><pre style=\"counter-reset: linenumber NaN\" class=\"language-css line-numbers\"><code class=\"language-css\"><span class=\"token selector\">.grid</span> <span class=\"token punctuation\">{</span>\r\n  <span class=\"token property\">display</span><span class=\"token punctuation\">:</span> grid<span class=\"token punctuation\">;</span>\r\n  <span class=\"token property\">grid-template-columns</span><span class=\"token punctuation\">:</span> <span class=\"token function\">repeat</span><span class=\"token punctuation\">(</span>5<span class=\"token punctuation\">,</span> 1fr<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\r\n  <span class=\"token property\">grid-row</span><span class=\"token punctuation\">:</span> auto<span class=\"token punctuation\">;</span>\r\n<span class=\"token punctuation\">}</span></code><span aria-hidden=\"true\" class=\"line-numbers-rows\" style=\"white-space: normal; width: auto; left: 0;\"><span></span><span></span><span></span><span></span><span></span></span></pre></div>\n<p>Don’t worry too much about the code, you can view the result <a href=\"https://pwa-dual-screen.glitch.me/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">here on Glitch</a>. Now to test how this page looks like you either have to have the device handy, or if you don’t have it like me, just use the <a href=\"https://docs.microsoft.com/en-us/dual-screen/android/emulator/surface-duo-download?tabs=windows\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Surface Duo Emulator</a> which I find really cool. For example, here is how the page looks like at the moment:</p>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 1024px; \"\n    >\n      <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/static/5ea050377c298584b4ebdbf76110ecc0/2bef9/before.png\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n    <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 64.81481481481481%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAANCAYAAACpUE5eAAAACXBIWXMAAAsTAAALEwEAmpwYAAADM0lEQVR42mWTX0zbVRTHf6/GN190zkh0xvkyp9kSZ8iyB43RqNmf6BaXvanbg7olOiYpGzIrMgbI3MoKFtJ12v1RUGBQMuiftbQw0KkJ2jhwDgobUPpntPyglPb38d7bsAc9yTf33HPuOff81TweD6FQiIHBQYLiDAQC+P1+gsEgQ0NDhMNhTCYTFRUVjIyMKPnAwICyWYXP5yM4GKA/1I+2vLxMLp/HAPLiXFlZQclyOQVJDocDp9Op+IWFBaHPCM7AMArIGzn02RwrKQMtFosxNjpKZGJcYILZaJREIkF0Lsac0N2ZmaG6pobPzWYmp6aYmY0SSyQLzkQAup4RrvNEx3Ri4/No1zxXaakqpe7YJ9Qe/ZjwHyOcc7YLBydwdbuwNJ5l06bNbCkuxlx1gq62Szisp0jG4yKbLB3trZyzn8dma8Lb50Lz9nTwcvFzrH/6KSpLjxDwuCl6vIiitWuoKi+j9up11r72Di/sfo+aVi+/XvMw3NXOVxUmOi86KDv4LpdOfkDJvlc4VV2JFvJ0s2HdI2x59hkO7HuLC85vefKxh9n56jZMnx5mf/VZtDXrefCJjex4v4Q2u5XmL4/y0Z7XOW4q5cXnN7L10Qd4SNM4dPAQ2q3RMM2Wk7Q01GITqfx18yZ+n5froQCjY2P4+9zsfGM7u3e9TXvrj1z+rpm6L8qwnK7D5fbS3Gil8rNyzOXH6OvtRZOdTd5LsZTJqC7KYuuLS6LYS6rrkpq+sd3v8qLQpdK60BnqLu1S6QVlJ0mTY3J3epop0UFd15WT27fHGZ+IqKJLqq+v54zFovhEPEEkEmFadF+OVTKZZHJykmh0TtlqUhgXj9LpNJlMRs1jQoxFWvyaNwoRWq1W7HZ7YQ7Fu1RKZLRUyCAl7nLMpL30pclQZZQS8oG8L2ezZAWkTJKlwUpjk03x8eQ80cQ9kvNpUZqM+NRQWC2Xxn9ICuXmrG5JbUsv6zbvYMPWPZgburD3BDnd2c95zxChP//GyC6KhfiHoNvF7zd+/r/DVVLrmMtyuecGL+3az5t7P+RC9zA/tH3PFXcfgV9+49bUXYZ9nXQ6z/D18RKudPzEv3hkVs/3QJxYAAAAAElFTkSuQmCC'); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"Initial state of the application across two folds\"\n        title=\"\"\n        src=\"/static/5ea050377c298584b4ebdbf76110ecc0/2bef9/before.png\"\n        srcset=\"/static/5ea050377c298584b4ebdbf76110ecc0/01bf6/before.png 270w,\n/static/5ea050377c298584b4ebdbf76110ecc0/07484/before.png 540w,\n/static/5ea050377c298584b4ebdbf76110ecc0/2bef9/before.png 1024w\"\n        sizes=\"(max-width: 1024px) 100vw, 1024px\"\n        style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        loading=\"lazy\"\n        decoding=\"async\"\n      />\n  </a>\n    </span></p>\n<p>You can see right away that it’s not a good look, I mean who would be willing to spend a second on this site? So how do we fix it? I think we’re now on the same page, so let’s dive in.</p>\n<h2 id=\"solution\" style=\"position:relative;\"><a href=\"#solution\" aria-label=\"solution permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Solution</h2>\n<p>But don’t you worry, we’ve got you covered by two brand new experimental APIs that will enable you to effectively lay your elements on the screen where you want them to be.</p>\n<ul>\n<li><a href=\"https://github.com/MicrosoftEdge/MSEdgeExplainers/blob/main/Foldables/explainer.md\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">CSS screen-spanning media feature</a></li>\n<li><a href=\"https://github.com/webscreens/window-segments/blob/master/EXPLAINER.md\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">JavaScript window segments enumeration API</a></li>\n</ul>\n<p>The former along with a set of environment variables allows you to be aware of the geometry of the fold. The latter is an API which can be used alongside the media feature to work with non-DOM targets like Canvas 2D and WebGL.</p>\n<h2 id=\"detecting-display-regions\" style=\"position:relative;\"><a href=\"#detecting-display-regions\" aria-label=\"detecting display regions permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Detecting display regions</h2>\n<p>As I mentioned earlier, the <code class=\"language-text\">**screen-spanning**</code> media feature allows you to be aware of the fact that the page is spanned across multiple display regions. But how do we use it? Let’s have a look at the syntax. At its core, you will have the ability to use the below media query:</p>\n<div\n              class=\"gatsby-code-button-container\"\n              data-toaster-id=\"36956363103602770000\"\n              data-toaster-class=\"gatsby-code-button-toaster\"\n              data-toaster-text-class=\"gatsby-code-button-toaster-text\"\n              data-toaster-text=\"Copied to clipboard ✅\"\n              data-toaster-duration=\"3500\"\n              onClick=\"copyToClipboard(`@media (screen-spanning: <value>) { }`, `36956363103602770000`)\"\n            >\n              <div\n                class=\"gatsby-code-button\"\n                data-tooltip=\"\"\n              >\n                Copy<svg class=\"gatsby-code-button-icon\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path fill=\"none\" d=\"M0 0h24v24H0V0z\"/><path d=\"M16 1H2v16h2V3h12V1zm-1 4l6 6v12H6V5h9zm-1 7h5.5L14 6.5V12z\"/></svg>\n              </div>\n            </div>\n<div class=\"gatsby-highlight\" data-language=\"css\"><pre style=\"counter-reset: linenumber NaN\" class=\"language-css line-numbers\"><code class=\"language-css\"><span class=\"token atrule\"><span class=\"token rule\">@media</span> <span class=\"token punctuation\">(</span><span class=\"token property\">screen-spanning</span><span class=\"token punctuation\">:</span> &lt;value><span class=\"token punctuation\">)</span></span> <span class=\"token punctuation\">{</span> <span class=\"token punctuation\">}</span></code><span aria-hidden=\"true\" class=\"line-numbers-rows\" style=\"white-space: normal; width: auto; left: 0;\"><span></span></span></pre></div>\n<p>The allowed values are:</p>\n<ul>\n<li><strong>single-fold-vertical</strong>: which describes the state of the viewport, when it’s spanning across a single fold and the fold’s posture is vertical. This would mean the device is in double portrait mode like below:</li>\n</ul>\n<p align=\"center\">\n  <span class=\"gatsby-resp-image-wrapper\" style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 450px; \">\n      <a class=\"gatsby-resp-image-link\" href=\"/static/99d6bb43a607c28986686147482caa73/20e5d/double-portrait.jpg\" style=\"display: block\" target=\"_blank\" rel=\"noopener\">\n    <span class=\"gatsby-resp-image-background-image\" style=\"padding-bottom: 62.96296296296296%; position: relative; bottom: 0; left: 0; background-image: url('data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAANABQDASIAAhEBAxEB/8QAGAAAAwEBAAAAAAAAAAAAAAAAAAEDAgX/xAAWAQEBAQAAAAAAAAAAAAAAAAABAAL/2gAMAwEAAhADEAAAAe3ma0XEF//EABsQAAEEAwAAAAAAAAAAAAAAAAEAAhAREhMh/9oACAEBAAEFAgONEbKWdJpsf//EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQMBAT8BP//EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQIBAT8BP//EABcQAAMBAAAAAAAAAAAAAAAAAAAQEYH/2gAIAQEABj8CNUip/8QAGxAAAgMAAwAAAAAAAAAAAAAAAAERIUExUWH/2gAIAQEAAT8hRChDTrQqmCXAoT5XZNej/9oADAMBAAIAAwAAABBDH//EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQMBAT8QP//EABYRAQEBAAAAAAAAAAAAAAAAAAEAEf/aAAgBAgEBPxDGW//EABsQAQACAwEBAAAAAAAAAAAAAAEAESExcUFR/9oACAEBAAE/EGshUllhwZ7DY4F6OE9I0u4Ql1rt9bjMAXocJ//Z'); background-size: cover; display: block;\"></span>\n  <img class=\"gatsby-resp-image-image\" alt=\"double portrait\" title=\"\" src=\"/static/99d6bb43a607c28986686147482caa73/20e5d/double-portrait.jpg\" srcset=\"/static/99d6bb43a607c28986686147482caa73/6f81f/double-portrait.jpg 270w,\n/static/99d6bb43a607c28986686147482caa73/20e5d/double-portrait.jpg 450w\" sizes=\"(max-width: 450px) 100vw, 450px\" style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\" loading=\"lazy\" decoding=\"async\">\n  </a>\n    </span> <br>\n  <i>Image from Microsoft Surface Duo blog</i>\n</p>\n<p>The code for this mode would be:</p>\n<div\n              class=\"gatsby-code-button-container\"\n              data-toaster-id=\"5539313810250834000\"\n              data-toaster-class=\"gatsby-code-button-toaster\"\n              data-toaster-text-class=\"gatsby-code-button-toaster-text\"\n              data-toaster-text=\"Copied to clipboard ✅\"\n              data-toaster-duration=\"3500\"\n              onClick=\"copyToClipboard(`@media (screen-spanning: single-fold-vertical) { \r\n  /* styles applied in double-portrait (wide) mode */ \r\n}`, `5539313810250834000`)\"\n            >\n              <div\n                class=\"gatsby-code-button\"\n                data-tooltip=\"\"\n              >\n                Copy<svg class=\"gatsby-code-button-icon\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path fill=\"none\" d=\"M0 0h24v24H0V0z\"/><path d=\"M16 1H2v16h2V3h12V1zm-1 4l6 6v12H6V5h9zm-1 7h5.5L14 6.5V12z\"/></svg>\n              </div>\n            </div>\n<div class=\"gatsby-highlight\" data-language=\"css\"><pre style=\"counter-reset: linenumber NaN\" class=\"language-css line-numbers\"><code class=\"language-css\"><span class=\"token atrule\"><span class=\"token rule\">@media</span> <span class=\"token punctuation\">(</span><span class=\"token property\">screen-spanning</span><span class=\"token punctuation\">:</span> single-fold-vertical<span class=\"token punctuation\">)</span></span> <span class=\"token punctuation\">{</span> \r\n  <span class=\"token comment\">/* styles applied in double-portrait (wide) mode */</span> \r\n<span class=\"token punctuation\">}</span></code><span aria-hidden=\"true\" class=\"line-numbers-rows\" style=\"white-space: normal; width: auto; left: 0;\"><span></span><span></span><span></span></span></pre></div>\n<ul>\n<li><strong>single-fold-horizontal</strong>: which describes the state of the viewport, when it’s spanning across a single fold but this time the posture is horizontal. This would match the double portrait tall mode like below:</li>\n</ul>\n<p align=\"center\">\n  <span class=\"gatsby-resp-image-wrapper\" style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 307px; \">\n      <a class=\"gatsby-resp-image-link\" href=\"/static/b917f426d014c89db872985296381bbe/6bde8/double-portrait-tall.jpg\" style=\"display: block\" target=\"_blank\" rel=\"noopener\">\n    <span class=\"gatsby-resp-image-background-image\" style=\"padding-bottom: 140.74074074074073%; position: relative; bottom: 0; left: 0; background-image: url('data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAcABQDASIAAhEBAxEB/8QAGQAAAwADAAAAAAAAAAAAAAAAAAECAwQF/8QAFgEBAQEAAAAAAAAAAAAAAAAAAgAB/9oADAMBAAIQAxAAAAHtOGssAyrFCtgA3//EABsQAAICAwEAAAAAAAAAAAAAAAACAREQEjEh/9oACAEBAAEFAqKgUujYTkYUbybkXn//xAAUEQEAAAAAAAAAAAAAAAAAAAAg/9oACAEDAQE/AR//xAAYEQACAwAAAAAAAAAAAAAAAAAAARARIf/aAAgBAgEBPwHRlR//xAAbEAACAgMBAAAAAAAAAAAAAAABEAAhAjFxMv/aAAgBAQAGPwIs0Z5yR6j2UZtf/8QAHxABAAIBAwUAAAAAAAAAAAAAAQARMRAhQWFxobHh/9oACAEBAAE/IQKk5nSmL3l0Lt8kv8orTVb4Z7mos1mm8s//2gAMAwEAAgADAAAAEPM9A//EABcRAQEBAQAAAAAAAAAAAAAAAAABETH/2gAIAQMBAT8Q2JxqP//EABgRAAMBAQAAAAAAAAAAAAAAAAABMREh/9oACAECAQE/EGhRp9HT/8QAIBABAAIABQUAAAAAAAAAAAAAAQARITFhkdEQUXGx8f/aAAgBAQABPxC7E3LWafdgozIYQJMfwCvc+M5llKz7h1DL5IigC3VHE1uxxDQVVSqz/9k='); background-size: cover; display: block;\"></span>\n  <img class=\"gatsby-resp-image-image\" alt=\"double portrait tall\" title=\"\" src=\"/static/b917f426d014c89db872985296381bbe/6bde8/double-portrait-tall.jpg\" srcset=\"/static/b917f426d014c89db872985296381bbe/6f81f/double-portrait-tall.jpg 270w,\n/static/b917f426d014c89db872985296381bbe/6bde8/double-portrait-tall.jpg 307w\" sizes=\"(max-width: 307px) 100vw, 307px\" style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\" loading=\"lazy\" decoding=\"async\">\n  </a>\n    </span> <br>\n  <i>Image from Microsoft Surface Duo blog</i>\n</p>\n<div\n              class=\"gatsby-code-button-container\"\n              data-toaster-id=\"2208177236486030800\"\n              data-toaster-class=\"gatsby-code-button-toaster\"\n              data-toaster-text-class=\"gatsby-code-button-toaster-text\"\n              data-toaster-text=\"Copied to clipboard ✅\"\n              data-toaster-duration=\"3500\"\n              onClick=\"copyToClipboard(`@media (screen-spanning: single-fold-horizontal) {\r\n   /* styles applied in double-landscape (tall) mode */\r\n}`, `2208177236486030800`)\"\n            >\n              <div\n                class=\"gatsby-code-button\"\n                data-tooltip=\"\"\n              >\n                Copy<svg class=\"gatsby-code-button-icon\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path fill=\"none\" d=\"M0 0h24v24H0V0z\"/><path d=\"M16 1H2v16h2V3h12V1zm-1 4l6 6v12H6V5h9zm-1 7h5.5L14 6.5V12z\"/></svg>\n              </div>\n            </div>\n<div class=\"gatsby-highlight\" data-language=\"css\"><pre style=\"counter-reset: linenumber NaN\" class=\"language-css line-numbers\"><code class=\"language-css\"><span class=\"token atrule\"><span class=\"token rule\">@media</span> <span class=\"token punctuation\">(</span><span class=\"token property\">screen-spanning</span><span class=\"token punctuation\">:</span> single-fold-horizontal<span class=\"token punctuation\">)</span></span> <span class=\"token punctuation\">{</span>\r\n   <span class=\"token comment\">/* styles applied in double-landscape (tall) mode */</span>\r\n<span class=\"token punctuation\">}</span></code><span aria-hidden=\"true\" class=\"line-numbers-rows\" style=\"white-space: normal; width: auto; left: 0;\"><span></span><span></span><span></span></span></pre></div>\n<h2 id=\"environment-variables\" style=\"position:relative;\"><a href=\"#environment-variables\" aria-label=\"environment variables permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Environment variables</h2>\n<p>To get the geometry of the device fold, you could leverage the browser environment variables. You have access to four environment variables:</p>\n<ul>\n<li>fold-top</li>\n<li>fold-left</li>\n<li>fold-width</li>\n<li>fold-height</li>\n</ul>\n<p>The picture below would nicely show you what there values represent:</p>\n<p align=\"center\">\n  <span class=\"gatsby-resp-image-wrapper\" style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 1024px; \">\n      <a class=\"gatsby-resp-image-link\" href=\"/static/b7baf799e52328c2f552073e549b35e4/2bef9/env-variables.png\" style=\"display: block\" target=\"_blank\" rel=\"noopener\">\n    <span class=\"gatsby-resp-image-background-image\" style=\"padding-bottom: 78.88888888888889%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAQCAYAAAAWGF8bAAAACXBIWXMAAAsTAAALEwEAmpwYAAAB3ElEQVR42q2UW2/TQBCF8/9/QN+hqLRSH5om6iXlJipBqQkukAoqlQcQimsnjr2O92Z79zBrp3WilAdQIh3Fm3Pm02y8sx1s9qM7f3PKQkPwHFJwaK2hhKTnHFopWGtXsvYxYFEBibRIF5pkGneJIEmkuUTCFYKZQMQUEmEecq6mqBqkcUCzwJ/eaHRHgr4lTr5LnJIGN4rWAv3+GN1zhhe3mtaq9usMZQ+vBY6/qZpRGQLed9/7IsGoE6UVpGokpKa95+gd/MbLs4nbEbhsfZfNOEE/i6bDZeDhtcR0LjGngkw0YlzTfynQPQkweBPDGo2Ut77LxlTjdrYOHEnEmUROoblolAmNLJ2iexTgjIAgIOOt77KzfwWGwS8cHI03B4wn4812yJKIgP/RYY9+jFJBBc25q88ehZXiNXDwekovqAHc+y47YeJxYJ/eMlcaVVWgLBsVZUljINE/DvDq7cwdf+ii9SuSpCnqrQMNdjyGJ+9j7Hkxdi9b7XlTbO38wPbuT+z7CZ5/WPZiPKWaZ5dpPYA10D0ZY2wYRtbzR/bio0+6etA778oOP5GGvj2/GK54Tp7/1d6FoV3Mt+osj7jbgrsUluUuB8YYKcU8Y2sZt7bWrFwO6YbESNEfIWe+R5no2JIAAAAASUVORK5CYII='); background-size: cover; display: block;\"></span>\n  <img class=\"gatsby-resp-image-image\" alt=\"env variables\" title=\"\" src=\"/static/b7baf799e52328c2f552073e549b35e4/2bef9/env-variables.png\" srcset=\"/static/b7baf799e52328c2f552073e549b35e4/01bf6/env-variables.png 270w,\n/static/b7baf799e52328c2f552073e549b35e4/07484/env-variables.png 540w,\n/static/b7baf799e52328c2f552073e549b35e4/2bef9/env-variables.png 1024w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\" loading=\"lazy\" decoding=\"async\">\n  </a>\n    </span> <br>\n  <i>Image from Microsoft Surface Duo blog</i>\n</p>\n<h2 id=\"\" style=\"position:relative;\"><a href=\"#\" aria-label=\" permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a></h2>\n<p>So let’s see how we can use these features to improve our user experience a bit. First we know that we’re using the <strong><code class=\"language-text\">single-fold-vertical</code></strong> mode, so we’ll add the relevant media query and play with the column count trying to either put the columns in the left or the right side of the fold:</p>\n<div\n              class=\"gatsby-code-button-container\"\n              data-toaster-id=\"76755294947227750000\"\n              data-toaster-class=\"gatsby-code-button-toaster\"\n              data-toaster-text-class=\"gatsby-code-button-toaster-text\"\n              data-toaster-text=\"Copied to clipboard ✅\"\n              data-toaster-duration=\"3500\"\n              onClick=\"copyToClipboard(`@media (screen-spanning: single-fold-vertical) { \r\n.card-columns { \r\n  grid-template-columns: repeat(4, calc( env(fold-left) /2 - 10px) ); \r\n  } \r\n}`, `76755294947227750000`)\"\n            >\n              <div\n                class=\"gatsby-code-button\"\n                data-tooltip=\"\"\n              >\n                Copy<svg class=\"gatsby-code-button-icon\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path fill=\"none\" d=\"M0 0h24v24H0V0z\"/><path d=\"M16 1H2v16h2V3h12V1zm-1 4l6 6v12H6V5h9zm-1 7h5.5L14 6.5V12z\"/></svg>\n              </div>\n            </div>\n<div class=\"gatsby-highlight\" data-language=\"css\"><pre style=\"counter-reset: linenumber NaN\" class=\"language-css line-numbers\"><code class=\"language-css\"><span class=\"token atrule\"><span class=\"token rule\">@media</span> <span class=\"token punctuation\">(</span><span class=\"token property\">screen-spanning</span><span class=\"token punctuation\">:</span> single-fold-vertical<span class=\"token punctuation\">)</span></span> <span class=\"token punctuation\">{</span> \r\n<span class=\"token selector\">.card-columns</span> <span class=\"token punctuation\">{</span> \r\n  <span class=\"token property\">grid-template-columns</span><span class=\"token punctuation\">:</span> <span class=\"token function\">repeat</span><span class=\"token punctuation\">(</span>4<span class=\"token punctuation\">,</span> <span class=\"token function\">calc</span><span class=\"token punctuation\">(</span> <span class=\"token function\">env</span><span class=\"token punctuation\">(</span>fold-left<span class=\"token punctuation\">)</span> /2 - 10px<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> \r\n  <span class=\"token punctuation\">}</span> \r\n<span class=\"token punctuation\">}</span></code><span aria-hidden=\"true\" class=\"line-numbers-rows\" style=\"white-space: normal; width: auto; left: 0;\"><span></span><span></span><span></span><span></span><span></span></span></pre></div>\n<blockquote>\n<p>💡 In order to access these features, you must enable experimental platform features on Edge by visiting <strong><code class=\"language-text\">edge://flags/#enable-experimental-web-platform-features</code></strong> and enabling them.</p>\n</blockquote>\n<p>After setting the column count to 4, we will end up with something like this:</p>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 1024px; \"\n    >\n      <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/static/c3660014b26c5df5cdd7fd768b727d33/2bef9/semi-aligned.png\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n    <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 64.81481481481481%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAANCAYAAACpUE5eAAAACXBIWXMAAAsTAAALEwEAmpwYAAADZUlEQVR42jWTf0zUZRzHv1tbf2T/9l+mJisn5aJEslqb0A9NTGlDREFOLGuSjUlsmjLzlF/eQqh2XB3e8dPZBNoyaWvQwgx/wRXcsk4QbhcH3HHHwf3gfvA9Xj3PN/1snz3vPfs878/z7PN6FJfLhd/vJxgKEpif17TP5yMQCBAOh5FhNBppamrStNxfWFhgXtQ+TK/Xq52ZmZlBCYdDLC5GiMaiRKNRTUsjqWOxmGZiNptpbW3VdDAUIhaPs7S0pKWqqlqd1MlkEsXnD3B/bAL35BRu9zTT016RM/w7Ocnk1BQhYW4ymTAYDMzNzeFw3GN0dJR4PCaaLxISDSKRiLZKY2XYs0RFf5D6a37aBjxcsgUZcTiZmJhgfMIpnjHL10YTac8/R9lHOs6U5FC0awt11Xr27MnlmXUpbExPY9WalZwz1KJcv+chz2wjr8vJjtb77PxikLauq9hH7IyOjTNw4xYVp/Ssfmol+bu2c7xoK3lvbORE2RFey87h8bUbWJWRxWNr1nOyShj+5XBQpS8n9/xlHvlskCf3X6b2fCN37gwy9Ied6poaig9+wLNrV3NIt5sDeW+hy93KyfJPeK9gH2mvbCIr+x0yXn2J+i/rUMb+GaKtsYLO9gZSCit5QhgePa6nWLePko9LyMx8ndTUdbycsZnaSj3HSos5fGAvJz4tJX1TGoqisGLFo9paVlaK4p50cvPGdZxjw3R2f0dDRz9Xf/qZczVnBS5f0d7WQkHhXj4/XcXdv8e5PXAT+6ANu20Ic9O36M+epr6hjsrqM/T90ociRz0762MusCCmFCepJgQCqmAtKPCJaKi0tLRgsVhQBRqSQ4mOrJFTlTqeSJAQuby8jKKqS8LQi8fjxS+wkIzFRc4KUOWejObmZi5YLqCKAx4BsURJTaoaKl5xGQm1ZFfjULomH6TUMiSksrP8OdoNpaG1+X+w54MkEyrLAuhoNEbkwSd4CLmyGAnya4+VW/3d/Hm7F/+si2/MJjK3ZVF06CD5ugLWv5BKYXY+3aV67oqB2Roacff2sS1nO+lbNvCu7k1SXnyaSkMlSiQUoLfnIr3XRvjtd5v4yzNc6fkRo6kRi9WCtdnK2zt3UCPQcf3wPc7Oi7i7OogMD1B+7AjvH97N0VMfsl+XQ3uHhf8AA7EptbMAzswAAAAASUVORK5CYII='); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"Half aligned with columns reducing from 5 to 4\"\n        title=\"\"\n        src=\"/static/c3660014b26c5df5cdd7fd768b727d33/2bef9/semi-aligned.png\"\n        srcset=\"/static/c3660014b26c5df5cdd7fd768b727d33/01bf6/semi-aligned.png 270w,\n/static/c3660014b26c5df5cdd7fd768b727d33/07484/semi-aligned.png 540w,\n/static/c3660014b26c5df5cdd7fd768b727d33/2bef9/semi-aligned.png 1024w\"\n        sizes=\"(max-width: 1024px) 100vw, 1024px\"\n        style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        loading=\"lazy\"\n        decoding=\"async\"\n      />\n  </a>\n    </span></p>\n<p>So we’re one step close to have a better view, but we have the two middle columns right on the fold, and the title is spanning across too. Let’s fix the title first. We could simply set a width for it to be in the first fold, or we could give it a margin right calculating where the fold is located. Let’s use the margin solution.</p>\n<div\n              class=\"gatsby-code-button-container\"\n              data-toaster-id=\"78253758398476200000\"\n              data-toaster-class=\"gatsby-code-button-toaster\"\n              data-toaster-text-class=\"gatsby-code-button-toaster-text\"\n              data-toaster-text=\"Copied to clipboard ✅\"\n              data-toaster-duration=\"3500\"\n              onClick=\"copyToClipboard(`h1 { \r\n  margin-right: calc( 100vw - (env(fold-left) + env(fold-width)) ); \r\n}`, `78253758398476200000`)\"\n            >\n              <div\n                class=\"gatsby-code-button\"\n                data-tooltip=\"\"\n              >\n                Copy<svg class=\"gatsby-code-button-icon\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path fill=\"none\" d=\"M0 0h24v24H0V0z\"/><path d=\"M16 1H2v16h2V3h12V1zm-1 4l6 6v12H6V5h9zm-1 7h5.5L14 6.5V12z\"/></svg>\n              </div>\n            </div>\n<div class=\"gatsby-highlight\" data-language=\"css\"><pre style=\"counter-reset: linenumber NaN\" class=\"language-css line-numbers\"><code class=\"language-css\"><span class=\"token selector\">h1</span> <span class=\"token punctuation\">{</span> \r\n  <span class=\"token property\">margin-right</span><span class=\"token punctuation\">:</span> <span class=\"token function\">calc</span><span class=\"token punctuation\">(</span> 100vw - <span class=\"token punctuation\">(</span><span class=\"token function\">env</span><span class=\"token punctuation\">(</span>fold-left<span class=\"token punctuation\">)</span> + <span class=\"token function\">env</span><span class=\"token punctuation\">(</span>fold-width<span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> \r\n<span class=\"token punctuation\">}</span></code><span aria-hidden=\"true\" class=\"line-numbers-rows\" style=\"white-space: normal; width: auto; left: 0;\"><span></span><span></span><span></span></span></pre></div>\n<p>Here we’re calculating the width of the second fold and setting that as margin right for our header. Of course there are many other ways to achieve this, but I wanted to demonstrate the use of environment variables. After applying the above styles, we will end up with below, which is one step ahead to have a better UX.</p>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 1024px; \"\n    >\n      <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/static/4dccb45080ad712cba8ff5e125560c2a/2bef9/aligned.png\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n    <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 64.81481481481481%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAANCAYAAACpUE5eAAAACXBIWXMAAAsTAAALEwEAmpwYAAADTElEQVR42n2TXWxTZRjHz50x4cYbryRcIUYdUSLLiCQmfmTG8bE5XFyjbpqAkZgwx8bYCAQTCSbMqVHrate1tVpxTFQ6yigbZQKyqUO2lanRQem6fq09/e45Xdv9PO+JF1z5T568/+e8z/95npP8XykQCJBIJMhkMyRTKZ3H43GSySS5XA4Bo9GI2WzWubhPaXV3RywW0zWRSARJiAqFAoqq6iF4NptDUVRULRcQzex2u87z+bz+/e4QPRRFoVwuI8myjN/vJxhcYjEYJBQKEY0tE47GiGihqEX6TSacTqfeUIj+D1JCTjLn+4N/Fm6zcDvAUihCsZAnKy9TyKT1IssX/fQPWhGtoukMy9ofpLWNookUi7EEwWWZQCRBMptH8oz9xPM7Wmnd3cX+/Ud5v3cA19BXeC3Hmf6mj8BFB++9ZaCpex/GyVFOXBim2+XEOnmJJwwHkGqaua/2TaTHd9Hx6ddIP5xxs2XL0xjq62nc1kBLy14cVjOnB07w+xk7U99+RGv9Mxw50Mz5sx/ymfEQp5xHuHblJI80tiE9uo01TzYjra/lnd5BpPMeLy9tf5HXGxuoq91OR3sPVtPH9PXs5qqzj6uOYxh2PEV7ax29h9/mDcPLHNprYMploqa5nTVrq1n34FakDc/S+YEFacTlpmrjZqqrt7Lp4Sp27Wzi6LHDvPpKLe17dtKxp46azevZ8FAVLQ11NL3wHJseq+ZgZ5dW+xqSdD/33rOWdQ9spOf4J0iLgUW+Gz7NyIgbj2eciUsTTP72C0M/DjN6wc3MzK90dnXQfbCb+emfmbg4hndsjLkbNzh3bhzbl0MMf+/m5CkX07PzSJVKRfNdVvfTysqKbgsRmUxW96OA8KDNZtN5Ll9ALRYpa7qiduZzeUqaTmhXV1eRSqWS5vAooXAY4UlRpKiK5sEoce1VCFitViwDZlaKqu5TtaANWq2Q0oZGYnFiCZlsXhi7om2odS39t5WYICDyVCqNz+fTc4fDgcliR9wmswWCKZVoRkFJyyQjS6SjQUo5mUpZRRKCmzdnmfB6GHLacLvPUqrA/J9/07avjYVbfswDg7zb+zm+sMro9TsMXvYzOhfmzl/Xmbk2zq1ZL3J4iqIS419hR0Qzjab1/wAAAABJRU5ErkJggg=='); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"Header aligned with using margin calculated based on fold size\"\n        title=\"\"\n        src=\"/static/4dccb45080ad712cba8ff5e125560c2a/2bef9/aligned.png\"\n        srcset=\"/static/4dccb45080ad712cba8ff5e125560c2a/01bf6/aligned.png 270w,\n/static/4dccb45080ad712cba8ff5e125560c2a/07484/aligned.png 540w,\n/static/4dccb45080ad712cba8ff5e125560c2a/2bef9/aligned.png 1024w\"\n        sizes=\"(max-width: 1024px) 100vw, 1024px\"\n        style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        loading=\"lazy\"\n        decoding=\"async\"\n      />\n  </a>\n    </span></p>\n<p>Now is the time to fix the two middle columns. One way to fix the middle column problem is to add an empty column which has no content. But it’s easier said than done. If you’re willing to play with the width of the columns, you can get away with something like this:</p>\n<div\n              class=\"gatsby-code-button-container\"\n              data-toaster-id=\"31610314397789140000\"\n              data-toaster-class=\"gatsby-code-button-toaster\"\n              data-toaster-text-class=\"gatsby-code-button-toaster-text\"\n              data-toaster-text=\"Copied to clipboard ✅\"\n              data-toaster-duration=\"3500\"\n              onClick=\"copyToClipboard(`@media (screen-spanning: single-fold-vertical) {\r\n  .grid {    \r\n    grid-template-columns: repeat(4, 23%);\r\n    grid-gap: 25px;\r\n  }\r\n  .card:nth-child(4n + 2) {\r\n    margin-right: 5px;\r\n  }\r\n  .card:nth-child(4n + 3) {\r\n    margin-left: 10px;\r\n  }\r\n}`, `31610314397789140000`)\"\n            >\n              <div\n                class=\"gatsby-code-button\"\n                data-tooltip=\"\"\n              >\n                Copy<svg class=\"gatsby-code-button-icon\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path fill=\"none\" d=\"M0 0h24v24H0V0z\"/><path d=\"M16 1H2v16h2V3h12V1zm-1 4l6 6v12H6V5h9zm-1 7h5.5L14 6.5V12z\"/></svg>\n              </div>\n            </div>\n<div class=\"gatsby-highlight\" data-language=\"css\"><pre style=\"counter-reset: linenumber NaN\" class=\"language-css line-numbers\"><code class=\"language-css\"><span class=\"token atrule\"><span class=\"token rule\">@media</span> <span class=\"token punctuation\">(</span><span class=\"token property\">screen-spanning</span><span class=\"token punctuation\">:</span> single-fold-vertical<span class=\"token punctuation\">)</span></span> <span class=\"token punctuation\">{</span>\r\n  <span class=\"token selector\">.grid</span> <span class=\"token punctuation\">{</span>    \r\n    <span class=\"token property\">grid-template-columns</span><span class=\"token punctuation\">:</span> <span class=\"token function\">repeat</span><span class=\"token punctuation\">(</span>4<span class=\"token punctuation\">,</span> 23%<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\r\n    <span class=\"token property\">grid-gap</span><span class=\"token punctuation\">:</span> 25px<span class=\"token punctuation\">;</span>\r\n  <span class=\"token punctuation\">}</span>\r\n  <span class=\"token selector\">.card:nth-child(4n + 2)</span> <span class=\"token punctuation\">{</span>\r\n    <span class=\"token property\">margin-right</span><span class=\"token punctuation\">:</span> 5px<span class=\"token punctuation\">;</span>\r\n  <span class=\"token punctuation\">}</span>\r\n  <span class=\"token selector\">.card:nth-child(4n + 3)</span> <span class=\"token punctuation\">{</span>\r\n    <span class=\"token property\">margin-left</span><span class=\"token punctuation\">:</span> 10px<span class=\"token punctuation\">;</span>\r\n  <span class=\"token punctuation\">}</span>\r\n<span class=\"token punctuation\">}</span></code><span aria-hidden=\"true\" class=\"line-numbers-rows\" style=\"white-space: normal; width: auto; left: 0;\"><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span></span></pre></div>\n<p>This will result in:</p>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 1024px; \"\n    >\n      <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/static/3a6fefcc61860b93d168b01cf2a90650/2bef9/half-aligned.png\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n    <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 64.81481481481481%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAANCAYAAACpUE5eAAAACXBIWXMAAAsTAAALEwEAmpwYAAADF0lEQVR42n2TTUxUVxTH38q46Zak7hoauyDRjcFFAyHR1LQaacrChQlpm5J+LHQlKqEapQoRUgIxQxNghhmYSFEEhvAhhmDwYwA/OswosZHawjDO+IaZeW++38DMr/e+icRuepKbe+557/7vOff8ruL3+9nc3CSeSBCNaUSEL9exWIxkMok0i8VCd3e36UciETRN+89QVdXcEwqFUOSmdDpNJps1RyqVMoUymQxZsZbW3dNDX1+f6adSxW/vj4RIRmpsbW2haLqO3/+GYEgl9LY4ZHbyxHA4TC63hc1mw+l0moLb29v8n4kM4wQ2/iYUXBeiAVGSStrIkcgaZMQszdHfL0ruknLiMJVoVCWux1h9tcry8gt8vhW8nuciFkdJ6wFW/xjFe38AbW0Osq8ZujNHs+Mmw48e83xTo6nDQsvVs2z4H+PxzLC0NMqi+w4VByrYvetD9pR8zOH9nzAxOony0rPAb20NDNvbmL/VytqTEa5ct3P8pwYaLU6ssx6+b2jGbu2Egrj4gJfA2gK+5YfUffk5ZaVlHK6q5Ny3NYwPj6N43XN0tZzF0vYzltZzPLh7i3ZbM1/UVfJ141d811pL1YlDdHVeJhxc5Kl7ENfNFqYnnNTXnaTm6FEunz9N7bEjuEzBZwtcb7vA1Yv1NDWcYnrkBpd+/YHyYx9w/Ju9VP9YSvlnH9F+rZHQhpvlJ2PMTnZxd+p39u+roKRkL1UHK6j+tJyJsaliU9b/+Yuw+gYtGkaPRc3m+FY8vHr9J/GkRkdnB729PaLDOXRdwzAyApMUz556ePRQlO/xsbqygiY4ViQGmhYXYCfR4wlygiWJioxpMd3scr/ostVqFYJ5Aa+6A7zkNJ1Jm3NWEFEoFFAkjFHBXUwQL+HM5/MC0Jz5cuQrkGZ32OkVgtKkmPxHbo6LBCKRKJJlwzDMuCI/SCefL+zAWVznTfJNDh0OBgYGTP9dTO57f37nK8GgX4C9ji5Kdi8tMDM7Y5ZmGPK+iiXbbHZ+aTrDg3kXI8N2ZqaHBI+LDA4O0T/k4vbkPW64ZvEHw/wL8+Nxh5KXN5MAAAAASUVORK5CYII='); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"Columns aligned on the two sides of the fold\"\n        title=\"\"\n        src=\"/static/3a6fefcc61860b93d168b01cf2a90650/2bef9/half-aligned.png\"\n        srcset=\"/static/3a6fefcc61860b93d168b01cf2a90650/01bf6/half-aligned.png 270w,\n/static/3a6fefcc61860b93d168b01cf2a90650/07484/half-aligned.png 540w,\n/static/3a6fefcc61860b93d168b01cf2a90650/2bef9/half-aligned.png 1024w\"\n        sizes=\"(max-width: 1024px) 100vw, 1024px\"\n        style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        loading=\"lazy\"\n        decoding=\"async\"\n      />\n  </a>\n    </span></p>\n<p>You can see we’ve come a long way from having a completely spanned content to a neat ordered view. But that’s all have been using only the CSS media feature. Let’s see what does the Window Segment Enumeration API have to offer.</p>\n<h2 id=\"window-segments-enumeration-api\" style=\"position:relative;\"><a href=\"#window-segments-enumeration-api\" aria-label=\"window segments enumeration api permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Window Segments Enumeration API</h2>\n<p>This API helps you to deal with non-DOM elements such as a canvas or WebGL objects. You can leverage the <code class=\"language-text\">getWindowSegments()</code> function which is accessible on the window object and returns an array of one or more <em>DOMRect</em> representing the geometry of and position of each display region:</p>\n<div\n              class=\"gatsby-code-button-container\"\n              data-toaster-id=\"88909643662167110000\"\n              data-toaster-class=\"gatsby-code-button-toaster\"\n              data-toaster-text-class=\"gatsby-code-button-toaster-text\"\n              data-toaster-text=\"Copied to clipboard ✅\"\n              data-toaster-duration=\"3500\"\n              onClick=\"copyToClipboard(`const segments = window.getWindowSegments();\r\n\r\n// case 1: desktops, traditional touch screen devices, foldable device not spanned\r\nconsole.log(segments.length) // 1\r\n\r\n// case 2: dual-screen and foldable \r\nconsole.log(segments.length) // 2`, `88909643662167110000`)\"\n            >\n              <div\n                class=\"gatsby-code-button\"\n                data-tooltip=\"\"\n              >\n                Copy<svg class=\"gatsby-code-button-icon\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path fill=\"none\" d=\"M0 0h24v24H0V0z\"/><path d=\"M16 1H2v16h2V3h12V1zm-1 4l6 6v12H6V5h9zm-1 7h5.5L14 6.5V12z\"/></svg>\n              </div>\n            </div>\n<div class=\"gatsby-highlight\" data-language=\"javascript\"><pre style=\"counter-reset: linenumber NaN\" class=\"language-javascript line-numbers\"><code class=\"language-javascript\"><span class=\"token keyword\">const</span> segments <span class=\"token operator\">=</span> window<span class=\"token punctuation\">.</span><span class=\"token function\">getWindowSegments</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\r\n\r\n<span class=\"token comment\">// case 1: desktops, traditional touch screen devices, foldable device not spanned</span>\r\nconsole<span class=\"token punctuation\">.</span><span class=\"token function\">log</span><span class=\"token punctuation\">(</span>segments<span class=\"token punctuation\">.</span>length<span class=\"token punctuation\">)</span> <span class=\"token comment\">// 1</span>\r\n\r\n<span class=\"token comment\">// case 2: dual-screen and foldable </span>\r\nconsole<span class=\"token punctuation\">.</span><span class=\"token function\">log</span><span class=\"token punctuation\">(</span>segments<span class=\"token punctuation\">.</span>length<span class=\"token punctuation\">)</span> <span class=\"token comment\">// 2</span></code><span aria-hidden=\"true\" class=\"line-numbers-rows\" style=\"white-space: normal; width: auto; left: 0;\"><span></span><span></span><span></span><span></span><span></span><span></span><span></span></span></pre></div>\n<p>If you wanted to know the fold posture inside your JavaScript code, you can calculate them easily using below snippet:</p>\n<div\n              class=\"gatsby-code-button-container\"\n              data-toaster-id=\"39872560901364105000\"\n              data-toaster-class=\"gatsby-code-button-toaster\"\n              data-toaster-text-class=\"gatsby-code-button-toaster-text\"\n              data-toaster-text=\"Copied to clipboard ✅\"\n              data-toaster-duration=\"3500\"\n              onClick=\"copyToClipboard(`function isSingleFoldHorizontal() {\r\n    const segments = window.getWindowSegments();\r\n    if( segments.length !== 2 ) {\r\n        return false;\r\n    }\r\n    if( segments[0].top < segments[1].top ) {\r\n        return true;\r\n    }\r\n    return false;\r\n}`, `39872560901364105000`)\"\n            >\n              <div\n                class=\"gatsby-code-button\"\n                data-tooltip=\"\"\n              >\n                Copy<svg class=\"gatsby-code-button-icon\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path fill=\"none\" d=\"M0 0h24v24H0V0z\"/><path d=\"M16 1H2v16h2V3h12V1zm-1 4l6 6v12H6V5h9zm-1 7h5.5L14 6.5V12z\"/></svg>\n              </div>\n            </div>\n<div class=\"gatsby-highlight\" data-language=\"javascript\"><pre style=\"counter-reset: linenumber NaN\" class=\"language-javascript line-numbers\"><code class=\"language-javascript\"><span class=\"token keyword\">function</span> <span class=\"token function\">isSingleFoldHorizontal</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\r\n    <span class=\"token keyword\">const</span> segments <span class=\"token operator\">=</span> window<span class=\"token punctuation\">.</span><span class=\"token function\">getWindowSegments</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\r\n    <span class=\"token keyword\">if</span><span class=\"token punctuation\">(</span> segments<span class=\"token punctuation\">.</span>length <span class=\"token operator\">!==</span> <span class=\"token number\">2</span> <span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\r\n        <span class=\"token keyword\">return</span> <span class=\"token boolean\">false</span><span class=\"token punctuation\">;</span>\r\n    <span class=\"token punctuation\">}</span>\r\n    <span class=\"token keyword\">if</span><span class=\"token punctuation\">(</span> segments<span class=\"token punctuation\">[</span><span class=\"token number\">0</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">.</span>top <span class=\"token operator\">&lt;</span> segments<span class=\"token punctuation\">[</span><span class=\"token number\">1</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">.</span>top <span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\r\n        <span class=\"token keyword\">return</span> <span class=\"token boolean\">true</span><span class=\"token punctuation\">;</span>\r\n    <span class=\"token punctuation\">}</span>\r\n    <span class=\"token keyword\">return</span> <span class=\"token boolean\">false</span><span class=\"token punctuation\">;</span>\r\n<span class=\"token punctuation\">}</span></code><span aria-hidden=\"true\" class=\"line-numbers-rows\" style=\"white-space: normal; width: auto; left: 0;\"><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span></span></pre></div>\n<p>Here we’re simply retuning false if the segments are now two, then check whether the top value of segment 0 is less than segment 1 which means the device is in horizontal state. If not we’re returning false which means it’s vertical posture.</p>\n<h2 id=\"where-to-start\" style=\"position:relative;\"><a href=\"#where-to-start\" aria-label=\"where to start permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Where to start?</h2>\n<p>You can access the CSS screen-spanning media features using the <a href=\"edge://flags/#enable-experimental-web-platform-features\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">experimental web platform feature flag</a>, and the JavaScript Window Segments Enumeration API is accessible by enabling the <a href=\"edge://flags/#enable-javascript-harmony\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Experimental JavaScript flag</a>.</p>\n<p>You also have the option of using Origin Trials, where you can acquire tokens and safely experiment with these new primitives in production in exchange for providing feedback about the APIs. <a href=\"https://developer.microsoft.com/en-us/microsoft-edge/origin-trials/dual-screen-and-foldable-devices-css-and/detail/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Sign up for an Origin Trial if you’re interested in testing out these APIs!</a></p>\n<p><a href=\"https://glitch.com/edit/#!/pwa-dual-screen\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">PS: You can find all the the code on Glitch here.</a></p>","timeToRead":8,"frontmatter":{"title":"Add dual screen support to your applications 💻","unformattedDate":"2020-12-07T00:00:00.000Z","date":"Dec 07, 2020","path":"/dual-screen/","author":"Yaser Adel Mehraban","tags":["webdev","showdev","dual-screen","css-media-features"],"thumbnail":{"childImageSharp":{"gatsbyImageData":{"layout":"constrained","placeholder":{"fallback":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAANCAYAAACpUE5eAAAACXBIWXMAAAsTAAALEwEAmpwYAAADZUlEQVR42jWTf0zUZRzHv1tbf2T/9l+mJisn5aJEslqb0A9NTGlDREFOLGuSjUlsmjLzlF/eQqh2XB3e8dPZBNoyaWvQwgx/wRXcsk4QbhcH3HHHwf3gfvA9Xj3PN/1snz3vPfs878/z7PN6FJfLhd/vJxgKEpif17TP5yMQCBAOh5FhNBppamrStNxfWFhgXtQ+TK/Xq52ZmZlBCYdDLC5GiMaiRKNRTUsjqWOxmGZiNptpbW3VdDAUIhaPs7S0pKWqqlqd1MlkEsXnD3B/bAL35BRu9zTT016RM/w7Ocnk1BQhYW4ymTAYDMzNzeFw3GN0dJR4PCaaLxISDSKRiLZKY2XYs0RFf5D6a37aBjxcsgUZcTiZmJhgfMIpnjHL10YTac8/R9lHOs6U5FC0awt11Xr27MnlmXUpbExPY9WalZwz1KJcv+chz2wjr8vJjtb77PxikLauq9hH7IyOjTNw4xYVp/Ssfmol+bu2c7xoK3lvbORE2RFey87h8bUbWJWRxWNr1nOyShj+5XBQpS8n9/xlHvlskCf3X6b2fCN37gwy9Ied6poaig9+wLNrV3NIt5sDeW+hy93KyfJPeK9gH2mvbCIr+x0yXn2J+i/rUMb+GaKtsYLO9gZSCit5QhgePa6nWLePko9LyMx8ndTUdbycsZnaSj3HSos5fGAvJz4tJX1TGoqisGLFo9paVlaK4p50cvPGdZxjw3R2f0dDRz9Xf/qZczVnBS5f0d7WQkHhXj4/XcXdv8e5PXAT+6ANu20Ic9O36M+epr6hjsrqM/T90ociRz0762MusCCmFCepJgQCqmAtKPCJaKi0tLRgsVhQBRqSQ4mOrJFTlTqeSJAQuby8jKKqS8LQi8fjxS+wkIzFRc4KUOWejObmZi5YLqCKAx4BsURJTaoaKl5xGQm1ZFfjULomH6TUMiSksrP8OdoNpaG1+X+w54MkEyrLAuhoNEbkwSd4CLmyGAnya4+VW/3d/Hm7F/+si2/MJjK3ZVF06CD5ugLWv5BKYXY+3aV67oqB2Roacff2sS1nO+lbNvCu7k1SXnyaSkMlSiQUoLfnIr3XRvjtd5v4yzNc6fkRo6kRi9WCtdnK2zt3UCPQcf3wPc7Oi7i7OogMD1B+7AjvH97N0VMfsl+XQ3uHhf8AA7EptbMAzswAAAAASUVORK5CYII="},"backgroundColor":"transparent","images":{"fallback":{"src":"/static/c3660014b26c5df5cdd7fd768b727d33/055f6/semi-aligned.png","srcSet":"/static/c3660014b26c5df5cdd7fd768b727d33/43735/semi-aligned.png 750w,\n/static/c3660014b26c5df5cdd7fd768b727d33/055f6/semi-aligned.png 1024w","sizes":"(min-width: 1024px) 1024px, 100vw"},"sources":[{"srcSet":"/static/c3660014b26c5df5cdd7fd768b727d33/f7ac9/semi-aligned.webp 750w,\n/static/c3660014b26c5df5cdd7fd768b727d33/48bef/semi-aligned.webp 1024w","type":"image/webp","sizes":"(min-width: 1024px) 1024px, 100vw"}]},"width":1024,"height":662}}}}}}]}},"pageContext":{"tag":"css-media-features"}},"staticQueryHashes":[],"slicesMap":{}}