Criando experiências com – SVG



Criando experiências com – SVG

1 3


semcomp-2015

My slides to SEMCOMP 2015.

On Github willianjusten / semcomp-2015

Criando experiências com

SVG

Willian Justen

Software Engineer

As vezes eu escrevo...

willianjusten.com.br

E faço código open source também...

github.com/willianjusten

Scalable Vector Graphics (SVG) É uma imagem vetorial no formato XML que suporta interatividade e animações.

Por que vetor?

Devices e mais devices...

Densidade de Pixel

Mas é só para isso?

Mais motivos para usar SVG

  • Responsivo e Adaptativo
  • Ótimo suporte (até IE8!)
  • Pode ser minificado (GZIP)
  • Interativo e Estilizável
  • Possui efeitos próprios
  • Possui acessibilidade
  • E mais...

Por onde começo?

Criar

Illustrator

Sketch

Inkscape

willianjusten.com.br/onde-baixar-svg

Otimização

SVG OMG

Automação

SVG-GRUNT-OPTIMIZER

Como funciona?

Estrutura


          
  • SVG: elemento pai que irá conter o desenho
  • Version: versão utilizada para criação
  • xmlns: namespace do svg e sua especificação

Rect


          

Circle


          

Ellipse


          

Line


          

Polyline


          

Polygon


          

Path


          Veja mais no codepen
        

Estruturando, agrupando e referenciando

Group


        

Use


        

Defs


Como usar?

Como imagem


          
  • Imagens podem ser cacheadas.
  • Sem interação de CSS.
  • Sem edição no DOM.
  • Animações só funcionam se estiverem dentro do SVG.

Como background

.logo {
	background-image: url(logo.svg);
}
  • Imagens podem ser cacheadas.
  • Sem interação de CSS.
  • Sem edição no DOM.
  • Animações só funcionam se estiverem dentro do SVG.

Como object

	

  • Imagens podem ser cacheadas.
  • Permite edição no DOM.
  • Possui mecanismo de fallback.
  • Animações só funcionam se estiverem dentro do SVG.

Iframe e Embed

	<!-- fallback here -->


Só não usem isso...

Inline SVG


          
  • Imagens não podem ser cacheadas.
  • Permite edição no DOM.
  • Animações e Interações de CSS.
  • Sem requests HTTP adicionais.

Como estilizar?

Propriedades de estilo

Artigo da W3C sobre o assunto

Métodos para Estilizar

Estilo Inline


          

Útil quando não se tem acesso a uma folha de estilo independente ou se deseja fazer uma rápida modificação.

Estilo dentro do SVG


          

Útil quando se deseja componentizar um elemento SVG, visto que sua estrutura e todo o seu estilo pode ser facilmente movimentado entre sistemas diferentes.

Estilo no HTML


          

Pouco utilizado, manutenção não muito adequada.

Estilos externos



Quando se deseja separar o svg do estilo. Lembrando que podemos fazer chamadas comuns como se fosse css normal, utilizando "link href=style.css"

Demo time!

Imagens Responsivas e Adaptativas

Link no CodepenTutorial no blog

Fragment Identifiers

    
        
Link no codepenTutorial no Blog

Interatividade

MenuLink do Codepen

Animação CSS

Tutorial no BlogLink do Codepen
Tutorial no Blog
Site do Exemplo

Animações com Smill

Salvar Tutorial no blogLink no codepen

Dasharray e dashoffset

Hover Link do Codepen

Line Drawing

Link do Codepen

Filtros

Masks e Clip-paths

Patterns

E muito mais!

Quer saber mais? github.com/willianjusten/awesome-svg

Obrigado!

Slides:

bit.ly/semcomp-svg
Criando experiências com SVG