HTML5 & CSS3 - Gustavo Guanabara
O curso de HTML5 e CSS3 cai ensinar a criar sites usando a linguagem de marcação hypertexto (HTML) e folhas de estilo em escrita (CSS), todas em suas versões mais recentes.
OBS: A primeira aula no Youtube foi postada dia 12 de outubro de 2020.
Os pdfs disponibilizados pelo professor são muito bons e se você não entender o que escrevi é só ver o pdf e/ou assistir a aula.
Módulo 1
Cápitulo 1
Aula 0
O que vamos aprender no módulo 1?
Conceitos básicos, preparação do ambiente, semântica da HTML5, textos, títulos, ligações, multimídea, estilos.
Aula 1
Precisamos fazer um acordo
- É necessário foco.
- Não ficar em redes sociais
- Não ficar fazendo coisas pela casa ou coisas do tipo enquanto a aula tá tocando
- Se possível, ficar em um cômodo mais sossegado para conseguir prestar atenção nas aulas
- Vai ser necessário notebook/computador e caderno
Repositório grátis: gustavoguanabara.github.io
Aula 2
Será que este curso é para mim?
Sim, este curso é para mim se...
- me interesso por aprender a criar sites, mas não sei por onde começar.
- já tentei, mas acho confuso "decorar" tantos comandos.
- tenho boa base, mas quero me aprofundar nas especificações.
- consigo adaptar códigos prontos, mas não sei criar os meus próprios sites.
- estou tendo essa disciplina e estou com dificuldades.
- além de aprnder a criar sites, quero deixá-los na Internet.
Não, este curso não é para mim se...
- eu já sei tudo sobre desenvolvimento HTML5 e CSS3.
- estou procurando por códigos prontos e templates para sites.
- estou com pressa e preciso aprender em poucas semanas.
- quero apenas uma lista de comandos, sem "papinho" extra.
- não consigo esperar o lançamento de aulas semanais.
- prefiro consultar a documentação oficial das linguagens.
Aula 3
Melhores livros para aprender HTML5 e CSS3
Primeiramente vamos ter o material de apoio do próprio curso que está em pdf neste link.
Vamos também ter as seguintes referências online:
E por último, vamos ter este livros:
- Estes sendo sobre código.
- A série do O'Reilly
- HTML5 e CSS3 dos autores Elizabeth Castro & Bruce Hyslop na editora Alta Books
- HTML5 e CSS3 do autor Jon Duckett na editora Alta Books
- Use a cabeça! HTML e CSS dos autores Elisabeth Robson & Eric Freeman na editora Alta Books
- Crie seu próprio site dos autores Nate Cooper & Kim Gee na editora Novatec
- Os livros do autor Maurício Samy Silva na editora Novatec
- E estes sendo sobre design.
- Curso de design gráfico dos autores David Dabner, Andra Stewart & Eric Zempol na editora GG
- Design dos autores Bob & Maggie Gordon na editora Senac
- A psicologia das cores da autora Eva Heller na editora GG
- Pensar com Tipos da autora Ellen Lupton na editora GG
Aula 4
Como a internet chega na minha casa?
Como esse vídeo foi meio denso e o pdf tem ainda mais conteúdo sobre o assunto, é melhor assistir diretamente ao vídeo e ,depois ou ao mesmo tempo, ler o pdf. (tbm tô com preguiça de digitar tudo aquilo kkkkk)
Também tem a qustão que daqui pra frente os pdf vão ser muito necessários. Seja pra revisão ou pra complementar as aulas.
Cápitulo 2
Aula 1
Como a internet funciona?
bit = 0 ou 1
byte = 8 bits
MB (megabytes - armazenamento) ≠ Mb (megabits - transmissão)
1024 = 2¹⁰
1024 bytes = 1 KB
1024 KB = 1 MB
1024 MB = 1GB
1024 GB = 1 TB
Este exemplo é de notebook/computador.
Cliente(eu) --- Modem(geralmente conectado ao cabo telefônico ou no cabo da TV)(ele quem faz a "tradução" entre o cliente e os cabos já que o cliente fala em ondas quadradas e os cabos, em ondas senoidais) --- os cabos --- internet --- servidor(IPs)
modulação - tradução de ondas quadradas em ondas senoidais.
demodulação - tradução de ondas senoidais em ondas quadradas.
ip local geralmente continua o mesmo, já o ip público, troca frequentemente.
DNS - domain name system
tipo uma "agenda" para lembrar de ips pelo nome e não pelo o número, pois muda bastante.
Aula 2
O que é domínio e hospedagem?

Situação 1 : Guardado no servidor

Tô com preguiça de fazer o desenho da situação 2 e 3. Outro dia faço.
gustavoguanabara.github.io = URL
url é a ponte para o DNS e ele vai te dar o IP do servidor para você ter acessa à ele.
para ter acesso você precisa de um DOMÍNIO
.github.io
para outras pessoa poderem acessar o site, é preciso um domínio
é prciso de um "lugar para guardar" os arquivos à serem acessados: hospedagem
- Domínio - nome que identifica o seu site.
- nome único
- pago anualmente
- vários TLDs
- Hospedagem - local onde o site vai estar armazenado
- espaço para armazenar arquivos
- pago mensalmente
- espaço, memória
TLD - Top level domain

www. - sub-domínio principal do meu domínio
/gustavoguanabara - depois da barra é o caminho
Exemplo: gustavoguanabara . github . io -> URL
http:// - protocolo
https:// - protocolo com segurança (cadeado)
Cápitulo 3
Aula 1
A diferença entre HTML, CSS & Javascript
"Eu programo em HTML e CSS"
- desenvolvo
- crio sites
a HTML
as CSS
- HTML
- Hypertext - text that has a highlight that takes you to another text "link"
- Markup - marcação
- Language - linguagem de marcação ≠ linguagem de programação
- CSS - Cascading Style Sheets - folhas estilo em cascata - uma folha modifica a característica padrão da outra
- HTML é focado em conteúdo:
- texto
- imagens
- links
- tabelas
- listas
- CSS é focado em design:
- cores
- posição da imagem, tamanho
- sombra
- tamanhos
- posicionamento
- JS é focado em interação:
- menus interativos
- animações
- popups
- validações ex:esse usuário está inválido.


Como funciona a HTML e as CSS?
O PC traz uma cópia do HTML e CSS para si e é disponibilizado ao navegador
Aula 2
Front-end, Back-end & Full Stack
servidor - entregar os dados ao cliente
site estático - o site não muda de cliente para cliente

Loja(site) de camisas; se o site for estático, ele não vai saber que produtos por ali e quais produtos ter no estoque
imagina que o dono da loja ter entrar no código para mudar a quantidade do estoque ou adicionar/retirar um produto e promoções
fazer uma loja virtual somente com tecnologias client-side é praticamente suícido
hoje em dia as informações sobre o que tá de promoção, qual o preço, promoções de comprar em quantidade, quais cores e tamanhos, quais coisas acabaram em estoque e entre outras coisas, isso tudo está armazenado no servidor; serve-side dentro de um banco de dados
nesse caso:
o site vai enviar uma solicitação ao servidor, dentro do servidor, a linguagem php vai fazer requisição ao banco de dados, tipo verificar na página principal quais camisetas tem que aparecer, quais as camisetas que estão de promoção, quais que são para ficar de destaque
o php vai obter essas informações, vai gerar uma página html puro com essas informações com fotos, a descrição delas, tamanhos, cores e preço e enviar esse html junto com o estilo e interação pro cliente e com essas informações a página vai poder apresentar as camisetas certinho na página inicial.
quando uma pessoa se tornar um desenvolvedor front-end e backend, o mercado se tornar fuul stack. ser desenvolvedor full stack demora anos porque é muita coisa para lembrar e conhecer.
Cápitulo 4
Aula 1
Instalando todas as ferramentas
ensinou a abaixar o chrome e o vs studio
Aula 2
Seu primeiro código HTML
<hr> - linha horizontal (separação do título do resto)

