🚀 Aprenda do Zero ao Avançado

Domine HTML, CSS & JavaScript

Guia completo e interativo para você aprender desenvolvimento web. Exemplos práticos, explicações claras e exercícios para fixar o conteúdo. Agora com sistema de conquistas e gamificação!

50+ Tags HTML
80+ Propriedades CSS
65+ Desafios
index.html
<!DOCTYPE html>
<html>
  <head>
    <title>Meu Site</title>
  </head>
  <body>
    <h1>Olá, Mundo!</h1>
  </body>
</html>
HTML5

📄 Hypertext Markup Language

HTML é a linguagem de marcação padrão para criar páginas web. Ele descreve a estrutura de uma página usando elementos e tags que os navegadores interpretam para exibir conteúdo.

118 Tags
1993 Criado
HTML5 Versão Atual
<html> <head> <body> <div> <p> <a>
📄

O que é HTML?

HTML (HyperText Markup Language) é a linguagem base de toda página web. Ele define a estrutura e o conteúdo do site através de elementos chamados tags.

🏗️ Estrutura Básica do HTML

Exemplo
<!DOCTYPE html>        ← Define o tipo do documento (HTML5)
<html lang="pt-BR">    ← Elemento raiz, define o idioma
<head>                 ← Contém metadados (não visível)
    <meta charset="UTF-8">
    <title>Título da Página</title>
</head>
<body>                 ← Conteúdo visível da página
    <h1>Olá, Mundo!</h1>
</body>
</html>

📝 Tags de Texto

Tags usadas para formatar e estruturar textos na página.

<h1> - <h6> Títulos (h1 maior, h6 menor)
<p> Parágrafo de texto
<strong> Texto em negrito (importante)
<em> Texto em itálico (ênfase)
<mark> Texto destacado
<small> Texto menor
<del> Texto riscado
<ins> Texto inserido/sublinhado
<sub> Textosubscrito (H₂O)
<sup> Textosobrescrito (x²)
<blockquote> Citação em bloco
<code> Código inline
<pre> Texto pré-formatado
<br> Quebra de linha
<hr> Linha horizontal
<abbr> Abreviação
Exemplos de Uso
<h1>Título Principal</h1>
<h2>Subtítulo</h2>
<h3>Título de Seção</h3>

<p>Este é um parágrafo com <strong>texto importante</strong> 
   e <em>texto com ênfase</em>.</p>

<p>Fórmula da água: H<sub>2</sub>O</p>
<p>Matemática: x<sup>2</sup> + y<sup>2</sup> = z<sup>2</sup></p>

<blockquote>
    "A única maneira de fazer um ótimo trabalho é amar o que você faz."
    <cite>— Steve Jobs</cite>
</blockquote>

👁️ Visualização:

Título Principal

Subtítulo

Este é um parágrafo com texto importante e texto com ênfase.

Fórmula da água: H2O

"A única maneira de fazer um ótimo trabalho é amar o que você faz." — Steve Jobs

🎯 Tags Semânticas (HTML5)

Tags semânticas dão significado ao conteúdo. Melhoram a acessibilidade, SEO e tornam o código mais legível.

<header>
<nav>
<main>
<article>
<section>
<aside>
<header> Cabeçalho da página ou seção. Contém logo, navegação, título.
<nav> Navegação principal com links do site.
<main> Conteúdo principal da página. Único por página!
<article> Conteúdo independente (post, artigo, comentário).
<section> Seção temática do documento.
<aside> Conteúdo relacionado (sidebar, anúncios).
<footer> Rodapé da página ou seção.
<figure> Conteúdo ilustrativo (imagem, diagrama).
<figcaption> Legenda para <figure>.
<details> Widget expansível/colapsável.
<summary> Título visível do <details>.
<time> Data/hora legível por máquinas.
Estrutura Semântica Completa
<header>
    <nav>
        <a href="#">Logo</a>
        <ul>
            <li><a href="#">Início</a></li>
            <li><a href="#">Sobre</a></li>
            <li><a href="#">Contato</a></li>
        </ul>
    </nav>
</header>

