Hoş Geldiniz! KablosuzForum.net

Tüm özelliklerimize erişmek için şimdi bize katılın. Kaydolup giriş yaptıktan sonra konu oluşturabilir, mevcut konulara yanıt gönderebilir, diğer üyelerinize itibar kazandırabilir, kendi özel mesajlaşma programınızı edinebilir ve çok daha fazlasını yapabileceksiniz. Aynı zamanda hızlı ve tamamen ücretsizdir, peki daha ne bekliyorsunuz?

Soru Sor

Merak ettiğiniz, kafanıza takılan sorular hakkında konu açın, diğer üyelerimiz ve moderatörlerimiz cevaplasın.

Ticaret

Ticari konular açıp güven oluşturmak ve daha fazla satış rakamlarına ulaşmak için hesabını doğrula!

Bize ulaşın

Yönetim kadrosuyla iletişime geçin

Üyeliğini Yükselt!

Üyeliğinizi yükselterek birbirinden ayrıcalıklı özelliklere sahip olun!

CSS Houdini ile Web Tasarımında Özgürlük: Dinamik Parçacıklarla Süper Hızı Yakala

Resim 1 Resim 2

ibbafatima

Fatıma Ibba
KF Kullanıcı
Katılım
17 Eki 2024
Mesajlar
2
Tepkime puanı
2
Puanları
1

CSS Houdini ile Web Tasarımında Özgürlük: Dinamik Parçacıklarla Süper Hızı Yakala

Merhaba kod tutkunları! Bugün size “Houdini” adı verilen bir dizi API ile tanıştıracağım. Sadece bir kütüphane değil, tarayıcıların CSS motorunu doğrudan kontrol etmenizi sağlayan *korkutucu* bir yetenek. Kısa bir özet:

- **Styling Houdini (Paint API)**: Görüntülemeyi kendi üstcüm amacıyla düzenlemek için kendi başına bir paint tasarlayabilirsiniz.
- **Layout Houdini (Layout API)**: Satır, sütun, gözden kaçırılan “fr” miktarın hem davranışlarını hem de kurallarını tanımlayıp kontrol edebilirsiniz.
- **Animation Houdini**: CSS keyframe’leri gerçek zamanlı olarak yeniden şekillendirmenize izin veriyor.


**Neden Öyle Önemli?**

*Kanal yayısına ve raporlamaya* bağımlı olmasınız artık. Örneğin büyük bir tablo grafikinde

Kod:
const canvas = document.createElement('canvas');
canvas.width = 800; canvas.height = 600;
context = canvas.getContext('2d');
// Renkli geleneksel elle çizim
for(let i=0;i<500;i++){
   const x = Math.random()*800;
   const y = Math.random()*600;
   const size = Math.random()*3+1;
   context.fillStyle = `hsl(${Math.random()*360},70%,40%)`;
   context.arc(x,y,size,0,Math.PI*2);
   context.fill();
}

[ENDCODE]

Sadece JS ile bu piksel tarazlığı şekllendirir. Hâlâ, CSS Houdini ile *paint* API’ı kullanarak aynı görseli CSS’e taşıyarak render zincirini basitleştirir ve cache'e sadık kalır. Yani performans: 3,5 ms -> 1,2 ms. Aksiyon! 


**Gerçek Hayat Örneği: “Parallax 3D Gölge”**

Aşağıdaki kod parçası, gölge oyunlarını tarayıcı motoruna atar ve bir *parallax animasyonu* oluşturur. 

[CODE]
// Önce: MyParallax gölgelerinin paint API’si
CSS.registerPaint('parallax-shadow', class {
  static get inputProperties() {return ['--scroll'];}
  paint(ctx, geom, props){
     const scroll = parseFloat(props.get('--scroll'));
     ctx.fillStyle = `rgba(0,0,0,${scroll/100})`;
     ctx.fillRect(0,0,geom.width, geom.height);
  }
});

[ENDCODE]

Ardından HTML’daki bir element’e 

[CODE] 
<div style="background: paint(parallax-shadow); width:200px; height:200px;"></div>
[ENDCODE]

Bu tek satır, öğeyi tarayıcı çiziminin bir parçası yapar ve tüm performans düşüşünü ortadan kaldırır!


**Çevrimdışı Çalışma**

Houdini API’ları, tarayıcı güncellemelerinde doğal birer yatırım gibi. Ancak şunlara dikkat edin:

1. **Polyfill**: <https://www.jsdelivr.com/package/npm/houdini-consortium/houdini-1> gibi bir polyfill ekleyin.
2. **CSS tekrar yazımı**: Aynı görselliği hem JS hem de CSS’de tutmanız zarardır.
3. **Bakım**: Gelecek sürümlerde API’ların şekli değişebilir.


Siz de hangi “tukucu hack” ile tasarımlarınıza hayat vurmaya hazırsınız? Yorumlarda deneyimlerinizi paylaşın!

 
Responsive GIF Layout

shape1
shape2
shape3
shape4
shape5
shape6
Geri
Üst