{"componentChunkName":"component---src-templates-single-template-tsx","path":"/customizando-a-mensagem-noscript-no-gatsby","result":{"data":{"site":{"siteMetadata":{"siteUrl":"https://blog.nandomoreira.dev","author":{"name":"Fernando Moreira","site":"https://nandomoreira.dev","social":{"disqus":"fernandomoreira"}}}},"markdownRemark":{"html":"<h2>Introdução</h2>\n<p>O <a href=\"https://www.gatsbyjs.org/\">Gatsby</a> é uma ótima ferramenta para desenvolver lindos projetos utilizando <a href=\"https://reactjs.org/\">React</a> e unindo o recurso de <strong><abbr title=\"Server Side Rendering\">SSR</abbr></strong> e <strong><abbr title=\"Single Page Application\">SPA</abbr></strong>, sem contar que ele é um gerador de arquivos estáticos, que facilita muito <strong>SEO</strong> e <strong>acessibilidade</strong> do seu site.</p>\n<p>O Gatsby, assim como é uma boa prática em todos os projetos <abbr title=\"Single Page Application\">SPA</abbr>, usa o recurso da tag <code class=\"language-text\">&lt;noscript&gt;</code> para exibir uma mensagem para o usuário informando que o site funciona melhor com o <a href=\"https://link\">JavaScript</a> habilitado no navegador.</p>\n<p>E nesse artigo vou explicar commo customizar essa mensagem usando o <a href=\"https://www.gatsbyjs.org/docs/custom-html/\">Customizing html.js</a> recurso do próprio <strong>Gatsby</strong> para alterar o HTML base da aplicação.</p>\n<p><figure class=\"gatsby-resp-image-figure\" style=\"\">\n    <span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto;  max-width: 1000px;\"\n    >\n      <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 57.52952755905512%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAMCAYAAABiDJ37AAAACXBIWXMAAAsSAAALEgHS3X78AAAB2UlEQVQoz4WT247TMBBA8xvAtt1N21x9GTuJcytUIL6CSAiJPiA+CfLCA9+IVm4yO3aXdhHa7sORHddzPONxg6Zrf9dN86MoitHUZizLatQaxt2u8XMpwY8AMAohn+NnWZa/GON90L/fo9SAaZpilufIOcOuKXHftWjqCqWUKIS4Ch2GZVlgmmXfg7fvetQK/mw2W7vdbm0cJ1YpsLUprNJgpZJWgkM8jtIKKTycc8sYswDyXmuFNP8afNi32HUN/cBndxptQgrCqjcIBSAXHCn4v6zcOqO9JJmJ6VQJPwSmKrBtG5tl2RwnMWZphqAAtdFu84tQAl7oDqFrOwQV1V4bY6MomglMksQLzc74zB6DKBv2LxfpWUixh6CujBfShxe65kh3ydQYVzpn3AuvMBMXYWFarEx9ztAJqRkoQPhM8izHPL/KTFyE3E3S1MYn4ewyrUo9KylmRpvd3b5MfjwLKQjpudyT7EhMJJ80wPTRmElLOTFXDsGf5+ieD3X4JARQGCcpPcqcFmikLita63WBIKR/Gpy78p9yWqN/iMdVqZR2nm9BuIm/3K3jT+EmGRar9fD6ZjUsV+Fws7gdXtHcjW+e8Pd7sQyHcB0Pt2HkiRL2ebG8Wz8AoxFRGEZwLL4AAAAASUVORK5CYII='); background-size: cover; display: block;\"\n  ></span>\n  <picture>\n        <source\n          srcset=\"/static/466dc6f262ac64d3289b052750d55f09/bc904/customizando-a-mensagem-noscript-no-gatsby.webp 250w,\n/static/466dc6f262ac64d3289b052750d55f09/4be29/customizando-a-mensagem-noscript-no-gatsby.webp 500w,\n/static/466dc6f262ac64d3289b052750d55f09/03f31/customizando-a-mensagem-noscript-no-gatsby.webp 1000w,\n/static/466dc6f262ac64d3289b052750d55f09/9579c/customizando-a-mensagem-noscript-no-gatsby.webp 1500w,\n/static/466dc6f262ac64d3289b052750d55f09/b1218/customizando-a-mensagem-noscript-no-gatsby.webp 2000w,\n/static/466dc6f262ac64d3289b052750d55f09/d7987/customizando-a-mensagem-noscript-no-gatsby.webp 2032w\"\n          sizes=\"(max-width: 1000px) 100vw, 1000px\"\n          type=\"image/webp\"\n        />\n        <source\n          srcset=\"/static/466dc6f262ac64d3289b052750d55f09/43fa5/customizando-a-mensagem-noscript-no-gatsby.png 250w,\n/static/466dc6f262ac64d3289b052750d55f09/c6e3d/customizando-a-mensagem-noscript-no-gatsby.png 500w,\n/static/466dc6f262ac64d3289b052750d55f09/da8b6/customizando-a-mensagem-noscript-no-gatsby.png 1000w,\n/static/466dc6f262ac64d3289b052750d55f09/2e9ed/customizando-a-mensagem-noscript-no-gatsby.png 1500w,\n/static/466dc6f262ac64d3289b052750d55f09/9fabd/customizando-a-mensagem-noscript-no-gatsby.png 2000w,\n/static/466dc6f262ac64d3289b052750d55f09/e7591/customizando-a-mensagem-noscript-no-gatsby.png 2032w\"\n          sizes=\"(max-width: 1000px) 100vw, 1000px\"\n          type=\"image/png\"\n        />\n        <img\n          class=\"gatsby-resp-image-image\"\n          src=\"/static/466dc6f262ac64d3289b052750d55f09/da8b6/customizando-a-mensagem-noscript-no-gatsby.png\"\n          alt=\"Customizando mensagem da tag noscript no Gatsby\"\n          title=\"Customizando mensagem da tag noscript no Gatsby\"\n          loading=\"lazy\"\n          style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        />\n      </picture>\n    </span>\n    <figcaption class=\"gatsby-resp-image-figcaption\">Customizando mensagem da tag noscript no Gatsby</figcaption>\n  </figure></p>\n<h2>Copiando o HTML do .cache</h2>\n<p>O Gatsby gera um diretório chamado <code class=\"language-text\">.cache</code> na raiz do seu projeto, <strong>você deve ter iniciado o Gatsby pelo menos uma vez em sua máquina</strong>.</p>\n<p>Dentro dessa pasta tem um arquivo chamado <code class=\"language-text\">default-html.js</code>, basta copiar ele para <code class=\"language-text\">src/html.js</code>.</p>\n<div class=\"gatsby-highlight\" data-language=\"bash\"><pre style=\"counter-reset: linenumber NaN\" class=\"language-bash line-numbers\"><code class=\"language-bash\"><span class=\"token function\">cp</span> .cache/default-html.js src/html.js</code><span aria-hidden=\"true\" class=\"line-numbers-rows\" style=\"white-space: normal; width: auto; left: 0;\"><span></span></span></pre></div>\n<p>Leia a documentação do Gatsby para mais detalhes.</p>\n<h2>Alterando a mensagem e adicionando uma class</h2>\n<p>Abra o aquivo <code class=\"language-text\">html.js</code> em seu editor favorito, você verá algo como isso:</p>\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\">import</span> React <span class=\"token keyword\">from</span> <span class=\"token string\">'react'</span>\n<span class=\"token keyword\">import</span> PropTypes <span class=\"token keyword\">from</span> <span class=\"token string\">'prop-types'</span>\n\n<span class=\"token keyword\">export</span> <span class=\"token keyword\">default</span> <span class=\"token keyword\">function</span> <span class=\"token constant\">HTML</span><span class=\"token punctuation\">(</span><span class=\"token parameter\">props</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n  <span class=\"token keyword\">return</span> <span class=\"token punctuation\">(</span>\n    <span class=\"token operator\">&lt;</span>html <span class=\"token punctuation\">{</span><span class=\"token operator\">...</span>props<span class=\"token punctuation\">.</span>htmlAttributes<span class=\"token punctuation\">}</span><span class=\"token operator\">></span>\n      <span class=\"token operator\">&lt;</span>head<span class=\"token operator\">></span>\n        <span class=\"token operator\">&lt;</span>meta charSet<span class=\"token operator\">=</span><span class=\"token string\">\"utf-8\"</span> <span class=\"token operator\">/</span><span class=\"token operator\">></span>\n        <span class=\"token operator\">&lt;</span>meta httpEquiv<span class=\"token operator\">=</span><span class=\"token string\">\"x-ua-compatible\"</span> content<span class=\"token operator\">=</span><span class=\"token string\">\"ie=edge\"</span> <span class=\"token operator\">/</span><span class=\"token operator\">></span>\n        <span class=\"token operator\">&lt;</span>meta\n          name<span class=\"token operator\">=</span><span class=\"token string\">\"viewport\"</span>\n          content<span class=\"token operator\">=</span><span class=\"token string\">\"width=device-width, initial-scale=1, shrink-to-fit=no\"</span>\n        <span class=\"token operator\">/</span><span class=\"token operator\">></span>\n        <span class=\"token punctuation\">{</span>props<span class=\"token punctuation\">.</span>headComponents<span class=\"token punctuation\">}</span>\n      <span class=\"token operator\">&lt;</span><span class=\"token operator\">/</span>head<span class=\"token operator\">></span>\n      <span class=\"token operator\">&lt;</span>body <span class=\"token punctuation\">{</span><span class=\"token operator\">...</span>props<span class=\"token punctuation\">.</span>bodyAttributes<span class=\"token punctuation\">}</span><span class=\"token operator\">></span>\n        <span class=\"token punctuation\">{</span>props<span class=\"token punctuation\">.</span>preBodyComponents<span class=\"token punctuation\">}</span>\n        <span class=\"token operator\">&lt;</span>noscript key<span class=\"token operator\">=</span><span class=\"token string\">\"noscript\"</span> id<span class=\"token operator\">=</span><span class=\"token string\">\"gatsby-noscript\"</span><span class=\"token operator\">></span>\n          This app works best <span class=\"token keyword\">with</span> JavaScript enabled<span class=\"token punctuation\">.</span>\n        <span class=\"token operator\">&lt;</span><span class=\"token operator\">/</span>noscript<span class=\"token operator\">></span>\n        <span class=\"token operator\">&lt;</span>div\n          key<span class=\"token operator\">=</span><span class=\"token punctuation\">{</span><span class=\"token template-string\"><span class=\"token template-punctuation string\">`</span><span class=\"token string\">body</span><span class=\"token template-punctuation string\">`</span></span><span class=\"token punctuation\">}</span>\n          id<span class=\"token operator\">=</span><span class=\"token string\">\"___gatsby\"</span>\n          dangerouslySetInnerHTML<span class=\"token operator\">=</span><span class=\"token punctuation\">{</span><span class=\"token punctuation\">{</span> __html<span class=\"token operator\">:</span> props<span class=\"token punctuation\">.</span>body <span class=\"token punctuation\">}</span><span class=\"token punctuation\">}</span>\n        <span class=\"token operator\">/</span><span class=\"token operator\">></span>\n        <span class=\"token punctuation\">{</span>props<span class=\"token punctuation\">.</span>postBodyComponents<span class=\"token punctuation\">}</span>\n      <span class=\"token operator\">&lt;</span><span class=\"token operator\">/</span>body<span class=\"token operator\">></span>\n    <span class=\"token operator\">&lt;</span><span class=\"token operator\">/</span>html<span class=\"token operator\">></span>\n  <span class=\"token punctuation\">)</span>\n<span class=\"token punctuation\">}</span>\n\n<span class=\"token constant\">HTML</span><span class=\"token punctuation\">.</span>propTypes <span class=\"token operator\">=</span> <span class=\"token punctuation\">{</span>\n  htmlAttributes<span class=\"token operator\">:</span> PropTypes<span class=\"token punctuation\">.</span>object<span class=\"token punctuation\">,</span>\n  headComponents<span class=\"token operator\">:</span> PropTypes<span class=\"token punctuation\">.</span>array<span class=\"token punctuation\">,</span>\n  bodyAttributes<span class=\"token operator\">:</span> PropTypes<span class=\"token punctuation\">.</span>object<span class=\"token punctuation\">,</span>\n  preBodyComponents<span class=\"token operator\">:</span> PropTypes<span class=\"token punctuation\">.</span>array<span class=\"token punctuation\">,</span>\n  body<span class=\"token operator\">:</span> PropTypes<span class=\"token punctuation\">.</span>string<span class=\"token punctuation\">,</span>\n  postBodyComponents<span class=\"token operator\">:</span> PropTypes<span class=\"token punctuation\">.</span>array<span class=\"token punctuation\">,</span>\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></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></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>Se o seu arquivo está igual a esse código acima então encontre a tag <code class=\"language-text\">&lt;noscript&gt;</code> e adicione a classe <code class=\"language-text\">gatsby-noscript</code>, <strong>lembrando que é um arquivo JavaScript React, então não é <code class=\"language-text\">class</code>, mas <code class=\"language-text\">className</code></strong>.</p>\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>noscript</span> <span class=\"token attr-name\">key</span><span class=\"token attr-value\"><span class=\"token punctuation\">=</span><span class=\"token punctuation\">\"</span>noscript<span class=\"token punctuation\">\"</span></span> <span class=\"token attr-name\">id</span><span class=\"token attr-value\"><span class=\"token punctuation\">=</span><span class=\"token punctuation\">\"</span>gatsby-noscript<span class=\"token punctuation\">\"</span></span> <span class=\"token attr-name\">className</span><span class=\"token attr-value\"><span class=\"token punctuation\">=</span><span class=\"token punctuation\">\"</span>gatsby-noscript<span class=\"token punctuation\">\"</span></span><span class=\"token punctuation\">></span></span>\n  This app works best with JavaScript enabled.\n<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>noscript</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></pre></div>\n<h3>Adicionando o CSS</h3>\n<p>Para adicionar o CSS vamos criar uma variável chamada <code class=\"language-text\">noscriptStyle</code> entre os imports e o início da função, e iremos atribuir a ela nossos estilos.</p>\n<p>Seria algo como isso:</p>\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> noscriptStyle <span class=\"token operator\">=</span> <span class=\"token template-string\"><span class=\"token template-punctuation string\">`</span><span class=\"token string\">\n  .gatsby-noscript {\n    /* adicionamos os CSS para a mensagem aqui... */\n    font-family: -apple-system, BlinkMacSystemFont, Roboto, Helvetica Neue, Helvetica, Arial, sans-serif;\n    font-size: 16px;\n    text-align: center;\n    position: fixed;\n    top: 0;\n    left: 0;\n    right: 0;\n    width: 100%;\n    display: block;\n    padding: 15px;\n    background: #f00;\n    color: #fff;\n    z-index: 10000;\n  }\n</span><span class=\"token template-punctuation string\">`</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></pre></div>\n<p>Feito isso vamos inserir essa variável dentro da tag <code class=\"language-text\">&lt;noscript&gt;</code>, junto com a mensagem.</p>\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 operator\">&lt;</span>noscript key<span class=\"token operator\">=</span><span class=\"token string\">\"noscript\"</span> id<span class=\"token operator\">=</span><span class=\"token string\">\"gatsby-noscript\"</span> className<span class=\"token operator\">=</span><span class=\"token string\">\"gatsby-noscript\"</span><span class=\"token operator\">></span>\n  <span class=\"token operator\">&lt;</span>style<span class=\"token operator\">></span><span class=\"token punctuation\">{</span>noscriptStyle<span class=\"token punctuation\">}</span><span class=\"token operator\">&lt;</span><span class=\"token operator\">/</span>style<span class=\"token operator\">></span>\n  This app works best <span class=\"token keyword\">with</span> JavaScript enabled<span class=\"token punctuation\">.</span>\n<span class=\"token operator\">&lt;</span><span class=\"token operator\">/</span>noscript<span class=\"token operator\">></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></pre></div>\n<h2>Demonstração</h2>\n<p>Para ver como ficou basta desativar o javascript do seu navegador aqui mesmo nessa página que a mensagem vai aparecer.</p>\n<p><figure class=\"gatsby-resp-image-figure\" style=\"\">\n    <span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto;  max-width: 1000px;\"\n    >\n      <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 63.7%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAANCAYAAACpUE5eAAAACXBIWXMAAAsSAAALEgHS3X78AAADE0lEQVQ4y43ObU9bZRgH8PMF/Ai+N/HExE2CPAijXVdaSh84cA5tKQXWKV02ngpjGnyxRWN0SgvKRmHTNbwgPGjHW6OfwPhiL4Yz0ywbNMDYBrT04T6Hc/+97tMlJkYTT/LL/7ru+1xXbumXXO6Nhzj59Clw/TER+YBsvvLAxPWH+G+/VV0jX9zXoUmPJiaC+HoWSKaAG18C00m6ovz8BtV0NncLSC8A82lg4TZwc776j5CcqfpqGpiZxc7Uxz9Jubm5DqysgLDy0hIrLd7WsbysY21Vx/r630T/vcg1HasrdLamm5m7eimT0Yt3vytjYwMsk1mXRj9LKdfSS5i6+a05ObvIJ6Zv8Q8pp765wz+aXcRkKo0ryXlMJtNk3uqvzixYRD9OmUiljU/uLONqKp2V3q5vVWqavTjd6DJP1bfyjuAFrvVeJHHe1tHLPUqUe9UB7g70Uh/lLn+Eu+m8vbOP29waP93QincaXEZNcztONbZlpUZnl2L39sDm6TbPtHXzaDzBo4MJ7vD3wBEglC5aei4QgeCkZedoqUhbewjNbpVoht0XQXNbMCs1ODuVFk8IZ9yaSRfcQ69p12LcSS+yhinP+sJV3iq7JcQdvh4uZt5r7TJs3jCa3FpWqmnxKXUOBe/a/Wat3c+bXCoXL23xBLmNhsRgk6uL150N8HpHh6XuFVGLmVqbz6h3dqHWHshKSiSu9LyfQDg2YobOj3C17xLU6CVofZfRPTAErZ+yf8iq/03w/LBgRONXoA0MZaXNzT+UUpnjsFAxj/Jls1gyeIWZvFQ+4YVjxo+LVaL+J3GeLzB+lGcG6MvtvPhB+v3Rn515GHjJdLATE6zC8Hz/GYrFY/yfzzQBGjFF/fxF4Z5079cfAxtPf8bRYaVymK+w3Wf77PGTJyy3vc329vbY7u6uRdQ7lDmytbVl3R8cHLBCocJeHpRKtBTbuf1VKRLrfy02HJdHRhLy2Ni4/EH8ohwbHJQvxGJyKBSSw0I4bAlSrQaDcsDvl1VVlePxQXksMSEPD4+9OTo6/tblodHX/wLiZ62C7CabMwAAAABJRU5ErkJggg=='); background-size: cover; display: block;\"\n  ></span>\n  <picture>\n        <source\n          srcset=\"/static/badd9b32d413e6926cf600ed547ae994/bc904/customizando-a-mensagem-noscript-no-gatsby-demo.webp 250w,\n/static/badd9b32d413e6926cf600ed547ae994/4be29/customizando-a-mensagem-noscript-no-gatsby-demo.webp 500w,\n/static/badd9b32d413e6926cf600ed547ae994/03f31/customizando-a-mensagem-noscript-no-gatsby-demo.webp 1000w,\n/static/badd9b32d413e6926cf600ed547ae994/9579c/customizando-a-mensagem-noscript-no-gatsby-demo.webp 1500w,\n/static/badd9b32d413e6926cf600ed547ae994/b1218/customizando-a-mensagem-noscript-no-gatsby-demo.webp 2000w\"\n          sizes=\"(max-width: 1000px) 100vw, 1000px\"\n          type=\"image/webp\"\n        />\n        <source\n          srcset=\"/static/badd9b32d413e6926cf600ed547ae994/43fa5/customizando-a-mensagem-noscript-no-gatsby-demo.png 250w,\n/static/badd9b32d413e6926cf600ed547ae994/c6e3d/customizando-a-mensagem-noscript-no-gatsby-demo.png 500w,\n/static/badd9b32d413e6926cf600ed547ae994/da8b6/customizando-a-mensagem-noscript-no-gatsby-demo.png 1000w,\n/static/badd9b32d413e6926cf600ed547ae994/2e9ed/customizando-a-mensagem-noscript-no-gatsby-demo.png 1500w,\n/static/badd9b32d413e6926cf600ed547ae994/9fabd/customizando-a-mensagem-noscript-no-gatsby-demo.png 2000w\"\n          sizes=\"(max-width: 1000px) 100vw, 1000px\"\n          type=\"image/png\"\n        />\n        <img\n          class=\"gatsby-resp-image-image\"\n          src=\"/static/badd9b32d413e6926cf600ed547ae994/da8b6/customizando-a-mensagem-noscript-no-gatsby-demo.png\"\n          alt=\"Customizando mensagem da tag noscript no Gatsby - Demonstração\"\n          title=\"Customizando mensagem da tag noscript no Gatsby - Demonstração\"\n          loading=\"lazy\"\n          style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        />\n      </picture>\n    </span>\n    <figcaption class=\"gatsby-resp-image-figcaption\">Customizando mensagem da tag noscript no Gatsby - Demonstração</figcaption>\n  </figure></p>\n<h2>Bônus</h2>\n<p>Você pode editar qualquer coisa nesse template JavaScript, só atenção para as variáveis props <code class=\"language-text\">htmlAttributes</code>, <code class=\"language-text\">headComponents</code>, <code class=\"language-text\">bodyAttributes</code>, <code class=\"language-text\">preBodyComponents</code>, <code class=\"language-text\">postBodyComponents</code> e <code class=\"language-text\">body</code>, essas props fazem o Gatsby funcionar corretamente.</p>\n<p>Eu mesmo dei uma modificada para deixar dentro do padrão (eslint) do meu projeto, pode ver o código-fonte do meu html customizado <a href=\"https://github.com/nandomoreirame/nandomoreira.dev/blob/dev/src/html.js#L4\">aqui no repositório do meu site</a>.</p>\n<p>Quanto ao CSS, use e abuse, você pode mudar bastante coisa no seu site com ele, como eu tenho o header fixo no topo tive que <a href=\"https://github.com/nandomoreirame/nandomoreira.dev/blob/dev/src/html.js#L20-L22\">mover ele <code class=\"language-text\">55px</code> do topo para posicionar a mensagem</a>.</p>\n<p>É isso ai, divirta-se!</p>\n<p><code class=\"language-text\">{goodbye}</code></p>","excerpt":"Introdução O Gatsby é uma ótima ferramenta para desenvolver lindos projetos utilizando React e unindo o recurso de SSR e SPA, sem contar que ele é um…","timeToRead":3,"frontmatter":{"category":["Gatsby"],"date":"há 8 anos","datePublished":"2019-03-19T00:00:00.000Z","description":"Nesse artigo vou explicar como customizar a mensagem da tag noscript usando o recurso do próprio Gatsby para alterar o HTML base da aplicação.","path":"/customizando-a-mensagem-noscript-no-gatsby","tags":["Dicas","Gatsby","React"],"title":"Customizando mensagem da tag noscript no Gatsby","image":{"publicURL":"/static/customizando-a-mensagem-noscript-no-gatsby-466dc6f262ac64d3289b052750d55f09.png","name":"customizando-a-mensagem-noscript-no-gatsby"}},"fields":{"readingTime":{"words":565}}}},"pageContext":{}}}