SVG ve CSS ile animasyonlu bir logo nasıl oluşturulur
İyi tasarlanmış seçici animasyonun kullanımının kullanıcı deneyimini geliştirdiği kanıtlanmıştır ve web, web animasyonu için yavaş yavaş HTML5’e geçmesine rağmen, kullanımı da birkaç komplikasyona neden olur. Boşaltılabilen (veya SVG) vektör grafikleri, diğer birçok avantajla birlikte büyük ateşle erişilebilen alternatifler sağlar ve basamaklı stil tabakalarının yaratıcı bir şekilde hafif bir şekilde kullanılması ile animasyona tabi tutulabilir. Bu makale sırasında, SVG kullanmanın diğer tüm avantajlarını öğreneceğiz ve animasyonlu bir logo oluşturmak için CSS ile bir kombinasyonda nasıl kullanılacağını öğreteceğiz.
Söylem neden adından ima edilenden çok havalı olabilen vektör grafikleri, ölçeklenebilir vektör grafikleri bir tür görüntü dosyası biçimi değildir; Bu işaretleme XML dilidir (XHTML veya XOXO gibi). Bu özel işaretleme dili, çözünürlük kaybetmeden büyütülebilen veya azaltılabilen iki boyutlu vektör tabanlı görüntüler yapmak için kullanılır. Bunu perspektife yerleştirmek için, daha fazla mülk formatı hakkında konuşmaya devam etmeden önce basit SVG dosyasının arkasındaki koda bakalım. Aşağıdaki örnek, vektör yolunu izleyerek ve onu renklendirmek için dolgu özniteliklerini kullanarak Adobe logosunun bir kopyasını yeniden üretir. İstediğiniz metin düzenleyiciyi kullanarak kopyalamaktan çekinmeyin (bir .svg dosyası olarak kaydedin) ve ardından sonucu görmek için web tarayıcınıza açın (daha önce tartıştığımız gibi logo ölçeğinin nasıl pürüzsüz olduğuna dikkat edin) .
SVG eylemi.
Tahmin edebileceğiniz gibi, duyarlı bir web sitesi oluştururken bu çok yararlı olabilir. Bununla birlikte, grafik bir vektör kullanılarak oluşturulduğundan, karmaşık görüntüler için gerekenden daha fazla veri alma eğilimindedirler. Bu nedenle, SVG genellikle logolar, infographics veya sıradan grafikler gibi grafiklerin dışında kullanılmaz (bu olsa da). Duyarlı, boşaltılabilen vektör grafiklerine ek olarak, birkaç konjenital grafik etkiye (filtreler veya karışık modlar gibi) sahiptir ve çok kolay erişilebilir bir DOM API’sına sahiptir. Aslında, CSS ve JavaScript’e alışkınsanız (elbette siz, siz rock yıldızınız), SVG dosyalarını çok fazla karmaşıklık olmadan manipüle edebilmelisiniz. Bu esneklik, örneğin, bir sunucu tarafı SVG dosyası oluşturmanıza ve özel bir araç kullanmak zorunda kalmadan kolayca değiştirmenize olanak tanır (daha sonra tartışacağız).Son olarak, SVG, bu makalenin başlığından (veya bu gerçek için yaptığımız tekrarlanan referanslardan) beklediğiniz CSS kullanılarak kolayca canlandırılabilir ve yakında tartışacağız. Ama önce, özel araçlar kullanarak SVG’yi manipüle etmenin gerçek sürecine bakalım. SVG ile nasıl çalışılır Daha önce de belirttiğimiz gibi, istediğiniz şey buysa kendi ellerinizle SVG’ye dalabilirsiniz. Bu tamamen geçerli bir yöntem olmasına rağmen, doğrudan SVG’yi oluşturmak ve manipüle etmek için harika araçlar vardır, bu da basit bir CSS stili veya animasyonundan başka bir şey için bir kodla güreşmeyi verimsiz hale getirir.
Mac için Adobe Illustrator, Inkscape ve Sketch en popüler seçeneklerdir. İllüstratör durumunda, üretim süreci görüntünüzü hazırlamak ve daha sonra ‘SVG olarak kaydetme kullanarak dışa aktarmak kadar kolaydır. Bunu yaparken, gerilme menüsünde listelenen SVG Tiny (akıllı telefonlar için daha uygun) ve SVG BASIC (PDA için kullanılmak üzere amaçlanan eski profiller) gibi çeşitli seçeneklere sahip SVG profili adlı bir seçenek görebilirsiniz, ancak SVG 1.1 kullanmaya devam edin. Talihsiz bir yan, SVG dosyaları oluşturmak için böyle araçların kullanımından kaynaklanır. Temel koda, gerekenden daha büyük dosyalar üreten birçok meta veri ekleyebilmeleridir. Tabii ki, bu web tasarımında bir sorundur, çünkü yanınızdaki zayıf optimizasyon nedeniyle yükleme süresinin artmasını istemezsiniz. Ölçeklenebilir vektör grafiği daha sonra web sitenize koymadan önce (birçok durumda) optimize edilmelidir. Bu noktayı optimize etmeden önce ve sonra Android logosunu tanımlayan örnek SVG dosyasını görelim:
Şimdi boşlukları, varsayılan öznitelikleri, stilleri ve diğer önemsiz verileri kaldırarak optimizasyonun bir kısmını yapacağız:
<Yol D = "M14 40V24M81 40V24M38 68V24M57 68V24M28 42V31H39V-31Z" Strok-genişlik = "10"/ Orijinal SVG dosyası başlangıçta oldukça özlü olmasına rağmen (0.5KB), optimizasyon işlemi dosya boyutunu% 12.5 azaltabildi (0.4kb’ye).Daha karmaşık görüntülerde, daha aşırı dosya boyutlarında bir azalma ve SVG web sitenize uygulandığında yükleme süresinde bir artış göreceksiniz.
Basitlik uğruna, Node.js.’ye dayalı açık kaynaklı bir uygulama olan Peter Collingridge veya SVGO tarafından oluşturulan çevrimiçi SVG optimizasyonu gibi araçları kullanmalısınız. Artık SVG’yi neyin çok yararlı hale getirdiğini ve onunla nasıl çalışacağını öğrendiğimize göre, bu işaretleme dilini kullanarak yapılan grafikleri canlandırmak için CSS’yi nasıl kullanabileceğinize bakalım. SVG’yi bu kadar havalı yapan şey hakkında konuşurken bahsettiğimiz gibi SVG ve CSS ile animasyonlu bir logo oluşturmak, animasyon özelliklerini içeren bazı doğuştan gelen grafik efektleriyle gelirler. Aslında, SVG, yalnızca XML.Annamun işaretlemesinde grafik özelliklerinizi canlandırmanıza olanak tanıyan SMIL (senkronize multimedya entegrasyon dili) olarak adlandırılan animasyon için orijinal bir sözdizimine sahiptir. CSS ve Web animasyonu uğruna bu sözdizimine desteği ortadan kaldırmaktan bahsetmek. SVG’yi canlandırmak için CSS kullanmak da avantaja sahiptir, çünkü SMIL veya JavaScript ile karşılaştırıldığında oldukça basittir (bu işlemi basitleştirmeyi amaçlayan SNAP veya Velocity gibi birkaç kütüphane olmasına rağmen). Şimdi, deşarj vektör grafiği Web Sitesine gömülü görüntüler, CSS arka planı veya sırada entegre edilebilirken, yalnızca son seçenek için CSS animasyonunu kullanabilirsiniz. Bu, yalnızca doğrudan HTML kodumuzdaki SVG işaretlemesini canlandırabileceğimiz anlamına gelir.
Bazı örneklere bakalım. Daha önce tartıştığımız Adobe SVG logosunu hatırlıyor musunuz? Rengi değiştirmek için basit bir Hover animasyonu ve geçiş efekti kullanacağız. Vektör yolu için sınıfı belirleyerek (Adobe-Logo adını vereceğiz), ardından stil dosyamızdaki o sınıfa efekt ekleyerek başlıyoruz. İşte html ekranı:
SVG geçişleri
kullanılarak yeniden oluşturulan Adobe Logosu
Şimdi styles.css dosyamıza geçiyoruz:
/* ————————-
Burada biraz dolgu ekliyoruz ve bir genişlik belirtiyoruz.
————————–
Gövde {
Dolgu Top: 5EM;
}
Svg {
Genişlik:%33.32;
Şamandıra: sol;
}
/* ————————-
Şimdi gerçek animasyonu ekliyoruz.
————————–
.Adobe-logo {
Geçiş: .3s kolaylık;
}
.Adobe-logo: Hover {
Dolgu: #3881cc;
}
Ki şu şekilde görünecek:
Yüzen animasyon yerine, efekt ve çizikleri aynı SVG grafiğine eklemek istiyorsanız, kod şu şekildedir: /* ———————- ——–
Doldurma ve vuruşlar.
————————–
.Adobe-logo {
İnme: #Fee16e;
.Adobe-logo: Hover {
Dolgu: #feae6e;
İnme genişliği: 8;
}
.Adobe-logo {
Geçiş: .3s kolaylık;
}
Her şey hazır olduğunda, böyle görünecek olan budur:
Bunlar, SVG grafiğinde CSS kullanarak neler başarabileceğinizin sadece birkaç basit örneğidir, ancak gerçek ilham almak istiyorsanız, gruplandırma, dönüşüm, rotasyon, ölçeklendirme ve hatta anahtar çerçeveler gibi diğer teknikler kullanılarak hangi örneklere ulaşılabileceğine bakalım. CSS: Oldukça temiz, değil mi? Gördüğünüz gibi, CSS, SVG ile birlikte oldukça karmaşık şeyler elde etmek için kullanılabilir. Daha fazla harika örnek bulmak için Codepen ve CSSDECK’i taramak istemiyorsanız, ilhamınız için 30 olağanüstü SVG animasyonuna bakın. Son olarak, CSS animasyonunun çeşitli sınırlamaları olduğu belirtilmelidir. Örneğin, elemanların gerçek şeklini değiştirmenize izin vermez; Bunun için JavaScript animasyonunu kullanmanız gerekir. Bu konu hakkında daha fazla okuma için, SVG’yi canlandırmak için bkz. 8 JavaScript Kütüphanesi. Sonuç Doğru kullanılırsa, animasyon kullanıcı deneyimini ve sitenin genel tasarımını geliştirebilir. CSS ile kombinasyon halinde SVG, onu uygulamak için zarif bir yol sunsa da, ihtiyaçlarınız için en uygun olanı bulana kadar deneyebileceğiniz birçok yöntem vardır. SVG için CSS Animation’ı kullanmayı seçerseniz, yukarıdaki önerileri izlemeyi unutmayın: Uyumlu bir grafik düzenleyicisi seçin.
SVG kodunuzu daima optimize etmeyi unutmayın.
Bu tekniği kullanarak yalnızca ‘basit’ animasyonları uygulayabileceğinizi unutmayın.