<main>
    <article>
        <h1>Título do Artigo</h1>
        <time datetime="2026-02-17">17 de Fevereiro, 2026</time>
        
        <section>
            <h2>Introdução</h2>
            <p>Conteúdo da seção...</p>
        </section>
        
        <figure>
            <img src="imagem.jpg" alt="Descrição">
            <figcaption>Legenda da imagem</figcaption>
        </figure>
    </article>
    
    <aside>
        <h3>Artigos Relacionados</h3>
        <ul>...</ul>
    </aside>
</main>

<footer>
    <p>© 2026 Meu Site. Todos os direitos reservados.</p>
</footer>

👁️ Exemplo Interativo - <details>:

Clique para expandir

Este conteúdo fica escondido até você clicar! Muito útil para FAQs e menus.

🔗 Links, Imagens e Mídia

<a href=""> Link/âncora para outra página ou seção
<img src="" alt=""> Imagem (src=caminho, alt=descrição)
<video> Vídeo incorporado
<audio> Áudio incorporado
<iframe> Incorpora outra página (YouTube, mapas)
<source> Fonte de mídia para video/audio
Exemplos
<!-- Link externo abre em nova aba -->
<a href="https://google.com" target="_blank">Ir para Google</a>

<!-- Link interno (âncora) -->
<a href="#secao">Ir para Seção</a>

<!-- Link para email -->
<a href="mailto:email@exemplo.com">Enviar Email</a>

<!-- Imagem com texto alternativo (acessibilidade!) -->
<img src="foto.jpg" alt="Descrição da imagem" width="300">

<!-- Vídeo com controles -->
<video controls width="400">
    <source src="video.mp4" type="video/mp4">
    Seu navegador não suporta vídeo.
</video>

<!-- Áudio -->
<audio controls>
    <source src="musica.mp3" type="audio/mpeg">
</audio>

📋 Listas

Lista Não Ordenada (<ul>)

  • Item 1
  • Item 2
  • Item 3
<ul><li>Item</li></ul>

Lista Ordenada (<ol>)

  1. Primeiro
  2. Segundo
  3. Terceiro
<ol><li>Item</li></ol>

Lista de Definição (<dl>)

HTML
Linguagem de marcação
CSS
Folhas de estilo
<dl><dt>Termo</dt><dd>Definição</dd></dl>

📊 Tabelas

Estrutura de Tabela
<table>
    <thead>                    ← Cabeçalho da tabela
        <tr>                   ← Linha (table row)
            <th>Nome</th>      ← Célula de cabeçalho
            <th>Idade</th>
            <th>Cidade</th>
        </tr>
    </thead>
    <tbody>                    ← Corpo da tabela
        <tr>
            <td>João</td>      ← Célula de dados
            <td>25</td>
            <td>São Paulo</td>
        </tr>
        <tr>
            <td>Maria</td>
            <td>30</td>
            <td>Rio de Janeiro</td>
        </tr>
    </tbody>
    <tfoot>                    ← Rodapé da tabela
        <tr>
            <td colspan="3">Total: 2 pessoas</td>
        </tr>
    </tfoot>
</table>

👁️ Visualização:

Nome Idade Cidade
João 25 São Paulo
Maria 30 Rio de Janeiro

📝 Formulários

Formulários permitem coletar dados do usuário.

<form> Container do formulário
<input> Campo de entrada (texto, email, senha...)
<textarea> Área de texto multilinha
<select> Lista suspensa
<option> Opção dentro do select
<label> Rótulo para campo (acessibilidade)
<button> Botão clicável
<fieldset> Agrupa campos relacionados
<legend> Título do fieldset
Formulário Completo
<form action="/enviar" method="POST">
    <fieldset>
        <legend>Dados Pessoais</legend>
        
        <label for="nome">Nome:</label>
        <input type="text" id="nome" name="nome" required>
        
        <label for="email">Email:</label>
        <input type="email" id="email" name="email" required>
        
        <label for="senha">Senha:</label>
        <input type="password" id="senha" name="senha" minlength="8">
        
        <label for="data">Data de Nascimento:</label>
        <input type="date" id="data" name="data">
        
        <label for="cidade">Cidade:</label>
        <select id="cidade" name="cidade">
            <option value="">Selecione...</option>
            <option value="sp">São Paulo</option>
            <option value="rj">Rio de Janeiro</option>
        </select>
        
        <label>
            <input type="checkbox" name="termos">
            Aceito os termos de uso
        </label>
        
        <label for="bio">Biografia:</label>
        <textarea id="bio" name="bio" rows="4"></textarea>
    </fieldset>
    
    <button type="submit">Enviar</button>
    <button type="reset">Limpar</button>
