Deneyim

Easing, süre ve bir arayüzün hissi

3 dk okuma
Paylaş
Mor zemin üzerinde izometrik illüstrasyon: S biçimli bir rayda yuvarlanan çelik bilye, kontrol noktalı bir bezier eğrisi çizimi, kare kare ilerleyen bir film şeridi ve bir metronom

Fiziksel dünyada hiçbir şey bir anda hızlanıp bir anda durmaz. Kapı açılırken ivmelenir, fincan masaya yavaşlayarak konur. Ekranda bir öğe baştan sona aynı hızla ilerlediğinde beynimiz bunu mekanik bulur; nedenini söyleyemesek de bir şeylerin “ucuz” durduğunu hissederiz.

Arayüzde hareket süs değildir. Bir öğenin nereden geldiğini, nereye gittiğini ve neyin değiştiğini anlatır. Bunu iyi yapmanın iki aracı var: easing ve süre.

Easing nedir?

Easing, hareketin zaman içindeki hız değişimidir. Bir grafikte yatay eksen zamanı, dikey eksen ilerlemeyi gösterir. Düz bir çizgi sabit hız demektir; eğri ne kadar dikse o anda hareket o kadar hızlıdır.

CSS’te bu eğri cubic-bezier(x1, y1, x2, y2) ile iki kontrol noktası verilerek tanımlanır:

  • Ease-out (hızlı başla, yavaş bitir): ekrana giren öğeler için. Kullanıcıya hemen tepki verir, yerine yumuşakça oturur.
  • Ease-in (yavaş başla, hızlı bitir): ekrandan çıkan öğeler için. Kalkış yapar ve gözden kaybolur.
  • Ease-in-out: ekranda A noktasından B noktasına taşınan öğeler için.
  • Doğrusal (linear): yalnızca sürekli hareketlerde; ilerleme çubuğu, dönen yükleniyor ikonu, renk döngüsü.

İnteraktif

Easing oyun alanı

Bir eğri seçin ya da tutamaçları sürükleyin. Üstteki top seçtiğiniz eğriyle, alttaki doğrusal ilerler; bildirim kartı aynı eğriyle ekrana girer. Önce “Doğrusal”, sonra “Ease out” seçip farkı karşılaştırın.

Eğri
Hız
--motion-ease: cubic-bezier(0.625, 0.05, 0, 1);--motion-duration: 700ms;

Tutamaçları sürükle ya da seçip ok tuşlarıyla oynat (Shift ile büyük adım).

Miova

Çizgiler eşit zaman aralıklarını gösterir: sık dizilim yavaş, seyrek dizilim hızlı demek.

Senaryo

Süre: kısa mı, uzun mu?

Süre için başlangıç noktası, insanın tepki algısıdır. Jakob Nielsen’in 1993’te tanımladığı üç sınır bugün de geçerliliğini koruyor.

Anlık hissi
0,1 sn
Bu sürenin altındaki tepkiler, kullanıcıya doğrudan kendi eylemi gibi gelir.
Düşünce akışı
1 sn
Kullanıcı beklediğini fark eder ama akışı bozulmaz.
Dikkat sınırı
10 sn
Bu noktadan sonra kullanıcı başka işe döner; ilerleme göstergesi şart.

Kaynak: Nielsen Norman Group — Response Times

Arayüz geçişlerinin çoğu bu yüzden 0,1 ile 1 saniye arasında yaşar. Hangi değerin seçileceğini ise hareketin kapladığı alan belirler: küçük bir öğe kısa bir mesafeyi hızlı geçer, büyük bir yüzeyin ekranı kaplaması daha uzun sürer. Bu siteyi tasarlarken kullandığımız süreler bu ilkeyi izliyor.

Veri

Hareketin kapladığı alan büyüdükçe süre uzar

miova.com.tr arayüzünde kullandığımız varsayılan geçiş süreleri.

Hareketin kapladığı alan büyüdükçe süre uzar
KategoriSüre
Menü içeriğinin belirmesi300 ms
Açılır menünün genişlemesi350 ms
Menü arka planının şekil değiştirmesi400 ms
SSS cevabının açılması500 ms
Üst barın daralması650 ms
Sayfa geçişi750 ms
Kaynak: Miova tasarım sistemi

İkinci bir ilke daha var: çıkış, girişten kısadır. Kullanıcı bir menüyü kapattığında onun kaybolmasını izlemek istemez; asıl ilgilendiği, arkasındaki içeriktir. Aynı öğelerin açılış ve kapanış sürelerini yan yana koyunca fark netleşiyor.

Veri

Kapanış, açılıştan her zaman daha hızlı

Menüdeki aynı öğelerin açılırken ve kapanırken kullandığı süreler.

  • Açılış
  • Kapanış
Kapanış, açılıştan her zaman daha hızlı
KategoriAçılışKapanış
Menü içeriği300 ms200 ms
Açılır panel350 ms250 ms
Arka plan karartma300 ms200 ms
Kaynak: Miova tasarım sistemi

İmza eğrisi

Bu sitedeki hareketlerin çoğunda aynı eğriyi kullanıyoruz: cubic-bezier(0.625, 0.05, 0, 1). Hareket bir an toparlanır, sonra kararlı ve hızlı bir şekilde ilerler ve uzun, sakin bir yavaşlamayla yerine oturur. Demoda “Miova” eğrisini seçip doğrusal referansla karşılaştırdığınızda bu karakteri görebilirsiniz.

Aynı eğriyi üst barın daralmasında, butonlarda, slider’larda, logonun animasyonunda ve bu yazıdaki grafiklerin açılışında kullanmak, siteye tek bir el değmiş gibi bir bütünlük verir. Kullanıcı eğrinin adını bilmez ama tutarlılığı hisseder.

Hareketi azaltma tercihi

Bazı kullanıcılar için ekrandaki büyük hareketler baş dönmesi ya da mide bulantısı demektir. İşletim sistemlerinin “hareketi azalt” ayarı tarayıcıya prefers-reduced-motion olarak ulaşır ve buna saygı göstermek gerekir: kayma, paralaks ve büyük ölçek değişimlerini kaldırın, gerekiyorsa yalnızca kısa bir opaklık geçişi bırakın. Bu yazıdaki grafikler ve sayaçlar da bu ayar açıksa animasyonsuz, doğrudan son hâlleriyle görünür.

Performans tarafını da unutmayın: animasyonları transform ve opacity ile yapın. width, height, top ya da left üzerinden yapılan animasyonlar her karede sayfa düzenini yeniden hesaplatır ve özellikle mobilde takılır.

Kısa bir kontrol listesi

  • Giren öğeye ease-out, çıkan öğeye ease-in.
  • Küçük öğe kısa, büyük yüzey uzun sürer.
  • Kapanış, açılıştan kısa olur.
  • Günde yüz kez görülen harekete daha az süre verin, gerekirse hiç vermeyin.
  • Hareket bir şey anlatmıyorsa kaldırın.

Bu yazı nasıldı?