Cápitulo 5
Aula 1
Parágrafos e Quebras
<p> </p> -> eles são tags, mas se quiser que apareça no site para uma explicação ou algo assim:
&.l.t(;) & &.g.t(;) - só tirar parênteses e os pontos finais
Aula 2
Símbolos e Emojis
&.l.t.(;) - less then
&.g.t.(;) - greater then
- comentário (não aparece no site)(tirar pontos)
para adicionar símbolos:
&___(;)
ex: &euro(;)(€), &delta(;)(δ), &Delta(;)(Δ), &uparrow(;)(↑) ou uarr;
para emojis:
___(;)
ex: &.#.x.1.F.5.9.6.;(🖖), &.#.x.1.F.9.1.3.;(🤓) - (tira os pontos finais para funcionar)
emojipedia.org
Exercício das duas aulas
Cápitulo 6
Aula 1
Você tem o direito de usar qualquer imagem no seu site?
ao fazer uma pesquisa por foto no google, embaixo da barra de pesquisa, tem a barra de "imagens, vídeos, notícias, .. etc" e embaixo dessa tem a da "tamanho, cor, direitos de uso, .. etc". Clicar nos direitos vai ter essas opções:
- Sem filtro de licença - sem filtro mesmo
- Marcadas para reutilização com modificações - pode usar para o que quiser e pode modificar a foto, mas as fotos que tem são meio ruin s
- Marcadas para reutilização - pode usar, mas sem modificar
- Marcadas para reutilização não comercial com modificações - não pode usar se o intuito é vender/fazer dinheiro, mas pode modificar
- Marcada para reutilização não comercial - não fazer dinheiro com ele e nem modificar
- Sites bons para pegar imagens:
- unsplash.com(em inglês)
- pexels.com
Aula 2
Quais são os formatos para imagens para Web?
- jpeg - melhor / alta compactação / mais leve
- png - transparência / compacto / mais qualidade
- gif - transparência / animação, mas a qualidade da imagem não é muito boa
fotos muito grandes? jpeg
foto que mostre o fundo(o que está atrás da imagem)? png
quanto mais leve, melhor porque não é todo mundo que tem internet boa
Aula 3
O tamanho das imagens inporta para um site?
o professor ensinou com remendicionar as imagens no Gimp
Aula 4
A tag <img> em HTML5
aprendi a por uma imagem no site a partir de uma pasta no notebook de uma pasta dentro da pasta e a partir de um link da internet
- Exemplos:
- <img src="teste-imagem.png" alt="uma imagem com a palavra teste">
- <img src="/imagens/teste-imagem.png" alt="uma imagem com a palavra teste">
- <img src="www.istockphoto.com/br/foto/palavra-de-teste-em-cubos-de-madeira-em-fundo-azul-claro" alt="uma imagem com a palavra teste">
Aula 5
Como mudar o favicon de um site
favicon é aquela imagem que fica na aba da página.
- www.iconarchive.com - archive of icons que deixa baixar em .ico
- www.favicon.io - fazer texto virar icon; imagem -> icon; emoji -> icon
- www.favicon.cc - site para fazer um icon no pixel art
embaixo do <meta name="viewport" content="width=device-width, initial-scale=1.0"> no <head> põe link e depois escolhe o link:favicon
não esquecer o Ctrl + espaço para ver a lista de coisas dentro da pasta que contém o exercício parapoder escolher certinho o que precisar
Exercício da aulaCápitulo 7
Aula 1
Hierarquia de títulos
- h1 - h6
- h1 -> título
- h2 -> sub-título
- h3 -> sub-título do sub-título
- h4 -> sub-título do sub-título do sub-título
- h5 -> sub-título do sub-título do sub-título do sub-título
- h6 -> sub-título do sub-título do sub-título do sub-título do sub-título
<p>lorem ipsum</p> -> texto aleatório para testes
Exercício da aulaCápitulo 8
Aula 1
Semântica na HTML é importante
HTML5 -> focado em semântica; significado e não foca mais na forma
CSS3 -> focado na forma; detalhes, como: fonte, tamanh de letra, cor da página, etc)
não usar a tag <u> mais para sublinhar porque isso é forma e não semântica. Mas se for enderenço, usar: <address>
tags que são não conformidades podem parar de funcionar a qualquer hora
Exercício da aulaAula 2
Negrito e itálico do jeito certo
<b> - bold; não semântico
<strong> - strong; semântico
<i> - italic; não semântico
<em> - emphasis; semântico
Aula 3
Formatações adicionais em HTML
para selecionar uma palavra ou parte de uma frase ou a frase em si para adicionar uma tag específica usar: Ctrl + shift + p
<mark> - marcatexto
para mudar a cor do marcatexto:
<mark style="background-color: nome-da-cor;">
como o style está dentro de uma tag, só esse mark vai ser modificado. Mas se quiser mudar a cor de todos os marks de só uma página e não do site todo:
de baixo do <title>
<style>
mark{
background-color: cor;
}
- <big> - deixa a letra grande, mas essa tag está obsoleta
- <small> - deixa a letra pequenininha e não está obsoleta
- <del> -
texto deletado - <ins> - texto inserido
- <sup> - x20+3
- <sub> - H2O
Aula 4
Citações e códigos
- <code> - fonte monoespaçada; melhor para a leitura de códigos
- <pre> - mantém a formatação do código
Exemplo:
(sem o <code>)O comando document.getElementById('teste') é escrito em linguagem JavaScript.
(com o <code>)O comando document.getElementById('teste')
é escrito em linguagem JavaScript.
Exemplo 2:
só com <code>
<code>
num = int(input('Digite um número'))
if num % 2 == 0:
print(f'0 número {num} é PAR')
else:
print(f'0 número {num} é ÍMPAR')
print('Fim do programa')
</code>
com <code> e <pre>
<pre>
<code>
num = int(input('Digite um número'))
if num % 2 == 0:
print(f'0 número {num} é PAR')
else:
print(f'0 número {num} é ÍMPAR')
print('Fim do programa')
</code>
</pre>
- <q> - citar (" ") algo que foi dito por outra pessoa. Citação Simples
- <blockquote> - quebra de linha e se desloca um pouco para direita; faz uma citação de maneira mais completa, pois é possível por o link de onde foi tirado a informação. Citação completa
Exemplos:
<p>Como diria o pai de um amigo: <q>o computador é um burro muito rápido
</q></p>
<p>According to Jeff Noble, in his book HTML, XHTML and CSS for dummies:</p>
<blockquote cite="link">The difference between inline elements and a block of text is important. HTML elements in this chapter describe blocks of texts.</blockquote>
- <abbr title> - abrevia
exemplo:
<abbr title="Hypertext Markup Language">HTML</abbr>
esse pontilhado aparece e ao por o mouse em cima da abreviação você pode ver o que quer dizer ela
- <bdo dir="rtl"> - deixa a frases ao contrário (<bdo dir="ltr"> deixaria a frase do jeito normal)
<p><bdo dir="rtl">deixa a frases ao contrário</bdo></p>
Exercíco dessa aulaCápitulo 9
Aula 1
Listas OL e UL
- <ol> - ordered lists
- <ul> - unordered lists
- <li> - list items
- <ol type=" ">
- "1" - numbers(padrão) start="5"
- "a" - lowercase lettlers
- "A" - uppercase lettlers
- "i" - lower roman numerals
- "I" - upper roman numerals
- <ul type=" ">
- "disc" - padrão. uma bolinha preta
- "circle" - um círculo
- "square" - um quadrado
Aula 2
Listas mistas e de definição
<ol type="a" start="5"> para começar no "e"
- <ol>
- <li>Item 1</li>
- <li>Item 2</li>
- <li>Item 2.1</li>
- <li>Item 2.2</li>
- <li>Item 2.3</li>
- <li>Item 3</li>
- <li>Item 4</li>
- <li>Item 5</li>
- <ol type="a">
para poder fazer uma mudança(deletar ou adicionar) numa tag:
clicar na frente da letra que quer modificar e segurar a tecla "Alt" e depois clicar no lugar que precisar.

