Mikro Etkileşimler & Framer Motion: Core Web Vitals'ı Bozmadan Premium His
İnce animasyonlarla Framer Motion kullanarak premium kullanıcı hissi nasıl yaratılır – LCP, CLS ve INP'yi öldürmeden. Kod örnekleri, sahadan hatalar ve altın fizik kuralı.

Cagri Ersöz
Cagri Ersöz, Hannover'deki dijital ajans Storyable'ın kurucusu ve genel müdürüdür. Satış psikolojisine dayalı web tasarımı ve full-stack geliştirme (Vue.js, Nuxt, React) deneyimiyle KOBİ'ler için 50'den fazla dijital projeyi hayata geçirmiştir. Uzmanlık alanları: dönüşüm optimizasyonu, yapay zeka entegrasyonu ve veri odaklı pazarlama.
Şimdi İletişime GeçBu makalenin içeriği↓
Mikro etkileşimler olmayan bir web sitesi PowerPoint tıklaması gibi hissettirir. Abartılı animasyonlu bir site ise kumarhane slot makinesi. İkisinin arasında, kullanıcının açıklayamadığı ama anında hissettiği o premium duygu vardır.
Mikro etkileşimler modern web tasarımının bilinçaltına gönderdiği kalite sinyalleridir. Hannover'deki Storyable ekibi olarak her özel kodlu websiteye bunları yerleştiriyoruz, çünkü göz takibi çalışmalarından biliyoruz: Apple yazı tipi yüzünden pahalı görünmüyor. Apple her butonun, her toggle'ın, her sayfa geçişinin fiziksel bir tepki gösterdiği için pahalı görünüyor. Bu rehberde dört kategoriyi, Next.js ve React için somut Framer Motion mantığını, en sık yapılan hataları ve animasyondan değil – ölçülülükten kazanan sektörleri bulacaksın.
Mikro Etkileşimler Nedir – Ve Neden Bilinçaltı Kalite Sinyali Gönderir?
Mikro etkileşim, tek bir kullanıcı ihtiyacını karşılayan odaklanmış, tek seferlik mini animasyondur: onay, durum, geçiş, beklenti. 100–500 milisaniye sürer, dekoratif değildir ve somut bir geri bildirim üretir.
İnsan bu animasyonları düşünmez. Hisseder.
- Tıklamada hafifçe büyüyen bir buton "tıklamanı algıladım" der
- Doğrulama hatasında titreyen bir form alanı "burada problem var" der
- Sert kesmeyen sayfa geçişi "kaybolmuyorsun – seni oraya götürüyorum" der
Bu sinyaller bilinçaltında şu soruyu cevaplar: "Bu site profesyonel mi yoksa amatör işi mi?" Bunu anlayan, özel kodlu web tasarımlarımızın aynı içerikle WordPress şablonlarına göre %40'a kadar daha çok dönüştürmesinin nedenini anlamış olur – bilinçaltı kaliteyi stok fotoğraflarla dolu ekranlardan değil, tepki örüntülerinden okur. Bu sinyallerin arkasındaki dönüşüm psikolojisini detaylı olarak psikolojik web tasarım rehberimizde bulabilirsin.
Profesyonel İpucu: Bir animasyonu kaldırdığında hiç kimse fark etmiyorsa – gereksizmiş demektir. Onsuz arayüz ölü hissediyorsa – gerçek bir mikro etkileşimmiş demektir.
4 Kategori: Feedback, Triggers, Loops, Modes
Dan Saffer ("Microinteractions", O'Reilly) modeli oluşturdu. Biz 100'ün üzerinde Storyable projesinde keskinleştirdik. Bu dört kategori anlamlı mikro etkileşimlerin %95'ini kapsar.
1. Feedback – "Seni Duydum"
En önemli kategori. Her tıklama, her hover, her giriş 100ms içinde görünür şekilde tepki vermeli. Aksi halde kullanıcı eyleminin gidip gitmediğinden emin olamaz.
- Buton basışı + scale-down (
scale: 0.97) - Renk veya gölge geçişi ile hover durumu
- Focus-ring ve label-float ile form alanı
- Başarılı submit sonrası toast bildirimi
2. Triggers – "Burada Bir Şey Yapabilirsin"
Affordance'lar. Bu animasyonlar kullanıcıya bir şeyin etkileşimli olduğunu anlatır. Klasik: agresif dans etmeyen, her 4 saniyede %2 nefes alan ince pulse'lı CTA butonu.
- Hero'da "nefes alan" Primary CTA
- Kartlarda hover-lift (
y: -4px, shadow: lg) - Önemli öğelerde mıknatıs efektli imleç değişimi
- Above-the-fold'ta scroll-hint oku (3 saniyede dönüşen hero bölümü rehberimizle bağlantılıdır)
3. Loops – "Şu An Bir Şey Oluyor"
Durum animasyonları. Loop olmadan kullanıcı "donmuş" bir ekran görür ve sayfanın çöktüğünü düşünür. Loop ile sistem çalışıyor mesajı verilir.
- Çıplak spinner yerine skeleton loader
- Yükleme veya çok adımlı süreçlerde progress bar
- Yazarken canlı arama göstergesi
- Uzun API çağrılarında pulse animasyonu
4. Modes – "Şu An X Durumundasın"
Durumlar arası geçişler. Modal açılır, drawer kayar, tab değişir. Bu animasyonlar bilişsel kopukluğu önler – beyin bağlam değişimini hareket sayesinde anlar, yeniden organize etmek zorunda kalmaz.
- Backdrop-fade + scale-in ile modal
- Slide-translation ile sidebar drawer
- Height animasyonu ile akordiyon açılımı
- Yeni konuma kayan tab-underline
Next.js & React'te Framer Motion: Somut Mantık
Framer Motion React animasyonlarının fiili standart kütüphanesidir. Doğru kullanılırsa motor altında sadece GPU hızlandırmalı property'ler kullanır (transform, opacity, filter). Storyable'da her ölçeklenebilir web mimarisinde kullandığımız pattern'lar.
Pattern 1: Buton Feedback (Feedback Kategorisi)
import { motion } from "framer-motion"
export function PrimaryButton({ children, onClick }) {
return (
<motion.button
whileHover={{ scale: 1.03 }}
whileTap={{ scale: 0.97 }}
transition={{ type: "spring", stiffness: 400, damping: 17 }}
onClick={onClick}
>
{children}
</motion.button>
)
}
whileHover ve whileTap deklaratiftir – useEffect yok, state yönetimi yok. Spring fiziği eylemsizliği simüle ettiği için doğal hissettirir. Stiffness 400 + Damping 17 butonlarımız için Storyable varsayılan eğrisidir.
Pattern 2: Scroll-Reveal (Triggers Kategorisi)
import { motion } from "framer-motion"
export function FadeInSection({ children }) {
return (
<motion.div
initial={{ opacity: 0, y: 24 }}
whileInView={{ opacity: 1, y: 0 }}
viewport={{ once: true, margin: "-100px" }}
transition={{ duration: 0.5, ease: "easeOut" }}
>
{children}
</motion.div>
)
}
once: true ile whileInView animasyonu ilk scroll'da tek seferlik tetikler. -100px margin animasyonu eleman tam görünmeden önce başlatır – içerik "beklenir" hissi verdiği için premium duygusu oluşur.
Pattern 3: Sayfa Geçişi (Modes Kategorisi)
import { motion, AnimatePresence } from "framer-motion"
import { useRouter } from "next/router"
export function PageWrapper({ children }) {
const router = useRouter()
return (
<AnimatePresence mode="wait">
<motion.main
key={router.asPath}
initial={{ opacity: 0, y: 12 }}
animate={{ opacity: 1, y: 0 }}
exit={{ opacity: 0, y: -12 }}
transition={{ duration: 0.25 }}
>
{children}
</motion.main>
</AnimatePresence>
)
}
mode="wait" ile AnimatePresence yeni sayfa girmeden önce exit animasyonunun bitmesini bekler. Asla aynı anda ikisini birden çalıştırma – görsel kirlilik yaratır.
"Bir animasyonun bir görevi olmalı. Yoksa o efekt değil – gürültüdür."
En Sık Yapılan Hatalar: LCP ve CLS'yi Bozan Animasyonlar
Hobby implementasyonlarının %80'i burada başarısız olur. Animasyonlar ancak transform ve opacity üzerinde çalışırsa performanslı olur. Layout property'lerine dokunduğun anda tarayıcı reflow tetikler – ve Core Web Vitals'ın kırmızıya düşer.
| ❌ Hata | ✅ Doğru | Neden |
|---|---|---|
width: 0 → 300px animasyonu | scaleX: 0 → 1 | Reflow INP'yi öldürür, CLS yükselir |
Modal'ı top/left ile konumlandırmak | transform: translate(...) | Top/Left layout-recalc tetikler |
height: auto animasyonu | motion.div + layout prop | Auto değerleri GPU hızlandırılmaz |
| LCP image'den önce hero animasyonu | Animasyon onLoadingComplete'den sonra | LCP elemanını geciktirir |
Statik markup için <motion.div> | Native HTML, sadece gerektiğinde Framer Motion | Bundle boyutu + hidrasyon maliyeti |
| Hero'da 30+ animasyonlu eleman | Maksimum 5–7 öğe ile stagger | Main-thread bloklanması |
prefers-reduced-motion olmadan repeat: Infinity | Media query ile koruma | Erişilebilirlik + INP |
LCP Katili: Hero Görselini Engelleyen Animasyonlar
Hero görselin 800ms fade animasyonundan sonra görünüyorsa LCP'ni 1,2s'den 2,0s'ye kaydırmışsın demektir. Google bunu cezalandırır. Çözüm: Hero görseli loading="eager" ve fetchpriority="high" ile anında render et. Animasyonu altındaki öğelere uygula.
CLS Katili: Yer Ayrılmamış Layout Animasyonları
Çevre içeriğin yer ayırmadığı "açılan" bir kart, altındaki her şeyi iter. CLS fırlar. Çözüm: min-height rezerve et, layout animasyonu için <motion.div layout> kullan – Framer Motion ölçümü kendi yapar ve temiz animasyonlar üretir.
Premium UX'e sahip ama 1 saniye altında yüklenen bir web sitesi mi istiyorsun? Next.js ve Framer Motion ile özel kodlu web siteleri inşa ediyoruz – PageSpeed Insights'ta 95 puan eşiğini sadece geçmekle kalmıyor, koruyoruz. Projen hakkında konuşalım.
Altın Kural: Animasyon Fizik Gibi Hissetmeli, PowerPoint Efekti Gibi Değil
"Ucuz" ile "premium" arasındaki fark burada yatar. PowerPoint animasyonları lineer ve anidir. Gerçek animasyonlar Newton'un hareket yasalarına uyar: ivme, yavaşlama, eylemsizlik, sönümlenme.
Animasyonun Doğal Hissedip Hissetmediğinin 3 Testi
- Easing Testi: Asla
linearveyaeasekullanma. Giren hareket içineaseOut, çıkan hareket içineaseIn, etkileşimli durumlar içinspring - Kütle Testi: Büyük öğeler daha yavaş hareket eder. Modal (büyük) 350ms ister, buton (küçük) 150ms
- Bounce Testi: Spring animasyonlarda Damping ≥ 15 ZORUNLU – aksi halde UI 2014'ün ucuz JavaScript demosu gibi sallanır
Stagger – Premium'u Yapan Detay
5 eleman aynı anda fade in olursa loading gibi görünür. 50ms gecikmeyle ardarda fade in olursa kompozisyon gibi görünür. Filmlerin gerilim kurma trikiyle aynı – Apple, Linear ve Vercel her sayfada kullanır.
const container = {
hidden: {},
show: { transition: { staggerChildren: 0.08 } }
}
const item = {
hidden: { opacity: 0, y: 16 },
show: { opacity: 1, y: 0 }
}
Animasyonun Zarar Verdiği Yerler: Ölçülülüğün Daha Çok Dönüştürdüğü Sektörler
Tasarımcı egolarına dokunan kısım: Her sektör mikro etkileşimden faydalanmaz. Storyable denetimlerinde gördük – abartılı animasyonlar bazı sitelerin dönüşüm oranını düşürdü.
Hukuk Büroları, Mali Müşavirler, Noterler
Hukuk bürosu websitesindeki kullanıcı tek bir şey arar: güven. Spring efektli animasyonlu hero bölümü ciddiyetin tam tersini sinyalize eder. Hukuk bürosu web tasarımı deneyimimiz gösteriyor: ölçülülük zorunlu. Basit hover durumları – fazlası değil.
Doktor ve Diş Hekimi Klinikleri
Hastalar duygusal hassas durumdadır (endişe, ağrı, belirsizlik). Aşırı animasyonlar telaşlı hisseder. Modal ve akordiyon için yumuşak mode animasyonları tamam. Spring zıplama, scroll-trigger gösteri efektleri: lütfen yapma. Bunu resepsiyonu rahatlatan klinik web siteleri yazımızda netçe belgeledik.
Sigortalar, Cenaze Hizmetleri, Bakım Hizmetleri
Aynı mantık: güven yenilikten önce gelir. Burada temiz tipografi + düzgün hover feedback yeterli.
Animasyonun Her Zaman Faydalı Olduğu Yerler
- E-ticaret (sepete ekleme animasyonu, skeleton loader)
- SaaS ürünleri (onboarding, özellik keşfi)
- Yaratıcı sektörler (ajanslar, fotoğrafçılar, müzisyenler)
- Restoranlar (storytelling, deneyim olarak menü)
- Tech startuplar (WordPress kalabalığından farklılaşma)
Dikkat: Animasyon refactor'undan ÖNCE mutlaka prefers-reduced-motion media query'sini implement et. Vestibüler bozukluğu olan kullanıcılar abartılı animasyonlarda mide bulantısı yaşayabilir. Framer Motion bunu otomatik olarak useReducedMotion() hook'u ile destekler – kullan.
Deployment Öncesi 8 Maddelik Kontrol Listesi
- Lighthouse skoru ≥ 95? CLS < 0.1, INP < 200ms?
- Layout property'lerinde animasyon yok mu (width/height/top/left)?
prefers-reduced-motionsaygı görüyor mu?- Hero görseli ilk animasyondan ÖNCE yükleniyor mu?
- Gerekmedikçe
repeat: Infinityyok mu? - Bölüm başına maksimum 5–7 stagger öğesi var mı?
- Animasyon süresi 150–500ms mi (sayfa geçişi hariç)?
- Easing:
easeOut,easeInOutveyaspring–linearasla?
8 kutucuğun hepsi işaretliyse premium UX ve yeşil Core Web Vitals sahibi bir siten var. Bu çelişki değil – WordPress tema alıcılarının sahip olamayacağı disiplin.
Sonuç: Mikro Etkileşimler Süs Değil, Kalite Sinyali
Mikro etkileşimler kullanıcının bilinçaltında web sitenin "profesyonel" mi yoksa "ucuz" mu göründüğüne karar verir. React ve Next.js'te Framer Motion ile Apple, Linear ve Vercel'in çalıştığı aracı elinde tutarsın – ama sadece performans disiplinini de getirirsen: yalnızca GPU property'leri, prefers-reduced-motion saygısı, Hero LCP'sini engellememe ve hukuk büroları ya da klinikler gibi ciddi sektörlerde bilinçli ölçülülük. İyi animasyonun bir görevi vardır. Yoksa gürültüdür – ve gürültü dönüşüm oranlarını Google'ın algoritma güncellemelerinden daha hızlı öldürür. Mikro etkileşimleri doğru kullanan, web sitesi inşa etmiyor. Kullanıcının açıklayamadığı ama anında hissettiği bir deneyim inşa ediyor.

Premium UX ile 95 PageSpeed skoru – ikisini birden inşa ediyoruz.
Apple gibi hisseden ama statik PDF gibi yüklenen bir site mi istiyorsun? Framer Motion, Next.js ve Core Web Vitals disiplinini her özel projede birleştiriyoruz. 30 dakikalık ücretsiz ön görüşmede mevcut sitenin nerede performans puanı kaybettiğini ve animasyondan vazgeçmeden nasıl geri kazanabileceğimizi gösteriyoruz.
Sıkça Sorulan Sorular
Bu konuyla ilgili en önemli soruların hızlı cevapları
Mikro etkileşimler nedir?+
Framer Motion Core Web Vitals'ı bozar mı?+
Animasyondan ne zaman kaçınmalıyım?+
CSS animasyonu ile Framer Motion arasındaki fark nedir?+
Optimal animasyon süresi nedir?+
Animasyonlarımın performansı bozup bozmadığını nasıl ölçerim?+
İlgili Yazılar
Bu konu alanından diğer yazılar

Above the Fold 2026: 3 Saniyede Dönüştüren Hero Bölümünün Anatomisi
Ziyaretçilerinin %55'i hiç aşağı kaydırmıyor. 3 saniyede ikna eden hero bölümünün anatomisi – başlık formülü, CTA psikolojisi ve 10 maddelik kontrol listesi ile.

Profesyonel Web Sitesi: İşletmeler 2026'da Neden Onsuz Yapamaz
Profesyonel web sitesi neden ciroyu ve güveni belirler. SEO, yapay zekâ araması, hız ve satış psikolojisi – Hannover'dan gerçek rakamlar ve Storyable standardıyla.

2026'da Web Tasarım: Online Satış Yapmak İsteyen İşletmeler İçin Eksiksiz Rehber
Profesyonel web tasarım hakkında bilmeniz gereken her şey: UX, performans, SEO, dönüşüm optimizasyonu, maliyetler ve teknoloji seçimi. Hannover'daki Storyable'dan eksiksiz rehber.