
CSS ile yapılan animasyonlar, kullanıcı arayüzünü daha akıcı ve anlaşılır hale getirir. Basit etkileşimler için çoğunlukla hover (imleçle üstüne gelme), transition (özelliklerin yumuşak geçişi) ve @keyframes (zaman içinde birden çok durak tanımlama) kullanılır. MDN üzerinde transition ve animasyonlar hakkında teknik ve güncel açıklamalara bakabilirsiniz: transition - MDN ve CSS animations - MDN.
Kısa cevap: tek bir stil değişimini (ör. renk, opacity, transform) tetiklemek için transition, daha karmaşık zaman çizelgeleri veya birden fazla adımı ardışık çalıştırmak için @keyframes tercih edilir. Hover etkileşimleri genellikle transition ile yapılır çünkü basit ve hafiftir.
Aşağıdaki örnek, bir bağlantı/buton üzerinde küçük bir büyüme ve renk geçişi uyguluyor. Burada transition özelliği kullanılıyor; transition'ın nasıl çalıştığı için MDN belgelerine bakabilirsiniz: https://developer.mozilla.org/docs/Web/CSS/transition.
CSS (satır satır):
Açıklama: Burada sadece transform ve background-color geçişleri hedefleniyor. Basit etkileşimler için transition kısa ve etkilidir.
Bir kart üzerinde hafif yukarı hareket ve gölge/eğim efekti için transition uygundur. Transition parametreleri (transition-property, transition-duration, transition-timing-function, transition-delay) hakkında detaylı bilgi için MDN'deki transition-duration - MDN (TR) sayfasına bakabilirsiniz.
Açıklama: Opacity ve transform birlikte kullanıldığında, hem görünürlüğü hem de konumu yumuşatarak hoş bir efekt verir.
Eğer bir elemanın yüklenme sırasına göre birden fazla durakla hareket etmesini istiyorsanız @keyframes kullanın. Keyframe animasyonları hakkında MDN'in animasyon rehberini inceleyin: https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_animations.
Not: animation-fill-mode: forwards kullanımı, animasyon bittikten sonra son durumun korunmasını sağlar. Bu özellikle ilgili MDN sayfası için: animation-fill-mode - MDN.
Örneğin bir ikonun hafifçe zıplaması için:
Alternatif olarak animation-direction: alternate ile ileri-geri davranışı sağlayabilirsiniz.
Animasyonların performansı, kullanıcı deneyimini doğrudan etkiler. Genel öneriler:
Hareketten kaçınmayı tercih eden kullanıcılar için prefers-reduced-motion medya sorgusunu kullanarak animasyonları azaltmak iyi bir uygulamadır. Örnek:
Bu, hareket hassasiyeti olan kullanıcılar için daha rahat bir deneyim sağlar. Uygulamada test etmeyi unutmayın.
Hover, transition ve keyframe ile pek çok basit ama etkili animasyon yapılabilir. Basit etkileşimlerde transition, daha uzun veya çok adımlı hareketler için @keyframes idealdir. Performans ve erişilebilirlik kriterlerini göz önünde bulundurarak küçük adımlarla başlayın ve MDN dokümantasyonunu referans alın: MDN Animations, MDN Transition.
Yorumlar