- <dl> - difinition list; tipo um dicionário
- <dt> - termo
- <dd> - descrição
<dl>
- <dt>HTML</dt>
- <dd>Linguagem de marcação utilizada para criar o conteúdo de sites.</dd>
- <dt>CSS</dt>
- <dd>Linguagem de marcação para a especificação de estilos en sites.</dd>
- <dt>JavaScript</dt>
- <dd>Linguagem de programação para criar interatividades en sites.</dd>
</dl>
o google dá prioridade para sites que contém dls
Exercício dessa aulaCápitulo 10
Aula 1
Links e âncoras em HTML5
esse conteúdo vem diretamente dos pdfs
Toda vez que você está acessando um site e clica em um local para ir para outra página, outro site ou até para baixar um arquivo, você está interagindo com um hyperlink
Para criar um hyperlink, devemos criar âncoras através da tag <a>. O principal atributo dessa tag é o href que cria uma referência hypertexto. Vamos fazer um exemplo simples:
<h1>Vamos criar um link</h1>
<a href="https://gustavoguanabara.github.io">Acecesse meu perfil Github</a>
Outro atributo bem útil da tag de âncora é o hreflang, que permite indicar qual é o idioma principal do site para onde o link está desviando o fluxo de navegação. Isso vai permitir avisar ao navegador e a softwares de tradução como lidar caso o visitante opte por traduzir automaticamente os conteúdos.
<a href="https://www.w3schools.com/html" hreflang="en"> site da W3Schools (em Inglês)</a>
Mira no Alvo 🎯
Por padrão, sempre que um visitante clique em um hyperlink, o site de destino abre na mesma janela do site que continha esse link. Ou seja, o conteúdo anterior vai deixar de ser exibido para mostrar o novo conteúdo.
Esse é um comportamento desejado quando o visitante vai continuar a visitar o nosso site, apenas mudando de um documento para outro. Mas e quando um clique leva o visitante para outro site e provavelmente ele nunca mais voltará ao nosso?
Para poder controlar onde o site de destino vai abrir, podemos usar o atributo target, que suporta os seguintes valores:
- ‣_blank vai abrir o link em uma nova janela em branc
- ‣_self vai abrir o link na janela ou frame atual (padrão)
- ‣_top vai desfazer todos os frames e abrir o destino no navegador complet
- ‣_parent similar ao uso do _top em uma referência à janela mãe
- ‣nome-do-frame caso esteja usando frames, indicar o nome da janela a abrir
Como o uso de frames é uma técnica quase em desuso, vamos nos basear apenas nas duas primeiras opções _blank e _self.
<a href="pagina2.html" target="_self">Continuar navegando no site</a>
<a href="https://gustavoguanabara.github.com" target="_blank">Abrir perfil GitHub em nova janela</a>
Esse link é seu ou dos outros?
Existe um recurso bem interessante para links que é indicar qual é a natureza do destino usando o atributo rel. Esse atributo aceita vários valores, entre eles vou citar:
- ‣next indica que o link é para a próxima parte do documento atual
- ‣prev indica que o link é para a parte anterior do documento atual
- ‣author indica que é um link para o site do autor do artigo atual
- ‣external indica que é um link para outro site que não faz parte do site
- nofollow indica que é um link para um site não endossado, como um link pago
<а href="pagina2.html" target="_self" rel="next">Continuar navegando no site</a>
<a href="https://gustavoguanabara.github.com" target="_blank"
rel="external">Abrir perfil GitHub em nova janela</a>
No código anterior, o primeiro link é o que chamamos de link local ou link interno, já que ele leva o visitante a outra página dentro do nosso próprio site. Note que não é necessário nem indicar a URL completa nesses casos.
Já o segundo link vai nos levar para um outro site, o que chamamos de link externo. Nestes casos, devemos indicar a URL completa, incluindo o protocolo http:// ou https:// e o caminho que leve à uma página específica, se for necessário.
Aula 2
Links internos
Ctrl + espaço no visual code te mostra quais páginas tem para você escolher

Aula 3
Links para download
esse conteúdo vem do pdf
E para fazer Downloads?
Outra coisa que aparece bastante em sites são os links para efetuar download de algum material em PDF, ou de um arquivo ZIP qualquer. A partir da versão HTML5, as âncoras receberam atributos especiais para isso. Basta fazer o link diretamente para o arquivo que se deseja efetuar o download e adicionar o atributo download com o valor configurado para o nome do arquivo a ser baixado e o atributo type para indicar ao navegador que tipo de arquivo está sendo baixado. Vamos ver um exemplo:
<a href="livro/meulivro.pdf" download="meulivro.pdf" type="application/pdf">Baixe aqui o PDF do meu livro</a>
tem navegadores que não baixam mesmo tendo esses paremetros, então é só clicar no botão direito do mouse e clicar em "salvar link como..." e aí ele baixa.
Aqui vão alguns media types bem usados no nosso dia-a-dia:
- application/zip
- application/pdf
- text/html
- text/css
- text/javascript
- font/ttf
- video/mp4
- video/H264
- video/JPEG
- audio/aac
- audio/mpeg
- image/jpg
- image/png
para todos os media types:www.iana.org/media-types.xhtml
Exercício da aula 1 até 3Cápitulo 11
Aula 1
Imagens dinâmicas(GIMP)
Este próximo parágrafo vem do pdf.
Nosso primeiro passo no caminho de adaptar nosso conteúdo ao tamanho da tela vai ser aprender a gerar imagens de tamanho diferentes e a fazer o navegador carregar a imagem certa para cada situação. Para isso, devemos conhecer as tags <picture> e <source>. Para esse exemplo, criamos as três imagens ao lado: a menor tem 300x300px, a média tem 700x700px e a maior tem 1000x1000px. Usamos o programa GIMP, que é um editor de imagens 100% gratuito.
- para celular/pequeno - 300x300px (resolução)
- para tablet/média - 500x500px
- para pc/grande - 1000x1000px
exportar eles para a pasta do exercício; dentro de sua própria pasta(imagens)
Aula 2
Imagens que se adptam sozinhas
<picture></picture>
Serve para por várias fontes de uma mesma foto para que ela seja dinâmica; mude de acordo com o dispositivo
Essas imagens serão carregadas pelo navegador de acordo com o tamanho da janela atual. Para isso, criamos o seguinte código base:
<picture>
<img src="images/foto-g.png" alt="Imagem flexível">
</picture>
Note que colocamos a tag <img> exatamente como aprendemos no capítulo 06 do nosso material. A novidade aqui é que inserimos essa imagem dentro da tag <picture>, que vai concentrar as outras fontes de imagem. Por padrão, a imagem foto-g.png (1000x1000px) será carregada.
O problema vai começar a surgir quando a janela do navegador chegar perto dos 1000 pixels de largura, pois a foto não vai mais caber lá. Vamos agora adicionar uma linha para resolver esse problema:
<picture>
<sourse media="(max-width: 1050px)" srcset="images/foto-m.png" type="image/png">
<img src="images/foto-g.png" alt="Imagem flexível">
</picture>
Note que a tag <source> possui três atributos:
- ‣ type vai indicar o media type da imagem que usamos (veja mais informações sobre media types no capítulo 10)
- ‣ srcset vai configurar o nome da imagem que será carregada quando o tamanho indicado for atingido
- ‣ media indica o tamanho máximo a ser considerado para carregar a imagem indicada no atributo srcset.
Agora, recarregue seu código e mude o tamanho da janela do navegador. Você vai perceber que a imagem muda automaticamente conforme aumentamos ou diminuímos o tamanho da tela. Vamos continuar e acrescentar mais um <source> à nossa imagem:
<picture>
<sourse media="(max-width: 750px)" srcset="images/foto-p.png" type="image/png">
<sourse media="(max-width: 1050px)" srcset="images/foto-m.png" type="image/png">
<img src="images/foto-g.png" alt="Imagem flexível">
</picture>
É importante que existe uma ordem entre os <source>, e nessa nossa configuração, os itens mais acima sejam os menores tamanhos para max-width e que os seguintes sejam maiores, de forma crescente. O último item dentro de <picture> deve ser a imagem padrão.
Aula 3
Colocando áudio no seu site
Com a HTML5, veio também a facilidade em compartilhar áudio nos nossos sites e sem depender necessariamente de JavaScript ou plugins extras. A partir de agora, basta uma tag <audio> e alguns <source> para fazer seu site ser capaz de tocar qualquer áudio.
<audio preload="metadata" controls autoplay loop>
<source src="midia/guanacast-33.mp3" type="audio/mpeg">
<source src="midia/guanacast-33.ogg" type="audio/ogg">
<source src="midia/guanacast-33.wav" type="image/wav">
<p>Seu navegador não suporta áudio <a href="midia/guanacast-33.mp3"
download="guanacast-33.mp3" type="audio/mpeg"></a></p>
</audio>
Vamos analisar os principais atributos da tag <audio> antes de mais nada:
- ‣O atributo preload indica se o áudio será pré-carregado ou não e aceita três valores:
- ๏ metadata vai carregar apenas as informações sobre o arquivo (tamanho, tempo, informações de direitos, etc)
- ๏ none não vai carregar absolutamente nada até que o usuário clique no botão play ou um script inicie a reprodução
- ๏ auto (padrão) vai carregar o arquivo de áudio inteiro assim que a página for carregada, mesmo que o usuário nunca aperte o play
- ‣O atributo controls vai apresentar o player na tela. Caso não seja colocado na tag <audio>, o controle será transparente e o usuário não poderá interagir com ele.
- ‣O atributo autoplay, quando inserido, vai iniciar a reprodução do áudio assim que a página for carregada.
- ‣O atributoloop vai fazer com que o áudio seja repetido eternamente assim que terminar a sua reprodução.
Dentro da tag <audio>, adicionamos vários <source> com formatos diferentes do mesmo áudio. Coloque na parte de cima o seu formato favorito. Os demais só serão carregados caso o de cima falhe. Caso todos falhem, criamos um parágrafo que permite o download do arquivo MP3 para ouvir no player padrão do dispositivo.
O autoplay pode não funcionar pq nem todos os navegadores são 100% compativéis com MP3.
Formatos de áudio: MP3, WAV, OGG
WAV é muito pesado, mas o áudio é muito bom
Exercício da aula 1 até 3Aula 4
Formatos de vídeo para seu site
- MPEG
- .mp4
- .m4v
- WEBM
- .webm
- OGG
- .ogv
o programa HandBreak seria bem útil, mas não funciona no meu notebook
no vídeo, o professor baixa um vídeo no pexels e mo difica o que fica depois do "." no HandBreak