</form>

👁️ Tipos de Input:

Opção
A B

📦 Tags de Container (Divisão)

<div>

Elemento de bloco - Ocupa toda a largura disponível. Usado para agrupar elementos e criar layouts.

DIV 1
DIV 2
<span>

Elemento inline - Ocupa apenas o espaço necessário. Usado para estilizar partes de texto.

SPAN 1 SPAN 2 SPAN 3
CSS3

🎨 Cascading Style Sheets

CSS é responsável pela aparência visual do site: cores, tamanhos, posições, animações e muito mais! Transforme HTML simples em designs incríveis.

500+ Propriedades
1996 Criado
CSS3 Versão Atual

Estilizado com CSS

🎨

O que é CSS?

CSS (Cascading Style Sheets) define o estilo visual dos elementos HTML. Enquanto HTML estrutura o conteúdo, CSS o embeleza!

✍️ Sintaxe do CSS

seletor {
propriedade : valor ;
}
Exemplo de CSS
h1 {                        /* Seletor: elemento h1 */
    color: blue;            /* Propriedade: valor */
    font-size: 24px;
    text-align: center;
}

.classe {                   /* Seletor de classe (.) */
    background-color: #f0f0f0;
}

#id {                       /* Seletor de ID (#) */
    border: 1px solid black;
}

📎 3 Formas de Incluir CSS

1

CSS Externo (Recomendado)

Arquivo .css separado, linkado no HTML

<link rel="stylesheet" href="styles.css">
✓ Melhor prática
2

CSS Interno

Dentro da tag <style> no <head>

<style>
  h1 { color: red; }
</style>
Útil para testes
3

CSS Inline

Direto no atributo style do elemento

<h1 style="color: red;">Título</h1>
✗ Evitar

🎯 Seletores CSS

Seletores definem QUAIS elementos serão estilizados.

Seletor Exemplo Seleciona
elemento p { } Todos os parágrafos
.classe .destaque { } Elementos com class="destaque"
#id #header { } Elemento com id="header"
* * { } Todos os elementos
elemento, elemento h1, h2 { } h1 E h2
elemento elemento div p { } p dentro de div (descendente)
elemento > elemento div > p { } p filho direto de div
elemento + elemento h1 + p { } p imediatamente após h1
[atributo] [required] { } Elementos com atributo required
:hover a:hover { } Link quando mouse passa
:first-child li:first-child { } Primeiro li
::before p::before { } Pseudo-elemento antes de p

🏷️ Classes vs IDs

Classe (.)

Reutilizável! Pode ser usada em vários elementos. O mesmo elemento pode ter múltiplas classes.

<!-- HTML -->
<p class="destaque grande">Texto</p>
<span class="destaque">Outro</span>

/* CSS */
.destaque {
    background: yellow;
}
.grande {
    font-size: 20px;
}

ID (#)

Único! Só pode ser usado em UM elemento por página. Maior especificidade.

<!-- HTML -->
<header id="cabecalho">...</header>

/* CSS */
#cabecalho {
    background: navy;
    color: white;
}

🌈 Cores no CSS

Nome da Cor

color: red;

Hexadecimal

color: #ff5733;

RGB

color: rgb(102, 126, 234);

RGBA (com transparência)

color: rgba(102, 126, 234, 0.5);

HSL

color: hsl(231, 77%, 66%);
Propriedades de Cor
/* Cor do texto */
color: #333333;

/* Cor de fundo */
background-color: #f5f5f5;

