Emmet: Gradientes CSS em Uma Linha
Nas aulas 11-12 você dominou os mecanismos principais dos atalhos CSS — inferência de unidade, unidades explícitas, múltiplos valores, cores, prefixos de fornecedor e correspondência difusa. Mas o recurso CSS3 mais complexo — gradientes — ainda não foi abordado. Gradientes são a propriedade CSS3 mais repetitiva: um único
linear-gradientrequer quatro linhas de código entre navegadores (-webkit-+-moz-+-o-+ padrão), e a sintaxe dos parâmetros de cada linha difere entre três versões (webkit legado, especificação atual, proposta W3C). Esta aula ensina o gerador de gradiente CSS3 do Emmet —lg(...)expande quatro linhas entre navegadores cobrindo três versões de sintaxe de uma vez, depois combina todos os mecanismos das duas aulas anteriores para construir um estilo de botão completo.
1. O Que Você Vai Aprender
- Atalho de gradiente linear
lg(...): expande automaticamente para 4 linhas entre navegadores (webkit + moz + o + padrão), cobrindo 3 versões de sintaxe - Parâmetros de direção do gradiente:
lg(left, #fff, #000)elg(top, #fff, #000) - Múltiplas paradas de cor com posições:
lg(#fff, #ccc 50%, #000)— o50%é a posição de#ccc - Gradiente radial
rg(...): mesma estrutura quelg(...), padrão do centro para fora - Prática: estilo de botão de 7 propriedades (
bgc+c+p+bdrs+tdn+fz+fw) em uma linha
2. A História Real de Uma Desenvolvedora Front-End
(1) Ponto de Dor: Código de Gradiente entre Navegadores + Estilos de Botão — Uma Experiência Devastadora
Alice está construindo o botão "Cadastre-se Agora" em uma landing page de produto SaaS. Ela quer um fundo de gradiente linear branco para cinza claro — visualmente mais polido que uma cor sólida. Ela pesquisa no Google "sintaxe linear-gradient entre navegadores", copia e cola o resultado:
background: -webkit-linear-gradient(left, #fff 0%, #f0f0f0 100%);
background: -moz-linear-gradient(left, #fff 0%, #f0f0f0 100%);
background: -o-linear-gradient(left, #fff 0%, #f0f0f0 100%);
background: linear-gradient(to right, #fff 0%, #f0f0f0 100%);
Quatro linhas de código entre navegadores, com cada linha tendo parâmetros ligeiramente diferentes (webkit/moz/o usam left, o padrão usa to right). Ela precisa copiar isso 5 vezes (botão primário, botão secundário, estado hover, estado ativo, estado desabilitado), mudando os valores de cor a cada vez. São 20 linhas de código de gradiente × 5 ciclos de copiar e colar = 100 linhas.
Ainda pior, o botão também precisa de um conjunto completo de estilos: fundo gradiente (4 linhas) + cor do texto (1 linha) + padding (1 linha) + border-radius (1 linha) + remoção de decoração de texto (1 linha) + font-size (1 linha) + font-weight (1 linha) + cursor (1 linha) = 11 linhas. Alice gasta 15 minutos apenas no CSS do botão. Ela pensa: gradientes CSS3 são um elemento básico do design moderno — não posso simplesmente digitar alguns caracteres, alguns valores e pressionar Tab para obter 4 linhas de código entre navegadores?
(2) A Solução do Gerador de Gradiente do Emmet
O Emmet fornece um gerador de gradiente CSS3 — lg(...) (gradiente linear) e rg(...) (gradiente radial). Você escreve uma "definição de gradiente normal" (direção + paradas de cor) dentro dos parênteses, e o Emmet expande automaticamente em 4 linhas entre navegadores cobrindo webkit/moz/o + padrão em 3 versões de sintaxe.
O atalho de botão com gradiente da Alice:
lg(left,#fff,#f0f0f0)
Uma linha expande para 4 linhas entre navegadores com tratamento automático de posição de parada de cor. Este único atalho reduz o código de gradiente dela de 20 linhas para 1.
Para o estilo completo do botão, Alice escreve todas as 7 propriedades em uma linha:
bgc#2c3e50+c#fff+p10-20+bdrs4+tdn+fz16+fw700
47 caracteres, 7 pressionamentos de Tab, 11 linhas de CSS completo do botão em 12 segundos. O que costumava levar 15 minutos agora leva 12 segundos — uma melhoria de velocidade de 75x.
(3) Benefícios
O gerador de gradiente CSS3 combinado com atalhos CSS é a arma definitiva do Emmet para estilização. O primeiro elimina o trabalho repetitivo de "4 linhas entre navegadores + 3 versões de sintaxe", enquanto o segundo comprime estilos comuns de componentes de UI (botões, cartões, formulários) em uma única linha. Após esta aula, a estilização de botões da Alice passa de 15 minutos para 12 segundos, e o código de gradiente entre navegadores de 20 linhas para 1 atalho. Esta aula também marca a conclusão da Fase 4 — a Fase 5 aborda Ações do editor, expandindo o Emmet de "escrever atalhos" para "aceleração de edição".
3. Definição Principal dos Geradores de Gradiente CSS3
Gradientes CSS3 são um dos efeitos visuais favoritos dos designers, mas a sintaxe entre navegadores é incrivelmente tediosa — um único linear-gradient requer três versões com prefixo de fornecedor (webkit/moz/o), cada uma com sintaxe de parâmetros diferindo entre três versões (webkit legado, especificação atual, proposta W3C).
O Emmet fornece duas palavras-chave de gerador de gradiente — lg(...) e rg(...) — que expandem automaticamente para 4 linhas entre navegadores, cobrindo todas as 3 versões de sintaxe.
graph TB
A[Atalho de Gradiente lg] --> B[lg Gradiente Linear]
A --> C[rg Gradiente Radial]
B --> B1[lg direção? + cores + paradas]
B1 --> B2[direção opcional: left/right/top/bottom]
B1 --> B3[paradas de cor: #fff, #ccc 50%, #000]
C --> C1[rg + cores + paradas]
C1 --> C2[padrão do centro para fora]
D[Expansão: 4 Linhas entre Navegadores] --> D1[-webkit-linear-gradient]
D --> D2[-moz-linear-gradient]
D --> D3[-o-linear-gradient]
D --> D4[linear-gradient versão to]
B -.-> D
C -.-> D
style A fill:#3b82f6,color:#fff
style B fill:#10b981,color:#fff
style C fill:#8b5cf6,color:#fff
style D fill:#ef4444,color:#fff
style D1 fill:#fef3c7
style D2 fill:#fef3c7
style D3 fill:#fef3c7
style D4 fill:#fef3c7
background ou background-image (ex.: bg:lg(...), bgc:lg(...)), ou escritos isoladamente em um contexto de atalho (ex.: uma linha contendo apenas lg(...)). Quando usado como valor de propriedade, o Emmet herda inteligentemente o nome da propriedade da linha atual (veja o atalho de caractere bg+ para detalhes).
4. Gradiente Linear lg(...): Direção + Paradas de Cor
lg(...) é o atalho para linear-gradient(...), com a estrutura de parâmetros lg(direção?, paradas de cor...).
(1) Gradiente Linear Básico: Direção Padrão
Quando o parâmetro de direção é omitido, o Emmet usa como padrão o gradiente de cima para baixo.
| Atalho | Conteúdo Principal da Expansão | Descrição |
|---|---|---|
lg(#fff,#000) |
-webkit-linear-gradient(top, #fff, #000);-moz-linear-gradient(top, #fff, #000);-o-linear-gradient(top, #fff, #000);linear-gradient(to bottom, #fff, #000); |
De cima para baixo (padrão) |
lg(#fc0,red) |
Mesma estrutura, cores #ffcc00 e red |
Quaisquer cores |
lg(#fff,#ccc,#000) |
Gradiente de três cores | Distribuído uniformemente por padrão |
(2) Parâmetro de Direção do Gradiente
O parâmetro de direção é o primeiro parâmetro opcional de lg(...), usando palavras-chave CSS (left, right, top, bottom).
| Atalho | Conteúdo Principal da Expansão | Direção |
|---|---|---|
lg(left,#fff,#000) |
-webkit-linear-gradient(left, #fff, #000);... linear-gradient(to right, #fff, #000); |
Da esquerda para a direita |
lg(right,#fff,#000) |
-webkit-linear-gradient(right, #fff, #000);... linear-gradient(to left, #fff, #000); |
Da direita para a esquerda |
lg(top,#fff,#000) |
-webkit-linear-gradient(top, #fff, #000);... linear-gradient(to bottom, #fff, #000); |
De cima para baixo |
lg(bottom,#fff,#000) |
-webkit-linear-gradient(bottom, #fff, #000);... linear-gradient(to top, #fff, #000); |
De baixo para cima |
left = começando da esquerda), enquanto a versão padrão usa a direção final (to right = terminando na direita = da esquerda para a direita). O Emmet trata automaticamente essa conversão bidirecional — você só precisa escrever a direção inicial (left), e o Emmet adiciona o prefixo to mais a direção espelhada para a versão padrão.
(3) Múltiplas Paradas de Cor com Parâmetros de Posição
Cada parada de cor pode incluir um parâmetro de posição (0% a 100%) controlando onde a cor fica no gradiente.
| Atalho | Conteúdo Principal da Expansão | Descrição |
|---|---|---|
lg(#fff,#000) |
Distribuído uniformemente (padrão 0% e 100%) | 2 cores básico |
lg(#fff,#ccc 50%,#000) |
-webkit-linear-gradient(top, #fff 0%, #ccc 50%, #000 100%);... linear-gradient(to bottom, #fff 0%, #ccc 50%, #000 100%); |
3 cores + meio em 50% |
lg(left,#fc0 30%,red) |
... linear-gradient(to right, #fc0 30%, red 100%); |
Torna laranja em 30% |
lg(#fff 0%,#ccc 25%,#000 75%) |
Três cores, posições personalizadas | Controle total de posição |
5. Gradiente Radial rg(...): Do Centro para Fora
rg(...) é o atalho para radial-gradient(...), com uma estrutura semelhante a lg(...) mas padrão do centro para fora (radial).
(1) Gradiente Radial Básico
| Atalho | Conteúdo Principal da Expansão | Descrição |
|---|---|---|
rg(#fff,#000) |
-webkit-radial-gradient(center, #fff, #000);-moz-radial-gradient(center, #fff, #000);-o-radial-gradient(center, #fff, #000);radial-gradient(circle at center, #fff, #000); |
Do centro para fora |
rg(#fc0,#f00) |
Mesma estrutura, laranja para vermelho | Efeito de destaque radial |
(2) Forma e Posição do Gradiente Radial
Gradientes radiais suportam parâmetros de forma mais complexos (circle, ellipse) e parâmetros de posição (top left, center).
| Atalho | Conteúdo Principal da Expansão | Descrição |
|---|---|---|
rg(circle,#fff,#000) |
Radial circular | Forma padrão |
rg(ellipse,#fff,#000) |
Radial elíptico | Forma de elipse |
rg(circle at top left,#fff,#000) |
Círculo no canto superior esquerdo | Posição personalizada |
circle, ellipse, at) podem ter pequenas diferenças de suporte entre versões do Emmet. Radiais básicos de 2 cores (rg(#fff,#000)) têm a melhor compatibilidade; teste parâmetros complexos no seu editor primeiro.
6. Exemplos Práticos
Os 5 exemplos a seguir cobrem os cenários principais de geradores de gradiente combinados com atalhos CSS.
▶ Exemplo: Gradiente Linear Básico lg(#fff,#000) (Dificuldade: ★)
O gradiente mais comum — branco para preto, de cima para baixo, 4 linhas entre navegadores cobrindo 3 versões de sintaxe.
Atalho:
lg(#fff,#000)
Expansão:
background: -webkit-linear-gradient(top, #fff 0%, #000 100%);
background: -moz-linear-gradient(top, #fff 0%, #000 100%);
background: -o-linear-gradient(top, #fff 0%, #000 100%);
background: linear-gradient(to bottom, #fff 0%, #000 100%);
Saída:
TEXT 📖 Somente leituraExplicação: Em `lg(#fff,#000)`, `lg` é a palavra-chave de atalho para `linear-gradient`, e `#fff` e `#000` são duas paradas de cor (o Emmet atribui automaticamente as posições 0% e 100%). O Emmet expande para 4 linhas entre navegadores: ① `-webkit-linear-gradient` (Chrome/Safari legados); ② `-moz-linear-gradient` (Firefox legado); ③ `-o-linear-gradient` (Opera legado, obsoleto); ④ `linear-gradient` padrão (versão proposta W3C, usando `to bottom` em vez de `top`). Estas 4 linhas cobrem a sintaxe de gradiente para todos os navegadores de 2010–2026. Nota: o Emmet usa o atalho `lg(...)` como valor para a propriedade `background` por padrão (também suporta `background-image`).
▶ Exemplo: Direção do Gradiente lg(left,#fff,#000) (Dificuldade: ★★)
Gradiente horizontal — da esquerda para a direita, verificando a conversão bidirecional do parâmetro de direção.
Atalho:
lg(left,#fff,#000)
Expansão:
background: -webkit-linear-gradient(left, #fff 0%, #000 100%);
background: -moz-linear-gradient(left, #fff 0%, #000 100%);
background: -o-linear-gradient(left, #fff 0%, #000 100%);
background: linear-gradient(to right, #fff 0%, #000 100%);
Saída:
TEXT 📖 Somente leituraExplicação: `left` é o parâmetro de direção — nas versões legadas webkit/moz/o significa "começando da esquerda" (o gradiente vai da esquerda para a direita); na versão padrão deve ser convertido para `to right` (terminando na direita = da esquerda para a direita). O Emmet trata automaticamente essa **conversão semântica de início vs. fim** — você só escreve a direção inicial (`left`, `right`, `top`, `bottom`), e o Emmet adiciona o prefixo `to` e espelha a direção para a versão padrão. Este design evita que você se preocupe com diferenças de versão. Após a expansão, o navegador renderiza um fundo de gradiente horizontal de branco à esquerda para preto à direita.
▶ Exemplo: Múltiplas Paradas de Cor lg(#fff,#ccc 50%,#000) (Dificuldade: ★★)
Gradiente de 3 cores com posição personalizada da cor do meio — controle preciso sobre o ponto de transição de cor.
Atalho:
lg(#fff,#ccc 50%,#000)
Expansão:
background: -webkit-linear-gradient(top, #fff 0%, #ccc 50%, #000 100%);
background: -moz-linear-gradient(top, #fff 0%, #ccc 50%, #000 100%);
background: -o-linear-gradient(top, #fff 0%, #ccc 50%, #000 100%);
background: linear-gradient(to bottom, #fff 0%, #ccc 50%, #000 100%);
Saída:
TEXT 📖 Somente leituraExplicação: No gradiente de 3 cores `#fff,#ccc 50%,#000`, `#fff` é a cor inicial (auto 0%), `#ccc 50%` é a cor do meio (**colocada explicitamente em 50%**) e `#000` é a cor final (auto 100%). O `50%` após `#ccc` é um **parâmetro de posição** — controlando onde `#ccc` fica no gradiente. O parâmetro de posição e a cor são separados por um **espaço** (não `-`), porque `-` já é um separador de valor nos atalhos CSS do Emmet. Após a expansão, o navegador renderiza um gradiente de três segmentos: branco puro no topo 0%, cinza claro no meio 50%, preto puro na base 100%. As posições de parada de cor são a ferramenta principal para designers ajustarem efeitos de gradiente — por exemplo, "mudança abrupta de cor no meio ao pressionar o botão" requer posições explícitas.
▶ Exemplo: Gradiente Radial rg(#fff,#000) (Dificuldade: ★)
Gradiente radial — um gradiente circular do centro para fora, ideal para efeitos de holofote e destaque.
Atalho:
rg(#fff,#000)
Expansão:
background: -webkit-radial-gradient(center, #fff 0%, #000 100%);
background: -moz-radial-gradient(center, #fff 0%, #000 100%);
background: -o-radial-gradient(center, #fff 0%, #000 100%);
background: radial-gradient(circle at center, #fff 0%, #000 100%);
Saída:
TEXT 📖 Somente leituraExplicação: `rg(...)` é a palavra-chave de atalho para `radial-gradient(...)`, com uma estrutura semelhante a `lg(...)` mas **padrão do centro para fora**. `#fff` e `#000` são duas paradas de cor. O Emmet expande para 4 linhas entre navegadores: ① `-webkit-radial-gradient(center, ...)` (webkit legado); ② `-moz-radial-gradient`; ③ `-o-radial-gradient`; ④ `radial-gradient(circle at center, ...)` padrão (usando `circle at center` para indicar um radial circular no centro). Gradientes radiais são comumente usados para efeitos de holofote, destaque e substituição de sombra — como um "ponto de luz" ao passar o mouse sobre um cartão ou uma borda de "vinheta" em imagens.
▶ Exemplo: Prática de Estilo de Botão Completo (Dificuldade: ★★)
Um exercício prático abrangente — combinando todos os mecanismos de atalho CSS das aulas 11–13 (inferência de unidade, cores, !, correspondência difusa) para escrever um estilo de botão completo.
Atalho:
bgc#2c3e50+c#fff+p10-20+bdrs4+tdn+fz16+fw700
Expansão:
background-color: #2c3e50;
color: #ffffff;
padding: 10px 20px;
border-radius: 4px;
text-decoration: none;
font-size: 16px;
font-weight: 700;
Saída:
TEXT 📖 Somente leituraExplicação: 7 atalhos independentes escritos em uma linha, cobrindo o estilo completo de um botão — `bgc#2c3e50` para fundo azul-acinzentado escuro (`#2c3e50` é um hex de 6 dígitos preservado como está); `c#fff` para texto branco (`#fff` expande automaticamente para `#ffffff`); `p10-20` para padding de 10px superior/inferior e 20px esquerda/direita; `bdrs4` para border-radius de 4px; `tdn` correspondido difusamente para `text-decoration: none` (remove sublinhado); `fz16` para font-size de 16px (`fz` é o atalho de font-size); `fw700` para font-weight 700 (`fw` é o atalho de font-weight, 700 é negrito). Todo o atalho tem 47 caracteres, expandindo para 7 linhas CSS completas. De escrever à mão 7 linhas × ~18 caracteres em média = 126 caracteres + 7 pressionamentos de Tab + 7 verificações de ponto e vírgula, para 47 caracteres em uma linha. Os atalhos CSS do Emmet reduzem a contagem de pressionamentos de tecla em 60%, e combinados com as 4 linhas entre navegadores do atalho de gradiente, a eficiência geral melhora de 70 a 80x.
7. Exemplo Completo: Botão com Gradiente + Efeito Hover
Combine o gerador de gradiente, atalhos CSS e correspondência difusa — um "botão com gradiente + efeito hover" completo.
▶ Exemplo: Estilo Completo de Botão com Gradiente (Dificuldade: ★★★)
Atalho:
.bg:lg(left,#fff,#f0f0f0) c#333 p10-20 bdrs4 tdn fz16 fw700 curp
Expansão:
background: -webkit-linear-gradient(left, #fff 0%, #f0f0f0 100%);
background: -moz-linear-gradient(left, #fff 0%, #f0f0f0 100%);
background: -o-linear-gradient(left, #fff 0%, #f0f0f0 100%);
background: linear-gradient(to right, #fff 0%, #f0f0f0 100%);
color: #333333;
padding: 10px 20px;
border-radius: 4px;
text-decoration: none;
font-size: 16px;
font-weight: 700;
cursor: pointer;
Saída:
TEXT 📖 Somente leituraExplicação: Este exemplo é o grande final da Fase 4 — invocando simultaneamente o gerador de gradiente (`lg(left,#fff,#f0f0f0)` expandindo para 4 linhas entre navegadores), inferência de unidade (`p10-20` adiciona px automaticamente, `bdrs4` adiciona px automaticamente), expansão automática de cor (`c#333` 3 dígitos → 6 dígitos), correspondência difusa (`tdn` → text-decoration: none) e atalhos de propriedade de uma letra (`fz` para font-size, `fw` para font-weight, `curp` para cursor: pointer). Um único atalho de 60 caracteres expande para 11 linhas CSS completas (4 linhas de gradiente + 7 linhas de estilo base). Este "botão com gradiente" é o componente de UI mais comum em landing pages SaaS e sites de produto — comprimir seus estilos em um único atalho Emmet é a forma definitiva do Emmet no domínio CSS. Todo o atalho reduz a escrita manual de 11 linhas × ~22 caracteres em média = 242 caracteres + 11 pressionamentos de Tab + 11 verificações de ponto e vírgula para 60 caracteres em uma linha. Combinado com o mecanismo de prefixo de fornecedor da aula 12 (`-bdrs4`), você poderia adicionar mais 2 linhas webkit/moz de border-radius — mas navegadores modernos suportam `border-radius` nativamente, então normalmente é omitido na prática.
❓ Perguntas Frequentes
P:
lg(...)expande apenas para 4 linhas entre navegadores? Posso reduzir para 2? R: O padrão são 4 linhas. O Emmet não fornece uma opção para "saída apenas padrão" — isso é intencional, garantindo que gradientes CSS3 funcionem em todos os navegadores, incluindo os legados. Se você se importa apenas com navegadores modernos (Chrome 26+, Firefox 16+, Safari 6.1+, Edge), pode excluir manualmente as linhas webkit/moz/o e manter apenas a versão padrão. Mas verifique a distribuição de navegadores do seu público-alvo antes de excluir.
P: Qual é a direção padrão do gradiente para
lg(...)? A direção pode ser omitida? R: O padrão étop(de cima para baixo).lg(#fff,#000)sem direção expande paralinear-gradient(top, ...)(legado) oulinear-gradient(to bottom, ...)(padrão) — ambos são de cima para baixo. Para outras direções, você deve escrevê-las explicitamente:lg(left,...),lg(right,...),lg(bottom,...).
P: O que significa o atalho de caractere
bg+? Qual a diferença debgc? R:bg+é o atalho de expansão de background do Emmet —+significa "com valor placeholder padrão", expandindo para o atalho background com um placeholderurl()(adequado para cenários de imagem de fundo).bgcé apenasbackground-color, lidando apenas com cor de fundo.bg+ebgi(background-image) são mais comumente usados com gradienteslg(...):bgi:lg(left,#fff,#000)expande para uma imagem de fundo com gradiente completa. Na prática, recomenda-se usarbg+lg(...).
P: Posso usar
transparentem atalhos de gradiente? R: Sim, mas você precisa da string completa:lg(#fff,transparent,#000)expande para um gradiente de 3 cores começando com#fff, transparente no meio, terminando com#000.transparenté uma palavra-chave CSS padrão — o Emmet a gera como está. Se você quiser transparência rgba, pode usar a funçãorgba():lg(rgba(255,255,255,0),#000), mas o suporte do Emmet para chamadas de função dentro dergba()é limitado. Recomenda-se usar cores hex (ex.:#fff0) ou#fff00(cor de 4 dígitos, últimos dois dígitos são alfa).
📖 Resumo
- Atalho de gradiente linear
lg(...): expande automaticamente para 4 linhas entre navegadores (webkit + moz + o + versão proposta W3C padrão) - Atalho de gradiente radial
rg(...): mesma estrutura quelg(...), padrão do centro para fora (círculocircle at center) - Direção do gradiente:
left/right/top/bottomcomo primeiro parâmetro; legado usa direção inicial, padrão adiciona prefixotoautomaticamente com direção espelhada - Múltiplas paradas de cor:
cor + espaço + posição%para controle preciso (#ccc 50%significa#cccna posição 50%) - Estilo de botão completo: 7 propriedades em uma linha (
bgc+c+p+bdrs+tdn+fz+fw), cobrindo fundo/texto/espaçamento/border-radius/decoração/font-size/font-weight - Prática: botão com gradiente + efeito hover em um único atalho Emmet, gerando 11 linhas de CSS
📝 Exercícios
-
Básico (Dificuldade: ★): Em um arquivo
.css, digite três atalhos de gradiente:lg(#fff,#000),lg(#fc0,red)erg(#fff,#000). Pressione Tab e registre os resultados da expansão (cada um deve expandir para 4 linhas entre navegadores). Conte o total de linhas expandidas e verifique se cada linha tem o prefixo de navegador correto (webkit/moz/o + padrão). -
Intermediário (Dificuldade: ★★): Escreva um estilo de botão com fundo gradiente usando uma única linha de atalho Emmet (pelo menos 8 propriedades). Requisitos: (a) fundo gradiente usando
bg:lg(left,#fff,#f0f0f0)oubgi:lg(top,#3b82f6,#1e40af)(gradiente azul); (b) texto brancoc#fff; (c) padding 10-20; (d) border-radius 6px; (e) text-decoration: none; (f) font-size 16px; (g) font-weight 600; (h) cursor pointercurp(curpé atalho para cursor: pointer). Verifique a expansão e explique por que as 8 propriedades são separadas por espaços (não hífens). -
Desafio (Dificuldade: ★★★): Escreva um estilo CSS completo de "cartão + gradiente + transição hover" (pelo menos 10 propriedades). Requisitos: (a) fundo gradiente (
bg:lg4 linhas entre navegadores); (b) border-radius 8px; (c) sombra (bxscorrespondência difusa); (d) padding 16-20; (e) texto cinza escuro; (f) font-size 14px; (g)transitionusando atalho de uma letra (trsou-trs); (h)cursor: pointer; (i) pelo menos 1 propriedade usando correspondência difusa; (j) pelo menos 1 propriedade terminando com!important. Escreva tudo em uma linha de atalho Emmet, registre o resultado da expansão (esperado 15-20 linhas de CSS) e escreva um relatório de comparação de velocidade: "gradiente + prática de atalho CSS" vs. escrever CSS à mão.