Butuh
grafik untuk website kamu? Butuh grafik yang tampilannya bisa diubah
secara dinamis sesuai kebutuhan? Atau butuh grafik yang akan
dianimasikan? Kalau kamu menjawab iya untuk salah satu pertanyaan
tersebut, berarti kamu layak menilik SVG lebih lanjut sebagai salah satu
aset grafik untuk website kamu. Melalui artikel ini, kita akan mengenal
SVG sekaligus mempelajari bagaimana ia bisa digunakan untuk
meningkatkan aspek visual dari sebuah website.
SVG
(Scalable Vector Graphic) adalah sebuah format gambar. Sesuai namanya,
ia menampung data dari sekumpulan vector atau kumpulan koordinat.
Selanjutnya, sebuah file SVG akan mendeklarasikan bagaimana
koordinat-koordinat ini terhubung, bentuk apa yang dihasilkan, apa
warnanya, dan seterusnya. Kita bisa membuka sebuah file SVG dengan
editor teks untuk melihat apakah isinya dan mengamati strukturnya.
Sebagai contoh, berikut adalah contoh gambar SVG berikut isi di dalamnya
<?xml version="1.0" encoding="UTF-8"?> <svg xmlns="http://www.w3.org/2000/svg" width="240" height="240"> <path fill="#F8D64E" d="m48,234 73-226 73,226-192-140h238z"/> </svg>
Berkas SVG di atas membuat bintang dengan menghubungkan beberapa titik yang ditentukan oleh atribut
d
milik properti path
. Atribut SVG kemudian diisi dengan beberapa perintah:m
menyatakan move.m48,234
berartipath
dimulai dari titik x=48 dan y=234h
menyatakan horizontal, atau menggambar garis horizontalz
menyatakan untuk kembali ke titik awal
Selama membuat
path
garis akan digambar dari titik awal, dan terus mengikuti urutan titik yang dinyatakan dalam berkas.
Format
SVG berbeda dengan format gambar berbasis bitmap seperti BMP, JPG, PNG,
dan sebagainya. Perbedaan utamanya adalah SVG tidak akan berkurang
kualitas ketajamannya apabila ukurannya diperbesar. Ini karena sifatnya
sebagai penampung vector tadi, di mana yang diatur bukanlah berapa jarak
antar vector melainkan bagaimana hubungan di antara mereka. Hal ini
berbeda dengan format BMP yang sudah menyimpan terlebih dahulu ukuran
gambar, baru menentukan warna di setiap pixel pada gambar.
Sebuah
berkas SVG bisa dibuat dengan menggunakan aplikasi menggambar yang
sekaligus menjadi penyunting vector. Beberapa nama yang terkenal
misalnya Adobe Illustrator, Sketch, Inkscape dan lainnya. Dari sini,
kita bisa mengekspor gambar yang dibuat menjadi berkas dengan tipe SVG.
Poin bonus untuk SVG, karena aplikasi-aplikasi ini lazim digunakan oleh
desainer, sebagai developer, kita bisa bekerja sama dalam tim dengan
lebih mudah. Desainer bisa menggambar untuk menghasilkan SVG, dan
selanjutnya developer mampu memanipulasi berkas tersebut sesuai
kebutuhan. Jika diinginkan, developer bisa mengubah isi dari sebuah
berkas SVG hanya dengan editor teks, tanpa membuka aplikasi penyunting
gambar.
Fleksibilitas
SVG akan nampak saat ia dipasang dalam halaman web. Saat digunakan di
dalam browser, berkas SVG akan dimuat dan setiap elemen di dalamnya bisa
diakses sebagai DOM. Tentu saja, ini adalah sebuah faedah yang besar,
karena developer jadi bisa mengubah properti setiap elemen baik dengan
CSS maupun JavaScript. Ingin mengganti warna? Memperkecil ukuran gambar?
Atau bahkan menjalankan fungsi tertentu saat sebuah bagian di gambar
diklik? Semua bisa dilakukan melalui kode. Secara kerjasama tim, tentu
ini besar sekali manfaatnya, karena aset gambar tidak perlu dikembalikan
ke desainer untuk mengaplikasikan perubahan yang bisa ditangani oleh
kode.
Sebagai contoh, gambar bintang tadi bisa kita manipulasi dengan menambahkan
class
di dalam path
miliknya. Kemudian, dengan CSS, kita bisa mengakses dan mengganti properti fill
milik path
tersebut.<!-- html -> <body> <svg width="240" height="240"><path id="star" fill="#F8D64E" d="m48,234 73-226 73,226-192-140h238z" class="default"/> </svg> </body>
/* CSS */ .active { fill: #004566; }
.default { fill: #00bb45; }
Tentu saja, tidak sulit membayangkan untuk melakukan ini secara dinamis. Kita bisa menggunakan JavaScript untuk mengganti
class
milik berkas SVG tadi.
Karena
fleksibilitasnya sebagai DOM, belakangan ini, SVG menjadi sebuah format
gambar yang penggunaannya meningkat pesat. Berbagai library lahir untuk mempermudah pengaplikasian SVG untuk berbagai kebutuhan. Sebagai contoh, untuk melakukan visualisasi data, ada d3.js yang pada dasarnya bekerja dengan memanipulasi SVG untuk membuat berbagai chart dan diagram, mulai dari diagram batang, pie chart, hingga peta. Saat ini, d3.js sudah menjadi library de facto untuk
melakukan visualisasi data di web dan untuk mendapatkan manfaat lebih
banyak dari penggunaannya, tentu kita jadi perlu mempelajari SVG lebih
lanjut.
Selain itu, ada juga library Snap.svg
yang akan mempermudah dalam membuat animasi menggunakan aset SVG yang
sudah ada. Penggunaannya pun mudah. Snap akan memilih nama aset SVG,
selanjutnya kita cukup menentukan properti apa yang ingin dianimasikan,
serta bagaimana transisi akan dilakukan. Tutorial singkat di halaman dokumentasi Snap menunjukkan dengan jelas bagaimana langkah tersebut dilakukan.
Melalui paparan singkat ini, kita telah melihat bagaimana berkas SVG dibuat, dimuat di browser serta dimanipulasi menggunakan CSS, JavaScript ataupun menggunakan library lain.
Dengan menggunakan SVG, kita bisa mendapatkan aset visual yang akan
selalu nampak tajam di berbagai ukuran layar, sempurna untuk website di
era responsive design. Fleksibilitas SVG ini membuatnya menarik untuk digunakan.
Sumber : https://blog.framework.id/serunya-menggunakan-svg-scalable-vector-graphic-de4f111343e9
Tidak ada komentar:
Posting Komentar