/* Gradiente linear */
background: linear-gradient(to right, #667eea, #764ba2);

/* Gradiente radial */
background: radial-gradient(circle, #fff, #ddd);

/* Cor da borda */
border-color: #dee2e6;

🎨 Experimente:

Texto de exemplo

HEX: #667eea

🖼️ Background (Fundo)

Propriedades de Background
/* Cor de fundo sólida */
background-color: #f0f0f0;         /* Muda a cor de fundo */

/* Imagem de fundo */
background-image: url('imagem.jpg');

/* Repetição da imagem */
background-repeat: no-repeat;       /* no-repeat, repeat, repeat-x, repeat-y */

/* Posição da imagem */
background-position: center;        /* center, top, left, right, bottom */

/* Tamanho da imagem */
background-size: cover;             /* cover (cobre tudo), contain, auto */

/* Fixar imagem ao rolar */
background-attachment: fixed;       /* fixed, scroll, local */

/* Shorthand (tudo junto) */
background: #f0f0f0 url('img.jpg') no-repeat center/cover;
background-color: #667eea
linear-gradient
repeating-gradient

🔤 Propriedades de Texto

Estilizando Textos
/* Família da fonte */
font-family: 'Arial', sans-serif;   /* Define a fonte */

/* Tamanho da fonte */
font-size: 16px;                    /* px, em, rem, %, vw */

/* Peso da fonte */
font-weight: bold;                  /* normal, bold, 100-900 */

/* Estilo da fonte */
font-style: italic;                 /* normal, italic, oblique */

/* Cor do texto */
color: #333;

/* Alinhamento */
text-align: center;                 /* left, right, center, justify */

/* Decoração */
text-decoration: underline;         /* none, underline, line-through */

/* Transformação */
text-transform: uppercase;          /* uppercase, lowercase, capitalize */

/* Espaçamento entre letras */
letter-spacing: 2px;

/* Espaçamento entre palavras */
word-spacing: 5px;

/* Altura da linha */
line-height: 1.6;                   /* Melhora legibilidade */

/* Sombra no texto */
text-shadow: 2px 2px 4px rgba(0,0,0,0.3);

font-weight: bold

font-style: italic

text-decoration: underline

text-transform: uppercase

letter-spacing: 5px

text-shadow

📦 Box Model (Modelo de Caixa)

Todo elemento HTML é uma "caixa" com 4 partes: conteúdo, padding, border e margin.

margin
border
padding
content
Box Model Properties
/* MARGIN - Espaço EXTERNO (fora da borda) */
margin: 20px;                       /* Todos os lados */
margin: 10px 20px;                  /* Vertical | Horizontal */
margin: 10px 20px 15px 25px;        /* Top | Right | Bottom | Left */
margin-top: 10px;
margin-right: 20px;
margin-bottom: 15px;
margin-left: 25px;
margin: 0 auto;                     /* Centraliza horizontalmente */

/* PADDING - Espaço INTERNO (entre borda e conteúdo) */
padding: 20px;
padding: 10px 20px 15px 25px;       /* Top | Right | Bottom | Left */
padding-top: 10px;

/* BORDER - Borda do elemento */
border: 1px solid black;            /* Largura | Estilo | Cor */
border-width: 2px;
border-style: solid;                /* solid, dashed, dotted, double, none */
border-color: #333;
border-radius: 10px;                /* Arredonda cantos */
border-radius: 50%;                 /* Círculo perfeito */

/* WIDTH e HEIGHT */
width: 300px;
height: 200px;
max-width: 100%;                    /* Responsivo */
min-height: 50px;

/* BOX-SIZING (importante!) */
box-sizing: border-box;             /* Inclui padding/border no width */

box-sizing:

content-box width: 200px + padding + border
border-box width: 200px (inclui tudo)

📐 Display - Comportamento do Elemento

A propriedade display define como o elemento se comporta na página.

display: block

Ocupa toda a largura. Quebra linha antes e depois.

BLOCK
BLOCK
div, p, h1-h6, header, section...

display: inline

Ocupa apenas o espaço necessário. Não aceita width/height.

INLINE INLINE INLINE
span, a, strong, em...

display: inline-block

Combina ambos: inline + aceita width/height.

IN-BLOCK IN-BLOCK

display: none

Remove o elemento da página completamente.

Usado para esconder elementos

🧩 Display: Flex (Flexbox)

Flexbox é um sistema de layout poderoso para alinhar e distribuir elementos em uma dimensão (linha OU coluna).

Propriedades do Container (pai)
.container {
    display: flex;                  /* Ativa o Flexbox */
    
    /* Direção dos itens */
    flex-direction: row;            /* row, row-reverse, column, column-reverse */
    
    /* Quebra de linha */
    flex-wrap: wrap;                /* nowrap, wrap, wrap-reverse */
    
    /* Alinhamento no eixo principal (horizontal em row) */
    justify-content: center;        /* flex-start, flex-end, center, 
                                       space-between, space-around, space-evenly */
    
    /* Alinhamento no eixo cruzado (vertical em row) */
    align-items: center;            /* flex-start, flex-end, center, 
                                       stretch, baseline */
    
    /* Espaço entre itens */
    gap: 20px;                      /* Espaçamento entre items */
}

🎮 Playground Interativo:

10px
1
2
3
.container {
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: row;
    gap: 10px;
}
Propriedades dos Itens (filhos)
.item {
    /* Crescimento proporcional */
    flex-grow: 1;                   /* 0 = não cresce, 1+ = cresce */
    
    /* Encolhimento proporcional */
    flex-shrink: 1;                 /* 0 = não encolhe */
    
    /* Tamanho base */
    flex-basis: 200px;              /* Tamanho inicial antes de crescer/encolher */
    
    /* Shorthand */
    flex: 1;                        /* flex-grow: 1, flex-shrink: 1, flex-basis: 0 */
    flex: 0 0 200px;                /* Não cresce, não encolhe, 200px fixo */
    
    /* Ordem do item */
    order: 2;                       /* Muda a ordem visual */
    
    /* Alinhamento individual */
    align-self: flex-end;           /* Sobrescreve align-items do pai */
}
Centralizar perfeitamente:
😊
justify-content: center; align-items: center;
Space between:
1
2
3
justify-content: space-between;
Itens que crescem:
flex: 1
flex: 2
flex: 1

🔲 Display: Grid (CSS Grid)

CSS Grid é um sistema de layout bidimensional - trabalha com linhas E colunas ao mesmo tempo!

Propriedades do Container Grid
.grid-container {
    display: grid;                  /* Ativa o Grid */
    
    /* Define colunas */
    grid-template-columns: 200px 200px 200px;   /* 3 colunas fixas */
    grid-template-columns: 1fr 1fr 1fr;         /* 3 colunas iguais */
    grid-template-columns: repeat(3, 1fr);      /* Mesmo que acima */
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));  /* Responsivo! */
    
    /* Define linhas */
    grid-template-rows: 100px 200px;
    grid-template-rows: auto;                   /* Altura automática */
    
    /* Espaçamento */
    gap: 20px;                      /* Entre linhas e colunas */
    row-gap: 20px;                  /* Apenas entre linhas */
    column-gap: 10px;               /* Apenas entre colunas */
    
    /* Alinhamento dos itens */
    justify-items: center;          /* Horizontal dentro da célula */
    align-items: center;            /* Vertical dentro da célula */
    place-items: center;            /* Shorthand: align-items + justify-items */
}