- Youtube
- Positivos
- serviço de hospedagem de vídeo mais popular
- gerenciado pelo Google
- seus servidores são ultra rápidos
- Negativo
- todos os vídeos são públicos e disponíveis, o que pode ser uma dor de cabeça caso você queira limitar quem vai ter acesso a determinado vídeo
- Vimeo
- Positivo
- limitar quem pode ver o vídeo
- Negativos
- ele é pago; taxa anual
- algorítmos não são tão eficientes
- pequenos travamentos às vezes
Aula 5
Vídeos em hospedagem própria
Com a expansão da banda larga no Brasil (sim, eu sei que ainda estamos longe de algo ideal na maioria do território nacional) tornou-se possível até assistir um vídeo em 4K em nosso plano 4G do celular (é caro, mas possível).
Para inserir um vídeo em nosso site, podemos utilizar a nova tag <video> da HTML5, caso o arquivo esteja hospedado no nosso próprio servidor.
<video width="600" poster="thumb.jpg" controls autoplay>
<source src="meu-video.webm" type="video/webm">
<source src="meu-video.mp4" type="video/mp4">
<source src="meu-video.ogv" type="video/ogg">
<p>Infelizmente seu navegador não conseguiu carregar o video.</p>
</video>
Antes de mais nada, vamos criar a tag <video> e configurar alguns atributos importantes:
- ‣ width vai indicar a largura que o vídeo vai ter na tela. Nesse exemplo, 600px.
- ‣ poster configura uma imagem que vai aparecer como uma capa, enquanto o visitante não aperta o play para reproduzir o vídeo
- ‣ controls vai configurar se os controles do vídeo vão aparecer na parte inferior da mídia. Por padrão, os controles não aparecerão, mas basta colocar a palavra controls na tag <video>.
- ‣ autoplay diz para o navegador se o vídeo vai começar a tocar automaticamente, assim que a página for carregada.
Hospedar seus próprios vídeos pode ser caro
Quando colocamos vídeos no nosso próprio servidor, podemos passar por problemasccom alto consumo de banda, site lento e incompatibilidades com alguns navegadores por conta dos codecs. E geralmente só percebemos esses problemas quando colocamos nosso projeto no ar e lançamos oficialmente.
Vamos fazer uma conta simples: um vídeo simples, com poucos minutos, em formato mp4 com codec padrão deve ocupar uns 150MB com facilidade. Agora imagine que você lance seu site e 200 visitantes (um número super possível) acessem seu site e reproduzam o vídeo. Pronto, você acabou de utilizar 29GB de tráfego! Imagine o quanto isso pode deixar seu site lento ou consumir sua franquia de hospedagem, caso não seja ilimitada.
E é claro que seu site possivelmente não vai ter apenas um vídeo, não vai ter apenas 200 visitantes em um dia e aí a conta só aumenta. É preciso tomar muito cuidado quando decidimos guardar nossos próprios vídeos.
Aula 6
Incorporação de vídeos externos
Para incorporar vídeos que você subiu no YouTube ou Vimeo, existem recursos que te dão o código pronto em HTML5.
No YouTube, abra o vídeo que você quer incorporar e clique no link COMPARTILHAR que fica abaixo do título. Ao clicar no link indicado anteriormente, uma janela vai aparecer, te dando as opções de compartilhamento. Escolha o item INCORPORAR. O código HTML personalizado vai aparecer em uma nova janela de contexto, incluindo um botão que permite COPIAR o código com a tag do <iframe> que vai aparecerdiretamente na sua página. Volte ao seu editor de código e cole a tag no seu arquivo HTML que vai apresentar o vídeo.
Quando você está usando o Vimeo, o procedimento é bastante semelhante. Abra seu painel de controle do serviço e vá para a sua lista de vídeos hospedados. Na lista de mídias armazenadas, clique no botão com reticências e escolha a opção Incorporação. Na janela, você vai poder clicar no botão Código de incorporação e a tag <iframe> personalizada também vai aparecer.
Exercício da aula 4 até 6Aula 7
Desafio: um site com vídeos
não lembro se fiz esse desafio, mas tô com preguiça de procurar.
quando eu tiver com coragem, eu procuro e ponho o link aqui
Cápitulo 12
Aula 1
Estilo CSS inline
...
<head>
<body style="background-color: cor;">
<h1 style="color: cor;">Capítulo 1</h1>
...
Inline - mudar a estética de somente uma linha de código
<p style="text-align: justify;">
- deixa espaçado as letras e palavras certinho
<h1 style="color: cor; background-color: cor;">
somente usar inline para modificações expecíficas para uma página
Exercício da aulaAula 2
Estilo CSS internos
...
<title>Estilos locais/internos</title>
<style>
body{
background-color: #556b2f;
font-family: Arial, Helvica, sans-serif;
font-size: 20px;
}
h1{
color: #380e5f;
background-color: #643c8a;
}
h2{
color: #b15c16d5;
}
p{
text-align: justify;
}
<style>
Desvantagens do Interno
ocupa muito espaço e é aplicavél para somente uma página; se precisar que 2 ou mais páginas tenham a esma aparÊncia, vai ter que copiar e colar e se uma mudança for necessária, ela terá que ser feita página por página; não é eficiente.
Desvantagens do Inline
código bagunçado e não eficiente, pois as CSS tem que ser feitas linha por linha.
técnica antiga; pode ser descontinuada em breve
Exercício da aulaAula 3
Estilos CSS externas
regras no CSS começa com @
...
<title>....</title>
<link rel="stylesheet" href="style.css">
...
ao digitar um treço desses de ser uma outra página ou arquivo do site é só fazer Ctrl + clicar; fazer outra página já sendo o tipo que é preciso
style.css
@charset "UTF-8";
body{
...
...
...
}
numa mesma página, posso usar os 3 tipos de CSS sem problemas
em quetão de configuração que tem mais poder é:
- inline - configuração específico; mais tedioso
- interno - meio á meio; bom para 1 ou 2 páginas; quando o style começar a ficar grande, pular para o externo
- externo - configuração que nem o interno, mas é mais eficiente para quando tem várias páginas
FIM DO MÓDULO 1
Capítulo 13
Aula 0
O que vamos aprender no Módulo 2?
fundamentos do design, psicologia das cores, tipografia, elementos css, modelo de caixas, wireframe, responsividade
- estudos de cores
- tipografia
- CSS id e class
- Modelo de caixas
- criar um site do zero
Aula 1
Psicologia das cores
cores são muito importantes, "manipulam" o nosso acessar; comprar; subconciente
azul tem uma taxa de 1-2% de rejeição
marrom pode ser usado para comida, só têm que saber usar

Aula 2
Representando cores com CSS3
representação por nomes
representação por códigos hexadecimais
decimais: 0 1 2 3 4 5 6 7 8 9
hexadecimais: 0 1 2 3 4 5 6 7 8 9 a b c d e f
o 0 (nada; 0) é o digito menos significativo e o f ("tudo"; 255) é o mais significativo
Exemplo: #0000ff -> 00(red), 00(green) & ff(blue)
representação por RGB
- red - rgb(255, 0, 0) = #ff0000
- green - rgb(0, 255, 0) = #00ff00
- blue - rgb(0, 0, 255) = #0000ff
- white - rgb(255, 255, 255) = #ffffff
- black - rgb(0, 0, 0) = #000000
representação por características da cor / HSLA
Hue / Saturation / Luminosity / Alpha
Hue is a degree on the color wheel from 0 to 360. 0 is red, 120 is green, and 240 is blue.
Saturation is a percentage value. 0% means a shade of gray, and 100% is the full color.
Lightness is also a percentage value. 0% is black, and 100% is white.
- red - hsl(0, 100%, 50%)
- blue - hsl(240, 100%, 50%)
- green - hsl(120, 100%, 50%)
- white - hsl(0, 0%, 100%)
- black - hsl(0, 100%, 0%)
quando a transparência não está sendo usada, ela é "1" e não aparece no código,mas se for usada, vai aparecer como um número decimal(0,167); o "0" seria total transparência.

