41
Sites Responsivos Como mostrar o mesmo conteúdo em diversos aparelhos Feito por Gilberto Crespo Abril/2014

Sites Responsivos - Como mostrar o mesmo conteúdo em diversos aparelhos

Embed Size (px)

DESCRIPTION

Palestra para iniciantes no desenvolvimento responsivo, onde são explicada algumas técnicas para dar maior orientação ao desenvolvedor de como se aprofundar posteriormente.

Citation preview

Page 1: Sites Responsivos - Como mostrar o mesmo conteúdo em diversos aparelhos

Sites Responsivos Como mostrar o mesmo conteúdo

em diversos aparelhos

Feito por Gilberto Crespo

Abril/2014

Page 2: Sites Responsivos - Como mostrar o mesmo conteúdo em diversos aparelhos

Um pouco sobre mim:

= Autor de livro estrangeiro: - Responsive Web Design with jQuery

= Trabalho na área há 10 anos: - sendo 2 anos só com Responsive

= Atualmente fui contratado pela UPPERCASE: - Atuando mais em melhorar a experiência do usuário na

navegação dos sites e sistemas.

Page 3: Sites Responsivos - Como mostrar o mesmo conteúdo em diversos aparelhos

Tópicos:

= Evolução da tecnologia móvel

= Diferenças entre os termos: - Site Fluído

- Site Adaptativo

- Site Responsivo

= Principais técnicas do site Responsivo: - Estrutura flexível

- Mídia flexível

- MediaQueries

Page 4: Sites Responsivos - Como mostrar o mesmo conteúdo em diversos aparelhos

Como era o cenário antes...

Até pouco tempo atrás, site mobile significava :

- Aparelhos pequenos, tela pequena

- Recursos limitados

- Banda extremamente limitada

- Visando somente consultas rápidas ao site

E as orientações eram:

- Criar um tema separado para mobile

- Com conteúdo limitado/resumido

- Layout simplificado

Solução: Sites ou Temas distintos para Web e Mobile

Page 5: Sites Responsivos - Como mostrar o mesmo conteúdo em diversos aparelhos

Isso é da época de vocês?

Como era o cenário antes...

Page 6: Sites Responsivos - Como mostrar o mesmo conteúdo em diversos aparelhos

Cenário atual

Com a evolução dos dispositivos, a tendência atual é:

- Telas com maior dimensão e resolução

- Hardware dos aparelhos estão mais potentes

- Tags HTML5 com recursos de video

- Banda limitada

- Usuário deseja ver todo conteúdo/funcionalidades do site

Isso faz a gente seguir outra direção no desenvolvimento:

- Manter o mesmo conteúdo do site WEB

- Layout que se adapta no momento em que é visualizado

Solução: “Praticamente” mesmo site, usando Design Responsivo

Page 7: Sites Responsivos - Como mostrar o mesmo conteúdo em diversos aparelhos

Conceitos:

Fluído X

Adaptativo X

Responsivo

Nosso objetivo é acabar com a frase:

“Melhor visualizado em 1024px/768px”

Page 8: Sites Responsivos - Como mostrar o mesmo conteúdo em diversos aparelhos

Seu foco é na adaptação da estrutura.

Em outras palavras, uso de porcentagem nas medidas.

Site Fluído

http://matthewjamestaylor.com/

Page 9: Sites Responsivos - Como mostrar o mesmo conteúdo em diversos aparelhos

Seu foco é na adaptação da estrutura.

Em outras palavras, uso de porcentagem nas medidas.

Site Fluído

http://gmail.com/

780px 1600px

Page 10: Sites Responsivos - Como mostrar o mesmo conteúdo em diversos aparelhos

Site Adaptativo

Page 11: Sites Responsivos - Como mostrar o mesmo conteúdo em diversos aparelhos

Seu foco é específico na experiência do usuário.

Exemplo: Desenvolver dois sites dedicados, sendo um para cada aparelho

Site Adaptativo

Conteúdo é o mais importante

Apresentação visual

Scripts no lado do cliente

Melhoria progressiva:

Page 12: Sites Responsivos - Como mostrar o mesmo conteúdo em diversos aparelhos

É a combinação entre sites fluído + adaptativo.

Onde, existe somente uma única estrutura HTML (com navegação) seja onde ele