Exemplo Visual:

1
2
3
4
5
6
grid-template-columns: repeat(3, 1fr); gap: 10px;
Posicionando Itens no Grid
.item {
    /* Posição por linha/coluna */
    grid-column: 1 / 3;             /* Da coluna 1 até a 3 (ocupa 2) */
    grid-row: 1 / 2;                /* Da linha 1 até a 2 */
    
    /* Shorthand */
    grid-column: span 2;            /* Ocupa 2 colunas */
    grid-row: span 3;               /* Ocupa 3 linhas */
    
    /* Área nomeada */
    grid-area: header;              /* Usa área definida no container */
}

Layout com Grid Areas:

header
nav
main
aside
.container {
    display: grid;
    grid-template-columns: 200px 1fr 150px;
    grid-template-rows: auto 1fr auto;
    grid-template-areas:
        "header header header"
        "nav    main   aside"
        "footer footer footer";
}

📍 Position - Posicionamento

static (padrão)

Posição normal no fluxo do documento.

relative

Posicionado relativo à sua posição original. Usa top, right, bottom, left.

Normal
Relative (top: 10px, left: 20px)

absolute

Posicionado em relação ao ancestral posicionado mais próximo (não-static).

Pai (relative)
Absolute

fixed

Fixo na viewport. Não se move ao rolar a página.