Aula 3
Harmonia de cores
O círculo cromático

Analisando atentamente o círculo cromático, percebemos as três cores primárias, que estão destacadas com o texto mais escuro: amarelo, vermelho e azul. Da junção das cores primárias, temos as três cores secundárias, que são o laranja (amarelo+vermelho), o violeta/roxo (azul+vermelho) e o verde (azul+amarelo). Da junção de uma cor primária com uma secundária, temos as seis cores terciárias:
- ‣Amarelo-esverdeado (amarelo+verde)
- ‣Amarelo-alaranjado (amarelo+laranja)
- ‣Vermelho-alaranjado (vermelho+laranja)
- ‣Vermelho-arroxeado (vermelho+roxo)
- ‣Azul-arroxeado (azul+roxo)
- ‣Azul-esverdeado (azul+verde)
ao dar um nome a uma cor terciária, primeiro por o nome da cor primária e depois a cor secundária.
ao fazer um site, paleta de cores deve girar em torno de 3 à 5; desconsiderar branco e preto; não esquecer da teoria das cores
se meu cliente tiver uma logo que é importante para o negócio, verificar a cor primária dessa logo; paleta.
Temperatura e Harmonia
Olhando o círculo cromático, também conseguimos classificar as cores por sua temperatura. Dá só uma olhada na imagem a seguir:

As cores quentes, criam uma sensação de calor e proximidade. Já as cores frias, estão associadas a sensações mais calmas, de frescor e tranquilidade. Além da classificação por temperatura, podemos classificar as cores por esquemas harmônicos.
Cores complementares

São aquelas que apresentam o maior contraste entre si. Elas estão localizadas do lado imediatamente oposto do círculo cromático.
Se pegarmos qualquer cor primária, a sua cor complementar é sempre uma cor secundária. De forma similar, qualquer cor terciária tem uma outra cor terciária como complementar. Quando juntamos duas cores complementares, sempre obtemos o cinza.
Cores análogas

Diferente das cores complementares, que estão do lado extremo oposto no círculo cromático, as cores análogas são aquelas que são imediatamente vizinhas entre si.
Por serem cores consecutivas, as cores análogas possuem umbaixo contraste entre elas, mas criam uma bela harmoniaquando combinadas em um mesmo design.
Cores análogas mais uma complementar

Dá pra notar que essa aqui é uma combinação dos dois tipos anteriores, não é?
Essa técnica quebra um pouco o ritmo semelhante das cores análogas, adicionando uma cor que cria um grande contraste com as três análogas.
Cores análogas relacionadas

Nesse tipo de harmonia, escolhemos duas cores análogas (consecutivas) e depois pulamos uma terceira cor (em qualquer direção) e escolhemos a quarta.
Com essa técnica, conseguimos um resultado parecido com o das cores análogas simples, mas com um pouco mais de contraste sem ter que escolher uma cor complementar.
Cores intercaladas

Um tipo menos usado de harmonia, já que às vezes não funciona tão bem assim. Vamos escolher a primeira cor e depois mais duas com intervalo constante entre elas.
Na imagem ao lado, criei um exemplo onde o intervalo é constante entre as cores selecionados.
Cores triádicas

Técnica bastante utilizada e que garante uma grande riqueza de cores, onde escolhemos três pontos equidistantes no círculo cromático.
Esse esquema gera sempre um triângulo equilátero e cria uma opção que sempre possui um ótimo contraste entre as cores.
Cores em quadrado

Bastante semelhante ao esquema triádico, mas permite selecionar quatro cores com um contraste razoável entre as cores escolhidas.
Esse esquema gera sempre um quadrado perfeito com os pontos selecionados.
Cores tetrádicas

Com essa técnica, vamos escolher dois pares de cores complementares, que não serão necessariamente análogas ou consecutivas. Isso vai nos garantir dois pares de cores, com bastante contraste entre si.
Monocromia