estiver sendo visualizado (telas grandes ou pequenas).

O uso de breakpoint é o diferencial e as adaptações serão baseadas no tamanho

da área disponível para mostrar o conteúdo, e não por tipo do dispositivo (celular,

tablet, desktop).

O cache é outra vantagem em relação ao Adaptativo.

Exemplos:

http://mediaqueri.es/

http://worldwildlife.org/

http://www.time.com/time/

Site Responsivo - (termo criado por Ethan Marcotte)

Page 13: Sites Responsivos - Como mostrar o mesmo conteúdo em diversos aparelhos

Site Responsivo - exemplos

Page 14: Sites Responsivos - Como mostrar o mesmo conteúdo em diversos aparelhos

Site Responsivo - exemplos

Page 15: Sites Responsivos - Como mostrar o mesmo conteúdo em diversos aparelhos

Site Responsivo - exemplos

Page 16: Sites Responsivos - Como mostrar o mesmo conteúdo em diversos aparelhos

<link rel="stylesheet" href="large.css"

media="only screen and (min-width:1024px)" />

<link rel="stylesheet" href="medium.css"

media="only screen and (min-width:641px) and (max-width:1024px)" />

<link rel="stylesheet" href="small.css"

media="only screen and (max-width:640px)" />

- Este código define os

Breakpoints usados no site

- MediaQueries é o “motor”

que checa qual breakpoint

executar.

- Os CSS são carregados de

acordo com o breakpoint

- É só CSS. Não tem nada

de JavaScript aqui

Site Responsivo - MediaQueries

Page 17: Sites Responsivos - Como mostrar o mesmo conteúdo em diversos aparelhos

<link rel="stylesheet" href="small.css" />

<link rel="stylesheet" href="medium.css"

media="only screen and (min-width:640px)" />

<link rel="stylesheet" href="large.css"

media="only screen and (min-width:1024px)" />

<link rel="stylesheet" href="televisao.css"

media="only screen and (min-width:1280px)" />

Site Responsivo - como reaproveitar código

MOBILE first (termo criado por Luke Wroblewski):

primeiro se desenvolve para telas menores (onde a complexidade dos elementos

são menores) e depois,

para as telas maiores (onde tem mais elementos com float, mais recursos visuais,

mais animações)

Page 18: Sites Responsivos - Como mostrar o mesmo conteúdo em diversos aparelhos

Site Responsivo – É somente a ponta do iceberg

Page 19: Sites Responsivos - Como mostrar o mesmo conteúdo em diversos aparelhos

Evitar carregamento extra

dos recursos (imagens, CSS, JS)

Site Responsivo – Carregamento condicional

Site responsivo != (desktop + mobile)

Page 20: Sites Responsivos - Como mostrar o mesmo conteúdo em diversos aparelhos

Enfim finalizamos a parte conceitual!

Está com dúvida?

Quer fazer algum comentário?

Page 21: Sites Responsivos - Como mostrar o mesmo conteúdo em diversos aparelhos

Estrutura

Flexível

Page 22: Sites Responsivos - Como mostrar o mesmo conteúdo em diversos aparelhos

Estrutura Flexível (porcentagem)

Fórmula mágica: elemento alvo / contexto = dimensão

Page 24: Sites Responsivos - Como mostrar o mesmo conteúdo em diversos aparelhos

Estrutura Flexível (CSS Grid) - exemplos

Page 25: Sites Responsivos - Como mostrar o mesmo conteúdo em diversos aparelhos

Estrutura Flexível (CSS Grid) - código

<div class="row">

<div class="small-2 large-4 columns">...</div>

<div class="small-4 large-4 columns">...</div>

<div class="small-6 large-4 columns">...</div>

</div>

Small:

Large:

Page 26: Sites Responsivos - Como mostrar o mesmo conteúdo em diversos aparelhos

Imagem e Vídeo

Responsivos

Não, não é isso

Page 27: Sites Responsivos - Como mostrar o mesmo conteúdo em diversos aparelhos

Imagens Flexíveis

Redimensionamento proporcional (automático)

Sugerido somente dentro dos limites do mesmo breakpoint

img {max-width:100%; height:auto;}

Page 28: Sites Responsivos - Como mostrar o mesmo conteúdo em diversos aparelhos