Exemplo: menu fixo no topo

sticky

Combina relative e fixed. "Gruda" quando atinge uma posição.

Exemplo: cabeçalho que gruda ao rolar
Exemplos de Position
/* Relative - move em relação a si mesmo */
.relative {
    position: relative;
    top: 20px;
    left: 10px;
}

/* Absolute - posição exata dentro do pai */
.parent {
    position: relative;     /* Pai precisa ter position */
}
.absolute {
    position: absolute;
    top: 0;
    right: 0;              /* Canto superior direito */
}

/* Fixed - fixo na tela */
.fixed-header {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    z-index: 1000;         /* Fica acima de tudo */
}

/* Sticky - gruda ao rolar */
.sticky-nav {
    position: sticky;
    top: 0;
}

📏 Unidades de Medida

Unidade Tipo Descrição Uso Comum
px Absoluta Pixels Bordas, sombras
% Relativa Porcentagem do pai Larguras responsivas
em Relativa Relativo ao font-size do elemento Padding, margin
rem Relativa Relativo ao font-size do <html> Font-size, spacing
vw Viewport 1% da largura da viewport Seções full-width
vh Viewport 1% da altura da viewport Seções full-height
fr Flexível Fração do espaço disponível CSS Grid
Exemplos de Unidades
html {
    font-size: 16px;        /* Base para rem */
}

.container {
    width: 100%;            /* 100% do pai */
    max-width: 1200px;      /* Máximo de 1200px */
    padding: 2rem;          /* 32px (2 × 16px) */
}

.hero {
    height: 100vh;          /* Altura total da tela */
    width: 100vw;           /* Largura total da tela */
}

.text {
    font-size: 1.5rem;      /* 24px */
    margin-bottom: 1em;     /* Relativo ao próprio font-size */
}

Pseudo-classes e Pseudo-elementos

Pseudo-classes (estado do elemento)

/* Interação */
a:hover { }           /* Mouse sobre o elemento */
a:active { }          /* Clicando no elemento */
a:visited { }         /* Link já visitado */
input:focus { }       /* Elemento focado */

/* Formulário */
input:checked { }     /* Checkbox/radio marcado */
input:disabled { }    /* Campo desabilitado */
input:required { }    /* Campo obrigatório */
input:valid { }       /* Validação OK */
input:invalid { }     /* Validação falhou */

/* Posição */
li:first-child { }    /* Primeiro filho */
li:last-child { }     /* Último filho */
li:nth-child(2) { }   /* Segundo filho */
li:nth-child(odd) { } /* Filhos ímpares */
li:nth-child(even) { }/* Filhos pares */
p:first-of-type { }   /* Primeiro <p> */
:not(.classe) { }     /* Exceto .classe */

Pseudo-elementos (partes do elemento)

/* Conteúdo antes/depois */
p::before {
    content: "→ ";       /* Adiciona antes */
}
p::after {
    content: " ←";       /* Adiciona depois */
}

/* Seleção de texto */
::selection {
    background: yellow;  /* Cor ao selecionar texto */
    color: black;
}

/* Primeira letra/linha */
p::first-letter {
    font-size: 2em;      /* Letra capitular */
}
p::first-line {
    font-weight: bold;   /* Primeira linha */
}

/* Placeholder */
input::placeholder {
    color: #aaa;
}

🎬 Transições e Animações

Transitions (Suaves)
.button {
    background: blue;
    transition: all 0.3s ease;      /* Propriedade, duração, curva */
    
    /* Ou propriedades separadas */
    transition-property: background, transform;
    transition-duration: 0.3s;
    transition-timing-function: ease-in-out;
    transition-delay: 0s;
}

