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.

iplocation.net

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)

Exercício da aula
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:
&#x___(;)

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

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

Exercício da aula

Aula 5

Como mudar o favicon de um site

favicon é aquela imagem que fica na aba da página.

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 aula
Cá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 aula
Cá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)


HTML5 and CSS3 Obsolete tags

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 aula

Aula 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
Exercício da aula 2 e 3

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 aula
Cápitulo 9

Aula 1

Listas OL e UL

  • <ol> - ordered lists
  • <ul> - unordered lists
  • <li> - list items
    <ol type=" ">
  1. "1" - numbers(padrão) start="5"
  2. "a" - lowercase lettlers
  3. "A" - uppercase lettlers
  4. "i" - lower roman numerals
  5. "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>
  1. <li>Item 1</li>
  2. <li>Item 2</li>
    1. <ol type="a">
    2. <li>Item 2.1</li>
    3. <li>Item 2.2</li>
    4. <li>Item 2.3</li>
    </ol>
  3. <li>Item 3</li>
  4. <li>Item 4</li>
  5. <li>Item 5</li>
</ol>

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 aula
Cá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:

  1. ‣_blank vai abrir o link em uma nova janela em branc
  2. ‣_self vai abrir o link na janela ou frame atual (padrão)
  3. ‣_top vai desfazer todos os frames e abrir o destino no navegador complet
  4. ‣_parent similar ao uso do _top em uma referência à janela mãe
  5. ‣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:

  1. ‣next indica que o link é para a próxima parte do documento atual
  2. ‣prev indica que o link é para a parte anterior do documento atual
  3. ‣author indica que é um link para o site do autor do artigo atual
  4. ‣external indica que é um link para outro site que não faz parte do site
  5. 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é 3
Cá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.

  1. para celular/pequeno - 300x300px (resolução)
  2. para tablet/média - 500x500px
  3. 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


PDF

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:

  1. ‣O atributo preload indica se o áudio será pré-carregado ou não e aceita três valores:
    1. ๏ metadata vai carregar apenas as informações sobre o arquivo (tamanho, tempo, informações de direitos, etc)
    2. ๏ none não vai carregar absolutamente nada até que o usuário clique no botão play ou um script inicie a reprodução
    3. ๏ 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
  2. ‣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.
  3. ‣O atributo autoplay, quando inserido, vai iniciar a reprodução do áudio assim que a página for carregada.
  4. ‣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é 3

Aula 4

Formatos de vídeo para seu site

  1. MPEG
    1. .mp4
    2. .m4v
  2. WEBM
    1. .webm
  3. OGG
    1. .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
    1. serviço de hospedagem de vídeo mais popular
    2. gerenciado pelo Google
    3. seus servidores são ultra rápidos
  • Negativo
    1. 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
    1. limitar quem pode ver o vídeo
  • Negativos
    1. ele é pago; taxa anual
    2. algorítmos não são tão eficientes
    3. pequenos travamentos às vezes

Aula 5

Vídeos em hospedagem própria


PDF

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


PDF

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é 6

Aula 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 aula

Aula 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 aula

Aula 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 é:

  1. inline - configuração específico; mais tedioso
  2. interno - meio á meio; bom para 1 ou 2 páginas; quando o style começar a ficar grande, pular para o externo
  3. externo - configuração que nem o interno, mas é mais eficiente para quando tem várias páginas
Exercício da aula

FIM DO MÓDULO 1

details> summary style='font-size:1.54em;'>Módulo 2
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.

Exercício feito nessa aula

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 (???)
color.adobe.com

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 aula

Aula 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 aula

Aula 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

fonts.google.com

@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
Exercíco da aula

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
Aula 8

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:px;

Exercício da aula
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 2

Aula 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 aula
Capí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 3

Aula 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á.

  1. Deslocamento horizontal (h-offset): quanto a sombra vai andar para o lado direito (valores negativos causam deslocamento para a esquerda)
  2. Deslocamento vertical (v-offset): quanto a sombra vai andar para baixo (valores negativos causam deslocamento para cima)
  3. Embaçamento (blur): quanto a sombra vai se espalhar pelo fundo
  4. 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.

Exercício da aula

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

details> summary style='font-size:1.54em;'>Capítulo 17

Aula 1

Criando um projeto apartir do zero

29 de Agosto de 2025

Organizando as coisas para começar o desafio

gustavoguanabara.github.io

Aula 2

Navegando pelo projeto pronto

Ele mostrou como tem que ficar no final

Aula 3

Planejando a estrutura/layout do seu site

mockflow.com

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