Telefon, tablet, bilgisayar - her ekranda mükemmel görünüm.
Muzibu'yu telefonunuzda, tabletinizde veya bilgisayarınızda açın - her yerde düzgün çalışır! Ekran küçükse menüler daralır, butonlar büyür. Ekran genişse tüm detaylar görünür. Su gibi: Hangi kaba koyarsanız ona uyum sağlar.
Sol üstteki butona dokun, menü açılır. Yerden tasarruf sağlar.
Tüm butonlar en az 44x44 piksel. Parmakla rahat basılır.
Sağa kaydır: Sonraki şarkı. Sola kaydır: Önceki şarkı.
Mini player'a dokun, tam ekran açılır. Büyük albüm kapağı, kolay kontrol.
| Element | Mobil | Tablet | Masaüstü |
|---|---|---|---|
| Sol Sidebar | Gizli | İkon modu | Tam genişlik |
| Sağ Panel | Yok | Yok | Açık |
| Grid Sütun | 2 | 3-4 | 5-6 |
| Player | Mini bar | Kompakt | Tam kontrol |
| Navigasyon | Alt bar | Sol ikon | Sol menü |
Responsive tasarım farklı ekran boyutlarında çalışırken arka planda şu işlemler gerçekleşir:
viewport meta tag ile tarayıcıya mobil optimizasyon yapılacağı bildirilir. width=device-width ile ekran genişliği alınır, initial-scale=1 ile zoom seviyesi belirlenir.
<meta name="viewport" content="width=device-width, initial-scale=1">
sm:(640px), md:(768px), lg:(1024px), xl:(1280px) breakpoint'leri CSS'te media query olarak derlenir. Mobile-first yaklaşımla önce küçük ekran stilleri yazılır, sonra büyük ekranlar override edilir.
grid-cols-1 md:grid-cols-2 lg:grid-cols-4
Layout için CSS Grid (2D) ve Flexbox (1D) kullanılır. auto-fit ve minmax ile kartlar otomatik sığar. gap ile boşluklar sabit kalır, içerik esnektir.
grid-template-columns: repeat(auto-fit, minmax(200px, 1fr))
srcset ve sizes attribute'ları ile farklı çözünürlükler için farklı görseller sunulur. Tarayıcı ekran boyutuna ve DPR'a göre en uygun görseli indirir.
srcset="cover-400.jpg 400w, cover-800.jpg 800w" sizes="(max-width: 600px) 400px, 800px"
Mobilde swipe gesture'ları touchstart, touchmove, touchend eventleri ile algılanır. Player'da swipe ile şarkı değiştirme, sidebar'da swipe ile kapatma gibi özellikler çalışır.
@touchstart.passive="startSwipe" @touchend="endSwipe"
JavaScript'te ekran boyutu değişikliği ResizeObserver ile izlenir. Sidebar otomatik kapanır, layout yeniden hesaplanır. Debounce ile gereksiz hesaplamalar önlenir.
new ResizeObserver(debounce(updateLayout, 100))