.button:hover {
    background: purple;
    transform: scale(1.1);
}
Hover
Scale
Rotate
Color
Animations (Keyframes)
/* Definir a animação */
@keyframes pulse {
    0% {
        transform: scale(1);
    }
    50% {
        transform: scale(1.1);
    }
    100% {
        transform: scale(1);
    }
}

/* Aplicar a animação */
.element {
    animation: pulse 2s ease-in-out infinite;
    
    /* Ou propriedades separadas */
    animation-name: pulse;
    animation-duration: 2s;
    animation-timing-function: ease-in-out;
    animation-iteration-count: infinite;
    animation-direction: alternate;
    animation-fill-mode: forwards;
}
Bounce
Pulse
Spin
Shake

🔄 Transform - Transformações

Propriedades Transform
/* Mover */
transform: translateX(50px);        /* Move horizontalmente */
transform: translateY(-20px);       /* Move verticalmente */
transform: translate(50px, 20px);   /* Move X e Y */

/* Escalar */
transform: scale(1.5);              /* Aumenta 150% */
transform: scale(0.5);              /* Diminui 50% */
transform: scaleX(2);               /* Estica horizontalmente */

/* Rotacionar */
transform: rotate(45deg);           /* Gira 45 graus */
transform: rotate(-90deg);          /* Gira contra-relógio */

/* Inclinar */
transform: skewX(10deg);            /* Inclina horizontalmente */
transform: skew(10deg, 5deg);       /* Inclina X e Y */

/* Múltiplas transformações */
transform: translate(50px, 0) rotate(45deg) scale(1.2);

/* Ponto de origem */
transform-origin: center;           /* center, top left, 50% 50% */
Original
Translate
Scale
Rotate
Skew

📱 Media Queries (Responsividade)

Media queries permitem aplicar estilos diferentes baseados no tamanho da tela, orientação, etc.

Breakpoints Comuns
/* Mobile First - Estilos base para mobile */
.container {
    width: 100%;
    padding: 1rem;
}

/* Tablets (768px+) */
@media (min-width: 768px) {
    .container {
        width: 750px;
        padding: 2rem;
    }
}

/* Desktops (1024px+) */
@media (min-width: 1024px) {
    .container {
        width: 960px;
    }
}

/* Desktops grandes (1200px+) */
@media (min-width: 1200px) {
    .container {
        width: 1140px;
    }
}

/* Orientação */
@media (orientation: landscape) {
    /* Modo paisagem */
}

/* Print */
@media print {
    .no-print { display: none; }
}

Redimensione a janela para ver:

🎛️ Variáveis CSS (Custom Properties)

Usando Variáveis CSS
/* Definir variáveis (geralmente no :root) */
:root {
    --cor-primaria: #667eea;
    --cor-secundaria: #764ba2;
    --cor-texto: #333;
    --espacamento: 1rem;
    --borda-radius: 8px;
    --sombra: 0 4px 6px rgba(0,0,0,0.1);
}

/* Usar variáveis */
.button {
    background: var(--cor-primaria);
    color: white;
    padding: var(--espacamento);
    border-radius: var(--borda-radius);
    box-shadow: var(--sombra);
}

.button:hover {
    background: var(--cor-secundaria);
}

/* Variável com fallback */
color: var(--cor-inexistente, black);  /* Usa black se não existir */
var(--box-color)
var(--box-color)
var(--box-color)
Prática

Editor de Código ao Vivo

Experimente escrever HTML e CSS e veja o resultado em tempo real!

HTML CSS
Visualização

📚 Referência Rápida

🎨 Cores Populares

📐 Breakpoints

  • 320px - Mobile S
  • 375px - Mobile M
  • 425px - Mobile L
  • 768px - Tablet
  • 1024px - Laptop
  • 1440px - Desktop

⌨️ Atalhos Úteis

  • Ctrl + S - Salvar
  • Ctrl + / - Comentar
  • Ctrl + D - Duplicar linha
  • Alt + ↑/↓ - Mover linha
  • Ctrl + Shift + K - Deletar linha