Imagens Flexíveis

Diferentes imagens (e tamanhos) para cada breakpoint:

Page 29: Sites Responsivos - Como mostrar o mesmo conteúdo em diversos aparelhos

Imagens Flexíveis

Sabe de naaada, inocente!

Page 30: Sites Responsivos - Como mostrar o mesmo conteúdo em diversos aparelhos

Imagens Flexíveis

Diferentes imagens (e tamanhos) para cada breakpoint:

Imagem vale mais que 1000 palavras, mas se não focarmos no

principal da imagem, o siginificado real da imagem desaparece.

Page 31: Sites Responsivos - Como mostrar o mesmo conteúdo em diversos aparelhos

Imagens Flexíveis

Diferentes imagens (e tamanhos) para cada breakpoint

• Imagens inseridas por nós

• Responsive-Images ou PictureFill

• Tem detector de devices que aceita imagens com alta definição

Page 32: Sites Responsivos - Como mostrar o mesmo conteúdo em diversos aparelhos

<picture width="500" height="500">

<source media="(min-width: 45em)" srcset="large-1.jpg 1x,

large-2.jpg 2x">

<source media="(min-width: 18em)" srcset="med-1.jpg 1x,

med-2.jpg 2x">

<source srcset="small-1.jpg 1x, small-2.jpg 2x">

<img src="small-1.jpg" alt="">

<p>Accessible text</p>

</picture>

Exemplo <picture>: proposta da W3C em aprovação

Imagens Flexíveis

Lembrando que em é uma unidade de medida e

que cada em representa 16px

Page 33: Sites Responsivos - Como mostrar o mesmo conteúdo em diversos aparelhos

Imagens Flexíveis

Redimensionamento proporcional (com foco)

- FocalPoint CSS para recortes inteligentes para imagens responsivas

Page 34: Sites Responsivos - Como mostrar o mesmo conteúdo em diversos aparelhos

Vídeos Flexíveis

FitVids.js atualmente suporta os players:

YouTube, Vimeo, Blip.tv e Viddler

Existe uma opção para usar um player próprio

customizado também.

https://github.com/davatron5000/FitVids.js

Page 35: Sites Responsivos - Como mostrar o mesmo conteúdo em diversos aparelhos

Texto

Flexível

Page 36: Sites Responsivos - Como mostrar o mesmo conteúdo em diversos aparelhos

Texto Flexível - em e rem

Fórmula mágica: elemento alvo / contexto = tamanho

Site muito útil para conversão: http://pxtoem.com/

Normal =30px e Negrito =40px

HTML = <h1>Título desse slide <strong>Incrível</strong></h1>

Certo .. mas e esse tal de REM? Como funciona?

Page 37: Sites Responsivos - Como mostrar o mesmo conteúdo em diversos aparelhos

"Imagens" Flexíveis - Títulos destacados e ícones

Não transforme títulos com fonts diferentes em imagens

plugins úteis: Lettering.js + Kern.js

Técnica de sprites = dimensão fixa

Page 38: Sites Responsivos - Como mostrar o mesmo conteúdo em diversos aparelhos

Links

Interessantes

Page 39: Sites Responsivos - Como mostrar o mesmo conteúdo em diversos aparelhos

Links Interessantes – para referências futuras

Referências em português

http://sergiolopes.org/diretorio-design-responsivo/

http://www.caelum.com.br/apostila-html-css-javascript/

Livros português:

http://www.casadocodigo.com.br/products/livro-web-design-responsivo

http://www.casadocodigo.com.br/products/livro-web-mobile

Referências em inglês

http://bradfrost.github.io/this-is-responsive/patterns.html

http://bradfrost.github.io/this-is-responsive/resources.html

http://www.scoop.it/t/gonzodesign

Livros inglês:

http://goo.gl/bcUzfm meu livro

http://www.implementingresponsivedesign.com/

Page 40: Sites Responsivos - Como mostrar o mesmo conteúdo em diversos aparelhos

Vamos às perguntas!

Conte também um pouco de sua

experiência nisso, alguma façanha ou

até mesmo improvisação que

desenvolveu

Page 41: Sites Responsivos - Como mostrar o mesmo conteúdo em diversos aparelhos

Obrigado!

Dúvidas posteriores:

http:// www.gilcrespo.com