Yaklaşık 15 yıl önce seyahat acenteleri, havaalanı çalışanları ve havayolu şirketleri için uygulamalar geliştirdiğimiz bir şirkette çalışıyordum. Ayrıca kullanıcı arayüzü bileşenleri ve tek sayfalı uygulama yetenekleri için kendi şirket içi çerçevemizi de oluşturduk. Her şey için bileşenlerimiz vardı: alanlar, düğmeler, sekmeler, aralıklar, veri tabloları, menüler, tarih seçiciler, seçimler ve çoklu seçimler. Hatta bir div bileşenimiz bile vardı. Bu arada div bileşenimiz harikaydı, tüm tarayıcılarda köşeleri yuvarlatmamıza olanak sağladı, ister inanın ister inanmayın, o zamanlar bunu yapmak kolay bir şey değildi.

Çalışmalarımız tarihimizde JS, Ajax ve dinamik HTML'nin bizi geleceğe taşıyan bir devrim olarak görüldüğü bir noktada gerçekleşti. Aniden, bir sayfayı dinamik olarak güncelleyebildik, bir sunucudan veri alabildik ve diğer sayfalara gitmekten kurtulduk; bu da yavaş olarak görüldü ve iki sayfa arasında ekranda büyük beyaz bir dikdörtgenin yanıp sönmesiyle sonuçlandı. Jeff Atwood (StackOverflow'un kurucusu) tarafından popüler hale getirilen bir ifade vardı: “JavaScript'te yazılabilen herhangi bir uygulama eninde sonunda JavaScript'te de yazılacaktır.” - Jeff Atwood

O zamanlar bize bu, aslında gidip bu uygulamaları yaratma cesareti gibi geldi. Her şeyi JS ile yapmak genel bir onay gibi geldi. Yani her şeyi JS ile yaptık ve işleri yapmanın diğer yollarını araştırmaya gerçekten zaman ayırmadık. HTML ve CSS'nin neler yapabileceğini doğru bir şekilde öğrenme dürtüsünü gerçekten hissetmedik. Web'i bütünüyle gelişen bir uygulama platformu olarak algılamadık. Özellikle tarayıcı desteği söz konusu olduğunda bunu çoğunlukla çözmemiz gereken bir şey olarak gördük. İşleri halletmek için daha fazla JS kullanabiliriz. Web'in nasıl çalıştığı ve platformda nelerin mevcut olduğu hakkında daha fazla bilgi edinmek için zaman ayırmanın bana faydası olur mu? Elbette, muhtemelen gerçekten ihtiyaç duyulmayan bir sürü kodu tıraş edebilirdim. Ama o zamanlar bu kadar olmayabilir. Görüyorsunuz, o zamanlar tarayıcı farklılıkları oldukça önemliydi. Bu, Internet Explorer'ın hâlâ baskın tarayıcı olduğu, Firefox'un ise hemen ikinci sırada olduğu, ancak Chrome'un hızla popülerlik kazanması nedeniyle pazar payını kaybetmeye başladığı bir dönemdi. Her ne kadar Chrome ve Firefox web standartları konusunda oldukça iyi anlaşsalar da uygulamalarımızın çalıştığı ortamlar IE6'yı uzun süre desteklemek zorunda olduğumuz anlamına geliyordu. IE8'i desteklememize izin verildiğinde bile tarayıcılar arasındaki birçok farklılıkla uğraşmak zorunda kaldık. Sadece bu değil, aynı zamanda zamanın web'i platformda yerleşik olarak bu kadar çok yeteneğe sahip değildi.

