<?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 radial-gradient css - Web-Zoneware</title>
	<atom:link href="https://webzoneware.com/tag/radial-gradient-css/feed/" rel="self" type="application/rss+xml" />
	<link>https://webzoneware.com/tag/radial-gradient-css/</link>
	<description>Mais do que apenas uma academia web.</description>
	<lastBuildDate>Wed, 21 Oct 2026 19:42:32 +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 radial-gradient css - Web-Zoneware</title>
	<link>https://webzoneware.com/tag/radial-gradient-css/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Background Size, Position e Gradientes CSS &#124; Web Academy</title>
		<link>https://webzoneware.com/web-academy/curso-css/background-size-position-gradientes/</link>
					<comments>https://webzoneware.com/web-academy/curso-css/background-size-position-gradientes/#respond</comments>
		
		<dc:creator><![CDATA[Web-Zoneware]]></dc:creator>
		<pubDate>Wed, 21 Oct 2026 19:42:32 +0000</pubDate>
				<category><![CDATA[Curso de CSS e CSS3]]></category>
		<category><![CDATA[background-position css]]></category>
		<category><![CDATA[background-size cover]]></category>
		<category><![CDATA[conic-gradient css]]></category>
		<category><![CDATA[linear-gradient css]]></category>
		<category><![CDATA[radial-gradient css]]></category>
		<guid isPermaLink="false">https://webzoneware.com/?p=29395</guid>

					<description><![CDATA[<p>Finalizamos o Módulo 1: Fundamentos, Sintaxe &#038; Seletores explorando o arsenal mais expressivo e visual do design de interfaces web: o dimensionamento dinâmico de imagens, o alinhamento posicional milimétrico e a geração procedural de gradientes no CSS. Ao compreender como o navegador renderiza cover, contain e calcula transições de cores matemáticas com linear-gradient(), radial-gradient() e [&#8230;]</p>
<p>O post <a href="https://webzoneware.com/web-academy/curso-css/background-size-position-gradientes/">Background Size, Position e Gradientes CSS | Web Academy</a> apareceu primeiro em <a href="https://webzoneware.com">Web-Zoneware</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p class="wzw-lesson-lead">
    Finalizamos o <strong>Módulo 1: Fundamentos, Sintaxe &#038; Seletores</strong> explorando o arsenal mais expressivo e visual do design de interfaces web: o dimensionamento dinâmico de imagens, o alinhamento posicional milimétrico e a geração procedural de <strong>gradientes no CSS</strong>. Ao compreender como o navegador renderiza <code>cover</code>, <code>contain</code> e calcula transições de cores matemáticas com <code>linear-gradient()</code>, <code>radial-gradient()</code> e <code>conic-gradient()</code>, você será capaz de construir interfaces com profundidade tridimensional, gráficos de pizza e efeitos de iluminação modernos com <strong>zero bytes de peso de download</strong> em imagens pesadas.
</p>
<h2>1. O Controle de Escala: <code>background-size</code></h2>
<p>
    Por padrão, uma imagem de fundo é desenhada em suas dimensões intrínsecas originais (<code>background-size: auto</code>). Se a imagem tiver 2000px de largura e a caixa tiver 400px, apenas o canto superior esquerdo da foto será exibido. Para controlar a escala proporcional da imagem dentro do elemento, o CSS disponibiliza duas palavras-chave consagradas e valores numéricos:
</p>
<div class="wzw-table-responsive">
<table class="wzw-tech-table">
<thead>
<tr>
<th>Valor</th>
<th>Comportamento Proporcional</th>
<th>Corta a Imagem?</th>
<th>Deixa Espaços Vazios?</th>
<th>Cenário Ideal</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>cover</code></td>
<td>Preenche <strong>100% da área</strong> da caixa, mantendo o aspect ratio.</td>
<td>Sim (recorta o excedente).</td>
<td>Nunca.</td>
<td>Banners de Hero Section, fundos de tela cheia.</td>
</tr>
<tr>
<td><code>contain</code></td>
<td>Redimensiona para caber <strong>100% visível</strong> sem nenhum corte.</td>
<td>Nunca.</td>
<td>Sim (gera barras laterais vazias).</td>
<td>Logotipos, fotos de produtos em e-commerce.</td>
</tr>
<tr>
<td><code>100% auto</code></td>
<td>Ocupa 100% da largura da caixa e calcula a altura proporcional.</td>
<td>Depende da altura.</td>
<td>Possível no eixo Y.</td>
<td>Faixas horizontais com proporção controlada.</td>
</tr>
<tr>
<td><code>largura altura</code></td>
<td>Força dimensões exatas em pixels, rem ou porcentagem.</td>
<td>Não corta, mas pode distorcer.</td>
<td>Não.</td>
<td>Texturas geométricas com repetição milimétrica.</td>
</tr>
</tbody>
</table>
</div>
<div class="wzw-code-wrapper">
<div class="wzw-code-header">
        <span class="wzw-code-badge">CSS</span><br />
        <span class="wzw-code-file">bg-size-examples.css</span>
    </div>
    <div class="wzw-ide-card" id="wzw-code-34031" 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">15 linhas</span>
            </div>
            <div class="wzw-ide-actions">
                <button type="button" class="wzw-ide-btn wzw-ide-wrap-btn" onclick="wzwToggleCodeWrap('wzw-code-34031', 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-34031', 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">/* O clássico banner Hero que preenche a tela inteira sem distorção */</span></span>
<span class="wzw-code-line">.hero-banner {</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">background-image</span>: url(<span class="wzw-tk-str">&#039;hero.webp&#039;</span>);</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">background-repeat</span>: no-repeat;</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">background-size</span>: cover;</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">background-position</span>: center;</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 logotipo que precisa aparecer 100% inteiro dentro do card */</span></span>
<span class="wzw-code-line">.card-logo {</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">background-image</span>: url(<span class="wzw-tk-str">&#039;marca.svg&#039;</span>);</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">background-repeat</span>: no-repeat;</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">background-size</span>: contain;</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">background-position</span>: center;</span>
<span class="wzw-code-line">}</span>
</code></pre>
            <textarea class="wzw-ide-raw" aria-hidden="true" tabindex="-1" readonly>/* O clássico banner Hero que preenche a tela inteira sem distorção */
.hero-banner {
    background-image: url(&#039;hero.webp&#039;);
    background-repeat: no-repeat;
    background-size: cover;
    background-position: center;
}

/* O logotipo que precisa aparecer 100% inteiro dentro do card */
.card-logo {
    background-image: url(&#039;marca.svg&#039;);
    background-repeat: no-repeat;
    background-size: contain;
    background-position: center;
}</textarea>
        </div>
    </div>
    
</div>
<h2>2. Posicionamento Milimétrico: <code>background-position</code></h2>
<p>
    A propriedade <code>background-position</code> define as coordenadas de ancoragem da imagem dentro da caixa do elemento.
</p>
<h3>Palavras-Chave e Porcentagens</h3>
<ul>
<li><code>center</code>: Centraliza a imagem perfeitamente nos eixos X e Y (equivalente a <code>50% 50%</code>).</li>
<li><code>top left</code>, <code>bottom right</code>: Ancoram nas extremidades da caixa.</li>
<li><code>center top</code>: Mantém a imagem centralizada horizontalmente e alinhada ao topo (excelente para fotos verticais de pessoas em banners, evitando cortar a cabeça dos modelos!).</li>
</ul>
<h3>A Sintaxe Moderna de 4 Valores com Deslocamento (Edge Offsets)</h3>
<p>
    O CSS permite posicionar a imagem com uma distância precisa a partir de qualquer borda específica:
</p>
<div class="wzw-code-wrapper">
<div class="wzw-code-header">
        <span class="wzw-code-badge">CSS</span><br />
        <span class="wzw-code-file">edge-offset.css</span>
    </div>
    <div class="wzw-ide-card" id="wzw-code-40289" 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">6 linhas</span>
            </div>
            <div class="wzw-ide-actions">
                <button type="button" class="wzw-ide-btn wzw-ide-wrap-btn" onclick="wzwToggleCodeWrap('wzw-code-40289', 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-40289', 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">/* Posiciona o ícone a 2rem da borda direita e a 1.5rem da borda inferior */</span></span>
<span class="wzw-code-line">.caixa-suporte {</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">background-image</span>: url(<span class="wzw-tk-str">&#039;chat-icon.svg&#039;</span>);</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">background-repeat</span>: no-repeat;</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">background-position</span>: right <span class="wzw-tk-num">2rem</span> bottom <span class="wzw-tk-num">1.5rem</span>;</span>
<span class="wzw-code-line">}</span>
</code></pre>
            <textarea class="wzw-ide-raw" aria-hidden="true" tabindex="-1" readonly>/* Posiciona o ícone a 2rem da borda direita e a 1.5rem da borda inferior */
.caixa-suporte {
    background-image: url(&#039;chat-icon.svg&#039;);
    background-repeat: no-repeat;
    background-position: right 2rem bottom 1.5rem;
}</textarea>
        </div>
    </div>
    
</div>
<h2>3. Gradientes Lineares: <code>linear-gradient()</code></h2>
<p>
    No CSS, <strong>gradientes são considerados imagens procedurais</strong> (do tipo de dado <code>&lt;image&gt;</code>) calculadas matematicamente pelo navegador. Por isso, são declarados na propriedade <code>background-image</code> (ou no shorthand <code>background</code>).
</p>
<p>
    O <code>linear-gradient()</code> transita suavemente entre duas ou mais cores ao longo de uma linha reta imaginária.
</p>
<div class="wzw-code-wrapper">
<div class="wzw-code-header">
        <span class="wzw-code-badge">CSS</span><br />
        <span class="wzw-code-file">linear-gradients.css</span>
    </div>
    <div class="wzw-ide-card" id="wzw-code-40215" 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">24 linhas</span>
            </div>
            <div class="wzw-ide-actions">
                <button type="button" class="wzw-ide-btn wzw-ide-wrap-btn" onclick="wzwToggleCodeWrap('wzw-code-40215', 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-40215', 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. Direção por palavras-chave com &#039;to&#039; (to right, to bottom, to top left) */</span></span>
<span class="wzw-code-line">.gradiente-horizontal {</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">background-image</span>: linear-gradient(to right, <span class="wzw-tk-num">#0284c7</span>, <span class="wzw-tk-num">#38bdf8</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. Direção angular precisa em graus (deg) */</span></span>
<span class="wzw-code-line">.gradiente-diagonal {</span>
<span class="wzw-code-line">    <span class="wzw-tk-comment">/* 135deg transita do canto superior esquerdo para o inferior direito */</span></span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">background-image</span>: linear-gradient(<span class="wzw-tk-num">135deg</span>, <span class="wzw-tk-num">#0f172a</span>, <span class="wzw-tk-num">#1e293b</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">/* 3. Múltiplas paradas de cor com porcentagens (Color Stops) */</span></span>
<span class="wzw-code-line">.gradiente-tricolor {</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">background-image</span>: linear-gradient(<span class="wzw-tk-num">90deg</span>, </span>
<span class="wzw-code-line">        <span class="wzw-tk-comment">#0284c7 0%, </span></span>
<span class="wzw-code-line">        <span class="wzw-tk-comment">#38bdf8 50%, </span></span>
<span class="wzw-code-line">        <span class="wzw-tk-comment">#818cf8 100%</span></span>
<span class="wzw-code-line">    );</span>
<span class="wzw-code-line">}</span>
<span class="wzw-code-line">&nbsp;</span>
<span class="wzw-code-line"><span class="wzw-tk-comment">/* 4. Paradas Bruscas (Hard Stops): Cria divisões nítidas sem desfoque (duas metades) */</span></span>
<span class="wzw-code-line">.fundo-dividido {</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">background-image</span>: linear-gradient(to right, <span class="wzw-tk-num">#0284c7</span> 50%, <span class="wzw-tk-num">#0f172a</span> 50%);</span>
<span class="wzw-code-line">}</span>
</code></pre>
            <textarea class="wzw-ide-raw" aria-hidden="true" tabindex="-1" readonly>/* 1. Direção por palavras-chave com &#039;to&#039; (to right, to bottom, to top left) */
.gradiente-horizontal {
    background-image: linear-gradient(to right, #0284c7, #38bdf8);
}

/* 2. Direção angular precisa em graus (deg) */
.gradiente-diagonal {
    /* 135deg transita do canto superior esquerdo para o inferior direito */
    background-image: linear-gradient(135deg, #0f172a, #1e293b);
}

/* 3. Múltiplas paradas de cor com porcentagens (Color Stops) */
.gradiente-tricolor {
    background-image: linear-gradient(90deg, 
        #0284c7 0%, 
        #38bdf8 50%, 
        #818cf8 100%
    );
}

/* 4. Paradas Bruscas (Hard Stops): Cria divisões nítidas sem desfoque (duas metades) */
.fundo-dividido {
    background-image: linear-gradient(to right, #0284c7 50%, #0f172a 50%);
}</textarea>
        </div>
    </div>
    
</div>
<h2>4. Gradientes Radiais: <code>radial-gradient()</code></h2>
<p>
    O <code>radial-gradient()</code> irradia cores a partir de um ponto focal central em formato circular ou elíptico, imitando o comportamento óptico de holofotes e lâmpadas:
</p>
<div class="wzw-code-wrapper">
<div class="wzw-code-header">
        <span class="wzw-code-badge">CSS</span><br />
        <span class="wzw-code-file">radial-gradients.css</span>
    </div>
    <div class="wzw-ide-card" id="wzw-code-83125" 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">9 linhas</span>
            </div>
            <div class="wzw-ide-actions">
                <button type="button" class="wzw-ide-btn wzw-ide-wrap-btn" onclick="wzwToggleCodeWrap('wzw-code-83125', 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-83125', 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. Gradiente circular centralizado */</span></span>
<span class="wzw-code-line">.efeito-spotlight {</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">background-image</span>: radial-gradient(circle, <span class="wzw-tk-num">#38bdf8</span> 0%, <span class="wzw-tk-num">#0f172a</span> 70%);</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. Ponto de luz descentralizado (posicionado no topo direito) */</span></span>
<span class="wzw-code-line">.brilho-topo-direito {</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">background-image</span>: radial-gradient(ellipse at top right, rgba(56, 189, 248, 0.4), transparent 60%);</span>
<span class="wzw-code-line">}</span>
</code></pre>
            <textarea class="wzw-ide-raw" aria-hidden="true" tabindex="-1" readonly>/* 1. Gradiente circular centralizado */
.efeito-spotlight {
    background-image: radial-gradient(circle, #38bdf8 0%, #0f172a 70%);
}

/* 2. Ponto de luz descentralizado (posicionado no topo direito) */
.brilho-topo-direito {
    background-image: radial-gradient(ellipse at top right, rgba(56, 189, 248, 0.4), transparent 60%);
}</textarea>
        </div>
    </div>
    
</div>
<h2>5. Gradientes Cônicos: <code>conic-gradient()</code></h2>
<p>
    O gradiente cônico é a função mais recente e versátil da especificação de imagens do CSS. Ele rotaciona as cores ao redor de um ponto central, como os ponteiros de um relógio ou um gráfico de setores circulares.
</p>
<p>
    Com o <code>conic-gradient()</code>, podemos desenhar <strong>gráficos de pizza (Pie Charts)</strong> e <strong>indicadores de progresso circulares</strong> em HTML e CSS puros, sem bibliotecas pesadas de gráficos!
</p>
<div class="wzw-code-wrapper">
<div class="wzw-code-header">
        <span class="wzw-code-badge">HTML &#038; CSS</span><br />
        <span class="wzw-code-file">pie-chart.css</span>
    </div>
    <div class="wzw-ide-card" id="wzw-code-92274" 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">1 linha</span>
            </div>
            <div class="wzw-ide-actions">
                <button type="button" class="wzw-ide-btn wzw-ide-wrap-btn" onclick="wzwToggleCodeWrap('wzw-code-92274', 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-92274', 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;div</span> <span class="wzw-tk-attr">class</span>=<span class="wzw-tk-str">&quot;grafico-pizza&quot;</span><span class="wzw-tk-tag">&gt;</span><span class="wzw-tk-tag">&lt;/div&gt;</span></span>
</code></pre>
            <textarea class="wzw-ide-raw" aria-hidden="true" tabindex="-1" readonly>&lt;div class=&quot;grafico-pizza&quot;&gt;&lt;/div&gt;</textarea>
        </div>
    </div>
    
    <div class="wzw-ide-card" id="wzw-code-41302" 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">10 linhas</span>
            </div>
            <div class="wzw-ide-actions">
                <button type="button" class="wzw-ide-btn wzw-ide-wrap-btn" onclick="wzwToggleCodeWrap('wzw-code-41302', 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-41302', 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">/* Gráfico de Pizza 100% CSS representando 65% de conclusão */</span></span>
<span class="wzw-code-line">.grafico-pizza {</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">width</span>: <span class="wzw-tk-num">140px</span>;</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">height</span>: <span class="wzw-tk-num">140px</span>;</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">border-radius</span>: 50%;</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">background-image</span>: conic-gradient(</span>
<span class="wzw-code-line">        <span class="wzw-tk-comment">#0284c7 0% 65%,     /* 65% azul primário */</span></span>
<span class="wzw-code-line">        <span class="wzw-tk-comment">#334155 65% 100%    /* 35% cinza restante */</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>/* Gráfico de Pizza 100% CSS representando 65% de conclusão */
.grafico-pizza {
    width: 140px;
    height: 140px;
    border-radius: 50%;
    background-image: conic-gradient(
        #0284c7 0% 65%,     /* 65% azul primário */
        #334155 65% 100%    /* 35% cinza restante */
    );
}</textarea>
        </div>
    </div>
    
</div>
<h2>6. O Shorthand Completo com a Barra Oblíqua (<code>/</code>)</h2>
<p>
    Ao declarar a propriedade resumida <code>background</code> incluindo tamanho e posição, o CSS exige uma regra sintática obrigatória: <strong>a posição e o tamanho devem ser separados por uma barra inclinada (<code>position / size</code>)</strong>:
</p>
<div class="wzw-code-wrapper">
<div class="wzw-code-header">
        <span class="wzw-code-badge">CSS</span><br />
        <span class="wzw-code-file">shorthand-syntax.css</span>
    </div>
    <div class="wzw-ide-card" id="wzw-code-84027" 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">4 linhas</span>
            </div>
            <div class="wzw-ide-actions">
                <button type="button" class="wzw-ide-btn wzw-ide-wrap-btn" onclick="wzwToggleCodeWrap('wzw-code-84027', 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-84027', 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">/* Ordem oficial: [color] [image] [repeat] [attachment] [position] / [size] */</span></span>
<span class="wzw-code-line">.banner-mestre {</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">background</span>: <span class="wzw-tk-num">#0f172a</span> url(<span class="wzw-tk-str">&#039;hero.webp&#039;</span>) no-repeat center / cover;</span>
<span class="wzw-code-line">}</span>
</code></pre>
            <textarea class="wzw-ide-raw" aria-hidden="true" tabindex="-1" readonly>/* Ordem oficial: [color] [image] [repeat] [attachment] [position] / [size] */
.banner-mestre {
    background: #0f172a url(&#039;hero.webp&#039;) no-repeat center / cover;
}</textarea>
        </div>
    </div>
    
</div>
<div class="wzw-callout wzw-callout-warning">
<div class="wzw-callout-icon">⚠️</div>
<div class="wzw-callout-content">
        <strong>Sem a barra, a regra quebra!</strong> Se você escrever <code>background: url('hero.webp') center cover;</code> (sem a barra <code>/</code>), o navegador não conseguirá distinguir qual valor representa as coordenadas e qual representa a escala, descartando a propriedade inteira.
    </div>
</div>
<h2>7. Laboratório Prático: Card Analítico com Efeito Spotlight e Gráfico Cônico</h2>
<p>
    Neste laboratório de encerramento do Módulo 1, construiremos um card de métricas com acabamento profissional combinando gradientes radiais de iluminação, gráficos cônicos e bordas semitransparentes:
</p>
<div class="wzw-code-wrapper">
<div class="wzw-code-header">
        <span class="wzw-code-badge">HTML</span><br />
        <span class="wzw-code-file">analytics-card.html</span>
    </div>
    <div class="wzw-ide-card" id="wzw-code-36343" 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">23 linhas</span>
            </div>
            <div class="wzw-ide-actions">
                <button type="button" class="wzw-ide-btn wzw-ide-wrap-btn" onclick="wzwToggleCodeWrap('wzw-code-36343', 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-36343', 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;div</span> <span class="wzw-tk-attr">class</span>=<span class="wzw-tk-str">&quot;metric-card&quot;</span><span class="wzw-tk-tag">&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;metric-header&quot;</span><span class="wzw-tk-tag">&gt;</span></span>
<span class="wzw-code-line">        <span class="wzw-tk-tag">&lt;span</span> <span class="wzw-tk-attr">class</span>=<span class="wzw-tk-str">&quot;metric-badge&quot;</span><span class="wzw-tk-tag">&gt;</span>Módulo 1 Concluído<span class="wzw-tk-tag">&lt;/span&gt;</span></span>
<span class="wzw-code-line">        <span class="wzw-tk-tag">&lt;h3</span> <span class="wzw-tk-attr">class</span>=<span class="wzw-tk-str">&quot;metric-title&quot;</span><span class="wzw-tk-tag">&gt;</span>Taxa de Absorção do Curso<span class="wzw-tk-tag">&lt;/h3&gt;</span></span>
<span class="wzw-code-line">    <span class="wzw-tk-tag">&lt;/div&gt;</span></span>
<span class="wzw-code-line">&nbsp;</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;metric-body&quot;</span><span class="wzw-tk-tag">&gt;</span></span>
<span class="wzw-code-line">        <span class="wzw-tk-comment">&lt;!-- Gráfico circular de progresso puramente com conic-gradient --&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;donut-chart&quot;</span><span class="wzw-tk-tag">&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;donut-center&quot;</span><span class="wzw-tk-tag">&gt;</span></span>
<span class="wzw-code-line">                <span class="wzw-tk-tag">&lt;span</span> <span class="wzw-tk-attr">class</span>=<span class="wzw-tk-str">&quot;donut-number&quot;</span><span class="wzw-tk-tag">&gt;</span>84%<span class="wzw-tk-tag">&lt;/span&gt;</span></span>
<span class="wzw-code-line">                <span class="wzw-tk-tag">&lt;span</span> <span class="wzw-tk-attr">class</span>=<span class="wzw-tk-str">&quot;donut-label&quot;</span><span class="wzw-tk-tag">&gt;</span>Score<span class="wzw-tk-tag">&lt;/span&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;/div&gt;</span></span>
<span class="wzw-code-line">&nbsp;</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;metric-info&quot;</span><span class="wzw-tk-tag">&gt;</span></span>
<span class="wzw-code-line">            <span class="wzw-tk-tag">&lt;p</span> <span class="wzw-tk-attr">class</span>=<span class="wzw-tk-str">&quot;metric-desc&quot;</span><span class="wzw-tk-tag">&gt;</span></span>
<span class="wzw-code-line">                Você dominou seletores básicos, combinadores, herança, especificidade, organização BEM e o sistema de backgrounds do CSS.</span>
<span class="wzw-code-line">            <span class="wzw-tk-tag">&lt;/p&gt;</span></span>
<span class="wzw-code-line">            <span class="wzw-tk-tag">&lt;a</span> <span class="wzw-tk-attr">href</span>=<span class="wzw-tk-str">&quot;#modulo-2&quot;</span> <span class="wzw-tk-attr">class</span>=<span class="wzw-tk-str">&quot;btn-next-module&quot;</span><span class="wzw-tk-tag">&gt;</span>Avançar para Módulo 2 →<span class="wzw-tk-tag">&lt;/a&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;/div&gt;</span></span>
<span class="wzw-code-line"><span class="wzw-tk-tag">&lt;/div&gt;</span></span>
</code></pre>
            <textarea class="wzw-ide-raw" aria-hidden="true" tabindex="-1" readonly>&lt;div class=&quot;metric-card&quot;&gt;
    &lt;div class=&quot;metric-header&quot;&gt;
        &lt;span class=&quot;metric-badge&quot;&gt;Módulo 1 Concluído&lt;/span&gt;
        &lt;h3 class=&quot;metric-title&quot;&gt;Taxa de Absorção do Curso&lt;/h3&gt;
    &lt;/div&gt;

    &lt;div class=&quot;metric-body&quot;&gt;
        &lt;!-- Gráfico circular de progresso puramente com conic-gradient --&gt;
        &lt;div class=&quot;donut-chart&quot;&gt;
            &lt;div class=&quot;donut-center&quot;&gt;
                &lt;span class=&quot;donut-number&quot;&gt;84%&lt;/span&gt;
                &lt;span class=&quot;donut-label&quot;&gt;Score&lt;/span&gt;
            &lt;/div&gt;
        &lt;/div&gt;

        &lt;div class=&quot;metric-info&quot;&gt;
            &lt;p class=&quot;metric-desc&quot;&gt;
                Você dominou seletores básicos, combinadores, herança, especificidade, organização BEM e o sistema de backgrounds do CSS.
            &lt;/p&gt;
            &lt;a href=&quot;#modulo-2&quot; class=&quot;btn-next-module&quot;&gt;Avançar para Módulo 2 →&lt;/a&gt;
        &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;</textarea>
        </div>
    </div>
    
</div>
<div class="wzw-code-wrapper">
<div class="wzw-code-header">
        <span class="wzw-code-badge">CSS</span><br />
        <span class="wzw-code-file">analytics-card.css</span>
    </div>
    <div class="wzw-ide-card" id="wzw-code-51600" 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">127 linhas</span>
            </div>
            <div class="wzw-ide-actions">
                <button type="button" class="wzw-ide-btn wzw-ide-wrap-btn" onclick="wzwToggleCodeWrap('wzw-code-51600', 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-51600', 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">/* Reset e base */</span></span>
<span class="wzw-code-line">* {</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">box-sizing</span>: border-box;</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">margin</span>: 0;</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">padding</span>: 0;</span>
<span class="wzw-code-line">}</span>
<span class="wzw-code-line">&nbsp;</span>
<span class="wzw-code-line">body {</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">font-family</span>: -apple-system, BlinkMacSystemFont, <span class="wzw-tk-str">&#039;Segoe UI&#039;</span>, Roboto, sans-serif;</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">background-color</span>: <span class="wzw-tk-num">#020617</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">display</span>: flex;</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">justify-content</span>: center;</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">align-items</span>: center;</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">padding</span>: <span class="wzw-tk-num">1.5rem</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">/* Card com Efeito Spotlight (Gradiente Radial + Cor Base Escura) */</span></span>
<span class="wzw-code-line">.metric-card {</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">background-color</span>: <span class="wzw-tk-num">#0b0f19</span>;</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">background-image</span>: radial-gradient(ellipse at top left, rgba(56, 189, 248, 0.15), transparent 70%);</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">border</span>: <span class="wzw-tk-num">1px</span> solid rgba(56, 189, 248, 0.2);</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">border-radius</span>: <span class="wzw-tk-num">16px</span>;</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">padding</span>: <span class="wzw-tk-num">2.25rem</span>;</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">max-width</span>: <span class="wzw-tk-num">520px</span>;</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">width</span>: 100%;</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">color</span>: <span class="wzw-tk-num">#f8fafc</span>;</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">box-shadow</span>: 0 <span class="wzw-tk-num">25px</span> <span class="wzw-tk-num">50px</span> -<span class="wzw-tk-num">12px</span> rgba(0, 0, 0, 0.6);</span>
<span class="wzw-code-line">}</span>
<span class="wzw-code-line">&nbsp;</span>
<span class="wzw-code-line">.metric-badge {</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">display</span>: inline-block;</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">padding</span>: <span class="wzw-tk-num">0.35rem</span> <span class="wzw-tk-num">0.75rem</span>;</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">font-size</span>: <span class="wzw-tk-num">0.75rem</span>;</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">font-weight</span>: 700;</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">text-transform</span>: uppercase;</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">letter-spacing</span>: <span class="wzw-tk-num">0.05em</span>;</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">border-radius</span>: <span class="wzw-tk-num">9999px</span>;</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">background-color</span>: rgba(34, 197, 94, 0.15);</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">color</span>: <span class="wzw-tk-num">#4ade80</span>;</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">border</span>: <span class="wzw-tk-num">1px</span> solid rgba(34, 197, 94, 0.3);</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">margin-bottom</span>: <span class="wzw-tk-num">0.75rem</span>;</span>
<span class="wzw-code-line">}</span>
<span class="wzw-code-line">&nbsp;</span>
<span class="wzw-code-line">.metric-title {</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">font-size</span>: <span class="wzw-tk-num">1.35rem</span>;</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">color</span>: <span class="wzw-tk-num">#ffffff</span>;</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">margin-bottom</span>: <span class="wzw-tk-num">1.75rem</span>;</span>
<span class="wzw-code-line">}</span>
<span class="wzw-code-line">&nbsp;</span>
<span class="wzw-code-line">.metric-body {</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">display</span>: flex;</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">align-items</span>: center;</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">gap</span>: <span class="wzw-tk-num">2rem</span>;</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">flex-wrap</span>: wrap;</span>
<span class="wzw-code-line">}</span>
<span class="wzw-code-line">&nbsp;</span>
<span class="wzw-code-line"><span class="wzw-tk-comment">/* Gráfico em Rosca (Donut) usando conic-gradient e aninhamento */</span></span>
<span class="wzw-code-line">.donut-chart {</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">width</span>: <span class="wzw-tk-num">130px</span>;</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">height</span>: <span class="wzw-tk-num">130px</span>;</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">border-radius</span>: 50%;</span>
<span class="wzw-code-line">    <span class="wzw-tk-comment">/* Gradiente cônico dividindo 84% de progresso ciano e 16% de fundo escuro */</span></span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">background-image</span>: conic-gradient(</span>
<span class="wzw-code-line">        <span class="wzw-tk-comment">#38bdf8 0% 84%,</span></span>
<span class="wzw-code-line">        <span class="wzw-tk-comment">#1e293b 84% 100%</span></span>
<span class="wzw-code-line">    );</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">display</span>: flex;</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">justify-content</span>: center;</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">align-items</span>: center;</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">flex-shrink</span>: 0;</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">box-shadow</span>: 0 0 <span class="wzw-tk-num">20px</span> rgba(56, 189, 248, 0.25);</span>
<span class="wzw-code-line">}</span>
<span class="wzw-code-line">&nbsp;</span>
<span class="wzw-code-line"><span class="wzw-tk-comment">/* Miolo que cria o furo da rosca (Donut) */</span></span>
<span class="wzw-code-line">.donut-center {</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">width</span>: <span class="wzw-tk-num">95px</span>;</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">height</span>: <span class="wzw-tk-num">95px</span>;</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">border-radius</span>: 50%;</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">background-color</span>: <span class="wzw-tk-num">#0b0f19</span>;</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">display</span>: flex;</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">flex-direction</span>: column;</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">justify-content</span>: center;</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">align-items</span>: center;</span>
<span class="wzw-code-line">}</span>
<span class="wzw-code-line">&nbsp;</span>
<span class="wzw-code-line">.donut-number {</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">font-size</span>: <span class="wzw-tk-num">1.5rem</span>;</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">font-weight</span>: 800;</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">color</span>: <span class="wzw-tk-num">#ffffff</span>;</span>
<span class="wzw-code-line">}</span>
<span class="wzw-code-line">&nbsp;</span>
<span class="wzw-code-line">.donut-label {</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">font-size</span>: <span class="wzw-tk-num">0.7rem</span>;</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">color</span>: <span class="wzw-tk-num">#94a3b8</span>;</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">text-transform</span>: uppercase;</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">letter-spacing</span>: <span class="wzw-tk-num">0.05em</span>;</span>
<span class="wzw-code-line">}</span>
<span class="wzw-code-line">&nbsp;</span>
<span class="wzw-code-line">.metric-info {</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">flex</span>: 1;</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">min-width</span>: <span class="wzw-tk-num">200px</span>;</span>
<span class="wzw-code-line">}</span>
<span class="wzw-code-line">&nbsp;</span>
<span class="wzw-code-line">.metric-desc {</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">font-size</span>: <span class="wzw-tk-num">0.875rem</span>;</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">line-height</span>: 1.6;</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">color</span>: <span class="wzw-tk-num">#94a3b8</span>;</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">margin-bottom</span>: <span class="wzw-tk-num">1.25rem</span>;</span>
<span class="wzw-code-line">}</span>
<span class="wzw-code-line">&nbsp;</span>
<span class="wzw-code-line">.btn-next-module {</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">display</span>: inline-block;</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">background</span>: linear-gradient(<span class="wzw-tk-num">135deg</span>, <span class="wzw-tk-num">#0284c7</span>, <span class="wzw-tk-num">#38bdf8</span>);</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">color</span>: <span class="wzw-tk-num">#ffffff</span>;</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">text-decoration</span>: none;</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">font-size</span>: <span class="wzw-tk-num">0.875rem</span>;</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">font-weight</span>: 600;</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">padding</span>: <span class="wzw-tk-num">0.65rem</span> <span class="wzw-tk-num">1.25rem</span>;</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">border-radius</span>: <span class="wzw-tk-num">8px</span>;</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">transition</span>: opacity <span class="wzw-tk-num">0.2s</span> ease, transform <span class="wzw-tk-num">0.2s</span> ease;</span>
<span class="wzw-code-line">}</span>
<span class="wzw-code-line">&nbsp;</span>
<span class="wzw-code-line">.btn-next-module<span class="wzw-tk-kw">:hover</span> {</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">opacity</span>: 0.9;</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">transform</span>: translateY(-<span class="wzw-tk-num">2px</span>);</span>
<span class="wzw-code-line">}</span>
</code></pre>
            <textarea class="wzw-ide-raw" aria-hidden="true" tabindex="-1" readonly>/* Reset e base */
* {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

body {
    font-family: -apple-system, BlinkMacSystemFont, &#039;Segoe UI&#039;, Roboto, sans-serif;
    background-color: #020617;
    min-height: 100vh;
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 1.5rem;
}

/* Card com Efeito Spotlight (Gradiente Radial + Cor Base Escura) */
.metric-card {
    background-color: #0b0f19;
    background-image: radial-gradient(ellipse at top left, rgba(56, 189, 248, 0.15), transparent 70%);
    border: 1px solid rgba(56, 189, 248, 0.2);
    border-radius: 16px;
    padding: 2.25rem;
    max-width: 520px;
    width: 100%;
    color: #f8fafc;
    box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.6);
}

.metric-badge {
    display: inline-block;
    padding: 0.35rem 0.75rem;
    font-size: 0.75rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    border-radius: 9999px;
    background-color: rgba(34, 197, 94, 0.15);
    color: #4ade80;
    border: 1px solid rgba(34, 197, 94, 0.3);
    margin-bottom: 0.75rem;
}

.metric-title {
    font-size: 1.35rem;
    color: #ffffff;
    margin-bottom: 1.75rem;
}

.metric-body {
    display: flex;
    align-items: center;
    gap: 2rem;
    flex-wrap: wrap;
}

/* Gráfico em Rosca (Donut) usando conic-gradient e aninhamento */
.donut-chart {
    width: 130px;
    height: 130px;
    border-radius: 50%;
    /* Gradiente cônico dividindo 84% de progresso ciano e 16% de fundo escuro */
    background-image: conic-gradient(
        #38bdf8 0% 84%,
        #1e293b 84% 100%
    );
    display: flex;
    justify-content: center;
    align-items: center;
    flex-shrink: 0;
    box-shadow: 0 0 20px rgba(56, 189, 248, 0.25);
}

/* Miolo que cria o furo da rosca (Donut) */
.donut-center {
    width: 95px;
    height: 95px;
    border-radius: 50%;
    background-color: #0b0f19;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
}

.donut-number {
    font-size: 1.5rem;
    font-weight: 800;
    color: #ffffff;
}

.donut-label {
    font-size: 0.7rem;
    color: #94a3b8;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.metric-info {
    flex: 1;
    min-width: 200px;
}

.metric-desc {
    font-size: 0.875rem;
    line-height: 1.6;
    color: #94a3b8;
    margin-bottom: 1.25rem;
}

.btn-next-module {
    display: inline-block;
    background: linear-gradient(135deg, #0284c7, #38bdf8);
    color: #ffffff;
    text-decoration: none;
    font-size: 0.875rem;
    font-weight: 600;
    padding: 0.65rem 1.25rem;
    border-radius: 8px;
    transition: opacity 0.2s ease, transform 0.2s ease;
}

.btn-next-module:hover {
    opacity: 0.9;
    transform: translateY(-2px);
}</textarea>
        </div>
    </div>
    
<div class="wzw-code-actions">
        <a href="https://webzoneware.com/web-academy/playground-web/" class="wzw-btn-playground" target="_blank" rel="noopener">⚡ Abrir no Playground IDE &rarr;</a>
    </div>
</div>
<h2>8. Boas Práticas, Acessibilidade &#038; Performance com Gradientes</h2>
<ul>
<li>
        <strong>✅ Gradientes São Infinitamente Mais Rápidos que Imagens:</strong> Sempre que precisar de transições de cor ou sombras de fundo, use CSS Gradients. Eles têm <strong>0 KB de download de rede</strong>, são desenhados diretamente na GPU e escalam perfeitamente para qualquer resolução de tela (Retina, 4K, 8K) sem granular ou pixelar.
    </li>
<li>
        <strong>✅ Teste o Contraste WCAG em Ambas as Pontas:</strong> Se o seu gradiente linear vai de um azul escuro (<code>#0f172a</code>) a um ciano claro (<code>#38bdf8</code>), um texto branco funcionará na ponta escura, mas ficará totalmente ilegível na ponta clara. Certifique-se de que a taxa de contraste (4.5:1) seja atendida em toda a extensão do gradiente sob o texto.
    </li>
<li>
        <strong>✅ Posicione com Intenção (Foco no Rosto):</strong> Em fotos verticais de pessoas como fundo de banners, configure <code>background-position: center top;</code>. Isso impede que cortes automáticos de tela no mobile decapitem a pessoa na foto.
    </li>
</ul>
<h2>9. 🎉 Conclusão do Módulo 1 &#038; O Que Esperar no Módulo 2</h2>
<p>
    <strong>Parabéns! Você concluiu com sucesso o Módulo 1: Fundamentos, Sintaxe &#038; Seletores do Curso de CSS &#038; CSS3 Completo!</strong>
</p>
<p>
    Ao longo destas primeiras 10 aulas, construímos uma base sólida e inabalável: dominamos a anatomia das regras, as 3 formas de inserção, os seletores básicos e relacionais, a cascata com o cálculo de especificidade, o uso consciente de <code>!important</code>, a metodologia de arquitetura BEM, o sistema de cores HSL/OKLCH e o modelo avançado de backgrounds.
</p>
<div class="wzw-callout wzw-callout-info">
<div class="wzw-callout-icon">🏆</div>
<div class="wzw-callout-content">
        <strong>Prepare-se para o Módulo 2: O Box Model, Espaçamento &#038; Tipografia:</strong><br />
        <br />Na <a href="https://webzoneware.com/web-academy/css/box-model-modelo-de-caixa/"><strong>Lição 11: O Box Model (Modelo de Caixa)</strong></a>, entraremos no coração dimensional do CSS, dissecando Content, Padding, Border, Margin, colapso de margens e a indispensável propriedade <code>box-sizing: border-box</code>.
    </div>
</div>
<h2>10. Ferramentas Relacionadas &#038; Recursos</h2>
<p>
    Valide e explore gradientes com as ferramentas integradas:
</p>
<ul>
<li><a href="https://webzoneware.com/web-academy/playground-web/" target="_blank" rel="noopener"><strong>Playground Web IDE:</strong></a> Altere os ângulos e cores dos gradientes ao vivo no editor com preview instantâneo.</li>
<li><a href="https://webzoneware.com/web-ferramentas/limpador-formatador-css/" target="_blank" rel="noopener"><strong>Limpador e Formatador CSS:</strong></a> Valide declarações complexas de gradientes e organize seu código com indentação limpa.</li>
</ul>
<h2>11. Referências Técnicas &#038; Especificações Oficiais</h2>
<ul>
<li><a href="https://www.w3.org/TR/css-images-3/#gradients" target="_blank" rel="noopener"><strong>W3C CSS Image Values and Replaced Content Module Level 3:</strong></a> Especificação oficial dos gradientes lineares e radiais.</li>
<li><a href="https://www.w3.org/TR/css-images-4/#conic-gradients" target="_blank" rel="noopener"><strong>W3C CSS Images Module Level 4:</strong></a> A especificação que oficializou os gradientes cônicos (<code>conic-gradient</code>).</li>
<li><a href="https://developer.mozilla.org/pt-BR/docs/Web/CSS/gradient" target="_blank" rel="noopener"><strong>MDN Web Docs (Mozilla):</strong></a> Guia definitivo e interativo sobre CSS Gradients.</li>
</ul>
<p>O post <a href="https://webzoneware.com/web-academy/curso-css/background-size-position-gradientes/">Background Size, Position e Gradientes CSS | 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/background-size-position-gradientes/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
