<?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 design system cores - Web-Zoneware</title>
	<atom:link href="https://webzoneware.com/tag/design-system-cores/feed/" rel="self" type="application/rss+xml" />
	<link>https://webzoneware.com/tag/design-system-cores/</link>
	<description>Mais do que apenas uma academia web.</description>
	<lastBuildDate>Wed, 21 Oct 2026 15:40:59 +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 design system cores - Web-Zoneware</title>
	<link>https://webzoneware.com/tag/design-system-cores/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Cores no CSS: Guia de HEX, RGB, HSL e OKLCH &#124; Web Academy</title>
		<link>https://webzoneware.com/web-academy/curso-css/cores-css-hex-rgb-hsl/</link>
					<comments>https://webzoneware.com/web-academy/curso-css/cores-css-hex-rgb-hsl/#respond</comments>
		
		<dc:creator><![CDATA[Web-Zoneware]]></dc:creator>
		<pubDate>Wed, 21 Oct 2026 15:40:59 +0000</pubDate>
				<category><![CDATA[Curso de CSS e CSS3]]></category>
		<category><![CDATA[cores no css]]></category>
		<category><![CDATA[design system cores]]></category>
		<category><![CDATA[hex css]]></category>
		<category><![CDATA[hsl hsla css]]></category>
		<category><![CDATA[oklch css]]></category>
		<category><![CDATA[rgb rgba css]]></category>
		<guid isPermaLink="false">https://webzoneware.com/?p=29391</guid>

					<description><![CDATA[<p>A cor é a fundação da identidade visual e da hierarquia funcional de qualquer interface digital. No desenvolvimento web moderno, definir uma cor vai muito além de escolher um código visual atraente: envolve entender os modelos de cores aditivas, gerenciar canais de transparência alfa, garantir a conformidade com as diretrizes internacionais de acessibilidade (WCAG) e [&#8230;]</p>
<p>O post <a href="https://webzoneware.com/web-academy/curso-css/cores-css-hex-rgb-hsl/">Cores no CSS: Guia de HEX, RGB, HSL e OKLCH | Web Academy</a> apareceu primeiro em <a href="https://webzoneware.com">Web-Zoneware</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p class="wzw-lesson-lead">
    A cor é a fundação da identidade visual e da hierarquia funcional de qualquer interface digital. No desenvolvimento web moderno, definir uma cor vai muito além de escolher um código visual atraente: envolve entender os modelos de cores aditivas, gerenciar canais de transparência alfa, garantir a conformidade com as diretrizes internacionais de acessibilidade (WCAG) e arquitetar paletas escaláveis para modos claro e escuro. Nesta aula, dissecaremos todas as formas de declarar <strong>cores no CSS</strong> — desde o clássico Hexadecimal até o revolucionário espaço perceptual <code>oklch()</code>.
</p>
<h2>1. O Quadro Comparativo dos Formatos de Cor na Web</h2>
<p>
    O CSS oferece diferentes métodos para representar cores. Cada formato possui uma finalidade técnica onde se destaca com maior clareza e controle:
</p>
<div class="wzw-table-responsive">
<table class="wzw-tech-table">
<thead>
<tr>
<th>Formato</th>
<th>Sintaxe Clássica</th>
<th>Sintaxe Moderna (CSS Color 4)</th>
<th>Suporte a Alfa?</th>
<th>Melhor Cenário de Uso</th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>Nomes (Keywords)</strong></td>
<td><code>coral</code>, <code>crimson</code></td>
<td><code>rebeccapurple</code></td>
<td>Não (exceto <code>transparent</code>)</td>
<td>Prototipagem rápida e testes estruturais.</td>
</tr>
<tr>
<td><strong>Hexadecimal (HEX)</strong></td>
<td><code>#0284c7</code></td>
<td><code>#0284c780</code> (com alfa)</td>
<td>Sim (2 dígitos finais)</td>
<td>Cópia direta do Figma e bibliotecas de branding.</td>
</tr>
<tr>
<td><strong>RGB / RGBA</strong></td>
<td><code>rgba(2, 132, 199, 0.5)</code></td>
<td><code>rgb(2 132 199 / 50%)</code></td>
<td>Sim</td>
<td>Cálculo matemático de telas de luz emitida.</td>
</tr>
<tr>
<td><strong>HSL / HSLA</strong></td>
<td><code>hsla(200, 98%, 39%, 0.5)</code></td>
<td><code>hsl(200 98% 39% / 50%)</code></td>
<td>Sim</td>
<td>Design Systems e geração de tons claros/escuros.</td>
</tr>
<tr>
<td><strong>OKLCH (Moderno)</strong></td>
<td>—</td>
<td><code>oklch(0.6 0.25 210)</code></td>
<td>Sim</td>
<td>Uniformidade perceptual e telas Wide Gamut (P3).</td>
</tr>
</tbody>
</table>
</div>
<h2>2. Palavras-Chave de Cor e o Superpoder do <code>currentColor</code></h2>
<p>
    O W3C padroniza 148 palavras-chave de cores nomeadas (como <code>black</code>, <code>white</code>, <code>royalblue</code>). No entanto, duas palavras-chave dinâmicas merecem atenção especial na engenharia front-end:
</p>
<ul>
<li><code>transparent</code>: Representa uma cor totalmente invisível (equivalente a <code>rgba(0, 0, 0, 0)</code>). Muito usada para inicializar bordas invisíveis que ganham cor no <code>:hover</code> sem deslocar o layout.</li>
<li><code>currentColor</code>: <strong>Herda dinamicamente o valor da propriedade <code>color</code> do próprio elemento</strong>. Se o texto do elemento mudar de azul para vermelho no hover, qualquer borda ou ícone SVG que utilize <code>currentColor</code> mudará instantaneamente de cor junto, sem nenhuma linha extra de CSS!</li>
</ul>
<div class="wzw-code-wrapper">
<div class="wzw-code-header">
        <span class="wzw-code-badge">CSS</span><br />
        <span class="wzw-code-file">current-color.css</span>
    </div>
    <div class="wzw-ide-card" id="wzw-code-78481" 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-78481', 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-78481', 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">.btn-outline {</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">color</span>: <span class="wzw-tk-num">#0284c7</span>;</span>
<span class="wzw-code-line">    <span class="wzw-tk-comment">/* A borda e o ícone SVG herdam automaticamente a cor do texto */</span></span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">border</span>: <span class="wzw-tk-num">2px</span> solid currentColor;</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">background-color</span>: transparent;</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">transition</span>: color <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-outline<span class="wzw-tk-kw">:hover</span> {</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">color</span>: <span class="wzw-tk-num">#0369a1</span>; /* Ao mudar a cor aqui, a borda também muda automaticamente! */</span>
<span class="wzw-code-line">}</span>
<span class="wzw-code-line">&nbsp;</span>
<span class="wzw-code-line">.btn-outline svg {</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">fill</span>: currentColor; /* O SVG fica sincronizado com a cor da tipografia */</span>
<span class="wzw-code-line">}</span>
</code></pre>
            <textarea class="wzw-ide-raw" aria-hidden="true" tabindex="-1" readonly>.btn-outline {
    color: #0284c7;
    /* A borda e o ícone SVG herdam automaticamente a cor do texto */
    border: 2px solid currentColor;
    background-color: transparent;
    transition: color 0.2s ease;
}

.btn-outline:hover {
    color: #0369a1; /* Ao mudar a cor aqui, a borda também muda automaticamente! */
}

.btn-outline svg {
    fill: currentColor; /* O SVG fica sincronizado com a cor da tipografia */
}</textarea>
        </div>
    </div>
    
</div>
<h2>3. Notação Hexadecimal (HEX): O Padrão Mais Popular</h2>
<p>
    A notação hexadecimal codifica as intensidades de Vermelho (Red), Verde (Green) e Azul (Blue) na base numérica 16, variando de <code>0</code> (zero absoluto) até <code>F</code> (intensidade máxima de 15, correspondente a 255 em decimal).
</p>
<div class="wzw-code-wrapper">
<div class="wzw-code-header">
        <span class="wzw-code-badge">CSS</span><br />
        <span class="wzw-code-file">hex-variants.css</span>
    </div>
    <div class="wzw-ide-card" id="wzw-code-73874" 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-73874', 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-73874', 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. Hexadecimal Completo de 6 dígitos (#RRGGBB) */</span></span>
<span class="wzw-code-line">.box-primaria {</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">background-color</span>: <span class="wzw-tk-num">#0284c7</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. Hexadecimal Compacto de 3 dígitos (#RGB) */</span></span>
<span class="wzw-code-line"><span class="wzw-tk-comment">/* Quando os pares se repetem (#ffffff vira #fff; #0099cc vira #09c) */</span></span>
<span class="wzw-code-line">.box-branca {</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">background-color</span>: <span class="wzw-tk-num">#fff</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. Hexadecimal com Canal Alfa de Transparência (#RRGGBBAA) */</span></span>
<span class="wzw-code-line"><span class="wzw-tk-comment">/* Os últimos 2 dígitos representam o canal alfa de 00 (0%) a FF (100%) */</span></span>
<span class="wzw-code-line">.box-com-transparencia {</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">background-color</span>: <span class="wzw-tk-num">#0284c780</span>; /* 80 em hex = 128 em decimal (~50% de opacidade) */</span>
<span class="wzw-code-line">}</span>
</code></pre>
            <textarea class="wzw-ide-raw" aria-hidden="true" tabindex="-1" readonly>/* 1. Hexadecimal Completo de 6 dígitos (#RRGGBB) */
.box-primaria {
    background-color: #0284c7;
}

/* 2. Hexadecimal Compacto de 3 dígitos (#RGB) */
/* Quando os pares se repetem (#ffffff vira #fff; #0099cc vira #09c) */
.box-branca {
    background-color: #fff;
}

/* 3. Hexadecimal com Canal Alfa de Transparência (#RRGGBBAA) */
/* Os últimos 2 dígitos representam o canal alfa de 00 (0%) a FF (100%) */
.box-com-transparencia {
    background-color: #0284c780; /* 80 em hex = 128 em decimal (~50% de opacidade) */
}</textarea>
        </div>
    </div>
    
</div>
<h2>4. Notação RGB: O Modelo de Cores Aditivas</h2>
<p>
    O modelo RGB opera diretamente na lógica física das telas de computador e smartphones, que emitem feixes de luz nas cores primárias aditivas. Cada canal varia de <code>0</code> a <code>255</code> (ou de <code>0%</code> a <code>100%</code>).
</p>
<h3>A Nova Sintaxe do CSS Color Module Level 4</h3>
<p>
    Na especificação moderna do CSS, as vírgulas foram substituídas por <strong>espaços em branco</strong>, e o canal alfa agora é delimitado por uma <strong>barra inclinada (<code>/</code>)</strong>. Além disso, a função <code>rgba()</code> tornou-se um alias legado: a própria função <code>rgb()</code> aceita transparência nativamente:
</p>
<div class="wzw-code-wrapper">
<div class="wzw-code-header">
        <span class="wzw-code-badge">CSS</span><br />
        <span class="wzw-code-file">modern-rgb.css</span>
    </div>
    <div class="wzw-ide-card" id="wzw-code-74509" 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-74509', 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-74509', 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 Clássica (Legada, mas suportada por compatibilidade) */</span></span>
<span class="wzw-code-line">.card-antigo {</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">background-color</span>: rgba(2, 132, 199, 0.75);</span>
<span class="wzw-code-line">}</span>
<span class="wzw-code-line">&nbsp;</span>
<span class="wzw-code-line"><span class="wzw-tk-comment">/* Sintaxe Moderna do CSS4 (Mais limpa e recomendada) */</span></span>
<span class="wzw-code-line">.card-moderno {</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">background-color</span>: rgb(2 132 199 / 75%); /* Espaços e barra com porcentagem! */</span>
<span class="wzw-code-line">}</span>
</code></pre>
            <textarea class="wzw-ide-raw" aria-hidden="true" tabindex="-1" readonly>/* Sintaxe Clássica (Legada, mas suportada por compatibilidade) */
.card-antigo {
    background-color: rgba(2, 132, 199, 0.75);
}

/* Sintaxe Moderna do CSS4 (Mais limpa e recomendada) */
.card-moderno {
    background-color: rgb(2 132 199 / 75%); /* Espaços e barra com porcentagem! */
}</textarea>
        </div>
    </div>
    
</div>
<h2>5. Notação HSL: O Formato Mais Intuitivo da Engenharia UI</h2>
<p>
    Enquanto o Hexadecimal e o RGB são práticos para computadores, eles são incompreensíveis para o raciocínio humano. Se você olhar para <code>#2a7561</code>, é quase impossível deduzir de cabeça qual é a cor exata ou como clareá-la em 20%.
</p>
<p>
    O modelo <strong>HSL</strong> resolve esse problema modelando as cores de acordo com a percepção humana:
</p>
<div class="wzw-table-responsive">
<table class="wzw-tech-table">
<thead>
<tr>
<th>Componente</th>
<th>Escala de Valores</th>
<th>Significado Visual</th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>H (Hue / Matiz)</strong></td>
<td><code>0deg</code> a <code>360deg</code></td>
<td>O ângulo na roda de cores: 0° Vermelho, 60° Amarelo, 120° Verde, 180° Ciano, 240° Azul, 300° Magenta.</td>
</tr>
<tr>
<td><strong>S (Saturation / Saturação)</strong></td>
<td><code>0%</code> a <code>100%</code></td>
<td>Intensidade da cor: <code>0%</code> é tom de cinza neutro e <code>100%</code> é a cor com saturação pura e vívida.</td>
</tr>
<tr>
<td><strong>L (Lightness / Luminosidade)</strong></td>
<td><code>0%</code> a <code>100%</code></td>
<td>Claridade: <code>0%</code> é preto absoluto, <code>50%</code> é a cor normal e <code>100%</code> é branco puro.</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">hsl-palette.css</span>
    </div>
    <div class="wzw-ide-card" id="wzw-code-85812" 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-85812', 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-85812', 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">/* Criando uma família de tons no Design System alterando apenas o L (Lightness): */</span></span>
<span class="wzw-code-line"><span class="wzw-tk-kw">:root</span> {</span>
<span class="wzw-code-line">    <span class="wzw-tk-comment">--brand-h: 200; /* Azul */</span></span>
<span class="wzw-code-line">    <span class="wzw-tk-comment">--brand-s: 98%;</span></span>
<span class="wzw-code-line">&nbsp;</span>
<span class="wzw-code-line">    <span class="wzw-tk-comment">--brand-light:   hsl(var(--brand-h) var(--brand-s) 90%); /* Azul bem clarinho */</span></span>
<span class="wzw-code-line">    <span class="wzw-tk-comment">--brand-regular: hsl(var(--brand-h) var(--brand-s) 50%); /* Azul padrão */</span></span>
<span class="wzw-code-line">    <span class="wzw-tk-comment">--brand-dark:    hsl(var(--brand-h) var(--brand-s) 20%); /* Azul marinho escuro */</span></span>
<span class="wzw-code-line">}</span>
</code></pre>
            <textarea class="wzw-ide-raw" aria-hidden="true" tabindex="-1" readonly>/* Criando uma família de tons no Design System alterando apenas o L (Lightness): */
:root {
    --brand-h: 200; /* Azul */
    --brand-s: 98%;

    --brand-light:   hsl(var(--brand-h) var(--brand-s) 90%); /* Azul bem clarinho */
    --brand-regular: hsl(var(--brand-h) var(--brand-s) 50%); /* Azul padrão */
    --brand-dark:    hsl(var(--brand-h) var(--brand-s) 20%); /* Azul marinho escuro */
}</textarea>
        </div>
    </div>
    
</div>
<h2>6. O Futuro das Cores: OKLCH e a Função <code>color-mix()</code></h2>
<p>
    Embora o HSL seja excelente, ele possui uma falha científica conhecida como <em>distorção de luminosidade não-perceptual</em>: para os olhos humanos, o amarelo parece muito mais claro que o azul, mesmo quando ambos estão com 50% de Lightness no HSL.
</p>
<p>
    Para solucionar isso, o CSS moderno introduziu o espaço <strong>OKLCH</strong> (<em>Lightness, Chroma, Hue</em>). O OKLCH é <strong>perceptualmente uniforme</strong>: 60% de luminosidade no OKLCH produz exatamente o mesmo brilho visual em qualquer tom, além de destravar a gama de cores <strong>Display P3</strong> (com 25% mais cores que o antigo sRGB de monitores antigos).
</p>
<div class="wzw-code-wrapper">
<div class="wzw-code-header">
        <span class="wzw-code-badge">CSS</span><br />
        <span class="wzw-code-file">oklch-colormix.css</span>
    </div>
    <div class="wzw-ide-card" id="wzw-code-78337" 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-78337', 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-78337', 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 OKLCH: Luminosidade (0 a 1), Croma (0 a 0.4), Matiz (0 a 360) */</span></span>
<span class="wzw-code-line">.badge-moderna {</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">background-color</span>: oklch(0.65 0.22 142); /* Verde vibrante Display P3 */</span>
<span class="wzw-code-line">}</span>
<span class="wzw-code-line">&nbsp;</span>
<span class="wzw-code-line"><span class="wzw-tk-comment">/* Função color-mix(): Mistura duas cores nativamente no navegador sem pré-processador */</span></span>
<span class="wzw-code-line">.banner-promo {</span>
<span class="wzw-code-line">    <span class="wzw-tk-comment">/* Cria uma cor resultante de 80% do azul da marca com 20% de preto */</span></span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">background-color</span>: color-mix(in srgb, <span class="wzw-tk-num">#0284c7</span> 80%, black);</span>
<span class="wzw-code-line">}</span>
</code></pre>
            <textarea class="wzw-ide-raw" aria-hidden="true" tabindex="-1" readonly>/* Sintaxe OKLCH: Luminosidade (0 a 1), Croma (0 a 0.4), Matiz (0 a 360) */
.badge-moderna {
    background-color: oklch(0.65 0.22 142); /* Verde vibrante Display P3 */
}

/* Função color-mix(): Mistura duas cores nativamente no navegador sem pré-processador */
.banner-promo {
    /* Cria uma cor resultante de 80% do azul da marca com 20% de preto */
    background-color: color-mix(in srgb, #0284c7 80%, black);
}</textarea>
        </div>
    </div>
    
</div>
<h2>7. Acessibilidade de Cores &#038; Diretrizes WCAG 2.1</h2>
<p>
    Uma interface bem projetada deve ser legível por qualquer indivíduo, incluindo pessoas com daltonismo, baixa visão ou usando telas sob luz solar direta. As diretrizes internacionais <strong>WCAG 2.1</strong> estabelecem taxas mínimas de contraste matemático entre a cor do texto e o fundo:
</p>
<div class="wzw-table-responsive">
<table class="wzw-tech-table">
<thead>
<tr>
<th>Nível de Conformidade</th>
<th>Texto Normal (Abaixo de 18pt / 24px)</th>
<th>Texto Grande (18pt+ ou 14pt negrito)</th>
<th>Componentes Gráficos e Bordas de Input</th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>Nível AA (Obrigatório)</strong></td>
<td>No mínimo <strong>4.5 : 1</strong></td>
<td>No mínimo <strong>3.0 : 1</strong></td>
<td>No mínimo <strong>3.0 : 1</strong></td>
</tr>
<tr>
<td><strong>Nível AAA (Excelência)</strong></td>
<td>No mínimo <strong>7.0 : 1</strong></td>
<td>No mínimo <strong>4.5 : 1</strong></td>
<td>Recomendável</td>
</tr>
</tbody>
</table>
</div>
<h2>8. Laboratório Prático: Paleta de Design System com Variáveis e Contraste</h2>
<p>
    Neste exemplo prático, construímos um componente de cartão corporativo estruturado com tokens de cores semânticas em HSL, aproveitando canais alfa e o poder do <code>currentColor</code>:
</p>
<div class="wzw-code-wrapper">
<div class="wzw-code-header">
        <span class="wzw-code-badge">HTML</span><br />
        <span class="wzw-code-file">color-palette-demo.html</span>
    </div>
    <div class="wzw-ide-card" id="wzw-code-45289" 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">22 linhas</span>
            </div>
            <div class="wzw-ide-actions">
                <button type="button" class="wzw-ide-btn wzw-ide-wrap-btn" onclick="wzwToggleCodeWrap('wzw-code-45289', 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-45289', 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;pricing-card&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;pricing-badge&quot;</span><span class="wzw-tk-tag">&gt;</span>Plano Enterprise<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;pricing-title&quot;</span><span class="wzw-tk-tag">&gt;</span>R$ 189<span class="wzw-tk-tag">&lt;span</span> <span class="wzw-tk-attr">class</span>=<span class="wzw-tk-str">&quot;pricing-period&quot;</span><span class="wzw-tk-tag">&gt;</span>/mês<span class="wzw-tk-tag">&lt;/span&gt;</span><span class="wzw-tk-tag">&lt;/h3&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;pricing-desc&quot;</span><span class="wzw-tk-tag">&gt;</span>Acesso total à Web Academy com suporte dedicado e certificação.<span class="wzw-tk-tag">&lt;/p&gt;</span></span>
<span class="wzw-code-line">&nbsp;</span>
<span class="wzw-code-line">    <span class="wzw-tk-tag">&lt;ul</span> <span class="wzw-tk-attr">class</span>=<span class="wzw-tk-str">&quot;pricing-features&quot;</span><span class="wzw-tk-tag">&gt;</span></span>
<span class="wzw-code-line">        <span class="wzw-tk-tag">&lt;li&gt;</span></span>
<span class="wzw-code-line">            <span class="wzw-tk-tag">&lt;svg</span> <span class="wzw-tk-attr">class</span>=<span class="wzw-tk-str">&quot;check-icon&quot;</span> <span class="wzw-tk-attr">viewBox</span>=<span class="wzw-tk-str">&quot;0 0 20 20&quot;</span><span class="wzw-tk-tag">&gt;</span></span>
<span class="wzw-code-line">                <span class="wzw-tk-tag">&lt;path</span> <span class="wzw-tk-attr">d</span>=<span class="wzw-tk-str">&quot;M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z&quot;</span><span class="wzw-tk-tag">/&gt;</span></span>
<span class="wzw-code-line">            <span class="wzw-tk-tag">&lt;/svg&gt;</span></span>
<span class="wzw-code-line">            Mais de 150 ferramentas liberadas</span>
<span class="wzw-code-line">        <span class="wzw-tk-tag">&lt;/li&gt;</span></span>
<span class="wzw-code-line">        <span class="wzw-tk-tag">&lt;li&gt;</span></span>
<span class="wzw-code-line">            <span class="wzw-tk-tag">&lt;svg</span> <span class="wzw-tk-attr">class</span>=<span class="wzw-tk-str">&quot;check-icon&quot;</span> <span class="wzw-tk-attr">viewBox</span>=<span class="wzw-tk-str">&quot;0 0 20 20&quot;</span><span class="wzw-tk-tag">&gt;</span></span>
<span class="wzw-code-line">                <span class="wzw-tk-tag">&lt;path</span> <span class="wzw-tk-attr">d</span>=<span class="wzw-tk-str">&quot;M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z&quot;</span><span class="wzw-tk-tag">/&gt;</span></span>
<span class="wzw-code-line">            <span class="wzw-tk-tag">&lt;/svg&gt;</span></span>
<span class="wzw-code-line">            Playground IDE sem limites de execução</span>
<span class="wzw-code-line">        <span class="wzw-tk-tag">&lt;/li&gt;</span></span>
<span class="wzw-code-line">    <span class="wzw-tk-tag">&lt;/ul&gt;</span></span>
<span class="wzw-code-line">&nbsp;</span>
<span class="wzw-code-line">    <span class="wzw-tk-tag">&lt;button</span> <span class="wzw-tk-attr">class</span>=<span class="wzw-tk-str">&quot;btn-action&quot;</span><span class="wzw-tk-tag">&gt;</span>Assinar Agora<span class="wzw-tk-tag">&lt;/button&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;pricing-card&quot;&gt;
    &lt;span class=&quot;pricing-badge&quot;&gt;Plano Enterprise&lt;/span&gt;
    &lt;h3 class=&quot;pricing-title&quot;&gt;R$ 189&lt;span class=&quot;pricing-period&quot;&gt;/mês&lt;/span&gt;&lt;/h3&gt;
    &lt;p class=&quot;pricing-desc&quot;&gt;Acesso total à Web Academy com suporte dedicado e certificação.&lt;/p&gt;

    &lt;ul class=&quot;pricing-features&quot;&gt;
        &lt;li&gt;
            &lt;svg class=&quot;check-icon&quot; viewBox=&quot;0 0 20 20&quot;&gt;
                &lt;path d=&quot;M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z&quot;/&gt;
            &lt;/svg&gt;
            Mais de 150 ferramentas liberadas
        &lt;/li&gt;
        &lt;li&gt;
            &lt;svg class=&quot;check-icon&quot; viewBox=&quot;0 0 20 20&quot;&gt;
                &lt;path d=&quot;M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z&quot;/&gt;
            &lt;/svg&gt;
            Playground IDE sem limites de execução
        &lt;/li&gt;
    &lt;/ul&gt;

    &lt;button class=&quot;btn-action&quot;&gt;Assinar Agora&lt;/button&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">color-palette-demo.css</span>
    </div>
    <div class="wzw-ide-card" id="wzw-code-52474" 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">112 linhas</span>
            </div>
            <div class="wzw-ide-actions">
                <button type="button" class="wzw-ide-btn wzw-ide-wrap-btn" onclick="wzwToggleCodeWrap('wzw-code-52474', 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-52474', 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>
<span class="wzw-code-line">   DESIGN TOKENS EM HSL COM CONTROLE ALFA</span>
<span class="wzw-code-line">   ========================================================================== */</span>
<span class="wzw-code-line"><span class="wzw-tk-kw">:root</span> {</span>
<span class="wzw-code-line">    <span class="wzw-tk-comment">/* Matiz e Saturação Mestres da Marca */</span></span>
<span class="wzw-code-line">    <span class="wzw-tk-comment">--h-brand: 200;</span></span>
<span class="wzw-code-line">    <span class="wzw-tk-comment">--s-brand: 98%;</span></span>
<span class="wzw-code-line">&nbsp;</span>
<span class="wzw-code-line">    <span class="wzw-tk-comment">/* Tons Derivados */</span></span>
<span class="wzw-code-line">    <span class="wzw-tk-comment">--color-surface:    hsl(222 47% 11%);       /* Fundo escuro #0f172a */</span></span>
<span class="wzw-code-line">    <span class="wzw-tk-comment">--color-card-bg:    hsl(217 33% 17%);       /* Card #1e293b */</span></span>
<span class="wzw-code-line">    <span class="wzw-tk-comment">--color-card-border:hsl(215 25% 27%);       /* Borda sutil */</span></span>
<span class="wzw-code-line">    </span>
<span class="wzw-code-line">    <span class="wzw-tk-comment">--color-primary:    hsl(var(--h-brand) var(--s-brand) 39%); /* Azul vivo */</span></span>
<span class="wzw-code-line">    <span class="wzw-tk-comment">--color-primary-hover: hsl(var(--h-brand) var(--s-brand) 32%);</span></span>
<span class="wzw-code-line">    <span class="wzw-tk-comment">--color-primary-soft: hsl(var(--h-brand) var(--s-brand) 39% / 15%); /* Fundo com 15% alfa */</span></span>
<span class="wzw-code-line">&nbsp;</span>
<span class="wzw-code-line">    <span class="wzw-tk-comment">--color-text-main:  hsl(210 40% 98%);       /* Contraste 13:1 (AAA) */</span></span>
<span class="wzw-code-line">    <span class="wzw-tk-comment">--color-text-muted: hsl(215 20% 65%);       /* Contraste 5.5:1 (AA) */</span></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>: var(--color-surface);</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">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">min-height</span>: <span class="wzw-tk-num">100vh</span>;</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">.pricing-card {</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">background-color</span>: var(--color-card-bg);</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">border</span>: <span class="wzw-tk-num">1px</span> solid var(--color-card-border);</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 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">380px</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>: var(--color-text-main);</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">box-shadow</span>: 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.5);</span>
<span class="wzw-code-line">}</span>
<span class="wzw-code-line">&nbsp;</span>
<span class="wzw-code-line">.pricing-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">background-color</span>: var(--color-primary-soft);</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">color</span>: var(--color-primary);</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">font-size</span>: <span class="wzw-tk-num">0.8rem</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">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">border-radius</span>: <span class="wzw-tk-num">9999px</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">.pricing-title {</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">font-size</span>: <span class="wzw-tk-num">2.25rem</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>: var(--color-text-main);</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">.pricing-period {</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">font-size</span>: <span class="wzw-tk-num">1rem</span>;</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">color</span>: var(--color-text-muted);</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">font-weight</span>: 400;</span>
<span class="wzw-code-line">}</span>
<span class="wzw-code-line">&nbsp;</span>
<span class="wzw-code-line">.pricing-desc {</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">font-size</span>: <span class="wzw-tk-num">0.9rem</span>;</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">color</span>: var(--color-text-muted);</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">line-height</span>: 1.5;</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">.pricing-features {</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">list-style</span>: none;</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">margin-bottom</span>: <span class="wzw-tk-num">2rem</span>;</span>
<span class="wzw-code-line">}</span>
<span class="wzw-code-line">&nbsp;</span>
<span class="wzw-code-line">.pricing-features li {</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">0.75rem</span>;</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">color</span>: var(--color-text-main);</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">margin-bottom</span>: <span class="wzw-tk-num">0.85rem</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">/* O ícone SVG herda o preenchimento via currentColor da cor primária */</span></span>
<span class="wzw-code-line">.check-icon {</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">width</span>: <span class="wzw-tk-num">18px</span>;</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">height</span>: <span class="wzw-tk-num">18px</span>;</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">color</span>: <span class="wzw-tk-num">#22c55e</span>; /* Verde de sucesso */</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">fill</span>: currentColor;</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">flex-shrink</span>: 0;</span>
<span class="wzw-code-line">}</span>
<span class="wzw-code-line">&nbsp;</span>
<span class="wzw-code-line">.btn-action {</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">background-color</span>: var(--color-primary);</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.5rem</span>;</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">font-size</span>: <span class="wzw-tk-num">0.95rem</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">6px</span>;</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">cursor</span>: pointer;</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">transition</span>: background-color <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-action<span class="wzw-tk-kw">:hover</span> {</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">background-color</span>: var(--color-primary-hover);</span>
<span class="wzw-code-line">}</span>
</code></pre>
            <textarea class="wzw-ide-raw" aria-hidden="true" tabindex="-1" readonly>/* ==========================================================================
   DESIGN TOKENS EM HSL COM CONTROLE ALFA
   ========================================================================== */
:root {
    /* Matiz e Saturação Mestres da Marca */
    --h-brand: 200;
    --s-brand: 98%;

    /* Tons Derivados */
    --color-surface:    hsl(222 47% 11%);       /* Fundo escuro #0f172a */
    --color-card-bg:    hsl(217 33% 17%);       /* Card #1e293b */
    --color-card-border:hsl(215 25% 27%);       /* Borda sutil */
    
    --color-primary:    hsl(var(--h-brand) var(--s-brand) 39%); /* Azul vivo */
    --color-primary-hover: hsl(var(--h-brand) var(--s-brand) 32%);
    --color-primary-soft: hsl(var(--h-brand) var(--s-brand) 39% / 15%); /* Fundo com 15% alfa */

    --color-text-main:  hsl(210 40% 98%);       /* Contraste 13:1 (AAA) */
    --color-text-muted: hsl(215 20% 65%);       /* Contraste 5.5:1 (AA) */
}

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

.pricing-card {
    background-color: var(--color-card-bg);
    border: 1px solid var(--color-card-border);
    border-radius: 12px;
    padding: 2.25rem;
    max-width: 380px;
    width: 100%;
    color: var(--color-text-main);
    box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.5);
}

.pricing-badge {
    display: inline-block;
    background-color: var(--color-primary-soft);
    color: var(--color-primary);
    font-size: 0.8rem;
    font-weight: 700;
    padding: 0.35rem 0.75rem;
    border-radius: 9999px;
    margin-bottom: 1.25rem;
}

.pricing-title {
    font-size: 2.25rem;
    font-weight: 800;
    color: var(--color-text-main);
    margin-bottom: 0.5rem;
}

.pricing-period {
    font-size: 1rem;
    color: var(--color-text-muted);
    font-weight: 400;
}

.pricing-desc {
    font-size: 0.9rem;
    color: var(--color-text-muted);
    line-height: 1.5;
    margin-bottom: 1.75rem;
}

.pricing-features {
    list-style: none;
    margin-bottom: 2rem;
}

.pricing-features li {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    font-size: 0.875rem;
    color: var(--color-text-main);
    margin-bottom: 0.85rem;
}

/* O ícone SVG herda o preenchimento via currentColor da cor primária */
.check-icon {
    width: 18px;
    height: 18px;
    color: #22c55e; /* Verde de sucesso */
    fill: currentColor;
    flex-shrink: 0;
}

.btn-action {
    width: 100%;
    background-color: var(--color-primary);
    color: #ffffff;
    border: none;
    padding: 0.85rem 1.5rem;
    font-size: 0.95rem;
    font-weight: 600;
    border-radius: 6px;
    cursor: pointer;
    transition: background-color 0.2s ease;
}

.btn-action:hover {
    background-color: var(--color-primary-hover);
}</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>9. Boas Práticas da Indústria na Gestão de Cores</h2>
<ul>
<li>
        <strong>✅ Padronize um Formato Central no Projeto:</strong> Utilize Hexadecimal para valores estáticos diretos ou HSL/OKLCH com variáveis CSS para temas dinâmicos. Evite misturar aleatoriamente múltiplos formatos no mesmo componente.
    </li>
<li>
        <strong>✅ Nunca Transmita Informação Apenas pela Cor:</strong> Usuários daltônicos ou com baixa visão não distinguirão erros se um campo com falha tiver apenas a borda vermelha. Sempre combine cores com ícones explicativos ou mensagens textuais claras.
    </li>
<li>
        <strong>✅ Audite o Contraste com as Ferramentas DevTools:</strong> O Chrome e o Firefox DevTools exibem a pontuação WCAG diretamente ao clicar no conta-gotas de qualquer propriedade de cor. Verifique sempre se seus textos atingem no mínimo o nível AA (4.5:1).
    </li>
</ul>
<h2>10. Ferramentas Relacionadas &#038; Próximos Passos</h2>
<p>
    Aprimore seus conhecimentos e valide paletas de cores no ecossistema Web-ZoneWare:
</p>
<ul>
<li><a href="https://webzoneware.com/web-academy/playground-web/" target="_blank" rel="noopener"><strong>Playground Web IDE:</strong></a> Alterne matizes de HSL e OKLCH ao vivo no editor com recarregamento 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> Normalize notações de cores e formate seu CSS de acordo com os padrões da W3C.</li>
</ul>
<div class="wzw-callout wzw-callout-info">
<div class="wzw-callout-icon">🚀</div>
<div class="wzw-callout-content">
        <strong>Próxima Lição:</strong> Na <a href="https://webzoneware.com/web-academy/css/backgrounds-cores-imagens-css/"><strong>Lição 09: Backgrounds e Imagens de Fundo no CSS</strong></a>, aprenderemos a controlar cores de fundo, posicionamento de imagens com <code>background-image</code> e a propriedade <code>background-repeat</code>.
    </div>
</div>
<h2>11. Referências Técnicas &#038; Especificações Oficiais</h2>
<ul>
<li><a href="https://www.w3.org/TR/css-color-4/" target="_blank" rel="noopener"><strong>W3C CSS Color Module Level 4:</strong></a> A especificação que oficializou as novas sintaxes sem vírgulas e os espaços de cores modernos.</li>
<li><a href="https://www.w3.org/TR/WCAG21/#contrast-minimum" target="_blank" rel="noopener"><strong>W3C Web Content Accessibility Guidelines (WCAG) 2.1:</strong></a> Diretrizes técnicas do cálculo de contraste mínimo (Critério 1.4.3).</li>
<li><a href="https://developer.mozilla.org/pt-BR/docs/Web/CSS/color_value" target="_blank" rel="noopener"><strong>MDN Web Docs (Mozilla):</strong></a> Guia de referência sobre Valores e Tipos de Cor no CSS.</li>
</ul>
<p>O post <a href="https://webzoneware.com/web-academy/curso-css/cores-css-hex-rgb-hsl/">Cores no CSS: Guia de HEX, RGB, HSL e OKLCH | 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/cores-css-hex-rgb-hsl/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