Bugün hızla ilerleyin. İşler büyük ölçüde değişti. Bu yeteneklere her zamankinden daha fazla sahip olmamızın yanı sıra bunların kullanılabilir olma oranı da arttı. O halde soruyu tekrar sorayım: Web'in nasıl çalıştığı ve platformda nelerin mevcut olduğu hakkında daha fazla bilgi edinmek için zaman ayırmanın bugün size faydası olur mu? Kesinlikle evet. Bugün web platformunu anlamayı ve kullanmayı öğrenmek, sizi diğer geliştiricilere göre büyük bir avantaja sokar. Performans, erişilebilirlik, yanıt verme yeteneği ve bunların tümü üzerinde çalışıyorsanız veya yalnızca kullanıcı arayüzü özelliklerini sunuyorsanız, bunu sorumlu bir mühendis olarak yapmak istiyorsanız, kullanabileceğiniz araçları bilmek, hedeflerinize daha hızlı ve daha iyi ulaşmanıza yardımcı olur. Artık Bir Kütüphaneye İhtiyacınız Olmayabilecek Bazı Şeyler Bugün tarayıcıların hangileri desteklediğini bildiğimizde soru şu: Neyi bırakabiliriz? 2025'te köşeleri yuvarlatmak için bir div bileşenine ihtiyacımız var mı? Tabii ki yapmıyoruz. Border-radius özelliği, şu anda kullanılan tüm tarayıcılar tarafından bu noktada 15 yıldan fazla bir süredir desteklenmektedir. Daha şık köşeler için köşe şekli de yakında geliyor. Şimdi tüm büyük tarayıcılarda bulunan ve kod tabanınızdaki mevcut bağımlılıkları değiştirmek için kullanabileceğiniz nispeten yeni özelliklere bir göz atalım. Önemli olan tüm sevdiğiniz kitaplıklarınızı hemen bir kenara atıp kod tabanınızı yeniden yazmak değil. Diğer her şeye gelince, öncelikle tarayıcı desteğini dikkate almanız ve projenize özel diğer faktörlere göre karar vermeniz gerekir. Aşağıdaki özellikler üç ana tarayıcı motorunda (Chromium, WebKit ve Gecko) uygulanmıştır, ancak bunları hemen kullanmanızı engelleyen farklı tarayıcı desteği gereksinimleriniz olabilir. Ancak şu an bu özellikleri öğrenmek ve belki bir noktada bunları kullanmayı planlamak için hala iyi bir zaman. Popover'lar ve Diyaloglar Popover API,

