Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/vagnerbellacosa/curso_svg_graficos
Explorando a criação de Gráficos SVG e seus secretos, mergulhando nas imagens vetoriais
https://github.com/vagnerbellacosa/curso_svg_graficos
css html image javascript svg vetores
Last synced: about 7 hours ago
JSON representation
Explorando a criação de Gráficos SVG e seus secretos, mergulhando nas imagens vetoriais
- Host: GitHub
- URL: https://github.com/vagnerbellacosa/curso_svg_graficos
- Owner: VagnerBellacosa
- License: gpl-3.0
- Created: 2021-05-31T19:54:18.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2021-07-09T19:23:28.000Z (over 3 years ago)
- Last Synced: 2024-11-09T04:25:03.573Z (about 2 months ago)
- Topics: css, html, image, javascript, svg, vetores
- Language: HTML
- Homepage:
- Size: 952 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# SVG
## O que é SVG?
##### Akira HanashiroO nome SVG vem de Scalable Vector Graphics (Gráficos Vetoriais Escaláveis). Ele é basicamente um formato de imagem vetorial suportado pelos navegadores e que pode ser animado/modificado por CSS e JavaScript. Para saber mais sobre imagens vetoriais e a diferença em relação às imagens comuns, dê uma olhadinha no nosso post sobre O que são imagens vetoriais?.
## Quais as vantagens do SVG?
O SVG possui várias vantagens, como:- podem ser animados por CSS e modificados por JavaScript
- por serem imagens vetoriais, você pode alterar o tamanho livremente sem perda de qualidade da imagem
- podem ser embutidos no HTML, diminuindo a quantidade de requisições
- você não precisa de um super editor de imagens para trabalhar com SVG. Algumas coisas simples você pode editar com o seu próprio editor de código ou usar até mesmo um programa gratuito online
- possui várias funcionalidades que ainda são impossíveis ou muito complexas de se fazer com HTML e CSS, nos permitindo criar formas e efeitos mais complexos para nossas páginas web
- como pode ser integrado com CSS, podemos usar Media Queries para criar imagens responsivas## Começando com SVG
Não precisamos de editor de imagem para começar com SVG. Você pode usar o mesmo programa que usa para escrever seu HTML.
Podemos criar uma imagem SVG em um arquivo .svg e depois chamar em nosso HTML usando a tag , mas também pode-se, dentro do seu próprio HTML, criar uma tag e começar a escrever o código dentro dele.
Vamos começar a declarar um retângulo. Para isso usamos o elemento .
~~~
~~~
## Vamos entender o que fizemos:
- declara que queremos criar um retângulo
- width e height servem para declararmos a largura e altura do elemento
- fill serve para declararmos a cor do preenchimento do elemento
- x e y servem para indicarmos a posição do elemento
- stroke nos permite declarar a cor da linha de contorno do elemento
- stroke-width declara a grossura da linha de contorno do elementoOutro elemento muito comum é o , que serve para criar um círculo.
~~~
~~~
Vamos entender o que fizemos:
- declara que queremos criar um círculo-
- r indica o raio do círculo, então é por aqui que indicamos o tamanho
- ao invés de posicionarmos o círculo com x e y, são usadas as propriedades cx e cy
- Há outros elementos também como line, polyline, polygon, path e text.
## SVG com CSS e JavaScriptComo dito anteriormente, o SVG pode facilmente ser integrado com CSS e JavaScript, permitindo que a gente o controle como quisermos.
Como exemplo, vamos criar um outro círculo, mas ao invés de escrever as propriedades diretamente na tag , vamos adicionar uma classe CSS e escrever essas propriedades no CSS.
~~~
~~~
~~~
.meu-circulo{
r: 30;
cx: 50;
cy: 40;
fill: lightgreen;
stroke: orange;
stroke-width: 5;
}
~~~Lembre-se que podemos fazer animações com CSS. Vamos criar uma transição simples para quando passarmos a seta do mouse por cima do círculo, mudando sua posição e cores:
~~~
.meu-circulo{
r: 30;
cx: 50;
cy: 40;
fill: lightgreen;
stroke: orange;
stroke-width: 5;
transition: all 1s ease;
}.meu-circulo:hover{
cx: 70;
fill: green;
stroke-width: 10;
}
~~~Também podemos integrar com JavaScript. Vamos pegar esse e criar uma função que aumente o r dele ao clicarmos:
~~~
const circle = document.querySelector('.meu-circulo');
let r = 30;circle.addEventListener('click', () => {
r += 10;
circle.style.r = r;
})
~~~É importante saber que só podemos integrar o SVG com CSS e JavaScript se ele estiver no corpo do HTML, como fizemos. Se você chamar uma imagem SVG com a tag não dará certo.
No próximo post veremos como começar a trabalhar com o Inkscape, um software gratuito para a criação de imagens vetoriais que utiliza o SVG como formato de arquivo.
[Artigo original](https://www.treinaweb.com.br/blog/comecando-com-svg-no-front-end-parte-1)