Uma harmonia bem diferente das anteriores, que usa apenas uma cor e varia apenas a sua saturação e o seu brilho. Essa combinação geralmente gera pouquíssimo contraste entre as cores escolhidas, mas acaba gerando um resultado visual bem agradável aos olhos, conhecido como “degradê”.
Aula 4
Paleta de cores
- RGB - para monitores (red, green & blue)
- CMYK - para impressoras (cyan, magenta, yellow, key[black])
- HSV - hue, saturation & value
- LAB (???)
no "extrair tema" ele extrai as cores da foto.
no "extrair degradê(gradiente)" ele extrai um gradiente apartir da foto
este site tem visualizador de página
este site é um gerador de paletas(tecla: espaço)
Aula 5
Como capturar cores da tela?
extensão do google: Color Picker - Eyedropper Tool
Aula 6
Como criar degradê no CSS?
dentro de <head>
<style>
body{
background-image: linear-gradient (to right, white, blue);
}
</style>
to right, to left, to top, to bottom; também tem como por com graus específicos, tipo: 90deg, 60deg, ...)
pode por a porcentagem nas cores; white 25%, blue 25%, violet 25%, pink 25%.
background-attachment: fixed; - para que o degradê fique preso ao fundo da página.
exercício feito nessa aulaAula 7
Criando um exemplo real
<main> </main>
style.css
@charset "UTF-8";
*{
font-family: Arial, Helvetica, sans-serif;
}
body{
background-image: linear-gradient (to bottom, #e9c46a, #f4a261);
}
main{
background-color: white;
border-radius: 10px;
box-shadow: 5px 5px 15px rbga (134, 90, 54, 0.63);
width: 600px;
padding: 10px;
margin: auto;
}
h1{
color: #e76f51;
text-align: center;
text-shadow: 1px 1px 2px rgba (119, 57, 41, 0.906);
}
h2{
color: #264653;
}
p{
text-align: justify;
}
Exercício dessa aula
Capítulo 14
Aula 1
Primeiros passos em Tipografia
Johannes Gutenberg, Pai da imprensa(1450); prensa mecânica de tipos móveis
tipos móveis; pecinhas(letras) de metal ou madeira or argila
os chineses foram os primeiros a criarem o conceito de prensa com tipos móveis, mas Gutenberg acabou ficando reconhecido antes
arrumar pecinhas num lugar lá, sujar de tinta, por no papel, fechar a tampa, prensar, dava "2" folhas; 📖
Tipoggrafia - estudo de como escrever algo no papel
Tipo - týpos - por algo no papel
Grafia - graphía - escrita
cores, tal qual tipografia, transmitem emocões
Importante: Design - cores boas, images boas & tipografias boas
Fonte, letra e família
Glifos, letras, caracteres
São os signos alfabéticos projetados para reprodução mecânica.
Família tipográfica
É o conjunto de glifos que possuem as mesmas características anatômicas, independente das suas variações.
Vou exemplificar esse conceito com o exemplo a seguir: a família tipográfica Open Sans possui várias configurações de peso (de 300 a 800). Mesmo parecendo representações bem diferentes, todos eles fazem parte da mesma família tipográfica.

Fontes
As fontes são conjuntos de glifos que formam uma família tipográfica. O termo fonte também é aplicável ao arquivo digital que armazena todos os formatos de glifos que compõem uma determinada família tipográfica.

As fontes falam?
No capítulo anterior nós falamos sobre a importância de escolher uma boa paleta de cores para o nosso projeto. Também precisamos saber escolher as famílias tipográficas que utilizaremos em um site. As fontes também podem passar emoções.
Vamos a um exemplo?
Imagine que eu tenha que representar a palavra “amor” através de uma determinada tipografia. Qual das opções abaixo você escolheria?

Com toda certeza, a maioria das pessoas escolheria a segunda opção. Sabe o por quê? A palavra “amor” tem mais a ver com uma representação mais suave e fluida, não algo mais robusto e forte. E mesmo sem te dizer isso, provavelmente a escolha do tipo fez isso por mim.
O problema é que a escolha não é tão simples assim. Na representação acima, com uma palavra curta e isolada, conseguimos ler facilmente a palavra “amor” em qualquer uma das opções de fontes escolhidas. Chamamos isso de legibilidade. Mas basta colocarmos uma frase maior para as coisas ficarem um pouco confusas.

No exemplo anterior, mesmo que todas as palavras tenham uma legibilidade razoável (até dá pra entender), a leiturabilidade não é tão boa assim. Essa segunda característica diz respeito à fluidez que conseguimos ter na leitura.
Sendo assim, escolher um bom tipo é essencial para cada caso. Não povoar nosso site com tipos diferentes também é uma ótima ideia. No máximo dois ou três tipos já estaria ótimo.
Vamos conhecer agora algumas características anatômicas dos tipos para nos ajudar a escolher boas fontes para nosso site.
Aula 2
Anatomia do tipo
Vamos analisar cada uma das partes de um tipo. Volte sempre para essa página ao ler a descrição de cada elemento:

- A - Altura das maiúsculas: Altura que as letras maiúsculas vão ocupar. Geralmente um pouco menor que a soma da ascendente com a mediana (< B + D)
- B - Ascendente: Parte das letras maiúsculas que se ergue acima da linha mediana
- C - Descendente: Parte das letras minúsculas que passa por baixo da linha de base.
- D - Altura-X: Também chamada de mediana, define o tamanho das letras minúsculas. Tem esse nome, pois se baseia no tamanho da letra x minúscula.
- E - Corpo: É a soma de quatro medidas: ascendente + altura-x + descendente + espaço de reserva. É o tamanho total da letra. É o valor que escolhemos ao configurar o tamanho da fonte em um texto.
- 1 - Arco: presente em letras minúsculas. Uma linha curva que nasce em na haste principal.
- 2 - Barriga: curva em uma letra maiúscula ou minúscula, fechada, ligada à haste vertical em dois pontos.
- 3 - Braço: traço horizontal ou inclinado, ligado à haste vertical principal de uma letra maiúscula ou minúscula.
- 4 - Cauda: apêndice do corpo de algumas letras (g, j, J, K, Q, R), que fica abaixo da linha base.
- 5 - Enlace: a forma como uma haste, linha ou filete se liga a um arremate, a uma serifa ou a um terminal. Pode ser angular ou curvilíneo.
- 6 - Espinha: curva e contracurva estrutural da letra S.
- 7 - Esporão: uma projeção que encontramos nas letras b e G.
- 8 - Filete: haste horizontal ou inclinada, fechada nas duas extremidades, por duas hastes ou por uma curva.
- 9 - Haste: traço principal de uma letra, geralmente vertical.
- 10 - Olho: espaço em branco, fechado, dentro de uma letra.
- 11 - Orelha: apêndice presente na letra g, que pode ser em gota, botão, bandeira ou gancho.
- 12 - Pé: terminal ou serifa horizontal que arremata uma perna na parte de baixo.
- 13 - Perna: haste vertical ou inclinada com um extremidade livre (ou com um pé) e outra extremidade ligada ao corpo da letra.
- 14 - Serifa: também chamada de apoio ou patilha. Pequenas retas que ornamentam as hastes de alguns tipos.
- 15 - Terminal: forma que arremata a extremidade de uma linha curva de uma letra.
- 16 - Vértice: também chamada de ápice. Formada pela convergência de duas hastes que se encontram. Pode ser pontiagudo, oblíquo, plano ou redondo.
quando for por uma fonte nas CSS temos que sabor o tamanho(altura) do corpo
A - E - items métricos
1 - 16 - items anatômicos
a serifa ajuda a guiar a leitura
glifo é cada letra/caractere de uma fonte e os glifos juntos formam a fonte
cada glifo pode ter uma variante, mas nem todas tem todas essas variantes:
light, normal, semibold, bold, extra bold
Categorias de fontes

Aula 3
Famílias de fonte com CSS
<style>
body{
font-family: Arial, Helvetica, sans-serif;
}
é uma boa ideia por umas três fontes pq se o dispositivo não reconhecer um, provavelmente vai reconhecer o outro; safe combinations
font-family: sans-serif; - comando genérico; todos os dispositivos vão ler
font-family: serif; - mesmo coisa de cima, mas com serifa; possibilidade de algum dispositivo não conseguir ler
font-family: monospace; - mesmo coisa de cima, mas com serifa; possibilidade de algum dispositivo não conseguir ler
sempre por um desses comandos genéricos depois da fonte que você quer usar
Exercício da aulaAula 4
Tamanho de fonte e suas medidas
- para especificar tamanho de fonte, existe várias medidas como:
- cm - centímetros
- in - polegadas
- pt - pontos
- pc - paicas
- px - pixels
- etc
para tamanhos de fonte a serem exibidos na tela, o W3S recomenda o uso do px ou do em
a medida em é uma das que gera mais dúvida nos alunos. Ela é uma medida referencial em relação ao tamnaho original da fonte. O tamanho padrão de uma fonte é geralmemte 16px, isso equivale a 1em.
a partir daí, podemos configurar o tamanho de um título, por exemplo, como sendo 2 vezes maior que a fonte padrão usando o valor 2em para a propriedade.
h1{
font-family: 'Franklim Gothic Medium', 'Arial Narrow', Arial, sans-serif;
font-size: 2em;
}
h2{
font-family: 'Times New Roman', Times, serif;
font-size: 1.5em;
}
Outros estilos
existem outras formatações muito usadas em CSS, que são as propriedades font-style para aplicar o itálico e font-weight para aplicar o negrito, sem contudo, existir os fatos semânticas discutido no capítulo 8

O padrão para essas duas propriedades é o valor normal, mas podemos aplicar o valor itálico ao font-style usando italic (mais compatível) ou oblique (menos compatível). Já o negrito, pode ser aplicado por nomes como lighter, bold e bolder ou pelo peso numérico, como indicado na imagem.
Medidas Absolutas
- cm - nem todos os navegadores conseguem mostrar
- mm(milímetros) - também tem a questão de ter um tamanho diferente
- in(inch)
- pt - medidadas usadas em impressão e não para telas(tipografia)
- px - mais usada - certas telas tem os pixels arranjadas de maneiras diferentes então não tem como depender 100% dessa medida.
- pc - tipografia também
Medidas Relativas
- em - mais usado - relativo ao tamanho da letra "M" maiúsculo - medida em relação ao tamanho da fonte
- ex - em relação a letra "x"
- rem - tipo "em", mas relativo ao root; fonte configuração no body
- vw - viewport width - (contente="width= device-width, inicial-scale=1.0")
- vh - viewport height
- % - porcentagem
o W3 recomenda usar somente as medidas px & em no font-size.
6px é a norma mesmo se não especificar o font-size
editores de texto são em pt porque a ideia é de que vai ser impresso o documento
geralmente 16px=1em
1em = tamanho normal da fonte
2 em = o dobro do normal
é melhor usar em porque ele é relativo a porcetagens e é bem melhor para mostar em tela diversas, desde tvs à smartwatches
Aula 5
Peso, estilo & shorthand font
font-weight:___;
- lighter
- normal
- bold
- bolder
100 á 900; 400 sendo normal
font-style:___; - italic
font-decoration:___; - underline(sublinhado)
Exemplo:
h1{
font-family: 'Work Sans', sans-serif;
font-weight: bolder;
font-size: 3em;
font-style: italic;
}
shorthand font
font-style -> font-variant -> font-weight -> font-size/line-height -> font-family;
Exemplo:
h1{
font: italic bolder 3em 'Work Sans', sans-serif;
}
h2{
font: bold 2em 'Work Sans';
}
Aula 6
Usando Google Fonts
@import - regra
body - seletor
o que fica entre {} - declaração
font-family: 'Work Sans', Ariel, Vendana, sans-serif;
- Geralmente só usar 3 - 4 famílias de fontes:
- uma para grandes títulos
- uma para parágrafos
- e uma para destaques
Aula 7
Usando fontes externas baixadas
DaFont.com - baixar a fonte que quiser(verificar se tem acentuações) - retirar do .zip e da pasta - e por numa pasta chamada "fonts"(fazer a pasta) no arquivo que é o site
@font-face{
font-family: 'Lovely Valentine Script';
src: url('fonts/Lovely Valentine Script.ttf') format('truetype'), url('fonts/Lovely
Valentine Script.otf') format('opentype');
font-weight: normal;
font-style: normal;
- Tipos de format()
- opentype (otf)
- truetype (ttf)
- embedded-opentype
- truetype-aat (Apple Advanced Typografy)
- svg
Capturando as fontes usadas em um site
- chrome web store
- Fonts Ninja - fonts textuais (não pega em inglês); não precisa fazer a assinatura
Como descobrir uma fonte que está sendo usada em outro site?
No capítulo anterior, te ensinei a usar a extensão Colorzilla para pegar uma cor que estava sendo usada em outro site. Agora vou te ensinar a usar a extensão Fonts Ninja do Google Chrome para capturar a fonte usada em componentes de texto.
Acesse novamente o site do Chrome Web Store e procure pela extensão Fonts Ninja (ensinei como fazer isso no capítulo anterior). Uma vez instalada e ativa, a extensão ficará ao lado da barra de endereços, assim como o Colorzilla.
Abra um site qualquer, selecione o trecho de texto que quer identificar (recomendo selecionar poucas palavras) e clique sobre o botão do Fonts Ninja (veja na imagem a seguir).

Além de mostrar qual foi a família tipográfica utilizada no texto selecionado, a extensão vai te indicar o tamanho e peso da fonte, o espaçamento vertical e horizontal e a cor aplicada a ele. Para isso, basta mover o mouse sobre o texto e um balão aparecerá com todas essas informações.
Aula 9
Detectando fontes dentro de imagens
- What Font Is - mais funcional e inteligente; tem que descobrir fonte por fonte; tem que otimizar a foto dentro do site para ter um sucesso maior
- Font Squirrel - tem identifier, mas não é tão bom quanto o 1º
- Mt Fonts - tem identifier, mas não é tão bom quanto o 1º
Aula 10
Alinhamento de textos com CSS
- left;
- right;
- center;
- justify;
Se você quiser por uma intrusão no começo de um parágrafo como se fosse uma redação, é só fazer: text-intent:nºpx;
Capítulo 15
Aula 1
Usando o id com CSS
࠰Seletores personalizados
<h1 id="principal">
h1#principal{
text-aligh: center;
}
só vai afetar os h1s que tiverem esse id, mas se tiver só #principal, todos as tags que tiverem o id "principal" vão ser afetadas
- em HTML é id = em CSS é #
- em HTML é class = em CSS é . (ponto final)
Aula 2
As diferenças entre id e class
28 de Julho de 2025
Exemplo: (cor diferente para cada class)
<h2 class="basico"> = .basico{
color: #____;
}
<h2 class="intermediario"> = .intermediario{
color: #____;
}
<h2 class="avancado"> = .avancado{
color: #____;
}
id - só podemos usar um id para um único elemento; um por documento/html; tecnicamente funciona, mas não é pra usar
class - porém, podemos atribuir um mesmo class para vários elementos que possuam essa mesma característica
Exemplo: <h2 class="avançado destaque">
Outro exemplo: <h1 id="principal" class="avançado destaque">Criando sites HTML e CSS</h1>
<span></span> - A tag <span> em HTML é um elemento de linha genérico usado para agrupar conteúdo, geralmente para estilização ou manipulação com CSS ou JavaScript. Ela não possui significado semântico próprio, ao contrário de outras tags como <p> (parágrafo) ou <h1> (título); é tipo um marca texto.
Exercício da aula 1 e 2Aula 3
Pseudo-classes em CSS
relacionado ao estado de um elemento
- pseudo-class -> :
- class -> .
- id -> #
:hover -> when hovering over something, it will change
<style>
div > p{
display:none;
}
> - child
o <p> dentro do div não vai aparecer
div:hover > p{
display:block;
color: white;
background-color:red;
width: 300px;
}
ao passar por cima do div, o <p> escondido vai aparecer nessas configurações
div:hover{
color:red;
}
passou em cima do div, que nesse caso é um texto, ele vai ficar vermelho
</style>
</head>
<body>
<h1>Exemplo de hover</h1>
<passe o mouse sobre o texto abaixo</p>
<div>
Passa o mouse aqui
<p>TEXTO ESCONDIDO!</p>
</div>
<p>Fim do exemplo</p>
</body>
</html>
Exercício da aula
Aula 4
Pseudo-elementos em CSS
29 de Julho de 2025
- # = id
- . = class
- : = pseudo-class
- :: = pseudo-element
- > = children
:visited, :active -> pseudo-classes
body{
font-family: Arial, Helvetica, sans-serif;
}
a{
color: red;
text-decpration: none;
font-weight: bold;
}
a:visited{ -> quando o site já foi visitado
color: darkred;
}
a:hover{
color:black;
text-decoration: underline;
}
a:active{ -> quando clica no link
color: yellow;
}
Os pseudo-elementos interferem com os perifericos do conteúdo; funcionam com id e class. Exemplo:
a::after{
content: ' [link] ';
text-decoration: none;
font-weight: normal;
color:darkgray;
}
<li><a href="https://youtube.com/cursoemvideo" target="_blank"
class="especial">Canal do YouTube</a></li>
.especial{
background-color: darkgray;
color:white;
}
.especial::before{
content: ' ☢ ';
color:yellow;
}
.especial::after{
content: ' ☠ ';
color: black;
}
/*algo que você quer escrito no código, mas não na página*/
Exercício da aulaCapítulo 16
Aula 1
Modelo de Caixas: primeiros passos
6 de Agosto de 2025
O que é uma caixa?
De forma simples e objetiva, baseado em um conceito chamado “box model”, a grande maioria dos elementos HTML que temos no nosso site são como caixas. Elas são containers que armazenam conteúdos ou até mesmo outras caixas.
Anatomia de uma caixa
Vamos analisar como uma caixa vai ser apresentada por todos os navegadores. Olhe atentamente o diagrama a seguir, que é exatamente o já citado modelo de caixa:

Tudo começa a partir do conteúdo (content), que representamos acima com o bla bla bla… Por padrão, toda caixa é composta apenas pelo conteúdo e não possui padding, nem border, nem outline e nem margin. Uma exceção curiosa é o elemento <body> que já vem com uma margin de 8px.
Todo conteúdo possui uma largura (width) e uma altura (height) e a esse conjunto de propriedades, damos o nome de box-size (tamanho da caixa). O tamanho da caixa não inclui as medidas de padding, border, outline e margin.
Depois do conteúdo e de seu tamanho, vamos nos focar na borda que fica em volta dele. Ela pode ter uma espessura, uma cor e um formato.
Entre a borda e o conteúdo - da borda para dentro - temos o preenchimento (padding) e da borda para fora, temos a margem (margin).
Entre a margem e a borda, podemos determinar o contorno (outline) que é muito pouco utilizado, mas existe. Ele é um traçado visual que podemos criar fora da borda e o cálculo da sua espessura faz parte da margem estabelecida.
NOVIDADE DAS CSS3: Existe a nova propriedade box-sizing onde podemos definir que as dimensões height e width não são medidas apenas a partir do conteúdo (content-box) e sim pela borda (border-box).
Tipos de Caixa
Dependendo do comportamento da caixa, podemos classificar um elemento em uma de duas categorias:
Caixa do tipo block-level
Um elemento dito block-level sempre vai se iniciar em uma nova linha e vai ocupar a largura total do elemento onde ele está contido. Se não estiver contido em nenhuma outra caixa, ele vai ocupar 100% da largura do <body>.
O elemento block-level mais conhecido é o <div> e suas variações semânticas modernas da HTML5, como <main>, <section>, <aside>, etc.
Na lista a seguir, coloquei alguns elementos HTML que são block-level:

Caixa do tipo inline-level
Um elemento do tipo inline-level não vai começar em uma nova linha, e sim no ponto exato onde foram definidos. E a largura dele vai ocupar apenas o tamanho relativo ao seu conteúdo.
Abaixo, listei alguns elementos inline-level usados pela HTML:

Aula 2
Modelo de Caixas na prática (pt.1)
mouse -> botão direito -> Developer Tools -> Inspect
para desgrudar o Inspect do navegador: 3 pontinhos lá em cima -> docksize -> unlock into separate window
e se quiser deixar ele grande: ctrl +
User Agent é o navegador
- border-style:
- solid;
- dashed;
- dotted;
- double;
- groove;
- quando fazer o padding, fazer nesta ordem:
- top
- right
- bottom
- left
Aula 3
Modelo de Caixas na prática (pt.2)
7 de Agosto de 2025
Margens no automático
Um recurso que também vai ser muito usado em nossos exercícios é a centralização de blocos. Para que isso seja feito, devemos pedir que o navegador calcule automaticamente as margens da esquerda e da direita para que o bloco seja colocado no meio do navegador, independente do tamanho da janela.
Para centralizar uma caixa, use a seguinte declaração no seu seletor:
margin: auto;
Dá pra simplificar?
As configurações de borda e contorno também possuem shorthands para simplificar o código anterior. A ordem para as duas configurações é sempre a mesma para as duas shorthands: largura (-width), estilo (-style) e cor (-color).

Preenchimento e margem personalizados
Todo elemento de caixa possui quatro valores para padding e quatro para margin, sempre nessa mesma ordem: superior (-top), direita (-right), inferior (-bottom), esquerda (-left). Quando colocamos um único valor de dimensão para o preenchimento ou margem, esse mesmo valor é aplicado simetricamente a todas as direções, mas também podemos fazer códigos como:

Também existe a opção de indicar cada shorthand das propriedades de preenchimento e borda usando apenas duas medidas:

Essa simplificação só é possível quando as medidas -top e -bottom forem iguais entre si e o mesmo também ocorrer entre as medidas -right e -left.
Se eu quiser fazer um elemento virar outro: block-level p/ inline-level -> display: inline;
inline-level p/ block-level -> display: block;
Exercício da aula 2 e 3Aula 4
Grouping Tags em HTML5
Grouping Tags e Semantic Tags
A linguagem HTML padrão tinha apenas duas tags de agrupamento genérico: a <div>
e a <span>
. A diferença básica entre elas é que a primeira é um elemento agrupador do tipo block-level e o segundo é inline-level. No mais, eles agem exatamente da mesma maneira, servindo para juntar vários outros elementos HTML.
Com o surgimento da HTML5, surgiram as tags semânticas de agrupamento. Isso não significa que as <div>
e <span>
(agora chamadas de não-semânticas) deixaram de existir ou ficaram obsoletas, mas seu uso agora faz menos sentido, pois temos tags para dividir as partes do nosso documento HTML.
Vamos compreender a partir de agora os principais agregadores semânticos da HTML5.
Header
Cria áreas relativas a cabeçalhos. Pode ser o cabeçalho principal de um site ou até mesmo o cabeçalho de uma seção ou artigo. Normalmente inclui títulos <h1> - <h6>
e subtítulos. Podem também conter menus de navegação.
Nav
Define uma área que possui os links de navegação pela estrutura de páginas que vão compor o website. Um <nav>
pode estar dentro de um <header>
.
Main
É um agrupador usado para delimitar o conteúdo principal do nosso site. Normalmente concentra as seções, artigos e conteúdos periféricos.
Section
Cria seções para sua página. Ela pode conter o conteúdo diretamente no seu corpo ou dividir os conteúdos em artigos com conteúdos específicos. Segundo a documentação oficial da W3C, “uma seção é um agrupamento temático de conteúdos, tipicamente com um cabeçalho”.
Article
Um artigo é um elemento que vai conter um conteúdo que pode ser lido de forma independente e dizem respeito a um mesmo assunto. Podemos usar um <article>
para delimitar um post de blog ou fórum, uma notícia, etc.
Aside
Delimita um conteúdo periférico e complementar ao conteúdo principal de um artigo ou seção. Normalmente um conteúdo <aside>
está posicionado ao lado de um determinado texto ou até mesmo no meio dele, exatamente como fizemos no bloco de texto apresentado anteriormente, falando sobre “MÚLTIPLOS NÍVEIS”.
MÚLTIPLOS NÍVEIS: A sua criatividade e planejamento vai definir a estrutura do seu site. Sendo assim, é possível ter um ou mais <article>
dentro de uma <section>
ou até mesmo criar <section>
dentro de um <article>
. Não existem limitações quanto a isso.
Footer
Cria um rodapé para o site inteiro, seção ou artigo. É um conteúdo que não faz parte diretamente do conteúdo nem é um conteúdo periférico (o que caracterizaria um <aside>
), mas possui informações sobre autoria do conteúdo, links adicionais, mapa do site, documentos relacionados.
A seguir, vou criar uma proposta de estrutura para um projeto de site. Não tome ela como a única possibilidade de criar o posicionamento de elementos de agrupamento semântico.

Analise o diagrama do lado esquerdo e o código do lado direito da imagem acima. Veja a hierarquia entre os elementos e quais deles estão dentro um do outro.
Aula 5
Sombra nas Caixas
box-shadow: (se não escrever nada no início, vai ser outset(sombra pra fora), se por inset(sombra pra dentro) vai ficar com cara de afundado)) 2px(eixo x) 2px(eixo y) 2px(blur) 1px(spread) black;
As sombras são muito úteis para dar volume, para dar a sensação de que as caixas estão ali realmente. Para exemplificar, vamos criar o seguinte código base:

Olhando para o corpo da página, temos apenas um <article>
(linha 22) com um breve conteúdo. A configuração de estilo (linha 7 em diante) faz com que esse artigo seja configurado como uma pequena caixa centralizada. O resultado visual está apresentado a seguir:

Para criar uma sombra nessa caixa, vamos adicionar uma declaração especial na linha 17, substituindo o comentário que deixei lá.

- Deslocamento horizontal (h-offset): quanto a sombra vai andar para o lado direito (valores negativos causam deslocamento para a esquerda)
- Deslocamento vertical (v-offset): quanto a sombra vai andar para baixo (valores negativos causam deslocamento para cima)
- Embaçamento (blur): quanto a sombra vai se espalhar pelo fundo
- Cor (color): cor da sombra. É possível usar transparência.
MUITO CUIDADO! Não exagere no uso de sombras, pois elas podem tornar o seu efeito visual muito pesado. Evite também usar sombras coloridas. Olhe ao seu redor e perceba que as sombras são sempre pretas. Use cores rgba() para obter uma transparência que cause efeitos mais suaves.
Aula 6
Caixas com vértices arredondadas
border-radius: 20px(topo esquerdo) 20px(todo direita) 20px(baixo direita) 20px(baixo esquerda)
Vértices arredondados
Podemos arredondar os vértices usando uma declaração simples usando a propriedade border-radius. Adicione o seguinte comando ao seletor do artigo do exemplo que estamos criando:

Na declaração acima, todos os vértices foram levemente arredondados (10px) de forma simétrica. Se for necessário, podemos indicar quatro medidas diferentes, uma para cada vértice. Olhe atentamente para o resultado abaixo e perceba que cada ponta está diferente.

Assim como fizemos com as margens, também é possível indicar apenas dois valores, o que vai agir em vértices intercalados, partindo do canto superior esquerdo.

Aula 7
Bordas decoradas
- GIMP
- width: 80px
- height: 80px
- ▷Advanced Options
- x resolution: 70
- y resolution: 70
- Fill with: Transparency
reassisitir na parte do GIMP
Modo completo
border-image-source: url('borda.png');
border-image-slice: 27;
border-image-repeat: repeat(também tem o stretch;);
Shorthand
border-image: url('borda.png') 27 repeat;
mesmo com o border-image, não pode tirar o border normal, se não para funcionar, mas pode por transparente: border: 12px solid transparent;
Aula 8
Desafio do Módulo 2
O capítulo 17 vai ser ele ensinando passo a passo como fazer esse desafio
Aula 1
Criando um projeto apartir do zero
29 de Agosto de 2025
Organizando as coisas para começar o desafio
Aula 2
Navegando pelo projeto pronto
Ele mostrou como tem que ficar no final
Aula 3
Planejando a estrutura/layout do seu site
Aula 4
Transformando o layout em código
- Fizemos o esqueleto do HTML
- html lang="pt-br"
- title
- favicon
- CSS
- header
- nav
- main
- article
- aside
- footer
- e começamos o CSS
- @charset "UTF-8"
- body -> background-color
Aula 5
Organizando o conteúdo do site
1 de Setembro de 2025
Organizando o conteúdo do site (HTML)
Aula 6
Variáveis em CSS3
variáveis em CSS -> --
:root{} -> pseudo-classe root
tudo que colocar dentro do :root{} vai valer para o documento todo; declaração de variáveis globais
:root{
--cor0: #ebe5c5;
--cor1: #83e1ad;
--cor2: #3ddc84;
--cor3: #2fa866;
--cor4: #1a5c37;
--cor5: #063d1e;
}
body{
background-color: var(--cor0);
}
Tudo que estiver com essa variável vai aderir a ela. Então se a :root tiver uma mudança, tudo que estava configurada a ela vai mudar junto.
*{} - seletor global
; dá para tirar as margens de todas as tags ou dá para mexer em outras coisas de todas as tags de uma só vez com o seletor global
Aula 7
Responsividade para sites
main{
background-color: white;
padding: 20px;
border-radius: 10px;
min-width: 270px;
max-width: 800px;
margin: auto;
}
img{
width: 100%;
}
<picture>
<source media="(max-width: 600px)" srcset="/html-css/Desafios/Módulo2/10/imagens/irina-blok-pq.jpg">
<img src="imagens/irina-blok.jpg" alt="Irina Blok">
</picture>
Aula 8
Página Anterior
Página Principal