HTML öğesi ve ::backdrop sözde öğesi, açılır pencere bağımlılıklarından kurtulmanıza yardımcı olabilir.Araç ipucu ve Floating UI, Tippy.js, Tether veya React Araç İpucu gibi iletişim kitaplıkları. Erişilebilirliği ve odak yönetimini sizin için hazır olarak yönetirler, CSS kullanılarak son derece özelleştirilebilirler ve kolaylıkla canlandırılabilirler. Akordeonlar
öğesi, birbirini dışlayan öğeler için name niteliği ve ::details-content sözde öğesi, Bootstrap Accordion veya React Accordion bileşeni gibi akordeon bileşenlerine olan ihtiyacı ortadan kaldırır. Buradaki platformu kullanmak, HTML/CSS bilen kişilerin, önce belirli bir kitaplığı kullanmayı öğrenmelerine gerek kalmadan kodunuzu anlamalarının daha kolay olacağı anlamına gelir. Bu aynı zamanda kitaplıktaki değişikliklere veya kitaplığın durdurulmasına karşı bağışıklığınız olduğu anlamına da gelir. Ve elbette bu, indirilecek ve çalıştırılacak daha az kod anlamına gelir. Birbirini dışlayan ayrıntı öğelerinin açılması, kapatılması veya canlandırılması için JS'ye ihtiyaç yoktur. CSS Söz Dizimi Daha organize bir CSS kod tabanı için kademeli katmanlar, daha kompakt CSS için CSS iç içe yerleştirme, yeni renk işlevleri, göreli renkler ve renk karışımı, abs(),sign(), pow() ve diğerleri gibi yeni Matematik işlevleri, CSS ön işlemcilerine, Bootstrap ve Tailwind gibi yardımcı program kitaplıklarına ve hatta JS çalışma zamanı CSS kitaplıklarına olan bağımlılıkların azaltılmasına yardımcı olur. Uzun zamandır en çok talep edilen özelliklerden biri olan oyun değiştirici :has(), daha karmaşık JS tabanlı çözümlere olan ihtiyacı ortadan kaldırıyor. JS Yardımcı Programları FindLast() veya at() gibi modern Array yöntemlerinin yanı sıra fark(), kesişim(), union() ve diğerleri gibi Set yöntemleri Lodash gibi kitaplıklara olan bağımlılıkları azaltabilir. Konteyner Sorguları Kapsayıcı sorguları, UI bileşenlerinin görünüm boyutu dışındaki şeylere yanıt vermesini sağlar ve bu nedenle onları farklı bağlamlarda daha yeniden kullanılabilir hale getirir. Bunun için artık JS ağırlıklı bir UI kitaplığı kullanmanıza ve çoklu doldurma kullanmanıza da gerek yok. Düzen Izgara, alt ızgara, esnek kutu veya çoklu sütun uzun zamandır ortalıkta dolaşıyor, ancak CSS Durumu anketlerinin sonuçlarına bakıldığında, geliştiricilerin yeni şeyleri benimseme konusunda çok temkinli olma eğiliminde oldukları ve bunu yapmak için çok uzun bir süre bekledikleri açıktır. Bu özellikler uzun süredir Baseline'dadır ve bunları Bootstrap'in ızgara sistemi, Foundation Framework'ün flexbox yardımcı programları, Bulma sabit ızgarası, Materialise ızgarası veya Tailwind sütunları gibi şeylere bağımlılıklardan kurtulmak için kullanabilirsiniz. Çerçevenizi bırakmanız gerektiğini söylemiyorum. Ekibinizin bunu benimsemesinin bir nedeni var ve onu kaldırmak büyük bir proje olabilir. Ancak web platformunun üçüncü taraf paketleyici olmadan neler sunabileceğine bakmak birçok faydayı da beraberinde getiriyor. Yakın Gelecekte Artık İhtiyacınız Olmayabilecek Şeyler Şimdi yakın gelecekte kütüphaneye ihtiyaç duymayacağınız bazı şeylere hızlıca göz atalım. Yani aşağıdakiler kitlesel olarak benimsenmeye tam olarak hazır değil, ancak bunların farkında olmak ve daha sonra potansiyel kullanım için planlama yapmak faydalı olabilir. Çapa Konumlandırma CSS bağlantı konumlandırması, açılır pencerelerin ve araç ipuçlarının diğer öğelere göre konumlandırılmasını yönetir ve sayfayı taşırken, kaydırırken veya yeniden boyutlandırırken bile bunları görünümde tutmaya özen gösterir. Bu, daha önce bahsedilen Popover API'sinin harika bir tamamlayıcısıdır ve daha yoğun performansa sahip JS çözümlerinden uzaklaşmayı daha da kolaylaştıracaktır. Gezinme API'si Gezinme API'si, tek sayfalı uygulamalarda gezinmeyi yönetmek için kullanılabilir ve React Router, Next.js yönlendirme veya Angular yönlendirme görevlerine mükemmel bir tamamlayıcı, hatta alternatif olabilir. Geçiş API'sini Görüntüle Geçişleri Görüntüle API'si bir sayfanın farklı durumları arasında animasyon oluşturabilir. Tek sayfalık bir uygulamada bu, durumlar arasında yumuşak geçişleri çok kolaylaştırır ve Anime.js, GSAP veya Motion.dev gibi animasyon kitaplıklarından kurtulmanıza yardımcı olabilir. Daha da iyisi, API çok sayfalı uygulamalarla da kullanılabilir. Daha önce, 15 yıl önce çalıştığım şirkette tek sayfalı uygulamalar geliştirmemizin nedeninin, gezinirken sayfaların yeniden yüklenmesi sırasında oluşan beyaz parlamayı önlemek olduğunu söylediğimi hatırlıyor musunuz? O zamanlar bu API mevcut olsaydı, tek sayfalık bir çerçeve olmadan ve uygulamanın tamamının başlangıçta çok büyük bir indirme işlemine gerek kalmadan güzel sayfa geçiş efektleri elde edebilirdik. Kaydırma Odaklı Animasyonlar Kaydırma odaklı animasyonlar, zaman içinde değil, kullanıcının kaydırma konumunda çalışır ve bu da onları hikaye anlatımı ve ürün turları için harika bir çözüm haline getirir. Bazı insanlar bunu biraz abarttı ama iyi kullanıldığında çok etkili bir tasarım aracı olabilir ve ScrollReveal, GSAP Scroll veya gibi kitaplıklardan kurtulmanıza yardımcı olabilir.WOW.js. Özelleştirilebilir Seçimler Özelleştirilebilir seçim, erişilebilirlik ve performans avantajları sağlarken görünümünü ve içeriğini tamamen özelleştirmenize olanak tanıyan normal bir

No spam. Join 138,000+ creators. Unsubscribe anytime.

Create Your Free Bio Page

Join 138,000+ creators on Seemless.

Get Started Free