<?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 elevacao ui css - Web-Zoneware</title>
	<atom:link href="https://webzoneware.com/tag/elevacao-ui-css/feed/" rel="self" type="application/rss+xml" />
	<link>https://webzoneware.com/tag/elevacao-ui-css/</link>
	<description>Mais do que apenas uma academia web.</description>
	<lastBuildDate>Thu, 22 Oct 2026 00:53:23 +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 elevacao ui css - Web-Zoneware</title>
	<link>https://webzoneware.com/tag/elevacao-ui-css/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Sombras no CSS: box-shadow e text-shadow &#124; Web Academy</title>
		<link>https://webzoneware.com/web-academy/curso-css/sombras-css-text-shadow-box-shadow/</link>
					<comments>https://webzoneware.com/web-academy/curso-css/sombras-css-text-shadow-box-shadow/#respond</comments>
		
		<dc:creator><![CDATA[Web-Zoneware]]></dc:creator>
		<pubDate>Thu, 22 Oct 2026 00:53:23 +0000</pubDate>
				<category><![CDATA[Curso de CSS e CSS3]]></category>
		<category><![CDATA[box-shadow css]]></category>
		<category><![CDATA[elevacao ui css]]></category>
		<category><![CDATA[sombra interna inset css]]></category>
		<category><![CDATA[sombras no css]]></category>
		<category><![CDATA[sombras suaves css]]></category>
		<category><![CDATA[text-shadow css]]></category>
		<guid isPermaLink="false">https://webzoneware.com/?p=29419</guid>

					<description><![CDATA[<p>Chegamos à conclusão triunfal do Módulo 2: O Box Model, Espaçamento &#038; Tipografia! Nas interfaces digitais, a profundidade espacial é a ferramenta psicológica que comunica ao cérebro do usuário o que está em primeiro plano, o que é clicável e o que está sobreposto. No CSS, esse relevo é esculpido através das sombras no CSS [&#8230;]</p>
<p>O post <a href="https://webzoneware.com/web-academy/curso-css/sombras-css-text-shadow-box-shadow/">Sombras no CSS: box-shadow e text-shadow | Web Academy</a> apareceu primeiro em <a href="https://webzoneware.com">Web-Zoneware</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p class="wzw-lesson-lead">
    Chegamos à conclusão triunfal do <strong>Módulo 2: O Box Model, Espaçamento &#038; Tipografia</strong>! Nas interfaces digitais, a profundidade espacial é a ferramenta psicológica que comunica ao cérebro do usuário o que está em primeiro plano, o que é clicável e o que está sobreposto. No CSS, esse relevo é esculpido através das <strong>sombras no CSS com box-shadow e text-shadow</strong>. Nesta aula definitiva, você aprenderá a abandonar as sombras pretas pesadas e amadoras do passado, construindo <strong>elevações multicamadas suaves</strong> inspiradas na física da luz natural, sombras internas com a palavra-chave <code>inset</code> e efeitos de brilho luminoso (Glow / Neon).
</p>
<h2>1. A Anatomia do <code>box-shadow</code>: Os 6 Parâmetros da Luz</h2>
<p>
    A propriedade <code>box-shadow</code> projeta uma ou mais sombras a partir da moldura de um elemento. Sua sintaxe completa aceita até seis valores:
</p>
<div class="wzw-code-wrapper">
<div class="wzw-code-header">
        <span class="wzw-code-badge">SINTAXE</span><br />
        <span class="wzw-code-file">box-shadow-syntax.css</span>
    </div>
    <div class="wzw-ide-card" id="wzw-code-70511" 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">2 linhas</span>
            </div>
            <div class="wzw-ide-actions">
                <button type="button" class="wzw-ide-btn wzw-ide-wrap-btn" onclick="wzwToggleCodeWrap('wzw-code-70511', 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-70511', 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">/* Sintaxe Completa: */</span></span>
<span class="wzw-code-line"><span class="wzw-tk-attr">box-shadow</span>: [inset] &lt;offset-x&gt; &lt;offset-y&gt; &lt;blur-radius&gt; &lt;spread-radius&gt; &lt;color&gt;;</span>
</code></pre>
            <textarea class="wzw-ide-raw" aria-hidden="true" tabindex="-1" readonly>/* Sintaxe Completa: */
box-shadow: [inset] &lt;offset-x&gt; &lt;offset-y&gt; &lt;blur-radius&gt; &lt;spread-radius&gt; &lt;color&gt;;</textarea>
        </div>
    </div>
    
</div>
<div class="wzw-table-responsive">
<table class="wzw-tech-table">
<thead>
<tr>
<th>Parâmetro</th>
<th>Tipo</th>
<th>O Que Faz na Geometria da Sombra?</th>
<th>Obrigatório?</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>offset-x</code></td>
<td>Comprimento (px, rem)</td>
<td>Desloca a sombra horizontalmente (+ para direita, &#8211; para esquerda).</td>
<td><strong>Sim</strong></td>
</tr>
<tr>
<td><code>offset-y</code></td>
<td>Comprimento (px, rem)</td>
<td>Desloca a sombra verticalmente (+ para baixo, &#8211; para cima).</td>
<td><strong>Sim</strong></td>
</tr>
<tr>
<td><code>blur-radius</code></td>
<td>Comprimento positivo</td>
<td>Suavização gaussiana da sombra (0 = borda dura; valores maiores = difusa).</td>
<td>Opcional (padrão é 0)</td>
</tr>
<tr>
<td><code>spread-radius</code></td>
<td>Comprimento (+ ou -)</td>
<td>Expande (+) ou encolhe (-) a área da sombra antes do desfoque.</td>
<td>Opcional (padrão é 0)</td>
</tr>
<tr>
<td><code>color</code></td>
<td>Valor de cor</td>
<td>Define a tonalidade da sombra (<strong>use sempre transparência alfa</strong>).</td>
<td>Opcional (padrão é currentColor)</td>
</tr>
<tr>
<td><code>inset</code></td>
<td>Palavra-chave</td>
<td>Inverte a projeção para <strong>DENTRO</strong> da caixa (efeito afundado).</td>
<td>Opcional</td>
</tr>
</tbody>
</table>
</div>
<h2>2. A Arte das Sombras Multicamadas (Soft Elevation)</h2>
<p>
    O erro clássico de desenvolvedores iniciantes é declarar uma única sombra escura e pesada:<br />
    <br /><code>box-shadow: 0 10px 20px rgba(0, 0, 0, 0.5);</code> ➔ <em>O resultado parece uma mancha preta artificial e suja.</em>
</p>
<p>
    Na física do mundo real, a luz ambiente rebate nas paredes e no chão, gerando <strong>duas sombras simultâneas</strong>: uma sombra de contato fina e nítida bem rente à base do objeto, e uma sombra atmosférica ampla, suave e difusa.
</p>
<p>
    Para replicar esse comportamento de alto nível (utilizado por Stripe, Apple e Tailwind CSS), declaramos <strong>múltiplas sombras separadas por vírgula</strong>, utilizando o <code>spread-radius</code> negativo para recolher as bordas:
</p>
<div class="wzw-code-wrapper">
<div class="wzw-code-header">
        <span class="wzw-code-badge">CSS</span><br />
        <span class="wzw-code-file">soft-elevation.css</span>
    </div>
    <div class="wzw-ide-card" id="wzw-code-77777" 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-77777', 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-77777', 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">/* Elevação Profissional em 2 Camadas: Suave, Realista e Elegante */</span></span>
<span class="wzw-code-line">.card-elevado-profissional {</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">background-color</span>: <span class="wzw-tk-num">#1e293b</span>;</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">border</span>: <span class="wzw-tk-num">1px</span> solid <span class="wzw-tk-num">#334155</span>;</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">border-radius</span>: <span class="wzw-tk-num">12px</span>;</span>
<span class="wzw-code-line">    </span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">box-shadow</span>: </span>
<span class="wzw-code-line">        0 <span class="wzw-tk-num">1px</span> <span class="wzw-tk-num">3px</span> rgba(0, 0, 0, 0.08),             /* Camada 1: Oclusão de contato fina */</span>
<span class="wzw-code-line">        0 <span class="wzw-tk-num">20px</span> <span class="wzw-tk-num">25px</span> -<span class="wzw-tk-num">5px</span> rgba(0, 0, 0, 0.25),       /* Camada 2: Difusão ampla com spread negativo */</span>
<span class="wzw-code-line">        0 <span class="wzw-tk-num">8px</span> <span class="wzw-tk-num">10px</span> -<span class="wzw-tk-num">6px</span> rgba(0, 0, 0, 0.2);        /* Camada 3: Amortecimento intermediário */</span>
<span class="wzw-code-line">}</span>
</code></pre>
            <textarea class="wzw-ide-raw" aria-hidden="true" tabindex="-1" readonly>/* Elevação Profissional em 2 Camadas: Suave, Realista e Elegante */
.card-elevado-profissional {
    background-color: #1e293b;
    border: 1px solid #334155;
    border-radius: 12px;
    
    box-shadow: 
        0 1px 3px rgba(0, 0, 0, 0.08),             /* Camada 1: Oclusão de contato fina */
        0 20px 25px -5px rgba(0, 0, 0, 0.25),       /* Camada 2: Difusão ampla com spread negativo */
        0 8px 10px -6px rgba(0, 0, 0, 0.2);        /* Camada 3: Amortecimento intermediário */
}</textarea>
        </div>
    </div>
    
</div>
<div class="wzw-callout wzw-callout-info">
<div class="wzw-callout-icon">💡</div>
<div class="wzw-callout-content">
        <strong>O Truque do Spread Negativo:</strong> No exemplo acima, repare no valor <code>-5px</code> na posição do spread. Esse valor negativo encolhe a silhueta da sombra antes de aplicar o blur, impedindo que a sombra &#8220;vaze&#8221; feia pelas laterais do card e concentrando o efeito suave exclusivamente na parte inferior!
    </div>
</div>
<h2>3. Sombras Internas com a Palavra-Chave <code>inset</code></h2>
<p>
    Quando adicionamos a palavra-chave <code>inset</code>, a sombra deixa de ser projetada para fora e passa a ser desenhada <strong>dentro da caixa do elemento</strong>, por cima do background, mas por baixo do conteúdo textual.
</p>
<div class="wzw-code-wrapper">
<div class="wzw-code-header">
        <span class="wzw-code-badge">CSS</span><br />
        <span class="wzw-code-file">inset-shadows.css</span>
    </div>
    <div class="wzw-ide-card" id="wzw-code-59704" 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">16 linhas</span>
            </div>
            <div class="wzw-ide-actions">
                <button type="button" class="wzw-ide-btn wzw-ide-wrap-btn" onclick="wzwToggleCodeWrap('wzw-code-59704', 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-59704', 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. Campo de texto com sensação de relevo afundado (Incut) */</span></span>
<span class="wzw-code-line">.campo-input {</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">background-color</span>: <span class="wzw-tk-num">#0f172a</span>;</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">border</span>: <span class="wzw-tk-num">1px</span> solid <span class="wzw-tk-num">#334155</span>;</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">padding</span>: <span class="wzw-tk-num">0.75rem</span> <span class="wzw-tk-num">1rem</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">border-radius</span>: <span class="wzw-tk-num">8px</span>;</span>
<span class="wzw-code-line">    <span class="wzw-tk-comment">/* Sombra interna sutil na parte superior */</span></span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">box-shadow</span>: inset 0 <span class="wzw-tk-num">2px</span> <span class="wzw-tk-num">4px</span> rgba(0, 0, 0, 0.4);</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. Botão no estado :active dando a sensação física de ser pressionado */</span></span>
<span class="wzw-code-line">.btn-press:active {</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">transform</span>: translateY(<span class="wzw-tk-num">1px</span>);</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">box-shadow</span>: inset 0 <span class="wzw-tk-num">3px</span> <span class="wzw-tk-num">6px</span> rgba(0, 0, 0, 0.35);</span>
<span class="wzw-code-line">}</span>
</code></pre>
            <textarea class="wzw-ide-raw" aria-hidden="true" tabindex="-1" readonly>/* 1. Campo de texto com sensação de relevo afundado (Incut) */
.campo-input {
    background-color: #0f172a;
    border: 1px solid #334155;
    padding: 0.75rem 1rem;
    color: #ffffff;
    border-radius: 8px;
    /* Sombra interna sutil na parte superior */
    box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.4);
}

/* 2. Botão no estado :active dando a sensação física de ser pressionado */
.btn-press:active {
    transform: translateY(1px);
    box-shadow: inset 0 3px 6px rgba(0, 0, 0, 0.35);
}</textarea>
        </div>
    </div>
    
</div>
<h2>4. Sombras Coloridas e Efeito de Brilho (Ambient Glow)</h2>
<p>
    Projetar sombras puramente pretas em botões coloridos gera uma borda acinzentada e &#8220;morta&#8221;. Nos sistemas de design mais modernos da web, botões de ação e cards premium utilizam <strong>sombras coloridas baseadas no próprio matiz da marca</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">glow-effects.css</span>
    </div>
    <div class="wzw-ide-card" id="wzw-code-18176" 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">19 linhas</span>
            </div>
            <div class="wzw-ide-actions">
                <button type="button" class="wzw-ide-btn wzw-ide-wrap-btn" onclick="wzwToggleCodeWrap('wzw-code-18176', 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-18176', 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">/* Botão Luminoso: A sombra utiliza a própria cor do botão com alta difusão */</span></span>
<span class="wzw-code-line">.btn-glow {</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">border</span>: none;</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">padding</span>: <span class="wzw-tk-num">0.85rem</span> <span class="wzw-tk-num">1.75rem</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">border-radius</span>: <span class="wzw-tk-num">9999px</span>;</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">cursor</span>: pointer;</span>
<span class="wzw-code-line">    </span>
<span class="wzw-code-line">    <span class="wzw-tk-comment">/* A sombra azul viva faz o botão parecer uma fonte de luz emitida! */</span></span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">box-shadow</span>: 0 <span class="wzw-tk-num">10px</span> <span class="wzw-tk-num">25px</span> -<span class="wzw-tk-num">3px</span> rgba(2, 132, 199, 0.5);</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">transition</span>: box-shadow <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-glow<span class="wzw-tk-kw">:hover</span> {</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 class="wzw-tk-attr">box-shadow</span>: 0 <span class="wzw-tk-num">15px</span> <span class="wzw-tk-num">30px</span> -<span class="wzw-tk-num">2px</span> rgba(2, 132, 199, 0.7);</span>
<span class="wzw-code-line">}</span>
</code></pre>
            <textarea class="wzw-ide-raw" aria-hidden="true" tabindex="-1" readonly>/* Botão Luminoso: A sombra utiliza a própria cor do botão com alta difusão */
.btn-glow {
    background: linear-gradient(135deg, #0284c7, #38bdf8);
    color: #ffffff;
    border: none;
    padding: 0.85rem 1.75rem;
    font-weight: 600;
    border-radius: 9999px;
    cursor: pointer;
    
    /* A sombra azul viva faz o botão parecer uma fonte de luz emitida! */
    box-shadow: 0 10px 25px -3px rgba(2, 132, 199, 0.5);
    transition: box-shadow 0.2s ease, transform 0.2s ease;
}

.btn-glow:hover {
    transform: translateY(-2px);
    box-shadow: 0 15px 30px -2px rgba(2, 132, 199, 0.7);
}</textarea>
        </div>
    </div>
    
</div>
<h2>5. Sombras em Textos: <code>text-shadow</code></h2>
<p>
    A propriedade <code>text-shadow</code> aplica sombras diretamente aos contornos das letras e caracteres tipográficos.
</p>
<p>
    <strong>Sintaxe:</strong> <code>text-shadow: &lt;offset-x&gt; &lt;offset-y&gt; &lt;blur-radius&gt; &lt;color&gt;;</code><br />
    <br /><em>(Diferente do box-shadow, o text-shadow <strong>NÃO aceita spread-radius</strong> e <strong>NÃO aceita inset</strong>).</em>
</p>
<h3>Os 2 Grandes Superpoderes do <code>text-shadow</code>:</h3>
<div class="wzw-code-wrapper">
<div class="wzw-code-header">
        <span class="wzw-code-badge">CSS</span><br />
        <span class="wzw-code-file">text-shadow-examples.css</span>
    </div>
    <div class="wzw-ide-card" id="wzw-code-16132" 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">17 linhas</span>
            </div>
            <div class="wzw-ide-actions">
                <button type="button" class="wzw-ide-btn wzw-ide-wrap-btn" onclick="wzwToggleCodeWrap('wzw-code-16132', 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-16132', 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. Salva-Vidas de Contraste sobre Fotos Claras */</span></span>
<span class="wzw-code-line"><span class="wzw-tk-comment">/* Garante que o texto branco seja 100% legível mesmo se a imagem de fundo tiver áreas claras! */</span></span>
<span class="wzw-code-line">.titulo-banner {</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-shadow</span>: 0 <span class="wzw-tk-num">2px</span> <span class="wzw-tk-num">4px</span> rgba(0, 0, 0, 0.8);</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. Efeito Neon Futurista (Cyberpunk Glow) */</span></span>
<span class="wzw-code-line"><span class="wzw-tk-comment">/* Empilhando múltiplos raios de desfoque sem nenhum deslocamento (offset 0 0) */</span></span>
<span class="wzw-code-line">.texto-neon {</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-shadow</span>: </span>
<span class="wzw-code-line">        0 0 <span class="wzw-tk-num">5px</span> <span class="wzw-tk-num">#38bdf8</span>,</span>
<span class="wzw-code-line">        0 0 <span class="wzw-tk-num">15px</span> <span class="wzw-tk-num">#38bdf8</span>,</span>
<span class="wzw-code-line">        0 0 <span class="wzw-tk-num">30px</span> <span class="wzw-tk-num">#0284c7</span>,</span>
<span class="wzw-code-line">        0 0 <span class="wzw-tk-num">60px</span> <span class="wzw-tk-num">#0284c7</span>;</span>
<span class="wzw-code-line">}</span>
</code></pre>
            <textarea class="wzw-ide-raw" aria-hidden="true" tabindex="-1" readonly>/* 1. Salva-Vidas de Contraste sobre Fotos Claras */
/* Garante que o texto branco seja 100% legível mesmo se a imagem de fundo tiver áreas claras! */
.titulo-banner {
    color: #ffffff;
    text-shadow: 0 2px 4px rgba(0, 0, 0, 0.8);
}

/* 2. Efeito Neon Futurista (Cyberpunk Glow) */
/* Empilhando múltiplos raios de desfoque sem nenhum deslocamento (offset 0 0) */
.texto-neon {
    color: #ffffff;
    text-shadow: 
        0 0 5px #38bdf8,
        0 0 15px #38bdf8,
        0 0 30px #0284c7,
        0 0 60px #0284c7;
}</textarea>
        </div>
    </div>
    
</div>
<h2>6. Laboratório Prático: Vitrine de Elevação (Flat, Card, Popover e Glow)</h2>
<p>
    Neste laboratório de encerramento do Módulo 2, construiremos uma vitrine completa demonstrando os quatro níveis clássicos de elevação de sistemas de design corporativos:
</p>
<div class="wzw-code-wrapper">
<div class="wzw-code-header">
        <span class="wzw-code-badge">HTML</span><br />
        <span class="wzw-code-file">elevation-showcase.html</span>
    </div>
    <div class="wzw-ide-card" id="wzw-code-12299" 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">29 linhas</span>
            </div>
            <div class="wzw-ide-actions">
                <button type="button" class="wzw-ide-btn wzw-ide-wrap-btn" onclick="wzwToggleCodeWrap('wzw-code-12299', 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-12299', 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;elevation-grid&quot;</span><span class="wzw-tk-tag">&gt;</span></span>
<span class="wzw-code-line">    <span class="wzw-tk-comment">&lt;!-- Nível 1: Inset / Profundidade Afundada --&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;elevation-card card-inset&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;elevation-label&quot;</span><span class="wzw-tk-tag">&gt;</span>Nível 0 • Inset<span class="wzw-tk-tag">&lt;/span&gt;</span></span>
<span class="wzw-code-line">        <span class="wzw-tk-tag">&lt;h4&gt;</span>Sombra Interna<span class="wzw-tk-tag">&lt;/h4&gt;</span></span>
<span class="wzw-code-line">        <span class="wzw-tk-tag">&lt;p&gt;</span>Sensação de relevo rebaixado para campos e botões pressionados.<span class="wzw-tk-tag">&lt;/p&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-comment">&lt;!-- Nível 2: Elevação Suave Padrão (Card) --&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;elevation-card card-soft&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;elevation-label&quot;</span><span class="wzw-tk-tag">&gt;</span>Nível 1 • Suave<span class="wzw-tk-tag">&lt;/span&gt;</span></span>
<span class="wzw-code-line">        <span class="wzw-tk-tag">&lt;h4&gt;</span>Elevação Multicamada<span class="wzw-tk-tag">&lt;/h4&gt;</span></span>
<span class="wzw-code-line">        <span class="wzw-tk-tag">&lt;p&gt;</span>Combinação de contato fino com difusão ampla e spread negativo.<span class="wzw-tk-tag">&lt;/p&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-comment">&lt;!-- Nível 3: Elevação Alta (Hover / Modal) --&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;elevation-card card-hover&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;elevation-label&quot;</span><span class="wzw-tk-tag">&gt;</span>Nível 2 • Flutuante<span class="wzw-tk-tag">&lt;/span&gt;</span></span>
<span class="wzw-code-line">        <span class="wzw-tk-tag">&lt;h4&gt;</span>Popover / Dialog<span class="wzw-tk-tag">&lt;/h4&gt;</span></span>
<span class="wzw-code-line">        <span class="wzw-tk-tag">&lt;p&gt;</span>Destaque de primeiro plano para elementos que se destacam da tela.<span class="wzw-tk-tag">&lt;/p&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-comment">&lt;!-- Nível 4: Brilho Neon Emitido (Glow) --&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;elevation-card card-glow&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;elevation-label&quot;</span><span class="wzw-tk-tag">&gt;</span>Nível 3 • Neon Glow<span class="wzw-tk-tag">&lt;/span&gt;</span></span>
<span class="wzw-code-line">        <span class="wzw-tk-tag">&lt;h4</span> <span class="wzw-tk-attr">class</span>=<span class="wzw-tk-str">&quot;neon-title&quot;</span><span class="wzw-tk-tag">&gt;</span>Luz Emitida<span class="wzw-tk-tag">&lt;/h4&gt;</span></span>
<span class="wzw-code-line">        <span class="wzw-tk-tag">&lt;p&gt;</span>Sombras coloridas na mesma tonalidade que criam estética futurista.<span class="wzw-tk-tag">&lt;/p&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;elevation-grid&quot;&gt;
    &lt;!-- Nível 1: Inset / Profundidade Afundada --&gt;
    &lt;div class=&quot;elevation-card card-inset&quot;&gt;
        &lt;span class=&quot;elevation-label&quot;&gt;Nível 0 • Inset&lt;/span&gt;
        &lt;h4&gt;Sombra Interna&lt;/h4&gt;
        &lt;p&gt;Sensação de relevo rebaixado para campos e botões pressionados.&lt;/p&gt;
    &lt;/div&gt;

    &lt;!-- Nível 2: Elevação Suave Padrão (Card) --&gt;
    &lt;div class=&quot;elevation-card card-soft&quot;&gt;
        &lt;span class=&quot;elevation-label&quot;&gt;Nível 1 • Suave&lt;/span&gt;
        &lt;h4&gt;Elevação Multicamada&lt;/h4&gt;
        &lt;p&gt;Combinação de contato fino com difusão ampla e spread negativo.&lt;/p&gt;
    &lt;/div&gt;

    &lt;!-- Nível 3: Elevação Alta (Hover / Modal) --&gt;
    &lt;div class=&quot;elevation-card card-hover&quot;&gt;
        &lt;span class=&quot;elevation-label&quot;&gt;Nível 2 • Flutuante&lt;/span&gt;
        &lt;h4&gt;Popover / Dialog&lt;/h4&gt;
        &lt;p&gt;Destaque de primeiro plano para elementos que se destacam da tela.&lt;/p&gt;
    &lt;/div&gt;

    &lt;!-- Nível 4: Brilho Neon Emitido (Glow) --&gt;
    &lt;div class=&quot;elevation-card card-glow&quot;&gt;
        &lt;span class=&quot;elevation-label&quot;&gt;Nível 3 • Neon Glow&lt;/span&gt;
        &lt;h4 class=&quot;neon-title&quot;&gt;Luz Emitida&lt;/h4&gt;
        &lt;p&gt;Sombras coloridas na mesma tonalidade que criam estética futurista.&lt;/p&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">elevation-showcase.css</span>
    </div>
    <div class="wzw-ide-card" id="wzw-code-45478" 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">99 linhas</span>
            </div>
            <div class="wzw-ide-actions">
                <button type="button" class="wzw-ide-btn wzw-ide-wrap-btn" onclick="wzwToggleCodeWrap('wzw-code-45478', 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-45478', 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">*, *::before, *::after {</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">background-color</span>: <span class="wzw-tk-num">#0b0f19</span>;</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">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">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">2.5rem</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">.elevation-grid {</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>: repeat(auto-fit, minmax(<span class="wzw-tk-num">240px</span>, <span class="wzw-tk-num">1fr</span>));</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">max-width</span>: <span class="wzw-tk-num">1080px</span>;</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">width</span>: 100%;</span>
<span class="wzw-code-line">}</span>
<span class="wzw-code-line">&nbsp;</span>
<span class="wzw-code-line">.elevation-card {</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">background-color</span>: <span class="wzw-tk-num">#1e293b</span>;</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">border-radius</span>: <span class="wzw-tk-num">14px</span>;</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">padding</span>: <span class="wzw-tk-num">2rem</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">transition</span>: transform <span class="wzw-tk-num">0.25s</span> ease, box-shadow <span class="wzw-tk-num">0.25s</span> ease;</span>
<span class="wzw-code-line">}</span>
<span class="wzw-code-line">&nbsp;</span>
<span class="wzw-code-line">.elevation-label {</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">color</span>: <span class="wzw-tk-num">#38bdf8</span>;</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">margin-bottom</span>: <span class="wzw-tk-num">0.5rem</span>;</span>
<span class="wzw-code-line">}</span>
<span class="wzw-code-line">&nbsp;</span>
<span class="wzw-code-line">.elevation-card h4 {</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">font-size</span>: <span class="wzw-tk-num">1.2rem</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">0.75rem</span>;</span>
<span class="wzw-code-line">}</span>
<span class="wzw-code-line">&nbsp;</span>
<span class="wzw-code-line">.elevation-card p {</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">font-size</span>: <span class="wzw-tk-num">0.85rem</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>
<span class="wzw-code-line">&nbsp;</span>
<span class="wzw-code-line"><span class="wzw-tk-comment">/* 1. Nível 0: Sombra Interna com inset */</span></span>
<span class="wzw-code-line">.card-inset {</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">background-color</span>: <span class="wzw-tk-num">#0f172a</span>;</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">border</span>: <span class="wzw-tk-num">1px</span> solid <span class="wzw-tk-num">#1e293b</span>;</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">box-shadow</span>: inset 0 <span class="wzw-tk-num">3px</span> <span class="wzw-tk-num">8px</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"><span class="wzw-tk-comment">/* 2. Nível 1: Elevação Suave Multicamada */</span></span>
<span class="wzw-code-line">.card-soft {</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">border</span>: <span class="wzw-tk-num">1px</span> solid <span class="wzw-tk-num">#334155</span>;</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">box-shadow</span>: </span>
<span class="wzw-code-line">        0 <span class="wzw-tk-num">1px</span> <span class="wzw-tk-num">3px</span> rgba(0, 0, 0, 0.1),</span>
<span class="wzw-code-line">        0 <span class="wzw-tk-num">12px</span> <span class="wzw-tk-num">20px</span> -<span class="wzw-tk-num">5px</span> rgba(0, 0, 0, 0.35);</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. Nível 2: Card Flutuante com Hover Dinâmico */</span></span>
<span class="wzw-code-line">.card-hover {</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">border</span>: <span class="wzw-tk-num">1px</span> solid <span class="wzw-tk-num">#334155</span>;</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">box-shadow</span>: </span>
<span class="wzw-code-line">        0 <span class="wzw-tk-num">4px</span> <span class="wzw-tk-num">6px</span> -<span class="wzw-tk-num">1px</span> rgba(0, 0, 0, 0.2),</span>
<span class="wzw-code-line">        0 <span class="wzw-tk-num">20px</span> <span class="wzw-tk-num">25px</span> -<span class="wzw-tk-num">5px</span> rgba(0, 0, 0, 0.4);</span>
<span class="wzw-code-line">}</span>
<span class="wzw-code-line">&nbsp;</span>
<span class="wzw-code-line">.card-hover<span class="wzw-tk-kw">:hover</span> {</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">transform</span>: translateY(-<span class="wzw-tk-num">5px</span>);</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">box-shadow</span>: </span>
<span class="wzw-code-line">        0 <span class="wzw-tk-num">10px</span> <span class="wzw-tk-num">15px</span> -<span class="wzw-tk-num">3px</span> rgba(0, 0, 0, 0.3),</span>
<span class="wzw-code-line">        0 <span class="wzw-tk-num">25px</span> <span class="wzw-tk-num">35px</span> -<span class="wzw-tk-num">5px</span> rgba(0, 0, 0, 0.5);</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. Nível 3: Brilho Neon Luminous com box-shadow e text-shadow */</span></span>
<span class="wzw-code-line">.card-glow {</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.4);</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">box-shadow</span>: </span>
<span class="wzw-code-line">        0 0 <span class="wzw-tk-num">15px</span> rgba(56, 189, 248, 0.2),</span>
<span class="wzw-code-line">        0 <span class="wzw-tk-num">10px</span> <span class="wzw-tk-num">25px</span> -<span class="wzw-tk-num">5px</span> rgba(2, 132, 199, 0.4);</span>
<span class="wzw-code-line">}</span>
<span class="wzw-code-line">&nbsp;</span>
<span class="wzw-code-line">.neon-title {</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-shadow</span>: 0 0 <span class="wzw-tk-num">10px</span> <span class="wzw-tk-num">#38bdf8</span>, 0 0 <span class="wzw-tk-num">20px</span> <span class="wzw-tk-num">#0284c7</span>;</span>
<span class="wzw-code-line">}</span>
</code></pre>
            <textarea class="wzw-ide-raw" aria-hidden="true" tabindex="-1" readonly>/* Reset e base */
*, *::before, *::after {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

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

.elevation-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 2rem;
    max-width: 1080px;
    width: 100%;
}

.elevation-card {
    background-color: #1e293b;
    border-radius: 14px;
    padding: 2rem;
    display: flex;
    flex-direction: column;
    justify-content: center;
    transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.elevation-label {
    font-size: 0.75rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: #38bdf8;
    margin-bottom: 0.5rem;
}

.elevation-card h4 {
    font-size: 1.2rem;
    color: #ffffff;
    margin-bottom: 0.75rem;
}

.elevation-card p {
    font-size: 0.85rem;
    line-height: 1.6;
    color: #94a3b8;
}

/* 1. Nível 0: Sombra Interna com inset */
.card-inset {
    background-color: #0f172a;
    border: 1px solid #1e293b;
    box-shadow: inset 0 3px 8px rgba(0, 0, 0, 0.6);
}

/* 2. Nível 1: Elevação Suave Multicamada */
.card-soft {
    border: 1px solid #334155;
    box-shadow: 
        0 1px 3px rgba(0, 0, 0, 0.1),
        0 12px 20px -5px rgba(0, 0, 0, 0.35);
}

/* 3. Nível 2: Card Flutuante com Hover Dinâmico */
.card-hover {
    border: 1px solid #334155;
    box-shadow: 
        0 4px 6px -1px rgba(0, 0, 0, 0.2),
        0 20px 25px -5px rgba(0, 0, 0, 0.4);
}

.card-hover:hover {
    transform: translateY(-5px);
    box-shadow: 
        0 10px 15px -3px rgba(0, 0, 0, 0.3),
        0 25px 35px -5px rgba(0, 0, 0, 0.5);
}

/* 4. Nível 3: Brilho Neon Luminous com box-shadow e text-shadow */
.card-glow {
    border: 1px solid rgba(56, 189, 248, 0.4);
    box-shadow: 
        0 0 15px rgba(56, 189, 248, 0.2),
        0 10px 25px -5px rgba(2, 132, 199, 0.4);
}

.neon-title {
    color: #ffffff;
    text-shadow: 0 0 10px #38bdf8, 0 0 20px #0284c7;
}</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>7. Boas Práticas da Indústria &#038; Dicas de Performance</h2>
<ul>
<li>
        <strong>✅ Use Sempre Cores com Alfa (RGBA/HSLA):</strong> Sombras pretas 100% sólidas (<code>#000000</code>) nunca devem ser usadas sem canal de transparência. Mantenha opacidades entre <code>0.05</code> (muito suave) e <code>0.35</code> (escuro sutil).
    </li>
<li>
        <strong>✅ Cuidado com o Custo de Repintura da GPU:</strong> Animar o <code>blur-radius</code> de um <code>box-shadow</code> durante o scroll ou com keyframes consome muitos recursos da placa de vídeo. Prefira animar <code>transform: translateY()</code> no hover para criar o efeito de elevação com fluidez de 60 FPS.
    </li>
<li>
        <strong>✅ Utilize Spread Negativo para Sombras Elegantes:</strong> O spread negativo (ex: <code>-5px</code>) limpa os cantos laterais do elemento, direcionando o peso da sombra exclusivamente para baixo.
    </li>
</ul>
<h2>8. 🎉 Conclusão do Módulo 2 &#038; O Que Vem no Módulo 3!</h2>
<p>
    <strong>Parabéns! Você acaba de concluir integralmente o Módulo 2: O Box Model, Espaçamento &#038; Tipografia!</strong>
</p>
<p>
    Completamos 20 lições de altíssimo nível técnico: dominamos a anatomia completa do Box Model, bordas e raios elípticos, o reset essencial de <code>border-box</code>, o colapso de margens com <code>display: flow-root</code>, áreas de toque para mobile WCAG, web fonts com WOFF2 e <code>font-display: swap</code>, a escala de unidades rem/em/clamp, line-height sem unidades, alinhamento e o sistema de sombras e elevação.
</p>
<div class="wzw-callout wzw-callout-info">
<div class="wzw-callout-icon">🏆</div>
<div class="wzw-callout-content">
        <strong>A Seguir: Módulo 3: Posicionamento, Display &#038; Flexbox!</strong><br />
        <br />Na <a href="https://webzoneware.com/web-academy/css/display-block-inline-inline-block/"><strong>Lição 21: A Propriedade display: block, inline e inline-block</strong></a>, entraremos na engenharia de fluxo de página, descobrindo como transformar elementos em caixas de bloco, inline ou no híbrido inline-block antes de desbravarmos o poder do Flexbox moderno!
    </div>
</div>
<h2>9. Referências Técnicas &#038; Especificações Oficiais</h2>
<ul>
<li><a href="https://www.w3.org/TR/css-backgrounds-3/#box-shadow" target="_blank" rel="noopener"><strong>W3C CSS Backgrounds and Borders Module Level 3 — Box Shadow:</strong></a> Especificação técnica oficial sobre projeção de sombras em caixas.</li>
<li><a href="https://www.w3.org/TR/css-text-decor-3/#text-shadow-property" target="_blank" rel="noopener"><strong>W3C CSS Text Decoration Module Level 3 — Text Shadow:</strong></a> Especificação formal sobre sombras tipográficas.</li>
<li><a href="https://developer.mozilla.org/pt-BR/docs/Web/CSS/box-shadow" target="_blank" rel="noopener"><strong>MDN Web Docs (Mozilla):</strong></a> Guia definitivo sobre a propriedade box-shadow.</li>
</ul>
<p>O post <a href="https://webzoneware.com/web-academy/curso-css/sombras-css-text-shadow-box-shadow/">Sombras no CSS: box-shadow e text-shadow | 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/sombras-css-text-shadow-box-shadow/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
