26
Buscar home o bbburp! artigos categorias dê um alô! O Cenário do Web Design Responsivo Site responsivo é muito mais que media queries, breakpoints e redimensionamento de imagens. Na Smashing Magazine, Stéphanie Walter mostra o que é, o que será possível, e o que precisa ser melhorado no RWD. DESENVOLVIMENTO DESIGN EXPERIÊNCIA DO USUÁRIO MOBILE 02 jul Publicado em 02 Julho 2013 O Web design responsivo está por aí há alguns anos, e foi destaque em 2012. Muitas estrelas da web, como Brad Frost e Luke Wroblewski, possuem vasta experiência neste tema e têm nos ajudado a fazer grandes melhorias. Mesmo assim, ainda há muito a ser feito . Neste artigo, vamos ver o que já é possível fazer hoje, o que será possível no futuro - usando propriedades ainda não padronizadas (como CSS nível 4 e API's do HTML5) - e o que ainda precisa ser melhorado. Este não é um artigo tão completo, por isso não entraremos a fundo em cada técnica, entretanto, você terá links e referências para explorar por conta própria. O CENÁRIO DAS IMAGENS NO WEB DESIGN RESPONSIVO Há um aspecto melhor para começar a falar no web design responsivo que não seja imagens? Este até agora tem sido o tópico principal. E fica cada vez mais importante com a chegada das telas de alta densidade. E quando digo alta densidade, quero dizer telas com uma proporção de pixel maior que 2; esses dispositivos são chamados pela Apple de tela retina, e pelo Google de XHDPI. No web design responsivo, as imagens vem relacionadas a dois grandes desafios: cadastre seu e-mail... cadastre Newsletters Acompanhe o bbburp! e receba notificações dos novos posts por email! @bbburp "Sendo Criativo com Usabilidade". Artigo da @ DesignerDepot traduzido no @ bbburp http://t.co/TnT9D9YsQP 3 days ago Bbburp Curtir 275 pessoas curtiram Bbburp. 6 17 6 17 Seguir Seguir

Web Design Responsivo

Embed Size (px)

Citation preview

Page 1: Web Design Responsivo

Buscar

home

home

o bbburp!

o bbburp!

artigos

artigos

categorias

categorias

dê um alô!

dê um alô!

O Cenário do Web

O Cenário do Web

Design Responsivo

Design Responsivo

Site responsivo é muito mais que media queries,

Site responsivo é muito mais que media queries,

breakpoints e redimensionamento de imagens. Na

breakpoints e redimensionamento de imagens. Na

Smashing Magazine, Stéphanie Walter mostra o

Smashing Magazine, Stéphanie Walter mostra o

que é, o que será possível, e o que precisa ser

que é, o que será possível, e o que precisa ser

melhorado no RWD.

melhorado no RWD.

DESENVOLVIMENTO

DESENVOLVIMENTO

DESIGN

DESIGN

EXPERIÊNCIA DO USUÁRIO

EXPERIÊNCIA DO USUÁRIO

MOBILE

MOBILE

02

02

jul

jul

Publicado em 02 Julho 2013

Publicado em 02 Julho 2013

O Web design responsivo está por aí há alguns anos, e foi destaque

O Web design responsivo está por aí há alguns anos, e foi destaque

em 2012. Muitas estrelas da web, como Brad Frost e Luke Wroblewski,

em 2012. Muitas estrelas da web, como Brad Frost e Luke Wroblewski,

possuem vasta experiência neste tema e têm nos ajudado a fazer

possuem vasta experiência neste tema e têm nos ajudado a fazer

grandes melhorias.

grandes melhorias.

Mesmo assim, ainda há muito a ser feito

Mesmo assim, ainda há muito a ser feito

.

.

Neste artigo, vamos ver o que já é possível fazer hoje, o que será

Neste artigo, vamos ver o que já é possível fazer hoje, o que será

possível no futuro - usando propriedades ainda não padronizadas

possível no futuro - usando propriedades ainda não padronizadas

(como CSS nível 4 e API's do HTML5) - e o que ainda precisa ser

(como CSS nível 4 e API's do HTML5) - e o que ainda precisa ser

melhorado. Este não é um artigo tão completo, por isso não

melhorado. Este não é um artigo tão completo, por isso não

entraremos a fundo em cada técnica, entretanto, você terá links e

entraremos a fundo em cada técnica, entretanto, você terá links e

referências para explorar por conta própria.

referências para explorar por conta própria.

O CENÁRIO DAS IMAGENS NO WEB DESIGN RESPONSIVO

O CENÁRIO DAS IMAGENS NO WEB DESIGN RESPONSIVO

Há um aspecto melhor para começar a falar no web design responsivo

Há um aspecto melhor para começar a falar no web design responsivo

que não seja imagens? Este até agora tem sido o tópico principal. E

que não seja imagens? Este até agora tem sido o tópico principal. E

fica cada vez mais importante com a chegada das telas de alta

fica cada vez mais importante com a chegada das telas de alta

densidade. E quando digo alta densidade, quero dizer telas com uma

densidade. E quando digo alta densidade, quero dizer telas com uma

proporção de pixel maior que 2; esses dispositivos são chamados pela

proporção de pixel maior que 2; esses dispositivos são chamados pela

Apple de tela retina, e pelo Google de XHDPI. No web design

Apple de tela retina, e pelo Google de XHDPI. No web design

responsivo, as imagens vem relacionadas a dois grandes desafios:

responsivo, as imagens vem relacionadas a dois grandes desafios:

cadastre seu e-mail... cadastre

Newsletters

Newsletters

Acompanhe o bbburp! e receba

Acompanhe o bbburp! e receba

notificações dos novos posts por

notificações dos novos posts por

email!

email!

@bbburp

@bbburp

"Sendo Criativo com Usabilidade". Artigo

"Sendo Criativo com Usabilidade". Artigo

da @

da @

DesignerDepot

DesignerDepot

traduzido no

traduzido no

@

@

bbburp

bbburp

http://t.co/TnT9D9YsQP

http://t.co/TnT9D9YsQP

3 days ago

3 days ago

Bbburp

Curtir

275 pessoas curtiram Bbburp.

6

6

17

17

6

6

17

17

SeguirSeguir

Page 2: Web Design Responsivo

tamanho e desempenho.

tamanho e desempenho.

A maioria dos designers buscam a perfeição no pixel, porém imagens

A maioria dos designers buscam a perfeição no pixel, porém imagens

de tamanho "normal" em dispositivos de alta densidade aparecem

de tamanho "normal" em dispositivos de alta densidade aparecem

pixeladas e borradas. Servir imagens com o dobro do tamanho a esses

pixeladas e borradas. Servir imagens com o dobro do tamanho a esses

dispositivos parece ser tentador não é mesmo? No entanto, isso pode

dispositivos parece ser tentador não é mesmo? No entanto, isso pode

criar um problema de performance, pois imagens com o dobro do

criar um problema de performance, pois imagens com o dobro do

tamanho levam mais tempo para carregar, e usuários de dispositivos

tamanho levam mais tempo para carregar, e usuários de dispositivos

com alta densidade de pixels nem sempre tem a largura de banda

com alta densidade de pixels nem sempre tem a largura de banda

necessária para fazer o download dessas imagens. Além disso,

necessária para fazer o download dessas imagens. Além disso,

dependendo do país em que o usuário vive, esta largura de banda

dependendo do país em que o usuário vive, esta largura de banda

pode ser bem cara.

pode ser bem cara.

O segundo problema afeta dispositivos menores: Por que um

O segundo problema afeta dispositivos menores: Por que um

dispositivo teria que fazer o download de uma imagem de 700 pixels

dispositivo teria que fazer o download de uma imagem de 700 pixels

quando ele só necessita de uma de 300? Teríamos uma maneira de

quando ele só necessita de uma de 300? Teríamos uma maneira de

"cropar" essas imagens para que usuários de dispositivos menores

"cropar" essas imagens para que usuários de dispositivos menores

possam focar no que realmente importa a eles?

possam focar no que realmente importa a eles?

Duas soluções de marcação: O elemento <picture> e o atributo

Duas soluções de marcação: O elemento <picture> e o atributo

srcset

srcset

O primeiro passo para resolver o desafio de imagens responsivas é

O primeiro passo para resolver o desafio de imagens responsivas é

mudar a marcação das imagens embutidas em uma página HTML.

mudar a marcação das imagens embutidas em uma página HTML.

O

O

"Responsive Images Community Group"

"Responsive Images Community Group"

apoia a proposta de um

apoia a proposta de um

elemento novo e mais flexível, o elemento

elemento novo e mais flexível, o elemento

picture

picture

. O conceito é usar

. O conceito é usar

as já tão conhecidas media queries para

as já tão conhecidas media queries para

servir imagens diferentes a

servir imagens diferentes a

diferentes dispositivos

diferentes dispositivos

. Assim, dispositivos menores receberiam

. Assim, dispositivos menores receberiam

imagens menores. Funciona um pouco como a marcação para vídeo,

imagens menores. Funciona um pouco como a marcação para vídeo,

mas com imagens diferentes sendo refenciadas no elemento de

mas com imagens diferentes sendo refenciadas no elemento de

origem.

origem.

O código na especificação proposta fica da seguinte forma:

O código na especificação proposta fica da seguinte forma:

11. .

<picture

<picture

width

width

=

=

"500"

"500"

height

height

=

=

"500"

"500"

>

>

22. .

<

<

source

source

media

media

=

=

"(min-width: 45em)"

"(min-width: 45em)"

src

src

=

=

"large.jpg"

"large.jpg"

>

>

33. .

<

<

source

source

media

media

=

=

"(min-width: 18em)"

"(min-width: 18em)"

src

src

=

=

"med.jpg"

"med.jpg"

>

>

44. .

<

<

source

source

src

src

=

=

"small.jpg"

"small.jpg"

>

>

55. .

<

<

img

img

src

src

=

=

"small.jpg"

"small.jpg"

alt

alt

=

=

""

""

>

>

66. .

<

<

p

p

>

>

Accessible text

Accessible text

<

<

/

/

p

p

>

>

77. .

<

<

/

/

picture>

picture>

Se oferecer fontes diferentes para imagens é possível, poderíamos

Se oferecer fontes diferentes para imagens é possível, poderíamos

também imaginar o fornecimento de imagens com

também imaginar o fornecimento de imagens com

recortes diferentes

recortes diferentes

e focar naquilo que realmente importa aos dispositivos menores. O

e focar naquilo que realmente importa aos dispositivos menores. O

tópico

tópico

"Art Direction"

"Art Direction"

da W3C mostra um belo exemplo do que

da W3C mostra um belo exemplo do que

poderia ser feito.

poderia ser feito.

(Imagem:

(Imagem:

Egor Pasko

Egor Pasko

)

)

A solução vem sendo discutida pelo

A solução vem sendo discutida pelo

W3C Responsive Images

W3C Responsive Images

Community Group

Community Group

mas, até onde sabemos, ainda não é utilizável por

mas, até onde sabemos, ainda não é utilizável por

RT @

RT @

tableless

tableless

: Padrões Complexos de

: Padrões Complexos de

Navegação no Design Responsivo

Navegação no Design Responsivo

http://t.co/wWR8MmRClw

http://t.co/wWR8MmRClw

Uma

Uma

tradução do @

tradução do @

bbburp

bbburp

para o Tableless.

para o Tableless.

4 days ago

4 days ago

RT @

RT @

tableless

tableless

: Survey do Tableless - A

: Survey do Tableless - A

pesquisa dos desenvolvedores web para

pesquisa dos desenvolvedores web para

conhecermos melhor nosso mercado!

conhecermos melhor nosso mercado!

DIVULGUE!

DIVULGUE!

http://t.co/ZfN2aI…

http://t.co/ZfN2aI…

4 days ago

4 days ago

+ Categorias

+ Categorias

escolha uma categoria...

Nós adoramos!

Nós adoramos!

A List Apart

A List Apart

Behance

Behance

Brad Frost

Brad Frost

Dribbble

Dribbble

Mailchimp

Mailchimp

Smashing Magazine

Smashing Magazine

Tableless

Tableless

Tuts+Hub

Tuts+Hub

Web Designer Depot

Web Designer Depot

Page 3: Web Design Responsivo

nenhum browser. Um polyfill chamado

nenhum browser. Um polyfill chamado

Picturefill

Picturefill

está disponível, e faz

está disponível, e faz

praticamente a mesma coisa. Utiliza uma div e um atributo na sintaxe

praticamente a mesma coisa. Utiliza uma div e um atributo na sintaxe

por questões de segurança.

por questões de segurança.

A segunda proposta para a marcação de imagens responsivas foi feita

A segunda proposta para a marcação de imagens responsivas foi feita

pela Apple para a W3C e é chamada de "atributo srcset"; Ela é

pela Apple para a W3C e é chamada de "atributo srcset"; Ela é

equivalente ao image-set() (propriedade CSS nível 4). A proposta deste

equivalente ao image-set() (propriedade CSS nível 4). A proposta deste

atributo é forçar os navegadores a selecionar um recurso apropriado

atributo é forçar os navegadores a selecionar um recurso apropriado

do set, ao invés de baixar o conjunto.

do set, ao invés de baixar o conjunto.

A sintaxe HTML para esta proposta se baseia na própria tag

A sintaxe HTML para esta proposta se baseia na própria tag

img

img

, e o

, e o

exemplo na especificação fica desta forma:

exemplo na especificação fica desta forma:

11. .

<

<

img

img

alt

alt

=

=

"The Breakfast Combo"

"The Breakfast Combo"

22. .

src

src

=

=

"banner.jpeg"

"banner.jpeg"

33. .

srcset

srcset

=

=

"banner-HD.jpeg 2x,

"banner-HD.jpeg 2x,

44. .

banner-phone.jpeg 100w,

banner-phone.jpeg 100w,

55. .

banner-phone-HD.jpeg 100w 2x"

banner-phone-HD.jpeg 100w 2x"

>

>

Como você pode ver a

Como você pode ver a

sintaxe não é não é tão intuitiva

sintaxe não é não é tão intuitiva

. Os valores da

. Os valores da

tag consistem em uma string separada por vírgulas. Os valores do

tag consistem em uma string separada por vírgulas. Os valores do

atributo são os nomes ou URL's de várias imagens, a densidade de

atributo são os nomes ou URL's de várias imagens, a densidade de

pixels do dispositivo e o tamanho máximo da viewport a que se

pixels do dispositivo e o tamanho máximo da viewport a que se

destina.

destina.

Numa linguagem clara, o que o trecho acima diz é:

Numa linguagem clara, o que o trecho acima diz é:

A imagem padrão é

A imagem padrão é

banner.jpeg

banner.jpeg

.

.

O dispositivo que tiver um pixel ratio maior do que 2 deve usar

O dispositivo que tiver um pixel ratio maior do que 2 deve usar

o

o

banner-HD.jpeg

banner-HD.jpeg

.

.

Dispositivos com um tamanho máximo da viewport de

Dispositivos com um tamanho máximo da viewport de

100w

100w

deve utilizar o

deve utilizar o

banner-phone.jpeg

banner-phone.jpeg

.

.

Dispositivos com um tamanho máximo da viewport de

Dispositivos com um tamanho máximo da viewport de

100w

100w

e

e

um pixel ratio maior que 2 devem utilizar o

um pixel ratio maior que 2 devem utilizar o

banner-phone-

banner-phone-

Page 4: Web Design Responsivo

HD.jpeg

HD.jpeg

.

.

Caso o atributo

Caso o atributo

srcset

srcset

não seja suportado, a primeira fonte é a imagem

não seja suportado, a primeira fonte é a imagem

padrão. O sufixo

padrão. O sufixo

2x

2x

para o

para o

banner-HD.jpeg

banner-HD.jpeg

significa que esta imagem

significa que esta imagem

em particular deveria ser usada para dispositivos com um pixel ratio

em particular deveria ser usada para dispositivos com um pixel ratio

maior que 2, e o

maior que 2, e o

100w

100w

no

no

banner-phone.jpeg

banner-phone.jpeg

representa o tamanho

representa o tamanho

mínimo da viewport em que esta imagem deve ser utilizada.

mínimo da viewport em que esta imagem deve ser utilizada.

Devido a

Devido a

sua complexidade

sua complexidade

, a sintaxe do atributo srcset ainda não foi

, a sintaxe do atributo srcset ainda não foi

implementada nos navegadores.

implementada nos navegadores.

A sintaxe da propriedade CSS

A sintaxe da propriedade CSS

image-set()

image-set()

funciona praticamente da

funciona praticamente da

mesma forma e permite que você carregue uma determinada imagem

mesma forma e permite que você carregue uma determinada imagem

de background tendo como base a resolução da tela:

de background tendo como base a resolução da tela:

1.

background-image

background-image

:

:

image-set

image-set

(

(

"foo.png"

"foo.png"

1x

1x

,

,

2.

"foo-2x.png"

"foo-2x.png"

2x

2x

,

,

3.

"foo-print.png"

"foo-print.png"

600dpi

600dpi

)

)

;

;

Esta proposta ainda esta em fase de projeto na W3C, e por enquanto

Esta proposta ainda esta em fase de projeto na W3C, e por enquanto

funciona no Safari (6+) e no Chrome (21+).

funciona no Safari (6+) e no Chrome (21+).

Formatos de Imagem, Compressão e SVG: A mudança de como

Formatos de Imagem, Compressão e SVG: A mudança de como

trabalhamos com imagens na web.

trabalhamos com imagens na web.

Como podem ver, as tentativas em encontrar um novo formato de

Como podem ver, as tentativas em encontrar um novo formato de

marcação para imagens ainda são altamente experiementais.Isto por si

marcação para imagens ainda são altamente experiementais.Isto por si

só levantou uma questão sobre formatos de imagens. Podemos

só levantou uma questão sobre formatos de imagens. Podemos

conceber uma solução responsiva para mudar a forma como lidamos

conceber uma solução responsiva para mudar a forma como lidamos

com eles?

com eles?

O primeiro passo seria buscar formatos alternativos de imagens que

O primeiro passo seria buscar formatos alternativos de imagens que

tenham uma melhor taxa de compressão. O Google, por exemplo,

tenham uma melhor taxa de compressão. O Google, por exemplo,

desenvolveu um

desenvolveu um

novo formato de imagem

novo formato de imagem

chamado

chamado

WebP

WebP

, o qual é

, o qual é

26% menor que o PNG e 25 a 34% menor que o JPEG. O formato é

26% menor que o PNG e 25 a 34% menor que o JPEG. O formato é

suportado pelo Chrome, Opera, Yandex, Android e Safari, e pode ser

suportado pelo Chrome, Opera, Yandex, Android e Safari, e pode ser

ativado no Internet Explorer usando o

ativado no Internet Explorer usando o

Google Chrome Frameplugin

Google Chrome Frameplugin

.

.

O problema principal deste formato é que o firefox não tem planos de

O problema principal deste formato é que o firefox não tem planos de

implementá-lo. Sabendo disto, por enquanto, o seu uso generalizado

implementá-lo. Sabendo disto, por enquanto, o seu uso generalizado

é improvável.

é improvável.

Outra ideia que está ganhando popularidade são as

Outra ideia que está ganhando popularidade são as

imagens JPEG

imagens JPEG

progressivas

progressivas

. Estas imagens são, como o nome sugere,

. Estas imagens são, como o nome sugere,

progressivamente renderizadas. A primeira renderização é embaçada,

progressivamente renderizadas. A primeira renderização é embaçada,

então a imagem vai progressivamente ganhando nitidez. Já as imagens

então a imagem vai progressivamente ganhando nitidez. Já as imagens

JPEG não-progressivas são renderizadas de cima pra baixo. Em seu

JPEG não-progressivas são renderizadas de cima pra baixo. Em seu

artigo

artigo

"JPEG's progressivos: Uma nova boa prática"

"JPEG's progressivos: Uma nova boa prática"

, Ann Robson

, Ann Robson

afirma que o JPEG progressivo aparenta ser mais veloz que o JPEG

afirma que o JPEG progressivo aparenta ser mais veloz que o JPEG

baseline. Um JPEG progressivo dá ao usuário uma impressão geral

baseline. Um JPEG progressivo dá ao usuário uma impressão geral

sobre a imagem antes mesmo de ela ser totalmente carregada, o que

sobre a imagem antes mesmo de ela ser totalmente carregada, o que

beneficia a experiência do usuário.

beneficia a experiência do usuário.

Page 5: Web Design Responsivo

Uma outra solução aos problemas de performance e tamanho de

Uma outra solução aos problemas de performance e tamanho de

imagem está em

imagem está em

alterar a taxa de compressão das imagens

alterar a taxa de compressão das imagens

. Durante

. Durante

muito tempo, pensamos que o alargamento da taxa de compressão de

muito tempo, pensamos que o alargamento da taxa de compressão de

uma imagem prejudicaria a sua qualidade. Entretanto, Daan Jobsis fez

uma imagem prejudicaria a sua qualidade. Entretanto, Daan Jobsis fez

uma extensa pesquisa sobre o assunto e escreveu um artigo a respeito

uma extensa pesquisa sobre o assunto e escreveu um artigo a respeito

chamado

chamado

"Retina Revolution"

"Retina Revolution"

. Em seus experimentos, ele testou

. Em seus experimentos, ele testou

diferentes tamanhos de imagens e taxas de compressão, o que gerou

diferentes tamanhos de imagens e taxas de compressão, o que gerou

uma solução muito interessante. Se você dobrar o tamanho de uma

uma solução muito interessante. Se você dobrar o tamanho de uma

imagem, mas também usar uma taxa de compressão mais alta, a

imagem, mas também usar uma taxa de compressão mais alta, a

imagem terá um arquivo com um tamanho menor que o original, mas

imagem terá um arquivo com um tamanho menor que o original, mas

ainda serão nítidas em telas normais e de alta densidade. Com esta

ainda serão nítidas em telas normais e de alta densidade. Com esta

técnica, Jobsis reduziu em 75% o peso da imagem.

técnica, Jobsis reduziu em 75% o peso da imagem.

*Demonstração de compressão de imagens por Daan Jobsis.

*Demonstração de compressão de imagens por Daan Jobsis.

Dadas as dores de cabeça das imagens responsivas, a ideia de ganhar

Dadas as dores de cabeça das imagens responsivas, a ideia de ganhar

a independência do pixel a partir de imagens, sempre que possível,

a independência do pixel a partir de imagens, sempre que possível,

está seduzindo cada vez mais designers e desenvolvedores. O formato

está seduzindo cada vez mais designers e desenvolvedores. O formato

SVG, por exemplo, pode ser usado para criar todos os elementos da

SVG, por exemplo, pode ser usado para criar todos os elementos da

interface de um website

interface de um website

independente da resolução

independente da resolução

. Os elementos

. Os elementos

serão dimensionados para dispositivos menores e não ficarão

serão dimensionados para dispositivos menores e não ficarão

pixelados nos dispositivos de alta densidade de pixels.

pixelados nos dispositivos de alta densidade de pixels.

Font icons

Font icons

são

são

outra tendência crescente. Eles envolvem o uso de uma fonte, onde

outra tendência crescente. Eles envolvem o uso de uma fonte, onde

os caracteres alfanuméricos são substituídos por ícones glifos, dando

os caracteres alfanuméricos são substituídos por ícones glifos, dando

a flexibilidade que uma fonte oferece. Infelizmente, esta solução ainda

a flexibilidade que uma fonte oferece. Infelizmente, esta solução ainda

não funciona com imagens, o que faz com que seja ansiosamente

não funciona com imagens, o que faz com que seja ansiosamente

esperado uma marcação ou formato de imagem viável.

esperado uma marcação ou formato de imagem viável.

O DESAFIO DO LAYOUT RESPONSIVO: REORGANIZAR E

O DESAFIO DO LAYOUT RESPONSIVO: REORGANIZAR E

TRABALHAR O CONTEÚDO SEM TOCAR NO HTML?

TRABALHAR O CONTEÚDO SEM TOCAR NO HTML?

Sejamos realistas, os grids fluidos usados atualmente, produzidos com

Sejamos realistas, os grids fluidos usados atualmente, produzidos com

floats e blocos inline, são um pobre improviso aguardando uma

floats e blocos inline, são um pobre improviso aguardando uma

solução melhor. Trabalhar com o layout e rearranjar blocos numa

solução melhor. Trabalhar com o layout e rearranjar blocos numa

página mobile sem recorrer ao JavaScript hoje em dia é um pesadelo,

página mobile sem recorrer ao JavaScript hoje em dia é um pesadelo,

e não é nem um pouco flexível. Isto é algo crucial a websites criados

e não é nem um pouco flexível. Isto é algo crucial a websites criados

com CMS, onde o designer não pode alterar o HTML de cada página

com CMS, onde o designer não pode alterar o HTML de cada página

ou versão do site.

ou versão do site.

E aí, como isto pode ser melhorado?

E aí, como isto pode ser melhorado?

Page 6: Web Design Responsivo

Quatro Soluções com CSS3 que abordam o problema do Layout

Quatro Soluções com CSS3 que abordam o problema do Layout

Flexível

Flexível

A solução mais óbvia possível é o

A solução mais óbvia possível é o

modelo de box flexível do CSS3

modelo de box flexível do CSS3

(ou

(ou

flexbox

flexbox

). Seu status atual é a de "candidato a recomendação" na W3C,

). Seu status atual é a de "candidato a recomendação" na W3C,

e é suportado pela

e é suportado pela

maioria dos browsers mobile e desktop

maioria dos browsers mobile e desktop

(no IE

(no IE

começou na versão 10). O model permite reorganizar facilmente os

começou na versão 10). O model permite reorganizar facilmente os

elementos na tela, independente do HTML. Você também pode alterar

elementos na tela, independente do HTML. Você também pode alterar

o fluxo e a orientação do box, distribuir o espaço e alinhá-lo de

o fluxo e a orientação do box, distribuir o espaço e alinhá-lo de

acordo com o contexto. Abaixo um exemplo de layout que poderia

acordo com o contexto. Abaixo um exemplo de layout que poderia

ser reorganizado para mobile. A sintaxe ficaria assim:

ser reorganizado para mobile. A sintaxe ficaria assim:

11. .

.parent

.parent

{

{

22. .

display

display

:

:

flex

flex

;

;

33. .

flex-flow

flex-flow

:

:

column

column

;

;

/* exibe itens na coluna */

/* exibe itens na coluna */

44. .

}

}

55. .

66. .

.children

.children

{

{

77. .

order

order

:

:

1

1

;

;

/* muda a ordem dos elementos */

/* muda a ordem dos elementos */

88. .

}

}

O artigo

O artigo

"CSS3 Flexible Box Layout Explained"

"CSS3 Flexible Box Layout Explained"

dará a você uma

dará a você uma

compreensão mais profunda de como o flexbox funciona. (nota do

compreensão mais profunda de como o flexbox funciona. (nota do

tradutor: o bbburp traduziu um

tradutor: o bbburp traduziu um

excelente artigo sobre flexbox

excelente artigo sobre flexbox

)

)

Outra solução bastante próxima do conceito flexbox de reordenação

Outra solução bastante próxima do conceito flexbox de reordenação

de blocos na página, porém com JavaScript, é o

de blocos na página, porém com JavaScript, é o

Relocate

Relocate

.

.

Um segundo tipo de layout, que hoje em dia é bastante utilizado no

Um segundo tipo de layout, que hoje em dia é bastante utilizado no

design responsivo, é o

design responsivo, é o

layout multiple-column do CSS3

layout multiple-column do CSS3

. O módulo

. O módulo

está no estágio de "candidato a recomendação" na W3C, e

está no estágio de "candidato a recomendação" na W3C, e

funciona

funciona

muito bem na maioria dos browsers

muito bem na maioria dos browsers

(aguardado para IE9 e abaixo). A

(aguardado para IE9 e abaixo). A

principal vantagem deste model é que o conteúdo pode fluir de uma

principal vantagem deste model é que o conteúdo pode fluir de uma

coluna a outra, proporcionando um ganho enorme na flexibilidade. No

coluna a outra, proporcionando um ganho enorme na flexibilidade. No

que diz respeito a responsividade, o número de colunas pode ser

que diz respeito a responsividade, o número de colunas pode ser

alterado de acordo com o tamanho da viewport.

alterado de acordo com o tamanho da viewport.

É possível apenas ajustar o tamanho das colunas e deixar com que o

É possível apenas ajustar o tamanho das colunas e deixar com que o

browser calcule o seu número de acordo com o espaço disponível.

browser calcule o seu número de acordo com o espaço disponível.

Também é possível ajustar o número de colunas, com gaps e regras

Também é possível ajustar o número de colunas, com gaps e regras

entre elas, e deixar que o browser calcule a sua largura.

entre elas, e deixar que o browser calcule a sua largura.

Page 7: Web Design Responsivo

A sintaxe se parece com isto:

A sintaxe se parece com isto:

1.

.container

.container

{

{

2.

column-

column-

width

width

:

:

10em

10em

;

;

3.

/* O browser vai criar uma coluna de 10em.

/* O browser vai criar uma coluna de 10em.

4.

O número de colunas vai depender dos espaço disponível */

O número de colunas vai depender dos espaço disponível */

5.

}

}

6.

7.

.container

.container

{

{

8.

columns

columns

:

:

5

5

;

;

9.

/* O browser vai criar 5 colunas.

/* O browser vai criar 5 colunas.

10.

O tamanho das colunas vai depender do espaço disponível. */

O tamanho das colunas vai depender do espaço disponível. */

11.

column-gap

column-gap

:

:

2em

2em

;

;

12.

}

}

Para aprender mais, leia o artigo de David Walsh:

Para aprender mais, leia o artigo de David Walsh:

“CSS Columns”

“CSS Columns”

.

.

Uma terceira propriedade CSS3 que pode ganhar mais atenção no

Uma terceira propriedade CSS3 que pode ganhar mais atenção no

futuro é a

futuro é a

CSS3 grid layout

CSS3 grid layout

. Esta propriedade dá a designers e

. Esta propriedade dá a designers e

desenvolvedores um

desenvolvedores um

grid flexível

grid flexível

, onde eles podem trabalhar com na

, onde eles podem trabalhar com na

criação de layouts diferentes. Ela permite que os elementos de

criação de layouts diferentes. Ela permite que os elementos de

conteúdo sejam exibidos nas linhas e colunas sem uma estrutura

conteúdo sejam exibidos nas linhas e colunas sem uma estrutura

definida. Primeiro você deve declarar um grid no container, e então

definida. Primeiro você deve declarar um grid no container, e então

colocar todos os elementos filhos neste grid virtual. Você pode, então,

colocar todos os elementos filhos neste grid virtual. Você pode, então,

definir um grid diferente para dispositivos menores ou alterar a

definir um grid diferente para dispositivos menores ou alterar a

posição dos elementos no grid. Isto gera uma enorme flexibilidade

posição dos elementos no grid. Isto gera uma enorme flexibilidade

quando usado com media queries, em mudanças de orientação, etc.

quando usado com media queries, em mudanças de orientação, etc.

A sintaxe para esta propriedade é assim (projeto de trabalho no W3C -

A sintaxe para esta propriedade é assim (projeto de trabalho no W3C -

working draft - a partir de 2 de abril de 2013):

working draft - a partir de 2 de abril de 2013):

11. .

.parent

.parent

{

{

22. .

display

display

:

:

grid

grid

;

;

/* declare o grid */

/* declare o grid */

33. .

grid-definition-columns

grid-definition-columns

:

:

1stgridsize 2ndgridsize …

1stgridsize 2ndgridsize …

;

;

44. .

grid-definition-rows

grid-definition-rows

:

:

1strowsize 2ndrowsize …

1strowsize 2ndrowsize …

;

;

55. .

}

}

66. .

77. .

.element

.element

{

{

88. .

grid-column

grid-column

:

:

1

1

;

;

99. .

grid-row

grid-row

:

:

1

1

;

;

1010. .

}

}

1111. .

1212. .

.element2

.element2

{

{

1313. .

grid-column

grid-column

:

:

1

1

;

;

1414. .

grid-row

grid-row

:

:

3

3

;

;

1515. .

}

}

Page 8: Web Design Responsivo

Para definir o tamanho das linhas e colunas você pode usar diversas

Para definir o tamanho das linhas e colunas você pode usar diversas

unidades, conforme

unidades, conforme

detalhado na especificação

detalhado na especificação

. Para posicionar os

. Para posicionar os

elementos, a especificação diz o seguinte: "Cada parte está

elementos, a especificação diz o seguinte: "Cada parte está

posicionada entre as linhas do grid, fazendo referência a linha de grid

posicionada entre as linhas do grid, fazendo referência a linha de grid

inicial e então especificando, se houver mais de uma, o número de

inicial e então especificando, se houver mais de uma, o número de

linhas ou colunas distribuídas para determinar a linha de grid final,

linhas ou colunas distribuídas para determinar a linha de grid final,

delimitando a área do layout".

delimitando a área do layout".

O maior problema com esta propriedade é que é

O maior problema com esta propriedade é que é

suportada apenas

suportada apenas

pelo IE10

pelo IE10

. Para aprender mais sobre este layout, leia o artigo "

. Para aprender mais sobre este layout, leia o artigo "

Giving

Giving

Content Priority With CSS3 Grid Layout

Content Priority With CSS3 Grid Layout

" de Rachel Andrew. Além

" de Rachel Andrew. Além

disso, note que a especificação e a sintaxe para grid layouts com CSS

disso, note que a especificação e a sintaxe para grid layouts com CSS

foi alterada no dia 2 de abril de 2013. Andrew escreveu uma

foi alterada no dia 2 de abril de 2013. Andrew escreveu uma

atualização sobre a sintaxe, a qual foi intitulada de

atualização sobre a sintaxe, a qual foi intitulada de

"CSS Grid Layout:

"CSS Grid Layout:

What Has Changed?"

What Has Changed?"

(CSS Grid Layout: O que mudou?).

(CSS Grid Layout: O que mudou?).

O último layout, que pode tornar-se bastante útil no futuro se

O último layout, que pode tornar-se bastante útil no futuro se

implementado nos browsers, é o

implementado nos browsers, é o

CSS3 template layout

CSS3 template layout

. Este módulo

. Este módulo

CSS3 funciona associando um elemento ao "nome" do layout, e em

CSS3 funciona associando um elemento ao "nome" do layout, e em

seguida ordenando os elementos num grid invisível. O grid pode ser

seguida ordenando os elementos num grid invisível. O grid pode ser

fixo ou flexível, e pode ser alterado de acordo com o tamanho da

fixo ou flexível, e pode ser alterado de acordo com o tamanho da

viewport.

viewport.

A sintaxe fica assim:

A sintaxe fica assim:

11. .

.parent

.parent

{

{

22. .

display

display

:

:

"ab"

"ab"

33. .

"cd"

"cd"

;

;

/* criando um grid invisível */

/* criando um grid invisível */

44. .

}

}

55. .

66. .

.child1

.child1

{

{

77. .

position

position

:

:

a

a

;

;

88. .

}

}

99. .

1010. .

.child2

.child2

{

{

1111. .

position

position

:

:

b

b

;

;

1212. .

}

}

1313. .

1414. .

.child3

.child3

{

{

1515. .

position

position

:

:

c

c

;

;

1616. .

}

}

1717. .

1818. .

.child4

.child4

{

{

1919. .

position

position

:

:

d

d

;

;

2020. .

}

}

E é renderizado assim:

E é renderizado assim:

Infelizmente, o suporte a navegadores para este módulo é

Infelizmente, o suporte a navegadores para este módulo é

praticamente nulo. Talvez algum dia, se designers e desenvolvedores

praticamente nulo. Talvez algum dia, se designers e desenvolvedores

mostrarem interesse suficiente nesta especificação, algum fabricante

mostrarem interesse suficiente nesta especificação, algum fabricante

de browser possa implementá-lo. Por enquanto, você pode testá-lo

de browser possa implementá-lo. Por enquanto, você pode testá-lo

usando

usando

um polyfill

um polyfill

.

.

Unidades Relativas da Viewport e o fim do Layout baseado em pixels

Unidades Relativas da Viewport e o fim do Layout baseado em pixels

Medidas de comprimento baseadas na viewport

Medidas de comprimento baseadas na viewport

-

-

vw

vw

,

,

vh

vh

,

,

vm

vm

,

,

vmin

vmin

e

e

Page 9: Web Design Responsivo

vmax

vmax

- são unidades de medida relativa das dimensões da própria

- são unidades de medida relativa das dimensões da própria

viewport.

viewport.

Uma unidade vw é igual a 1% da largura do bloco inicial que a contém.

Uma unidade vw é igual a 1% da largura do bloco inicial que a contém.

Se a largura da viewport é 320, então 1

Se a largura da viewport é 320, então 1

vw

vw

é 1 x 320/100 = 3.2 pixels.

é 1 x 320/100 = 3.2 pixels.

A unidade vh funciona da mesma maneira, mas é relativa a altura da

A unidade vh funciona da mesma maneira, mas é relativa a altura da

viewport. Desta forma, 50

viewport. Desta forma, 50

vh

vh

equivale a 50% da altura do documento.

equivale a 50% da altura do documento.

A esta altura você pode se perguntar qual a diferença desta unidade

A esta altura você pode se perguntar qual a diferença desta unidade

para a percentual. A diferença é que enquanto a unidade percentual é

para a percentual. A diferença é que enquanto a unidade percentual é

relativa ao tamanho do elemento pai, as unidades

relativa ao tamanho do elemento pai, as unidades

vh

vh

e

e

vw

vw

serão

serão

sempre relativas ao tamanho da viewport, independente do tamanho

sempre relativas ao tamanho da viewport, independente do tamanho

dos seus elementos-pai.

dos seus elementos-pai.

Isso fica bem interessante quando você quer, por exemplo, criar um

Isso fica bem interessante quando você quer, por exemplo, criar um

container e ter a certeza de que ele nunca se extenderá abaixo da

container e ter a certeza de que ele nunca se extenderá abaixo da

altura do viewport para que o usuário não precise rolar a página para

altura do viewport para que o usuário não precise rolar a página para

baixo para achar o conteúdo. Também possibilita que criemos um

baixo para achar o conteúdo. Também possibilita que criemos um

elemento com 100% da altura sem alterar todos os containers pai.

elemento com 100% da altura sem alterar todos os containers pai.

A unidade

A unidade

vmin

vmin

é igualada ao menor valor da unidade

é igualada ao menor valor da unidade

vm

vm

ou

ou

vh

vh

, e

, e

vmax

vmax

ao maior valor; por isso, essas unidades também respondem

ao maior valor; por isso, essas unidades também respondem

perfeitamente às alterações na orientação dos dispositivos.

perfeitamente às alterações na orientação dos dispositivos.

Infelizmente, por enquanto,

Infelizmente, por enquanto,

essas unidades não são suportadas pelo

essas unidades não são suportadas pelo

browser do Android

browser do Android

. Sendo assim, pode ser que você ainda tenha que

. Sendo assim, pode ser que você ainda tenha que

aguardar um tempo para utilizá-las.

aguardar um tempo para utilizá-las.

Uma Palavra sobre Tipografia Adaptável (Adaptive Typography)

Uma Palavra sobre Tipografia Adaptável (Adaptive Typography)

O layout de um site vai depender muito do conteúdo. Não posso

O layout de um site vai depender muito do conteúdo. Não posso

concluir uma seção que fala sobre as diversas possibilidades do layout

concluir uma seção que fala sobre as diversas possibilidades do layout

responsivo sem abordar a tipografia. O CSS3 introduziu uma unidade

responsivo sem abordar a tipografia. O CSS3 introduziu uma unidade

para fontes que pode ser bastante útil a tipografia responsiva:

para fontes que pode ser bastante útil a tipografia responsiva:

a

a

unidade “

unidade “

rem

rem

. Enquanto as fontes medidas pela unidade “

. Enquanto as fontes medidas pela unidade “

em

em

apresentam um tamanho herdado do seu elemento pai, a fonte

apresentam um tamanho herdado do seu elemento pai, a fonte

medida pela unidade “rem” é relativa ao tamanho da fonte do seu

medida pela unidade “rem” é relativa ao tamanho da fonte do seu

elemento root (ou raiz). Para um site responsivo, você poderia escrever

elemento root (ou raiz). Para um site responsivo, você poderia escrever

o CSS como o código abaixo, e em seguida alterar o tamanho de

o CSS como o código abaixo, e em seguida alterar o tamanho de

Page 10: Web Design Responsivo

todas as fontes simplesmente mudando o tamanho da fonte

todas as fontes simplesmente mudando o tamanho da fonte

especificada no elemento

especificada no elemento

html

html

:

:

1.

html

html

{

{

2.

font-size

font-size

:

:

14px

14px

;

;

3.

}

}

4.

5.

p

p

{

{

6.

font-size

font-size

:

:

1rem

1rem

/* isto tem 14px */

/* isto tem 14px */

7.

}

}

8.

9.

@media screen and (max-width:380px) {

@media screen and (max-width:380px) {

10.

html

html

{

{

11.

font-size

font-size

:

:

12px

12px

;

;

12.

/* tornando a fonte menor para dispositivos mobile */

/* tornando a fonte menor para dispositivos mobile */

13.

}

}

14.

15.

p

p

{

{

16.

font-size

font-size

:

:

1rem

1rem

;

;

17.

/* isto agora equivale a 12px */

/* isto agora equivale a 12px */

18.

}

}

19.

}

}

Com exceção do IE8 e do Opera mini, o

Com exceção do IE8 e do Opera mini, o

suporte ao "

suporte ao "

rem

rem

"

"

é excelente.

é excelente.

Para aprender mais sobre a unidade

Para aprender mais sobre a unidade

rem

rem

, leia o artigo de Matthew

, leia o artigo de Matthew

Lettini

Lettini

"In Defense of Rem Units"

"In Defense of Rem Units"

.

.

A MELHOR MANEIRA DE TRABALHAR RESPONSIVAMENTE

A MELHOR MANEIRA DE TRABALHAR RESPONSIVAMENTE

COM OUTROS CONTEÚDOS COMPLEXOS

COM OUTROS CONTEÚDOS COMPLEXOS

Aos poucos vamos ficando cada vez melhor em lidar com imagens e

Aos poucos vamos ficando cada vez melhor em lidar com imagens e

textos em layouts responsivos, embora ainda seja necessário encontrar

textos em layouts responsivos, embora ainda seja necessário encontrar

soluções para outros tipos mais complexos de conteúdo

soluções para outros tipos mais complexos de conteúdo

Lidando com Formulários no Website Responsivo

Lidando com Formulários no Website Responsivo

De um modo geral, lidar com formulários, especialmente os muito

De um modo geral, lidar com formulários, especialmente os muito

grandes, no web design responsivo é um enorme desafio! Quanto

grandes, no web design responsivo é um enorme desafio! Quanto

maior o formulário, mais complicado será adaptá-lo a dispositivos

maior o formulário, mais complicado será adaptá-lo a dispositivos

menores. A adaptação física não é tão difícil; a maioria dos designers

menores. A adaptação física não é tão difícil; a maioria dos designers

simplesmente colocam os elementos do formulário numa única

simplesmente colocam os elementos do formulário numa única

coluna e esticam os inputs completando a largura da tela. Entretanto,

coluna e esticam os inputs completando a largura da tela. Entretanto,

fazer formulários visualmente atraentes não é o bastante. Temos que

fazer formulários visualmente atraentes não é o bastante. Temos que

torná-los fáceis de usar também nos dispositivos mobile.

torná-los fáceis de usar também nos dispositivos mobile.

Para começar,

Para começar,

Luke Wroblewski aconselha

Luke Wroblewski aconselha

evitar inputs de texto,

evitar inputs de texto,

contando com checkboxes, radio buttons e menus drop-downs

contando com checkboxes, radio buttons e menus drop-downs

, e

, e

utilizando o select sempre que possível. Desta forma, o usuário precisa

utilizando o select sempre que possível. Desta forma, o usuário precisa

digitar o mínimo de informação. Outra dica é não fazer com que o

digitar o mínimo de informação. Outra dica é não fazer com que o

usuário aperte o botão "enviar" antes de obter um feedback sobre o

usuário aperte o botão "enviar" antes de obter um feedback sobre o

conteúdo a ser submetido. A checagem de erros imediata é

conteúdo a ser submetido. A checagem de erros imediata é

extremamente importante no mobile, onde a maioria dos formulários

extremamente importante no mobile, onde a maioria dos formulários

ultrapassa a altura da tela. Se o usuário digitar um campo

ultrapassa a altura da tela. Se o usuário digitar um campo

incorretamente e tiver que enviar o formulário para só assim perceber

incorretamente e tiver que enviar o formulário para só assim perceber

o erro, provavelmente ele não verá onde o erro está.

o erro, provavelmente ele não verá onde o erro está.

Page 11: Web Design Responsivo

No futuro, novos inputs e atributos HTML5 serão de grande ajuda na

No futuro, novos inputs e atributos HTML5 serão de grande ajuda na

melhoria dos formulários, e não haverá a necessidade de utilizar tanto

melhoria dos formulários, e não haverá a necessidade de utilizar tanto

JavaScript. Por exemplo, você poderia usar o

JavaScript. Por exemplo, você poderia usar o

atributo

atributo

required

required

para

para

dar feedback imediato sobre um campo específico. Infelizmente, por

dar feedback imediato sobre um campo específico. Infelizmente, por

enquanto,

enquanto,

o suporte para dispositivos mobile

o suporte para dispositivos mobile

ainda é ruim. O

ainda é ruim. O

atributo

atributo

autocomplete

autocomplete

também poderia ajudar a montar formulários mais

também poderia ajudar a montar formulários mais

responsivos.

responsivos.

Um smartphone é um bem pessoal, por isso podemos assumir que

Um smartphone é um bem pessoal, por isso podemos assumir que

dados como nome e endereço serão algo consistente. Usando o

dados como nome e endereço serão algo consistente. Usando o

atributo

atributo

autocomplete

autocomplete

do HTML5

do HTML5

poderíamos fazer um auto-

poderíamos fazer um auto-

preenchimento dos campos

preenchimento dos campos

sem que o usuário tivesse que digitar

sem que o usuário tivesse que digitar

todas as informações. Há ainda uma

todas as informações. Há ainda uma

lista inteira de novos inputs

lista inteira de novos inputs

HTML5

HTML5

que podem ser utilizados muito em breve, a fim de tornar os

que podem ser utilizados muito em breve, a fim de tornar os

formulários mais responsivos.

formulários mais responsivos.

Datas em elementos de formulário são um bom exemplo do que se

Datas em elementos de formulário são um bom exemplo do que se

pode melhorar com o HTML5. Já estamos acostumados a contar com

pode melhorar com o HTML5. Já estamos acostumados a contar com

JavaScript ao criar calendários. Eles podem ser muito úteis se

JavaScript ao criar calendários. Eles podem ser muito úteis se

utilizados em grandes telas desktop, mas difíceis de usar em

utilizados em grandes telas desktop, mas difíceis de usar em

dispositivos touch screen, pois selecionar a data certa com o dedo é

dispositivos touch screen, pois selecionar a data certa com o dedo é

difícil quando a área sensível ao toque é muito pequena.

difícil quando a área sensível ao toque é muito pequena.

*Como posso selecionar uma data se meu dedo está tocando três ao mesmo

*Como posso selecionar uma data se meu dedo está tocando três ao mesmo

tempo?

tempo?

Uma solução promissora está no novo

Uma solução promissora está no novo

input type="date"

input type="date"

do HTML5 ,

do HTML5 ,

que define uma string no formato de data. Já o

que define uma string no formato de data. Já o

input type="datetime"

input type="datetime"

define uma string no formato de data e hora. A grande vantagem deste

define uma string no formato de data e hora. A grande vantagem deste

método é que deixamos o browser decidir qual UI utilizar. Desta

método é que deixamos o browser decidir qual UI utilizar. Desta

forma, a UI é automaticamente otimizada em dispositivos mobile.

forma, a UI é automaticamente otimizada em dispositivos mobile.

Abaixo um exemplo da aparência de um

Abaixo um exemplo da aparência de um

input type="date"

input type="date"

no

no

desktop, em smartphone e tablet com Android (com o browser

desktop, em smartphone e tablet com Android (com o browser

Chrome), Iphone e Ipad.

Chrome), Iphone e Ipad.

Page 12: Web Design Responsivo

*Renderização do input input type="date" em diferentes dispositivos.

*Renderização do input input type="date" em diferentes dispositivos.

Note que as screenshots foram feitas em meu browser e no Android

Note que as screenshots foram feitas em meu browser e no Android

phone, então a linguagem foi automaticamente adaptada ao sistema

phone, então a linguagem foi automaticamente adaptada ao sistema

de linguagem (Francês). Ao utilizar componentes nativos, você não

de linguagem (Francês). Ao utilizar componentes nativos, você não

precisa mais adaptar a lingua para diferentes versões do site.

precisa mais adaptar a lingua para diferentes versões do site.

Por enquanto, com exceção do Opera e do Chrome,

Por enquanto, com exceção do Opera e do Chrome,

não há suporte

não há suporte

ao

ao

input type="date"

input type="date"

para o desktop. Browsers nativos do Android

para o desktop. Browsers nativos do Android

ainda não o suportam completamente, mas o Chrome Android sim, e

ainda não o suportam completamente, mas o Chrome Android sim, e

também o Safari para iOS. O fato é que ainda há muito a ser

também o Safari para iOS. O fato é que ainda há muito a ser

trabalhado para sermos capazes de utilizar esta solução em sites

trabalhado para sermos capazes de utilizar esta solução em sites

responsivos. Enquanto isto, você pode usar um polyfill como o

responsivos. Enquanto isto, você pode usar um polyfill como o

Mobiscroll

Mobiscroll

para browsers mobile que não suportarem o atributo

para browsers mobile que não suportarem o atributo

nativamente.

nativamente.

Além destas soluções de inputs HTML5, foram feitas tentativas para

Além destas soluções de inputs HTML5, foram feitas tentativas para

melhorar outros padrões de design, como as

melhorar outros padrões de design, como as

senhas do mobile

senhas do mobile

e

e

inputs complexos utilizando máscaras

inputs complexos utilizando máscaras

. Como você pode notar, isto

. Como você pode notar, isto

tudo é experimental. O formulário responsivo perfeito não existe no

tudo é experimental. O formulário responsivo perfeito não existe no

momento; Muito ainda deve ser feito neste campo.

momento; Muito ainda deve ser feito neste campo.

Lidando com Tabelas em Sites Responsivos

Lidando com Tabelas em Sites Responsivos

Outro tipo de conteúdo que fica bastante confuso em sites mobile e

Outro tipo de conteúdo que fica bastante confuso em sites mobile e

responsivos são as tabelas. A maioria das tabelas são orientadas

responsivos são as tabelas. A maioria das tabelas são orientadas

horizontalmente e apresentam uma grande quantidade de dados de

horizontalmente e apresentam uma grande quantidade de dados de

uma só vez. Imagine então que exibi-las corretamente em small

uma só vez. Imagine então que exibi-las corretamente em small

screens seja bem complicado. Tabelas HTML são bastante flexíveis -

screens seja bem complicado. Tabelas HTML são bastante flexíveis -

você pode usar porcentagens para mudar a largura das colunas - o

você pode usar porcentagens para mudar a largura das colunas - o

que também pode rapidamente tornar o conteúdo ilegível.

que também pode rapidamente tornar o conteúdo ilegível.

Ainda não encontraram uma forma perfeita de mostrar tabelas, mas

Ainda não encontraram uma forma perfeita de mostrar tabelas, mas

Page 13: Web Design Responsivo

algumas sugestões foram feitas:

algumas sugestões foram feitas:

Uma forma de abordagem é

Uma forma de abordagem é

esconder colunas consideradas "menos

esconder colunas consideradas "menos

importantes"

importantes"

, e oferecer checkboxes para que o usuário escolha quais

, e oferecer checkboxes para que o usuário escolha quais

ele deseja ver. No desktop, todas as colunas seriam mostradas,

ele deseja ver. No desktop, todas as colunas seriam mostradas,

enquanto no mobile o número de colunas dependeria do tamanho da

enquanto no mobile o número de colunas dependeria do tamanho da

tela. O Filament Group

tela. O Filament Group

explica este método

explica este método

e

e

demonstra

demonstra

em um de

em um de

seus artigos. A solução também é usada no

seus artigos. A solução também é usada no

table column toggle do

table column toggle do

jQuery Mobile

jQuery Mobile

.

.

*Alguns exemplos de tabelas responsivas.

*Alguns exemplos de tabelas responsivas.

A segunda abordagem brinca com a ideia de

A segunda abordagem brinca com a ideia de

scroll em tabelas

scroll em tabelas

. Você

. Você

poderia "fixar" uma única coluna com tamanho fixo a esquerda, e

poderia "fixar" uma única coluna com tamanho fixo a esquerda, e

então deixar uma scroll bar numa pequena parte da tabela a direita.

então deixar uma scroll bar numa pequena parte da tabela a direita.

David Bushell implementa esta ideia

David Bushell implementa esta ideia

em um artigo usando CSS para

em um artigo usando CSS para

exibir todo o conteúdo da

exibir todo o conteúdo da

do lado esquerdo da tabela, deixando o

do lado esquerdo da tabela, deixando o

usuário mover-se pelo conteúdo a direita através da scroll bar.

usuário mover-se pelo conteúdo a direita através da scroll bar.

Zurb

Zurb

utiliza a mesma ideia, mas de um jeito diferente,

utiliza a mesma ideia, mas de um jeito diferente,

neste plug in

neste plug in

. Neste

. Neste

caso, as headers ficam no topo da tabela, e a tabela é duplicada com

caso, as headers ficam no topo da tabela, e a tabela é duplicada com

JavaScript de modo que apenas a primeira coluna seja mostrada a

JavaScript de modo que apenas a primeira coluna seja mostrada a

esquerda, e as demais colunas sejam mostradas do lado direito através

esquerda, e as demais colunas sejam mostradas do lado direito através

da scroll bar.

da scroll bar.

Page 14: Web Design Responsivo

*Dois exemplos de tabelas responsivas com scroll

*Dois exemplos de tabelas responsivas com scroll

A grande questão em utilizar scroll bars e propriedades CSS tais como

A grande questão em utilizar scroll bars e propriedades CSS tais como

overflow: auto

overflow: auto

é que muitos dispositivos mobile e tablets

é que muitos dispositivos mobile e tablets

simplesmente não exibem uma scroll bar visível. A área da direita da

simplesmente não exibem uma scroll bar visível. A área da direita da

tabela permite a rolagem, mas o usuário não terá qualquer indício

tabela permite a rolagem, mas o usuário não terá qualquer indício

visual desta possibilidade. Precisamos encontrar uma maneira de

visual desta possibilidade. Precisamos encontrar uma maneira de

indicar que há mais conteúdo a ser exibido à direita.

indicar que há mais conteúdo a ser exibido à direita.

Uma terceira abordagem é em

Uma terceira abordagem é em

reestruturar a tabela e dividir as

reestruturar a tabela e dividir as

colunas

colunas

em listas de itens com cabeçalhos.

em listas de itens com cabeçalhos.

Esta técnica é utilizada no

Esta técnica é utilizada no

"reflow mode"

"reflow mode"

no jQuery Mobile e foi explicada por Chris Coyier em

no jQuery Mobile e foi explicada por Chris Coyier em

seu artigo

seu artigo

“Responsive Data Tables”

“Responsive Data Tables”

.

.

*Reestruturando uma tabela para dispositivos móveis

*Reestruturando uma tabela para dispositivos móveis

Existem

Existem

diversas outras técnicas

diversas outras técnicas

, e qual usar depende muito do seu

, e qual usar depende muito do seu

Page 15: Web Design Responsivo

projeto. Não há dois projetos iguais, por isso só posso mostrar como

projeto. Não há dois projetos iguais, por isso só posso mostrar como

outras pessoas estão lidando com isto. Se você chegar a uma boa

outras pessoas estão lidando com isto. Se você chegar a uma boa

solução, por favor compartilhe nos comentários, no Twitter ou em

solução, por favor compartilhe nos comentários, no Twitter ou em

qualquer outro lugar. Estamos no mesmo barco, e exibir tabelas no

qualquer outro lugar. Estamos no mesmo barco, e exibir tabelas no

mobile está uma droga (é sério). Então vamos melhorá-las juntos!

mobile está uma droga (é sério). Então vamos melhorá-las juntos!

INCORPORANDO CONTEÚDO DE TERCEIROS: O PROBLEMA

INCORPORANDO CONTEÚDO DE TERCEIROS: O PROBLEMA

DO IFRAME RESPONSIVO

DO IFRAME RESPONSIVO

Muitos desses conteúdos, ao serem incorporados, fazem você utilizar

Muitos desses conteúdos, ao serem incorporados, fazem você utilizar

iframes. Mas vamos encarar: lidar com iframes no design responsivo é

iframes. Mas vamos encarar: lidar com iframes no design responsivo é

doloroso. O grande problema é que iframes exigem largura e altura

doloroso. O grande problema é que iframes exigem largura e altura

fixa diretamente no seu código HTML. Forçar uma largura de 100% no

fixa diretamente no seu código HTML. Forçar uma largura de 100% no

iframe deveria resolver, mas daí você perderia a proporção do

iframe deveria resolver, mas daí você perderia a proporção do

conteúdo incorporado. Então, para incorporar um vídeo ou slideshow

conteúdo incorporado. Então, para incorporar um vídeo ou slideshow

e preservar a proporção original, seria necessário encontrar uma

e preservar a proporção original, seria necessário encontrar uma

solução alternativa.

solução alternativa.

Uma solução com HTML e CSS

Uma solução com HTML e CSS

Thierry Koblentz

Thierry Koblentz

escreveu um ótimo artigo chamado

escreveu um ótimo artigo chamado

"Creating

"Creating

Intrinsic Ratios for Vídeo"

Intrinsic Ratios for Vídeo"

(criando proporções intrínsecas para vídeos),

(criando proporções intrínsecas para vídeos),

onde ele propõe uma forma de incorporar vídeos responsivos usando

onde ele propõe uma forma de incorporar vídeos responsivos usando

uma proporção 16:9. Esta solução pode ser estendida a outros tipos

uma proporção 16:9. Esta solução pode ser estendida a outros tipos

de conteúdos, como apresentações em SlideShare e Google Maps.

de conteúdos, como apresentações em SlideShare e Google Maps.

Koblentz envolve o iframe num container usando uma classe a qual

Koblentz envolve o iframe num container usando uma classe a qual

podemos manipular no CSS. O container torna possível o iframe ser

podemos manipular no CSS. O container torna possível o iframe ser

redimensionado fluidamente, mesmo tendo um valor fixo de pixels no

redimensionado fluidamente, mesmo tendo um valor fixo de pixels no

HTML. O

HTML. O

código, adaptado por Anders M. Andersen

código, adaptado por Anders M. Andersen

, fica assim:

, fica assim:

11. .

.embed-container

.embed-container

{

{

22. .

position

position

:

:

relative

relative

;

;

33. .

padding-bottom

padding-bottom

:

:

56.25%

56.25%

;

;

/* 16:9 ratio */

/* 16:9 ratio */

44. .

padding-top

padding-top

:

:

30px

30px

;

;

/* solução para IE 6 */

/* solução para IE 6 */

55. .

height

height

:

:

0

0

;

;

66. .

overflow

overflow

:

:

hidden

hidden

;

;

77. .

}

}

88. .

99. .

.embed-container

.embed-container

iframe

iframe

,

,

1010. .

.embed-container

.embed-container

object

object

,

,

1111. .

.embed-container

.embed-container

embed

embed

{

{

1212. .

position

position

:

:

absolute

absolute

;

;

1313. .

top

top

:

:

0

0

;

;

1414. .

left

left

:

:

0

0

;

;

1515. .

width

width

:

:

100%

100%

;

;

1616. .

height

height

:

:

100%

100%

;

;

1717. .

}

}

Isto vai funcionar em todos os iframes. O único problema é que você

Isto vai funcionar em todos os iframes. O único problema é que você

terá que envolver todos os iframes de seu site em um elemento.

terá que envolver todos os iframes de seu site em um elemento.

Enquanto esta técnica funcionaria muito bem para desenvolvedores

Enquanto esta técnica funcionaria muito bem para desenvolvedores

que tivessem controle total de seu código, ou para clientes que

que tivessem controle total de seu código, ou para clientes que

estivessem razoavelmente familiarizados com HTML, não funcionaria

estivessem razoavelmente familiarizados com HTML, não funcionaria

com clientes que não tivessem qualquer habilidade técnica. Você

com clientes que não tivessem qualquer habilidade técnica. Você

poderia, é claro, usar JavaScript para detectar os elementos iframe e

poderia, é claro, usar JavaScript para detectar os elementos iframe e

Page 16: Web Design Responsivo

automaticamente incorporá-los na classe, mas como podemos ver,

automaticamente incorporá-los na classe, mas como podemos ver,

seria uma grande solução, mas não a solução perfeita.

seria uma grande solução, mas não a solução perfeita.

LIDANDO COM VÍDEOS RESPONSIVOS NO FUTURO

LIDANDO COM VÍDEOS RESPONSIVOS NO FUTURO

O HTML5 abre um mundo de possibilidades para o vídeo -

O HTML5 abre um mundo de possibilidades para o vídeo -

particularmente com o

particularmente com o

elemento video

elemento video

. A grande notícia é que o

. A grande notícia é que o

suporte a este elemento é surpreendentemente bom em dispositivos

suporte a este elemento é surpreendentemente bom em dispositivos

mobile

mobile

! Com exceção do Opera Mini, a maioria dos browsers o

! Com exceção do Opera Mini, a maioria dos browsers o

suportam. O elemento video também é bastante flexível, e apresentar

suportam. O elemento video também é bastante flexível, e apresentar

um vídeo responsivo é tão simples quanto isto:

um vídeo responsivo é tão simples quanto isto:

11. .

video

video

{

{

22. .

max-width

max-width

:

:

100%

100%

;

;

33. .

height

height

:

:

auto

auto

;

;

44. .

}

}

Você provavelmente está se perguntando, "Então, qual o problema?"

Você provavelmente está se perguntando, "Então, qual o problema?"

O problema é que, embora YouTube e Vimeo suportem o elemento

O problema é que, embora YouTube e Vimeo suportem o elemento

video, você ainda precisa incorporar vídeos usando o tal método do

video, você ainda precisa incorporar vídeos usando o tal método do

iframe. E isso meu amigo, é uma droga. Sendo assim, até que YouTube

iframe. E isso meu amigo, é uma droga. Sendo assim, até que YouTube

e Vimeo ofereçam um meio de incorporar vídeos em sites utilizando a

e Vimeo ofereçam um meio de incorporar vídeos em sites utilizando a

tag video do HTML5,

tag video do HTML5,

teremos que descobrir soluções

teremos que descobrir soluções

para que

para que

incorporações de vídeo trabalhem adequadamente em sites

incorporações de vídeo trabalhem adequadamente em sites

responsivos. Pensando nisto, Chris Coyier criou uma solução com um

responsivos. Pensando nisto, Chris Coyier criou uma solução com um

plugin jQuery chamado

plugin jQuery chamado

FitVids.js

FitVids.js

. Ele usa a primeira técnica

. Ele usa a primeira técnica

mencionada acima: cria um container em torno do iframe e preserva a

mencionada acima: cria um container em torno do iframe e preserva a

sua proporção.

sua proporção.

Incorporando Google Maps

Incorporando Google Maps

Se você incorporou um Google Map em seu site, a técnica descrita

Se você incorporou um Google Map em seu site, a técnica descrita

acima com container e CSS funcionará. Mas, de novo, é um hackzinho

acima com container e CSS funcionará. Mas, de novo, é um hackzinho

sujo. Além disso, o mapa vai redimensionar proporcionalmente e pode

sujo. Além disso, o mapa vai redimensionar proporcionalmente e pode

ficar tão pequeno, que poderá perder a área de foco que você quer

ficar tão pequeno, que poderá perder a área de foco que você quer

mostrar ao usuário. A

mostrar ao usuário. A

página do Google Maps para mobile

página do Google Maps para mobile

diz que

diz que

você pode utilizar uma

você pode utilizar uma

API de mapas estáticos

API de mapas estáticos

para incorporações

para incorporações

mobile. Usar um mapa estático de fato eliminaria os problemas com

mobile. Usar um mapa estático de fato eliminaria os problemas com

iframe. Brad Frost escreveu um belo artigo a respeito, e criou uma

iframe. Brad Frost escreveu um belo artigo a respeito, e criou uma

demo de

demo de

mapas adaptáveis (adaptive maps)

mapas adaptáveis (adaptive maps)

onde utiliza a mesma

onde utiliza a mesma

técnica. Um JavaScript detecta o tamanho da tela, em seguida o

técnica. Um JavaScript detecta o tamanho da tela, em seguida o

iframe é substituído pelo mapa estático em celulares. Como podemos

iframe é substituído pelo mapa estático em celulares. Como podemos

ver, temos novamente que recorrer a técnicas que lidem com

ver, temos novamente que recorrer a técnicas que lidem com

problemas de iframe, devido a ausência de uma solução nativa (ou

problemas de iframe, devido a ausência de uma solução nativa (ou

seja, do Google).

seja, do Google).

Precisamos de APIS Melhores

Precisamos de APIS Melhores

Agora a grande pergunta: Há um jeito melhor? O maior problema em

Agora a grande pergunta: Há um jeito melhor? O maior problema em

usar iframes para incorporar o conteúdo de terceiros responsivamente

usar iframes para incorporar o conteúdo de terceiros responsivamente

Page 17: Web Design Responsivo

é a falta de controle sobre o código gerado.

é a falta de controle sobre o código gerado.

Desenvolvedores e

Desenvolvedores e

designers são muito dependentes

designers são muito dependentes

de conteúdo de terceiros e, por

de conteúdo de terceiros e, por

extensão, o seu HTML gerado. E o número de sites que oferecem

extensão, o seu HTML gerado. E o número de sites que oferecem

conteúdo de outros sites cresce rapidamente. Precisamos de soluções

conteúdo de outros sites cresce rapidamente. Precisamos de soluções

muito melhores do que iframes para incorporar este conteúdo.

muito melhores do que iframes para incorporar este conteúdo.

Agora, fale a verdade: incorporar iframes do Facebook é um verdadeiro

Agora, fale a verdade: incorporar iframes do Facebook é um verdadeiro

sofrimento. A falta de controle sobre o CSS pode fazer nosso trabalho

sofrimento. A falta de controle sobre o CSS pode fazer nosso trabalho

parecer bem desleixado e algumas vezes arruinar o design. A web é

parecer bem desleixado e algumas vezes arruinar o design. A web é

um lugar aberto, por isso talvez fosse um bom momento em começar

um lugar aberto, por isso talvez fosse um bom momento em começar

a pensar em mais API's abertas! No futuro, vamos precisar de API's que

a pensar em mais API's abertas! No futuro, vamos precisar de API's que

sejam melhores e mais simples de utilizar, de modo que qualquer

sejam melhores e mais simples de utilizar, de modo que qualquer

pessoa possa incorporar um conteúdo de maneira flexível, sem ter

pessoa possa incorporar um conteúdo de maneira flexível, sem ter

que contar com iframes fixos não responsivos. No entanto, até que

que contar com iframes fixos não responsivos. No entanto, até que

decidam criar essas API's, estamos presos a iframes medíocres, tendo

decidam criar essas API's, estamos presos a iframes medíocres, tendo

que recorrer a truques para torná-los viáveis.

que recorrer a truques para torná-los viáveis.

NAVEGAÇÃO RESPONSIVA: UM PANORAMA PELAS

NAVEGAÇÃO RESPONSIVA: UM PANORAMA PELAS

SOLUÇÕES ATUAIS

SOLUÇÕES ATUAIS

Outro grande desafio é o que fazer com a navegação. Quanto mais

Outro grande desafio é o que fazer com a navegação. Quanto mais

complexa e profunda a arquitetura de um website, mais inventivos

complexa e profunda a arquitetura de um website, mais inventivos

precisamos ser.

precisamos ser.

(Nota do tradutor: O bbburp! publicou uma tradução sobre menus

(Nota do tradutor: O bbburp! publicou uma tradução sobre menus

complexos para navegação no web design responsivo.

complexos para navegação no web design responsivo.

Confira

Confira

o

o

artigo!)

artigo!)

Uma das primeiras tentativas de lidar com isto de maneira simples foi

Uma das primeiras tentativas de lidar com isto de maneira simples foi

converter a navegação em um menu dropdown

converter a navegação em um menu dropdown

para telas pequenas.

para telas pequenas.

Infelizmente, esta forma não é a ideal. Primeiro porque esta solução

Infelizmente, esta forma não é a ideal. Primeiro porque esta solução

fica terrivelmente complicada numa navegação multi-level, podendo

fica terrivelmente complicada numa navegação multi-level, podendo

também causar problemas de acessibilidade. Eu recomendo o artigo

também causar problemas de acessibilidade. Eu recomendo o artigo

"Stop Misusing Select Menus"

"Stop Misusing Select Menus"

para entender todos os problemas

para entender todos os problemas

consequentes desta técnica.

consequentes desta técnica.

Algumas pessoas, incluindo

Algumas pessoas, incluindo

Brad Frost

Brad Frost

e Luke Wroblewski, têm

e Luke Wroblewski, têm

tentado resolver este problema. Brad Frost compilou algumas de suas

tentado resolver este problema. Brad Frost compilou algumas de suas

técnicas no site

técnicas no site

This Is Responsive

This Is Responsive

, na seção de navegação.

, na seção de navegação.

A navegação alternada (toggle navigation) envolve ocultar o menu nos

A navegação alternada (toggle navigation) envolve ocultar o menu nos

dispositivos mobile, exibindo um único link. Quando o usuário dá um

dispositivos mobile, exibindo um único link. Quando o usuário dá um

clique todos os links aparecem como um bloco de elementos abaixo

clique todos os links aparecem como um bloco de elementos abaixo

do link, empurrando o conteúdo principal pra baixo da navegação.

do link, empurrando o conteúdo principal pra baixo da navegação.

Uma variante deste tipo de menu, inspirado em alguns padrões de

Uma variante deste tipo de menu, inspirado em alguns padrões de

aplicativos nativos, é a navegação

aplicativos nativos, é a navegação

off-canvas

off-canvas

. Essa navegação fica

. Essa navegação fica

escondida debaixo de um link no menu ou ícone. Quano o usuário

escondida debaixo de um link no menu ou ícone. Quano o usuário

clica, a navegação desliza em forma de painel pela esquerda ou direita,

clica, a navegação desliza em forma de painel pela esquerda ou direita,

empurrando o conteúdo principal.

empurrando o conteúdo principal.

Page 18: Web Design Responsivo

*Alguns exemplos do toggle navigation

*Alguns exemplos do toggle navigation

O problema com essas técnicas é que a navegação permanece no

O problema com essas técnicas é que a navegação permanece no

topo da tela. Neste artigo

topo da tela. Neste artigo

"Responsive Navigation: Optimizing for

"Responsive Navigation: Optimizing for

Touch Across Devices"

Touch Across Devices"

, Luke Wroblewski mostra

, Luke Wroblewski mostra

quais zonas são

quais zonas são

facilmente acessíveis aos diferentes tipos de dispositivos

facilmente acessíveis aos diferentes tipos de dispositivos

. A área

. A área

superior esquerda é a mais difícil de chegar num dispositivo mobile.

superior esquerda é a mais difícil de chegar num dispositivo mobile.

*Áreas facilmente acessíveis na tela de celulares e tablets, de acordo com Luke

*Áreas facilmente acessíveis na tela de celulares e tablets, de acordo com Luke

Wroblewski.

Wroblewski.

Com base nisto, Jason Weaver criou

Com base nisto, Jason Weaver criou

algumas demos

algumas demos

com a

com a

navegação no bottom da tela. Uma solução é o

navegação no bottom da tela. Uma solução é o

footer anchor

footer anchor

(âncora

(âncora

de rodapé), com a navegação fixada no bottom da página para

de rodapé), com a navegação fixada no bottom da página para

dispositivos menores, e um menu link que envia o usuário até lá. Esta

dispositivos menores, e um menu link que envia o usuário até lá. Esta

técnica utiliza o sistema link âncora do HTML.

técnica utiliza o sistema link âncora do HTML.

Diversas

Diversas

outras

outras

tentativas

tentativas

foram

foram

feitas

feitas

para solucionar problemas de

para solucionar problemas de

navegação no web design responsivo. Como você pode ver, ainda não

navegação no web design responsivo. Como você pode ver, ainda não

há uma solução perfeita; isso realmente depende do projeto e da

há uma solução perfeita; isso realmente depende do projeto e da

profundidade da navegação. Felizmente para nós, alguma pessoas

profundidade da navegação. Felizmente para nós, alguma pessoas

estão tentando resolver esse problema e têm compartilhado suas

estão tentando resolver esse problema e têm compartilhado suas

experiências com a comunidade.

experiências com a comunidade.

Outra questão não resolvida é qual ícone usar

Outra questão não resolvida é qual ícone usar

para dizer ao usuário

para dizer ao usuário

"Olá! há um menu escondido aqui. Clique em mim!". Alguns websites

"Olá! há um menu escondido aqui. Clique em mim!". Alguns websites

tem um símbolo de mais (+), outros uma grade de quadrados e alguns

tem um símbolo de mais (+), outros uma grade de quadrados e alguns

têm três linhas (como um ícone de hamburger).

têm três linhas (como um ícone de hamburger).

Page 19: Web Design Responsivo

Para ver esses ícones usado em websites reais, dê uma olhada no

Para ver esses ícones usado em websites reais, dê uma olhada no

"We

"We

Need a Standard ‘Show Navigation’ Icon for Responsive Web Design”

Need a Standard ‘Show Navigation’ Icon for Responsive Web Design”

(precisamos de um ícone padrão no web design responsivo para

(precisamos de um ícone padrão no web design responsivo para

"mostrar a navegação").

"mostrar a navegação").

O maior problema é descobrir qual desses ícones seria o mais

O maior problema é descobrir qual desses ícones seria o mais

reconhecível a uma quantidade de usuários. Se todos

reconhecível a uma quantidade de usuários. Se todos

concordássemos em usar um deles, os usuários seriam instruídos a

concordássemos em usar um deles, os usuários seriam instruídos a

reconhecê-los. O problema é, qual escolher? Eu realmente gostaria de

reconhecê-los. O problema é, qual escolher? Eu realmente gostaria de

saber qual ícone vocês usam, então não hesite em compartilhar nos

saber qual ícone vocês usam, então não hesite em compartilhar nos

comentários 1 (1 - nota do tradutor: para deixar sua opinião sobre qual

comentários 1 (1 - nota do tradutor: para deixar sua opinião sobre qual

o ícone você utiliza, acesse o artigo original).

o ícone você utiliza, acesse o artigo original).

ESPECIFICIDADES MOBILE: "O USUÁRIO ESTÁ COM UM

ESPECIFICIDADES MOBILE: "O USUÁRIO ESTÁ COM UM

DISPOSITIVO MOBILE? SE SIM, O QUE PODE SER FEITO?"

DISPOSITIVO MOBILE? SE SIM, O QUE PODE SER FEITO?"

Dispositivos mobile e tablets são um mundo novo - longe dos

Dispositivos mobile e tablets são um mundo novo - longe dos

computadores desktops -, com suas próprias regras, comportamentos

computadores desktops -, com suas próprias regras, comportamentos

e capacidades. Podemos querer adaptar nossos projetos a esta nova

e capacidades. Podemos querer adaptar nossos projetos a esta nova

gama de capacidades.

gama de capacidades.

Detectando Capacidades Touch com JavaScript Nativo

Detectando Capacidades Touch com JavaScript Nativo

Além do tamanho da tela, aposto que se você perguntasse qual a

Além do tamanho da tela, aposto que se você perguntasse qual a

principal diferença entre mobiles (incluindo tablets) e desktops, a

principal diferença entre mobiles (incluindo tablets) e desktops, a

maioria das pessoas diriam ser a capacidade touch. Não há mouse

maioria das pessoas diriam ser a capacidade touch. Não há mouse

num celular (é verdade!), e com exceção de alguns dispositivos

num celular (é verdade!), e com exceção de alguns dispositivos

híbridos raros, em que você pode plugar um mouse, você não vai

híbridos raros, em que você pode plugar um mouse, você não vai

poder realizar muitos eventos num tablet com um mouse. Isto

poder realizar muitos eventos num tablet com um mouse. Isto

significa que, dependendo do browser, a pseudo-classe

significa que, dependendo do browser, a pseudo-classe

:hover

:hover

do

do

CSS pode não funcionar. Alguns browsers são inteligentes o bastante

CSS pode não funcionar. Alguns browsers são inteligentes o bastante

para oferecer um fallback nativo ao evento do hover traduzindo em

para oferecer um fallback nativo ao evento do hover traduzindo em

um evento touch. Infelizmente, nem todos os browsers são tão

um evento touch. Infelizmente, nem todos os browsers são tão

flexíveis assim. Criar um design que não dependa de elementos

flexíveis assim. Criar um design que não dependa de elementos

ocultos, a serem revelados sob eventos

ocultos, a serem revelados sob eventos

:hover

:hover

, seria o mais sensato.

, seria o mais sensato.

Capturar eventos touch

Capturar eventos touch

poderia também ser uma outra solução. A

poderia também ser uma outra solução. A

W3C working group começou a trabalhar numa

W3C working group começou a trabalhar numa

especificação de

especificação de

eventos touch

eventos touch

. Futuramente, seremos capazes de capturar eventos

. Futuramente, seremos capazes de capturar eventos

tais como

tais como

touchstart

touchstart

,

,

touchmove

touchmove

e

e

toucheend

toucheend

. Seremos capazes de

. Seremos capazes de

lidar com esses eventos diretamente no JavaScript sem a necessidade

lidar com esses eventos diretamente no JavaScript sem a necessidade

de frameworks de terceiros como

de frameworks de terceiros como

Hammer.js

Hammer.js

ou

ou

jGestures

jGestures

. Mas

. Mas

JavaScript é uma coisa - E o que acontece com o CSS?

JavaScript é uma coisa - E o que acontece com o CSS?

Page 20: Web Design Responsivo

CSS nível 4 - Media Query "Pointer"

CSS nível 4 - Media Query "Pointer"

O CSS nível 4 especifica uma

O CSS nível 4 especifica uma

nova media querry chamada "pointer"

nova media querry chamada "pointer"

,

,

que pode ser usada para capturar a existência e precisão de um

que pode ser usada para capturar a existência e precisão de um

dispositivo apontador (pointing device), tal como um mouse. A media

dispositivo apontador (pointing device), tal como um mouse. A media

query tem um dos três valores:

query tem um dos três valores:

none

none

O dispositivo não tem nenhum pointing device.

O dispositivo não tem nenhum pointing device.

coarse

coarse

O dispositivo tem um pointing device com precisão limitada,

O dispositivo tem um pointing device com precisão limitada,

por exemplo, um celular ou tablet com capacidades touch,

por exemplo, um celular ou tablet com capacidades touch,

onde o "pointer" seria um dedo.

onde o "pointer" seria um dedo.

fine

fine

O dispositivo tem um pointing device preciso, como um

O dispositivo tem um pointing device preciso, como um

mouse, trackpad ou caneta (stylus).

mouse, trackpad ou caneta (stylus).

Usando esta media query, nós podemos ampliar a maneira de

Usando esta media query, nós podemos ampliar a maneira de

utilização de botões e links para dispositivos móveis:

utilização de botões e links para dispositivos móveis:

11. .

@media (pointer:coarse) {

@media (pointer:coarse) {

22. .

input

input

[

[

type

type

=

=

"submit"

"submit"

]

]

,

,

33. .

a

a

.button

.button

{

{

44. .

min-width

min-width

:

:

30px

30px

;

;

55. .

min-height

min-height

:

:

40px

40px

;

;

66. .

background

background

:

:

transparent

transparent

;

;

77. .

}

}

88. .

}

}

A media query pointer ainda não é suportada - apenas sendo

A media query pointer ainda não é suportada - apenas sendo

proposta. Todavia, ser potencial é enorme, pois seria permitiria

proposta. Todavia, ser potencial é enorme, pois seria permitiria

detectar dispositivos touch via CSS

detectar dispositivos touch via CSS

, sem a necessidade de uma

, sem a necessidade de uma

bilbioteca, como

bilbioteca, como

Modernizr

Modernizr

.

.

CSS nível 4 - Media Query "Hover"

CSS nível 4 - Media Query "Hover"

A especificação CSS nível 4 propõe uma nova

A especificação CSS nível 4 propõe uma nova

media query hover

media query hover

, que

, que

detecta se o sistema primário do dispositivo dá suporte ao hover. Ele

detecta se o sistema primário do dispositivo dá suporte ao hover. Ele

retorna valores

retorna valores

boleanos: 1

boleanos: 1

se o dispositivo suporta hover,

se o dispositivo suporta hover,

0

0

se não

se não

suporta. Note que isto não tem nada a ver com a pseudo-classe

suporta. Note que isto não tem nada a ver com a pseudo-classe

:hover

:hover

.

.

Usando a media query hover podemos melhorar a interface e ocultar

Usando a media query hover podemos melhorar a interface e ocultar

certas características dos dispositivos que o suportam. O código fica

certas características dos dispositivos que o suportam. O código fica

mais ou menos assim:

mais ou menos assim:

11. .

@media (hover) {

@media (hover) {

22. .

.hovercontent

.hovercontent

{

{

display

display

:

:

none

none

;

;

}

}

33. .

/* oculta o conteúdo apenas para dispositivos com suporte ao hover. */

/* oculta o conteúdo apenas para dispositivos com suporte ao hover. */

44. .

.hovercontent

.hovercontent

:hover

:hover

{

{

display

display

:

:

block

block

;

;

}

}

55. .

}

}

Pode também ser usado para criar menus dropdowns com hover; e o

Pode também ser usado para criar menus dropdowns com hover; e o

fallback para dispositivos mobile é em CSS nativo, sem a necessidade

fallback para dispositivos mobile é em CSS nativo, sem a necessidade

Page 21: Web Design Responsivo

de um framework que detecte a feature.

de um framework que detecte a feature.

CSS nível 4 - Media Query Luminosity

CSS nível 4 - Media Query Luminosity

Outra capacidade dos dispositivos mobile é o sensor de luminosidade.

Outra capacidade dos dispositivos mobile é o sensor de luminosidade.

A especificação CSS nível 4 tem a

A especificação CSS nível 4 tem a

media query luminosity

media query luminosity

, que nos dá

, que nos dá

acesso ao sensor de luz dos dispositivos diretamente no CSS. Abaixo a

acesso ao sensor de luz dos dispositivos diretamente no CSS. Abaixo a

descrição da especificação.

descrição da especificação.

A característica da media "luminosity" é usada para verificar a

A característica da media "luminosity" é usada para verificar a

luminosidade do ambiente o qual o dispositivo está sendo usado,

luminosidade do ambiente o qual o dispositivo está sendo usado,

e permitir que o autor ajuste o estilo do documento

e permitir que o autor ajuste o estilo do documento

responsivamente.

responsivamente.

No futuro, seremos capazes de criar

No futuro, seremos capazes de criar

websites que respondam a

websites que respondam a

luminosidade do ambiente

luminosidade do ambiente

. Isto vai melhorar muito a experiência do

. Isto vai melhorar muito a experiência do

usuário. Seremos capazes de detectar, por exemplo, ambientes

usuário. Seremos capazes de detectar, por exemplo, ambientes

extremamente brilhantes usando o valor

extremamente brilhantes usando o valor

washed

washed

, adaptando o

, adaptando o

contraste do site ao local. O valor

contraste do site ao local. O valor

dim

dim

é usado para ambientes escuros

é usado para ambientes escuros

(a noite por exemplo), e o valor

(a noite por exemplo), e o valor

normal

normal

para quando o nível de

para quando o nível de

luminosidade não necessita de qualquer tipo de adaptação.

luminosidade não necessita de qualquer tipo de adaptação.

O código fica assim:

O código fica assim:

11. .

@media (luminosity: washed) {

@media (luminosity: washed) {

22. .

p

p

{

{

background

background

:

:

white

white

;

;

color

color

:

:

black

black

;

;

font-size

font-size

:

:

2em

2em

;

;

}

}

33. .

}

}

Como podemos ver, as CSS4 prometem um monte de coisas novas.

Como podemos ver, as CSS4 prometem um monte de coisas novas.

Se você está curioso em ver o que vem por aí - não só para mobile -

Se você está curioso em ver o que vem por aí - não só para mobile -

então dê uma olhada na

então dê uma olhada na

"Sneak Peek Into the Future: Selectors, Level

"Sneak Peek Into the Future: Selectors, Level

4"

4"

Mais Recursos Mobile para Detectar o Uso de API's e JavaScript

Mais Recursos Mobile para Detectar o Uso de API's e JavaScript

Muitas outras coisas poderiam ser detectadas para tornar a experiência

Muitas outras coisas poderiam ser detectadas para tornar a experiência

do usuário surpreendente num site responsivo. Por exemplo,

do usuário surpreendente num site responsivo. Por exemplo,

poderíamos ter acesso nativo ao giroscópio, bússola e acelerômetro

poderíamos ter acesso nativo ao giroscópio, bússola e acelerômetro

para detectar a orientação do dispositivo usando o

para detectar a orientação do dispositivo usando o

DeviceOrientationEvent

DeviceOrientationEvent

do HTML5. O

do HTML5. O

suporte ao

suporte ao

DeviceOrientationEvent

DeviceOrientationEvent

nos browsers do Android e iOS está ficando

nos browsers do Android e iOS está ficando

cada vez melhor, mas a especificação ainda está em fase de rascunho.

cada vez melhor, mas a especificação ainda está em fase de rascunho.

No entanto, a API parece promissora. Imagine jogar jogos HTML5

No entanto, a API parece promissora. Imagine jogar jogos HTML5

diretamente no browser!

diretamente no browser!

Outra API que seria particularmente utilizada por alguns usuários

Outra API que seria particularmente utilizada por alguns usuários

mobile é a de

mobile é a de

geolocation

geolocation

. A boa notícia é que ela já é

. A boa notícia é que ela já é

bem

bem

suportada

suportada

. Esta API

. Esta API

nos permite localizar geograficamente o usuário

nos permite localizar geograficamente o usuário

usando o GPS

usando o GPS

e inferir sua localização a partir de sinais de rede, como

e inferir sua localização a partir de sinais de rede, como

IP, RFID, Wi-Fi e endereços MAC Bluetooth. Isto pode ser usado em

IP, RFID, Wi-Fi e endereços MAC Bluetooth. Isto pode ser usado em

alguns sites responsivos para oferecer informações contextuais aos

alguns sites responsivos para oferecer informações contextuais aos

usuários. Uma grande cadeia de restaurantes poderia melhorar sua

usuários. Uma grande cadeia de restaurantes poderia melhorar sua

Page 22: Web Design Responsivo

experiência mobile mostrando aos usuários a localização de seus

experiência mobile mostrando aos usuários a localização de seus

restaurantes em sua área. As possibilidades são infinitas.

restaurantes em sua área. As possibilidades são infinitas.

A W3C também propôs um rascunho para uma

A W3C também propôs um rascunho para uma

API de vibração

API de vibração

. Nele

. Nele

o browser pode oferecer um feedbacl tátil ao usuário em forma de

o browser pode oferecer um feedbacl tátil ao usuário em forma de

vibração. Isto, no entanto, ainda está engatinhando em campos mais

vibração. Isto, no entanto, ainda está engatinhando em campos mais

específicos de aplicações Web and mobile games in the browser.

específicos de aplicações Web and mobile games in the browser.

Outra API que tem sido altamente discutida é a

Outra API que tem sido altamente discutida é a

network information

network information

API

API

. A possibilidade de medir a largura de banda do usuário, e otimizar

. A possibilidade de medir a largura de banda do usuário, e otimizar

conforme o resultado, tem seduzido muitos desenvolvedores.

conforme o resultado, tem seduzido muitos desenvolvedores.

Seriamos capazes de servir imagens com qualidade de alta definição

Seriamos capazes de servir imagens com qualidade de alta definição

para usuários com alta largura de banda e imagens de baixa qualidade

para usuários com alta largura de banda e imagens de baixa qualidade

aos usuários com baixa largura de banda. Com o atributo

aos usuários com baixa largura de banda. Com o atributo

bandwith

bandwith

da

da

network API, seria possível calcular a velocidade de download de um

network API, seria possível calcular a velocidade de download de um

usuário em megabytes por segundo. O segundo atributo,

usuário em megabytes por segundo. O segundo atributo,

metered

metered

, é

, é

um booleano que nos diz se o usuário tem uma conexão aferida

um booleano que nos diz se o usuário tem uma conexão aferida

(como um cartão pré-pago). Esses dois atributos são atualmente

(como um cartão pré-pago). Esses dois atributos são atualmente

acessíveis via JavaScript.

acessíveis via JavaScript.

Infelizmente,

Infelizmente,

medir a conexão de um usuário é algo tecnicamente

medir a conexão de um usuário é algo tecnicamente

complicado

complicado

, pois uma conexão poderia mudar de forma abrupta. O

, pois uma conexão poderia mudar de forma abrupta. O

usuário poderia, por exemplo, entrar num túnel e perder sua conexão,

usuário poderia, por exemplo, entrar num túnel e perder sua conexão,

ou sua velocidade poderia cair de repente. Sendo assim, a media

ou sua velocidade poderia cair de repente. Sendo assim, a media

query mágica que mede a largura de banda parece ser hipotética no

query mágica que mede a largura de banda parece ser hipotética no

momento. Yoav Weiis escreveu um belo artigo sobre os problemas

momento. Yoav Weiis escreveu um belo artigo sobre os problemas

criados por essa media query e sobre medição de largura de banda

criados por essa media query e sobre medição de largura de banda

chamado

chamado

“Bandwidth Media Queries? We Don’t Need ’Em!”

“Bandwidth Media Queries? We Don’t Need ’Em!”

(media

(media

queries de largura de banda? Não precisamos delas!")

queries de largura de banda? Não precisamos delas!")

Muitas outras API's lidam com recursos mobile. Se você estiver

Muitas outras API's lidam com recursos mobile. Se você estiver

interessado em aprender mais, a Mozilla tem uma

interessado em aprender mais, a Mozilla tem uma

lista bem detalhada

lista bem detalhada

.

.

A maioria ainda não está completamente disponível ou padronizada, e

A maioria ainda não está completamente disponível ou padronizada, e

é destinada mais a aplicações web do que a sites responsivos. No

é destinada mais a aplicações web do que a sites responsivos. No

entanto, é um ótimo panorama de como grandes e complexos sites

entanto, é um ótimo panorama de como grandes e complexos sites

mobile podem ser no futuro.

mobile podem ser no futuro.

REPENSANDO A MANEIRA COMO NÓS E O USUÁRIO

REPENSANDO A MANEIRA COMO NÓS E O USUÁRIO

LIDAMOS COM O CONTEÚDO

LIDAMOS COM O CONTEÚDO

Do ponto de vista técnico, ainda existem muitos desafios ao lidar com

Do ponto de vista técnico, ainda existem muitos desafios ao lidar com

o conteúdo em grande escala. O método mobile-first tem sido parte

o conteúdo em grande escala. O método mobile-first tem sido parte

do processo de desenvolvimento e design já há algum tempo.

do processo de desenvolvimento e design já há algum tempo.

Poderíamos, por exemplo, servir a dispositivos mobile o mínimo de

Poderíamos, por exemplo, servir a dispositivos mobile o mínimo de

dados necessários, e então usar JavaScript e AJAX para

dados necessários, e então usar JavaScript e AJAX para

condicionalmente carregar mais conteúdo e imagens para desktop e

condicionalmente carregar mais conteúdo e imagens para desktop e

tablets. No entanto, para isto, também teríamos que

tablets. No entanto, para isto, também teríamos que

repensar como

repensar como

lidar com o conteúdo

lidar com o conteúdo

e ser capaz de priorizar uma forma de gerar um

e ser capaz de priorizar uma forma de gerar um

conteúdo suficientemente flexível e adaptável. Um bom exemplo disto

conteúdo suficientemente flexível e adaptável. Um bom exemplo disto

Page 23: Web Design Responsivo

é o mapa de solução responsiva descrito acima: Carregamos uma

é o mapa de solução responsiva descrito acima: Carregamos uma

imagem para mobile, e melhoramos a experiência com um mapa real

imagem para mobile, e melhoramos a experiência com um mapa real

para desktops. Quanto mais responsivo o website, mais complexo será

para desktops. Quanto mais responsivo o website, mais complexo será

lidar com o conteúdo. Um código flexível pode nos ajudar a formatar

lidar com o conteúdo. Um código flexível pode nos ajudar a formatar

um conteúdo adaptável.

um conteúdo adaptável.

Uma forma sugerida por alguns é criar frases responsivas e marcá-las

Uma forma sugerida por alguns é criar frases responsivas e marcá-las

com spans que tenham classes, e então exibi-los de acordo com o

com spans que tenham classes, e então exibi-los de acordo com o

tamanho da tela. Aparar trechos das frases para dispositivos menores é

tamanho da tela. Aparar trechos das frases para dispositivos menores é

possível com media querries. Você pode ver esta técnica no 37signals'

possível com media querries. Você pode ver esta técnica no 37signals'

Signal vs. Noise

Signal vs. Noise

blog e no artigo de Frankie Roberto

blog e no artigo de Frankie Roberto

"Responsive Text"

"Responsive Text"

.

.

Mesmo que tal técnica pudesse ser usada para melhorar pequenas

Mesmo que tal técnica pudesse ser usada para melhorar pequenas

partes de um website, tais como um slogan do footer, aplicando isto a

partes de um website, tais como um slogan do footer, aplicando isto a

todos os textos de um site é difícil de imaginar.

todos os textos de um site é difícil de imaginar.

Isto levanta uma questão no web design responsivo que se tornará

Isto levanta uma questão no web design responsivo que se tornará

mais e mais importante no futuro: a importância de meta dados e a

mais e mais importante no futuro: a importância de meta dados e a

estrutura semântica de conteúdo. Se quisermos ser capazes de

estrutura semântica de conteúdo. Se quisermos ser capazes de

reutilizar o conteúdo de outros websites automaticamente, eles

reutilizar o conteúdo de outros websites automaticamente, eles

deverão estar bem estruturados e preparados para isto. Novas tags

deverão estar bem estruturados e preparados para isto. Novas tags

HTML5 como

HTML5 como

article

article

e

e

section

section

são um bom começo para ganhar

são um bom começo para ganhar

algum significado semântico. O objetivo é pensar e estruturar o

algum significado semântico. O objetivo é pensar e estruturar o

conteúdo de modo que um único item (por exemplo, um post em um

conteúdo de modo que um único item (por exemplo, um post em um

blog), possa ser reutilizado e exibido em diferentes dispositivos, e em

blog), possa ser reutilizado e exibido em diferentes dispositivos, e em

diferentes formatos.

diferentes formatos.

O grande desafio será

O grande desafio será

fazer com que os metadados sejam facilmente

fazer com que os metadados sejam facilmente

compreendidos

compreendidos

a todas as pessoas que fazem parte da criação de

a todas as pessoas que fazem parte da criação de

conteúdo do website. Teremos que explicar a todos eles como os

conteúdo do website. Teremos que explicar a todos eles como os

metadados podem ser utilizados para priorizar o conteúdo e

metadados podem ser utilizados para priorizar o conteúdo e

programaticamente reunir o conteúdo, sendo uma plataforma

programaticamente reunir o conteúdo, sendo uma plataforma

independente. Um grande desafio será o de ajudá-los a pensar em

independente. Um grande desafio será o de ajudá-los a pensar em

blocos reutilizáveis, em vez de um grande pedaço de texto no qual

blocos reutilizáveis, em vez de um grande pedaço de texto no qual

eles copiam e colam conteúdo do Microsoft Word no seu sistema de

eles copiam e colam conteúdo do Microsoft Word no seu sistema de

gerenciamento de conteúdo WYSIWYG. Teremos que ajudá-los a

gerenciamento de conteúdo WYSIWYG. Teremos que ajudá-los a

entender que conteúdo e estrutura são coisas distintas e

entender que conteúdo e estrutura são coisas distintas e

independentes, como quando os designers tiveram que entender que

independentes, como quando os designers tiveram que entender que

o conteúdo (HTML) e a apresentação (CSS) eram mantidos melhor

o conteúdo (HTML) e a apresentação (CSS) eram mantidos melhor

separados.

separados.

Não podemos nos dar ao luxo de escrever um conteúdo que seja

Não podemos nos dar ao luxo de escrever um conteúdo que seja

orientado a uma única plataforma

orientado a uma única plataforma

. Quem sabe em qual dispositivo

. Quem sabe em qual dispositivo

ele será publicado daqui a seis meses, ou um ano?

ele será publicado daqui a seis meses, ou um ano?

Precisamos

Precisamos

preparar nossos websites para o inesperado

preparar nossos websites para o inesperado

. Mas, para isto,

. Mas, para isto,

precisamos de ferramentas melhores de publicação também. Karen

precisamos de ferramentas melhores de publicação também. Karen

McGrane deu uma palestra intitulada

McGrane deu uma palestra intitulada

"Adapting Ourselves to Adaptive

"Adapting Ourselves to Adaptive

Content"

Content"

(Nos Adaptando a um Conteúdo Adaptável), com alguns

(Nos Adaptando a um Conteúdo Adaptável), com alguns

exemplos reais da indústria editorial. Ela fala sobre o processo de

exemplos reais da indústria editorial. Ela fala sobre o processo de

criação de conteúdo reutilizável e apresenta a ideia do COPE: create

criação de conteúdo reutilizável e apresenta a ideia do COPE: create

once and publish everywhere (Criar uma vez e publicar em todos os

once and publish everywhere (Criar uma vez e publicar em todos os

Page 24: Web Design Responsivo

lugares). Precisamos construir CMS's melhores, que possam utilizar e

lugares). Precisamos construir CMS's melhores, que possam utilizar e

gerar metadados para priorizar o conteúdo. Precisamos explicar às

gerar metadados para priorizar o conteúdo. Precisamos explicar às

pessoas como o sistema funciona e pensar em objetos de módulos de

pessoas como o sistema funciona e pensar em objetos de módulos de

conteúdo reutilizáveis em vez de páginas WYSIWYG. Como McGrane

conteúdo reutilizáveis em vez de páginas WYSIWYG. Como McGrane

diz:

diz:

"Você pode escrever três versões diferentes de título; você pode

"Você pode escrever três versões diferentes de título; você pode

escrever duas versões diferentes de resumos e anexar diversas

escrever duas versões diferentes de resumos e anexar diversas

imagens para isto, com diferentes cortes e tamanhos, e você

imagens para isto, com diferentes cortes e tamanhos, e você

pode não ser a pessoa responsável em decidir qual imagem ou

pode não ser a pessoa responsável em decidir qual imagem ou

qual título será exibido em uma determinada plataforma. Essa

qual título será exibido em uma determinada plataforma. Essa

decisão será tomada pelos metadados. Será feita pelas regras de

decisão será tomada pelos metadados. Será feita pelas regras de

negócios. [...] Metadados é a nova direção de arte."

negócios. [...] Metadados é a nova direção de arte."

Truncar o conteúdo para dispositivos menores não é uma estratégia

Truncar o conteúdo para dispositivos menores não é uma estratégia

de conteúdo "à prova do futuro". Precisamos de CMS's que ofereçam

de conteúdo "à prova do futuro". Precisamos de CMS's que ofereçam

a estrutura necessária para criar esse conteúdo reutilizável. Precisamos

a estrutura necessária para criar esse conteúdo reutilizável. Precisamos

de melhores workflows de publicação em CMS's também. Interfaces

de melhores workflows de publicação em CMS's também. Interfaces

desajeitadas assustam os usuários, e a maioria das pessoas que geram

desajeitadas assustam os usuários, e a maioria das pessoas que geram

conteúdo não estão particularmente confortáveis com ferramentas

conteúdo não estão particularmente confortáveis com ferramentas

complicadas. Temos que oferecer a essas pessoas ferramentas mais

complicadas. Temos que oferecer a essas pessoas ferramentas mais

fáceis de entender e que lhe ajudem a publicar um conteúdo limpo e

fáceis de entender e que lhe ajudem a publicar um conteúdo limpo e

semântico, independente da apresentação.

semântico, independente da apresentação.

CONCLUSÃO

CONCLUSÃO

Por mais longo que este artigo seja,

Por mais longo que este artigo seja,

ele só abrange o básico

ele só abrange o básico

. Mas

. Mas

agora, a maioria dos leitores da Smashing Magazine entendem que o

agora, a maioria dos leitores da Smashing Magazine entendem que o

web design responsivo é muito mais que usar media queries, escolher

web design responsivo é muito mais que usar media queries, escolher

breakpoints certos e dobrar o tamanho das imagens para celulares de

breakpoints certos e dobrar o tamanho das imagens para celulares de

alta densidade. Como você pode ver, o caminho é longo e ainda não

alta densidade. Como você pode ver, o caminho é longo e ainda não

chegamos lá. Há ainda muitas questões não resolvidas, e a solução

chegamos lá. Há ainda muitas questões não resolvidas, e a solução

responsiva perfeita ainda não existe.

responsiva perfeita ainda não existe.

Soluções técnicas podem ser descobertas no futuro usando alguma

Soluções técnicas podem ser descobertas no futuro usando alguma

nova tecnologia apresentada neste artigo, com a ajuda da

nova tecnologia apresentada neste artigo, com a ajuda da

W3C

W3C

,

,

WHATWG

WHATWG

e organizações como o

e organizações como o

Filament Group

Filament Group

.

.

Mais importante, nós web designers e desenvolvedores podemos

Mais importante, nós web designers e desenvolvedores podemos

ajudar a encontrar soluções ainda melhores. Pessoas como

ajudar a encontrar soluções ainda melhores. Pessoas como

Luke

Luke

Wroblewski

Wroblewski

e

e

Brad Frost

Brad Frost

, e todas as incríveis pessoas mencionadas

, e todas as incríveis pessoas mencionadas

neste artigo estão experimentando uma série de soluções e técnicas

neste artigo estão experimentando uma série de soluções e técnicas

diferentes. Se serão bem ou mal sucedidas,

diferentes. Se serão bem ou mal sucedidas,

a coisa mais importante é

a coisa mais importante é

compartilhar

compartilhar

o que nós - designers, desenvolvedores, estrategistas de

o que nós - designers, desenvolvedores, estrategistas de

conteúdo e membros da comunidade web - estamos fazendo para

conteúdo e membros da comunidade web - estamos fazendo para

tentar resolver alguns dos desafios da comunidade do web design.

tentar resolver alguns dos desafios da comunidade do web design.

Afinal, estamos todos no mesmo barco, tentando tornar a web um

Afinal, estamos todos no mesmo barco, tentando tornar a web um

lugar melhor, não estamos?

lugar melhor, não estamos?

Page 25: Web Design Responsivo

Will Sales

Will Sales

Trabalha e se diverte ao mesmo tempo com Design

Trabalha e se diverte ao mesmo tempo com Design

Digital e Arquitetura de Informação na Sparkle e Fatec

Digital e Arquitetura de Informação na Sparkle e Fatec

Barueri. É graduando em desenvolvimento de

Barueri. É graduando em desenvolvimento de

sistemas para a internet.

sistemas para a internet.

0 comentários

Deixar uma mensagem...

Mais votadosMais votados ComunidadeComunidade ⚙⚙ ⤤⤤CompartilharCompartilhar

Nenhum comentário até o momento.

Feed de com entáriosr Ins crever-s e via em ai l✉

0★

---

---

Traduzido com autorização da

Traduzido com autorização da

Smashing Magazine

Smashing Magazine

.

.

Artigo original escrito por

Artigo original escrito por

Stéphanie Walter

Stéphanie Walter

.

.

Acesse o artigo original na

Acesse o artigo original na

Smashing Magazine

Smashing Magazine

- "The State Of

- "The State Of

Responsive Web Design" - 29 de maio de 2013.

Responsive Web Design" - 29 de maio de 2013.

---

---

02

02

jul

jul

O bbburp! traduz os melhores artigos da web!

O bbburp! traduz os melhores artigos da web!

6

6

17

17