<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Arquivos ascii layout css - Web-Zoneware</title>
	<atom:link href="https://webzoneware.com/tag/ascii-layout-css/feed/" rel="self" type="application/rss+xml" />
	<link>https://webzoneware.com/tag/ascii-layout-css/</link>
	<description>Mais do que apenas uma academia web.</description>
	<lastBuildDate>Thu, 22 Oct 2026 02:53:27 +0000</lastBuildDate>
	<language>pt-BR</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	

<image>
	<url>https://webzoneware.com/wp-content/uploads/icon-webzoneware-150x150.png</url>
	<title>Arquivos ascii layout css - Web-Zoneware</title>
	<link>https://webzoneware.com/tag/ascii-layout-css/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Áreas Nomeadas com grid-template-areas &#124; Web Academy</title>
		<link>https://webzoneware.com/web-academy/curso-css/grid-template-areas-layouts/</link>
					<comments>https://webzoneware.com/web-academy/curso-css/grid-template-areas-layouts/#respond</comments>
		
		<dc:creator><![CDATA[Web-Zoneware]]></dc:creator>
		<pubDate>Thu, 22 Oct 2026 02:53:27 +0000</pubDate>
				<category><![CDATA[Curso de CSS e CSS3]]></category>
		<category><![CDATA[ascii layout css]]></category>
		<category><![CDATA[css grid layouts]]></category>
		<category><![CDATA[curso css3 completo]]></category>
		<category><![CDATA[design responsivo grid]]></category>
		<category><![CDATA[grid-area]]></category>
		<category><![CDATA[grid-template-areas]]></category>
		<guid isPermaLink="false">https://webzoneware.com/?p=29449</guid>

					<description><![CDATA[<p>Projetar a estrutura de um portal de notícias ou painel administrativo no CSS costumava exigir que você decorasse números de coordenadas cartesianas invisíveis: &#8220;este cabeçalho começa na linha 1 e vai até a 4, a barra lateral ocupa da coluna 1 à 2&#8230;&#8221;. Essa complexidade aritmética desaparece com a funcionalidade mais visual e poética já [&#8230;]</p>
<p>O post <a href="https://webzoneware.com/web-academy/curso-css/grid-template-areas-layouts/">Áreas Nomeadas com grid-template-areas | Web Academy</a> apareceu primeiro em <a href="https://webzoneware.com">Web-Zoneware</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p class="wzw-lesson-lead">
  Projetar a estrutura de um portal de notícias ou painel administrativo no CSS costumava exigir que você decorasse números de coordenadas cartesianas invisíveis: <em>&#8220;este cabeçalho começa na linha 1 e vai até a 4, a barra lateral ocupa da coluna 1 à 2&#8230;&#8221;</em>. Essa complexidade aritmética desaparece com a funcionalidade mais visual e poética já criada pela W3C: as <strong>Áreas Nomeadas</strong> através de <strong><code>grid-template-areas</code></strong> e <strong><code>grid-area</code></strong>. Com elas, você literalmente &#8220;desenha&#8221; o mapa do seu site em texto puro dentro do código CSS!
</p>
<h2>1. A Dupla Dinâmica: <code>grid-template-areas</code> e <code>grid-area</code></h2>
<p>
  A mágica das áreas nomeadas opera através de uma parceria conceitual simples entre o elemento pai e seus filhos:
</p>
<ol>
<li><strong>No elemento pai (Grid Container):</strong> Usamos <code>grid-template-areas</code> para desenhar uma matriz de palavras entre aspas, onde cada palavra representa o nome de uma região da tela.</li>
<li><strong>Nos elementos filhos (Grid Items):</strong> Usamos a propriedade <code>grid-area</code> para associar cada nó HTML ao nome correspondente desenhado na matriz pai.</li>
</ol>
<div class="wzw-code-wrapper">
    <div class="wzw-ide-card" id="wzw-code-73309" data-lang="css">
        <div class="wzw-ide-header">
            <div class="wzw-ide-dots" aria-hidden="true">
                <span class="wzw-dot wzw-dot-red"></span>
                <span class="wzw-dot wzw-dot-amber"></span>
                <span class="wzw-dot wzw-dot-green"></span>
            </div>
            <div class="wzw-ide-meta">
                <span class="wzw-ide-lang-badge">CSS3</span>
                                <span class="wzw-ide-lines-count">18 linhas</span>
            </div>
            <div class="wzw-ide-actions">
                <button type="button" class="wzw-ide-btn wzw-ide-wrap-btn" onclick="wzwToggleCodeWrap('wzw-code-73309', this)" title="Alternar quebra automática de linhas">
                    ⇄ Wrap
                </button>
                <button type="button" class="wzw-ide-btn wzw-ide-copy-btn" onclick="wzwCopyCodeBlock('wzw-code-73309', this)" aria-label="Copiar código para a área de transferência">
                    📋 <span class="wzw-copy-text">Copiar Código</span>
                </button>
            </div>
        </div>
        <div class="wzw-ide-body">
            <pre class="wzw-ide-pre" tabindex="0"><code class="wzw-ide-code"><span class="wzw-code-line"><span class="wzw-tk-comment">/* 1. O PAI DESENHA O MAPA DA CIDADE */</span></span>
<span class="wzw-code-line">.layout-site {</span>
<span class="wzw-code-line">  <span class="wzw-tk-attr">display</span>: grid;</span>
<span class="wzw-code-line">  <span class="wzw-tk-attr">grid-template-columns</span>: <span class="wzw-tk-num">260px</span> <span class="wzw-tk-num">1fr</span>;</span>
<span class="wzw-code-line">  <span class="wzw-tk-attr">grid-template-rows</span>: auto <span class="wzw-tk-num">1fr</span> auto;</span>
<span class="wzw-code-line">  <span class="wzw-tk-attr">grid-template-areas</span>:</span>
<span class="wzw-code-line">    <span class="wzw-tk-str">&quot;topo    topo&quot;</span></span>
<span class="wzw-code-line">    <span class="wzw-tk-str">&quot;barra   conteudo&quot;</span></span>
<span class="wzw-code-line">    <span class="wzw-tk-str">&quot;rodape  rodape&quot;</span>;</span>
<span class="wzw-code-line">  <span class="wzw-tk-attr">min-height</span>: <span class="wzw-tk-num">100vh</span>;</span>
<span class="wzw-code-line">  <span class="wzw-tk-attr">gap</span>: <span class="wzw-tk-num">20px</span>;</span>
<span class="wzw-code-line">}</span>
<span class="wzw-code-line">&nbsp;</span>
<span class="wzw-code-line"><span class="wzw-tk-comment">/* 2. OS FILHOS OCUPAM SEUS BAIRROS */</span></span>
<span class="wzw-code-line">.header-principal { grid-area: topo; }</span>
<span class="wzw-code-line">.sidebar-lateral   { grid-area: barra; }</span>
<span class="wzw-code-line">.main-conteudo    { grid-area: conteudo; }</span>
<span class="wzw-code-line">.footer-rodape    { grid-area: rodape; }</span>
</code></pre>
            <textarea class="wzw-ide-raw" aria-hidden="true" tabindex="-1" readonly>/* 1. O PAI DESENHA O MAPA DA CIDADE */
.layout-site {
  display: grid;
  grid-template-columns: 260px 1fr;
  grid-template-rows: auto 1fr auto;
  grid-template-areas:
    &quot;topo    topo&quot;
    &quot;barra   conteudo&quot;
    &quot;rodape  rodape&quot;;
  min-height: 100vh;
  gap: 20px;
}

/* 2. OS FILHOS OCUPAM SEUS BAIRROS */
.header-principal { grid-area: topo; }
.sidebar-lateral   { grid-area: barra; }
.main-conteudo    { grid-area: conteudo; }
.footer-rodape    { grid-area: rodape; }</textarea>
        </div>
    </div>
    
</div>
<p>
  Apenas de bater o olho no bloco de <code>grid-template-areas</code>, qualquer desenvolvedor que entrar na sua equipe saberá instantaneamente a disposição visual completa da página: o <code>topo</code> ocupa as duas colunas, a <code>barra</code> fica à esquerda, o <code>conteudo</code> à direita, e o <code>rodape</code> atravessa as duas colunas na base!
</p>
<h2>2. As 4 Regras Inquebráveis do <code>grid-template-areas</code></h2>
<p>
  O parser do navegador é extremamente rigoroso com a sintaxe das áreas. Para que o layout funcione perfeitamente, você deve respeitar estas 4 leis:
</p>
<h3>1. Linhas em Strings Isoladas</h3>
<p>Cada linha horizontal da sua grade deve estar encapsulada dentro de suas próprias aspas (<code>"..."</code>).</p>
<h3>2. Colunas Separadas por Espaços</h3>
<p>Cada palavra dentro da string representa uma coluna individual naquela linha, separada por um ou mais espaços em branco.</p>
<h3>3. A Lei Sagrada da Retangularidade</h3>
<div class="wzw-callout wzw-callout-warning">
<p><strong>Proibição de Formas Não-Retangulares:</strong> Toda área nomeada DEVE formar obrigatoriamente um <strong>retângulo perfeito ou quadrado contíguo</strong>. Você <em>NUNCA</em> pode criar áreas em formato de &#8220;L&#8221;, formato de &#8220;T&#8221; ou com nós espalhados em cantos opostos. Se você declarar <code>"topo lateral" "conteudo topo"</code>, o navegador anulará toda a regra da grade!</p>
</div>
<h3>4. O Token Ponto (<code>.</code>) para Células Vazias</h3>
<p>
  Se você desejar deixar uma célula vazia intencionalmente na grade (sem nenhum elemento dentro), basta usar o caractere ponto (<code>.</code>). Vários pontos seguidos sem espaço (como <code>...</code>) representam uma única célula vazia:
</p>
<div class="wzw-code-wrapper">
    <div class="wzw-ide-card" id="wzw-code-21597" data-lang="css">
        <div class="wzw-ide-header">
            <div class="wzw-ide-dots" aria-hidden="true">
                <span class="wzw-dot wzw-dot-red"></span>
                <span class="wzw-dot wzw-dot-amber"></span>
                <span class="wzw-dot wzw-dot-green"></span>
            </div>
            <div class="wzw-ide-meta">
                <span class="wzw-ide-lang-badge">CSS3</span>
                                <span class="wzw-ide-lines-count">8 linhas</span>
            </div>
            <div class="wzw-ide-actions">
                <button type="button" class="wzw-ide-btn wzw-ide-wrap-btn" onclick="wzwToggleCodeWrap('wzw-code-21597', this)" title="Alternar quebra automática de linhas">
                    ⇄ Wrap
                </button>
                <button type="button" class="wzw-ide-btn wzw-ide-copy-btn" onclick="wzwCopyCodeBlock('wzw-code-21597', this)" aria-label="Copiar código para a área de transferência">
                    📋 <span class="wzw-copy-text">Copiar Código</span>
                </button>
            </div>
        </div>
        <div class="wzw-ide-body">
            <pre class="wzw-ide-pre" tabindex="0"><code class="wzw-ide-code"><span class="wzw-code-line">.layout-com-vazio {</span>
<span class="wzw-code-line">  <span class="wzw-tk-attr">display</span>: grid;</span>
<span class="wzw-code-line">  <span class="wzw-tk-attr">grid-template-columns</span>: <span class="wzw-tk-num">200px</span> <span class="wzw-tk-num">1fr</span> <span class="wzw-tk-num">200px</span>;</span>
<span class="wzw-code-line">  <span class="wzw-tk-attr">grid-template-areas</span>:</span>
<span class="wzw-code-line">    <span class="wzw-tk-str">&quot;header  header  header&quot;</span></span>
<span class="wzw-code-line">    <span class="wzw-tk-str">&quot;sidebar main    .&quot;</span></span>
<span class="wzw-code-line">    <span class="wzw-tk-str">&quot;footer  footer  footer&quot;</span>; /* Há um espaço intencionalmente vazio à direita da main! */</span>
<span class="wzw-code-line">}</span>
</code></pre>
            <textarea class="wzw-ide-raw" aria-hidden="true" tabindex="-1" readonly>.layout-com-vazio {
  display: grid;
  grid-template-columns: 200px 1fr 200px;
  grid-template-areas:
    &quot;header  header  header&quot;
    &quot;sidebar main    .&quot;
    &quot;footer  footer  footer&quot;; /* Há um espaço intencionalmente vazio à direita da main! */
}</textarea>
        </div>
    </div>
    
</div>
<h2>3. O Superpoder da Responsividade Sem Tocar no HTML</h2>
<p>
  O verdadeiro brilho do <code>grid-template-areas</code> revela-se no design responsivo. Imagine que, no celular, você quer que o conteúdo principal (<code>conteudo</code>) apareça no topo, seguido pela barra lateral (<code>barra</code>), com tudo em uma única coluna vertical.
</p>
<p>
  Com outras abordagens, você teria que alterar o DOM via JavaScript ou recalcular dezenas de propriedades de linhas e colunas. Com áreas nomeadas, <strong>você não toca no HTML e não altera o CSS dos filhos</strong>! Basta redefinir o mapa no contêiner pai dentro da media query:
</p>
<div class="wzw-code-wrapper">
    <div class="wzw-ide-card" id="wzw-code-29309" data-lang="css">
        <div class="wzw-ide-header">
            <div class="wzw-ide-dots" aria-hidden="true">
                <span class="wzw-dot wzw-dot-red"></span>
                <span class="wzw-dot wzw-dot-amber"></span>
                <span class="wzw-dot wzw-dot-green"></span>
            </div>
            <div class="wzw-ide-meta">
                <span class="wzw-ide-lang-badge">CSS3</span>
                                <span class="wzw-ide-lines-count">11 linhas</span>
            </div>
            <div class="wzw-ide-actions">
                <button type="button" class="wzw-ide-btn wzw-ide-wrap-btn" onclick="wzwToggleCodeWrap('wzw-code-29309', this)" title="Alternar quebra automática de linhas">
                    ⇄ Wrap
                </button>
                <button type="button" class="wzw-ide-btn wzw-ide-copy-btn" onclick="wzwCopyCodeBlock('wzw-code-29309', this)" aria-label="Copiar código para a área de transferência">
                    📋 <span class="wzw-copy-text">Copiar Código</span>
                </button>
            </div>
        </div>
        <div class="wzw-ide-body">
            <pre class="wzw-ide-pre" tabindex="0"><code class="wzw-ide-code"><span class="wzw-code-line"><span class="wzw-tk-comment">/* REORGANIZAÇÃO COMPLETA PARA SMARTPHONES */</span></span>
<span class="wzw-code-line"><span class="wzw-tk-kw">@media</span> (max-width: <span class="wzw-tk-num">768px</span>) {</span>
<span class="wzw-code-line">  .layout-site {</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">grid-template-columns</span>: <span class="wzw-tk-num">1fr</span>; /* 1 coluna linear */</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">grid-template-areas</span>:</span>
<span class="wzw-code-line">      <span class="wzw-tk-str">&quot;topo&quot;</span></span>
<span class="wzw-code-line">      <span class="wzw-tk-str">&quot;conteudo&quot;</span>  /* O conteúdo sobe para a frente da barra lateral! */</span>
<span class="wzw-code-line">      <span class="wzw-tk-str">&quot;barra&quot;</span></span>
<span class="wzw-code-line">      <span class="wzw-tk-str">&quot;rodape&quot;</span>;</span>
<span class="wzw-code-line">  }</span>
<span class="wzw-code-line">}</span>
</code></pre>
            <textarea class="wzw-ide-raw" aria-hidden="true" tabindex="-1" readonly>/* REORGANIZAÇÃO COMPLETA PARA SMARTPHONES */
@media (max-width: 768px) {
  .layout-site {
    grid-template-columns: 1fr; /* 1 coluna linear */
    grid-template-areas:
      &quot;topo&quot;
      &quot;conteudo&quot;  /* O conteúdo sobe para a frente da barra lateral! */
      &quot;barra&quot;
      &quot;rodape&quot;;
  }
}</textarea>
        </div>
    </div>
    
</div>
<h2>4. Acessibilidade e a Ordem do DOM (WCAG 2.2)</h2>
<div class="wzw-callout wzw-callout-info">
<p><strong>Alerta de Usabilidade:</strong> Lembre-se sempre de que o <code>grid-template-areas</code> altera unicamente a <strong>renderização visual óptica</strong> na tela. O leitor de tela para deficientes visuais e a navegação por teclado com a tecla <code>Tab</code> continuarão navegando na sequência exata em que os elementos foram escritos no arquivo HTML. Mantenha seu código HTML semântico estruturado de forma lógica e coesa.</p>
</div>
<h2>5. Laboratório Prático: Dashboard Completo com ASCII Layout</h2>
<p>
  No código interativo abaixo, construímos um painel administrativo com 4 áreas nomeadas (topo, menu, analítico e widgets) e uma media query que reorganiza todo o fluxo em telas menores:
</p>
<div class="wzw-code-wrapper">
    <div class="wzw-ide-card" id="wzw-code-72837" data-lang="html">
        <div class="wzw-ide-header">
            <div class="wzw-ide-dots" aria-hidden="true">
                <span class="wzw-dot wzw-dot-red"></span>
                <span class="wzw-dot wzw-dot-amber"></span>
                <span class="wzw-dot wzw-dot-green"></span>
            </div>
            <div class="wzw-ide-meta">
                <span class="wzw-ide-lang-badge">HTML5</span>
                                <span class="wzw-ide-lines-count">75 linhas</span>
            </div>
            <div class="wzw-ide-actions">
                <button type="button" class="wzw-ide-btn wzw-ide-wrap-btn" onclick="wzwToggleCodeWrap('wzw-code-72837', this)" title="Alternar quebra automática de linhas">
                    ⇄ Wrap
                </button>
                <button type="button" class="wzw-ide-btn wzw-ide-copy-btn" onclick="wzwCopyCodeBlock('wzw-code-72837', this)" aria-label="Copiar código para a área de transferência">
                    📋 <span class="wzw-copy-text">Copiar Código</span>
                </button>
            </div>
        </div>
        <div class="wzw-ide-body">
            <pre class="wzw-ide-pre" tabindex="0"><code class="wzw-ide-code"><span class="wzw-code-line"><span class="wzw-tk-tag">&lt;!DOCTYPE</span><span class="wzw-tk-kw"> html</span><span class="wzw-tk-tag">&gt;</span></span>
<span class="wzw-code-line"><span class="wzw-tk-tag">&lt;html</span> <span class="wzw-tk-attr">lang</span>=<span class="wzw-tk-str">&quot;pt-BR&quot;</span><span class="wzw-tk-tag">&gt;</span></span>
<span class="wzw-code-line"><span class="wzw-tk-tag">&lt;head&gt;</span></span>
<span class="wzw-code-line">  <span class="wzw-tk-tag">&lt;meta</span> <span class="wzw-tk-attr">charset</span>=<span class="wzw-tk-str">&quot;UTF-8&quot;</span><span class="wzw-tk-tag">&gt;</span></span>
<span class="wzw-code-line">  <span class="wzw-tk-tag">&lt;title&gt;</span>Laboratório de Áreas Nomeadas CSS Grid<span class="wzw-tk-tag">&lt;/title&gt;</span></span>
<span class="wzw-code-line">  <span class="wzw-tk-tag">&lt;style&gt;</span></span>
<span class="wzw-code-line">    body {</span>
<span class="wzw-code-line">      font-family: &#039;Inter&#039;, system-ui, sans-serif;</span>
<span class="wzw-code-line">      background: #0b0f19;</span>
<span class="wzw-code-line">      color: #f8fafc;</span>
<span class="wzw-code-line">      margin: 0;</span>
<span class="wzw-code-line">      padding: 20px;</span>
<span class="wzw-code-line">    }</span>
<span class="wzw-code-line">&nbsp;</span>
<span class="wzw-code-line">    <span class="wzw-tk-comment">/* O MAPA MESTRE (DESKTOP: 3 COLUNAS) */</span></span>
<span class="wzw-code-line">    .dashboard-grid {</span>
<span class="wzw-code-line">      display: grid;</span>
<span class="wzw-code-line">      grid-template-columns: 220px 1fr 240px;</span>
<span class="wzw-code-line">      grid-template-rows: 70px 1fr 50px;</span>
<span class="wzw-code-line">      grid-template-areas:</span>
<span class="wzw-code-line">        &quot;topo   topo      topo&quot;</span>
<span class="wzw-code-line">        &quot;menu   analitico widgets&quot;</span>
<span class="wzw-code-line">        &quot;rodape rodape    rodape&quot;;</span>
<span class="wzw-code-line">      gap: 16px;</span>
<span class="wzw-code-line">      min-height: calc(100vh - 40px);</span>
<span class="wzw-code-line">    }</span>
<span class="wzw-code-line">&nbsp;</span>
<span class="wzw-code-line">    <span class="wzw-tk-comment">/* VINCULAÇÃO DAS ÁREAS */</span></span>
<span class="wzw-code-line">    .header-box  { grid-area: topo;      background: #1e293b; border: 1px solid #334155; }</span>
<span class="wzw-code-line">    .sidebar-nav { grid-area: menu;      background: #111827; border: 1px solid #1f2937; }</span>
<span class="wzw-code-line">    .main-body   { grid-area: analitico;  background: #0f172a; border: 1px solid #334155; }</span>
<span class="wzw-code-line">    .aside-info  { grid-area: widgets;   background: #1e293b; border: 1px solid #334155; }</span>
<span class="wzw-code-line">    .footer-box  { grid-area: rodape;    background: #020617; border: 1px solid #1e293b; }</span>
<span class="wzw-code-line">&nbsp;</span>
<span class="wzw-code-line">    <span class="wzw-tk-comment">/* Estilos cosméticos das caixas */</span></span>
<span class="wzw-code-line">    .header-box, .sidebar-nav, .main-body, .aside-info, .footer-box {</span>
<span class="wzw-code-line">      border-radius: 10px;</span>
<span class="wzw-code-line">      padding: 16px;</span>
<span class="wzw-code-line">      display: flex;</span>
<span class="wzw-code-line">      align-items: center;</span>
<span class="wzw-code-line">      justify-content: center;</span>
<span class="wzw-code-line">      font-weight: 700;</span>
<span class="wzw-code-line">      color: #94a3b8;</span>
<span class="wzw-code-line">    }</span>
<span class="wzw-code-line">&nbsp;</span>
<span class="wzw-code-line">    .main-body {</span>
<span class="wzw-code-line">      color: #38bdf8;</span>
<span class="wzw-code-line">      font-size: 1.2rem;</span>
<span class="wzw-code-line">    }</span>
<span class="wzw-code-line">&nbsp;</span>
<span class="wzw-code-line">    <span class="wzw-tk-comment">/* REORDENAÇÃO MÁGICA PARA MOBILE */</span></span>
<span class="wzw-code-line">    @media (max-width: 820px) {</span>
<span class="wzw-code-line">      .dashboard-grid {</span>
<span class="wzw-code-line">        grid-template-columns: 1fr;</span>
<span class="wzw-code-line">        grid-template-rows: auto;</span>
<span class="wzw-code-line">        grid-template-areas:</span>
<span class="wzw-code-line">          &quot;topo&quot;</span>
<span class="wzw-code-line">          &quot;analitico&quot;</span>
<span class="wzw-code-line">          &quot;widgets&quot;</span>
<span class="wzw-code-line">          &quot;menu&quot;</span>
<span class="wzw-code-line">          &quot;rodape&quot;;</span>
<span class="wzw-code-line">      }</span>
<span class="wzw-code-line">    }</span>
<span class="wzw-code-line">  <span class="wzw-tk-tag">&lt;/style&gt;</span></span>
<span class="wzw-code-line"><span class="wzw-tk-tag">&lt;/head&gt;</span></span>
<span class="wzw-code-line"><span class="wzw-tk-tag">&lt;body&gt;</span></span>
<span class="wzw-code-line">  <span class="wzw-tk-tag">&lt;div</span> <span class="wzw-tk-attr">class</span>=<span class="wzw-tk-str">&quot;dashboard-grid&quot;</span><span class="wzw-tk-tag">&gt;</span></span>
<span class="wzw-code-line">    <span class="wzw-tk-tag">&lt;header</span> <span class="wzw-tk-attr">class</span>=<span class="wzw-tk-str">&quot;header-box&quot;</span><span class="wzw-tk-tag">&gt;</span>⚡ Cabeçalho do Dashboard (topo)<span class="wzw-tk-tag">&lt;/header&gt;</span></span>
<span class="wzw-code-line">    <span class="wzw-tk-tag">&lt;nav</span> <span class="wzw-tk-attr">class</span>=<span class="wzw-tk-str">&quot;sidebar-nav&quot;</span><span class="wzw-tk-tag">&gt;</span>📁 Menu de Navegação (menu)<span class="wzw-tk-tag">&lt;/nav&gt;</span></span>
<span class="wzw-code-line">    <span class="wzw-tk-tag">&lt;main</span> <span class="wzw-tk-attr">class</span>=<span class="wzw-tk-str">&quot;main-body&quot;</span><span class="wzw-tk-tag">&gt;</span>📊 Painel Principal de Gráficos (analitico)<span class="wzw-tk-tag">&lt;/main&gt;</span></span>
<span class="wzw-code-line">    <span class="wzw-tk-tag">&lt;aside</span> <span class="wzw-tk-attr">class</span>=<span class="wzw-tk-str">&quot;aside-info&quot;</span><span class="wzw-tk-tag">&gt;</span>🔔 Widgets &amp; Alertas (widgets)<span class="wzw-tk-tag">&lt;/aside&gt;</span></span>
<span class="wzw-code-line">    <span class="wzw-tk-tag">&lt;footer</span> <span class="wzw-tk-attr">class</span>=<span class="wzw-tk-str">&quot;footer-box&quot;</span><span class="wzw-tk-tag">&gt;</span>&amp;copy; 2026 Economaster Web Portal (rodape)<span class="wzw-tk-tag">&lt;/footer&gt;</span></span>
<span class="wzw-code-line">  <span class="wzw-tk-tag">&lt;/div&gt;</span></span>
<span class="wzw-code-line"><span class="wzw-tk-tag">&lt;/body&gt;</span></span>
<span class="wzw-code-line"><span class="wzw-tk-tag">&lt;/html&gt;</span></span>
</code></pre>
            <textarea class="wzw-ide-raw" aria-hidden="true" tabindex="-1" readonly>&lt;!DOCTYPE html&gt;
&lt;html lang=&quot;pt-BR&quot;&gt;
&lt;head&gt;
  &lt;meta charset=&quot;UTF-8&quot;&gt;
  &lt;title&gt;Laboratório de Áreas Nomeadas CSS Grid&lt;/title&gt;
  &lt;style&gt;
    body {
      font-family: &#039;Inter&#039;, system-ui, sans-serif;
      background: #0b0f19;
      color: #f8fafc;
      margin: 0;
      padding: 20px;
    }

    /* O MAPA MESTRE (DESKTOP: 3 COLUNAS) */
    .dashboard-grid {
      display: grid;
      grid-template-columns: 220px 1fr 240px;
      grid-template-rows: 70px 1fr 50px;
      grid-template-areas:
        &quot;topo   topo      topo&quot;
        &quot;menu   analitico widgets&quot;
        &quot;rodape rodape    rodape&quot;;
      gap: 16px;
      min-height: calc(100vh - 40px);
    }

    /* VINCULAÇÃO DAS ÁREAS */
    .header-box  { grid-area: topo;      background: #1e293b; border: 1px solid #334155; }
    .sidebar-nav { grid-area: menu;      background: #111827; border: 1px solid #1f2937; }
    .main-body   { grid-area: analitico;  background: #0f172a; border: 1px solid #334155; }
    .aside-info  { grid-area: widgets;   background: #1e293b; border: 1px solid #334155; }
    .footer-box  { grid-area: rodape;    background: #020617; border: 1px solid #1e293b; }

    /* Estilos cosméticos das caixas */
    .header-box, .sidebar-nav, .main-body, .aside-info, .footer-box {
      border-radius: 10px;
      padding: 16px;
      display: flex;
      align-items: center;
      justify-content: center;
      font-weight: 700;
      color: #94a3b8;
    }

    .main-body {
      color: #38bdf8;
      font-size: 1.2rem;
    }

    /* REORDENAÇÃO MÁGICA PARA MOBILE */
    @media (max-width: 820px) {
      .dashboard-grid {
        grid-template-columns: 1fr;
        grid-template-rows: auto;
        grid-template-areas:
          &quot;topo&quot;
          &quot;analitico&quot;
          &quot;widgets&quot;
          &quot;menu&quot;
          &quot;rodape&quot;;
      }
    }
  &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;
  &lt;div class=&quot;dashboard-grid&quot;&gt;
    &lt;header class=&quot;header-box&quot;&gt;⚡ Cabeçalho do Dashboard (topo)&lt;/header&gt;
    &lt;nav class=&quot;sidebar-nav&quot;&gt;📁 Menu de Navegação (menu)&lt;/nav&gt;
    &lt;main class=&quot;main-body&quot;&gt;📊 Painel Principal de Gráficos (analitico)&lt;/main&gt;
    &lt;aside class=&quot;aside-info&quot;&gt;🔔 Widgets &amp; Alertas (widgets)&lt;/aside&gt;
    &lt;footer class=&quot;footer-box&quot;&gt;&amp;copy; 2026 Economaster Web Portal (rodape)&lt;/footer&gt;
  &lt;/div&gt;
&lt;/body&gt;
&lt;/html&gt;</textarea>
        </div>
    </div>
    
</div>
<p>
  Abra este laboratório no Playground IDE e redimensione a janela para menos de 820px: veja como todo o layout se reconfigura para celular instantaneamente através da nova matriz de <code>grid-template-areas</code>:
</p>
<p style="text-align: center; margin: 35px 0;">
  <a href="https://webzoneware.com/web-academy/playground-web/" class="wzw-btn-playground" target="_blank" rel="noopener">⚡ Abrir no Playground IDE &rarr;</a>
</p>
<h2>6. Resumo e Próximos Passos</h2>
<ul>
<li><code>grid-template-areas</code> permite desenhar layouts bidimensionais inteiros em formato de texto visual puro (ASCII Art).</li>
<li>Cada elemento filho é alocado no seu espaço através da declaração individual <code>grid-area: nome_da_area;</code>.</li>
<li>Toda área nomeada deve obrigatoriamente formar um retângulo contíguo perfeito.</li>
<li>O caractere ponto (<code>.</code>) é utilizado para reservar células intencionalmente vazias na matriz.</li>
<li>A responsividade com áreas nomeadas é incomparável: reescreva apenas a matriz de texto dentro de uma media query para reorganizar a página inteira sem encostar no HTML.</li>
</ul>
<div class="wzw-callout wzw-callout-success">
<p><strong>Próximo Passo:</strong> Agora que você domina as ferramentas mais avançadas de layout moderno, como planejar páginas que funcionam com perfeição em qualquer tela desde o primeiro rascunho de código? Na <strong>Lição 36</strong>, mergulharemos nos pilares do <strong>Design Responsivo &#038; Filosofia Mobile-First</strong>!</p>
</div>
<p>O post <a href="https://webzoneware.com/web-academy/curso-css/grid-template-areas-layouts/">Áreas Nomeadas com grid-template-areas | Web Academy</a> apareceu primeiro em <a href="https://webzoneware.com">Web-Zoneware</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://webzoneware.com/web-academy/curso-css/grid-template-areas-layouts/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
