2 puan yazan GN⁺ 2025-01-06 | 1 yorum | WhatsApp'ta paylaş
  • CSS Flexbox Playground, Flexbox özelliklerini gerçek zamanlı değiştirerek yerleşim değişikliklerini görmeyi sağlayan bir öğrenme aracıdır
  • Kontroller ayarlandığında flex ayarlarının ekran yerleşimi üzerindeki etkisi anında karşılaştırılabilir
  • Varsayılan örnek, display: flex, flex-direction: row, justify-content: space-around, align-items: flex-start, flex-wrap: nowrap birleşimiyle başlar
  • Ekrandaki 1 ile 5 arasındaki öğeler, ayar değişikliklerine göre hareket ederek yerleşim sonucunu görsel olarak kolayca anlamayı sağlar
  • Oluşturulan CSS kodu kopyalanabildiği için denenen ayarları gerçek koda taşımak kolaydır

Gerçek zamanlı Flexbox deneme aracı

  • CSS Flexbox Playground, Flexbox özelliklerini öğrenmek ve denemek için etkileşimli bir araçtır
  • Kontroller ayarlandığında yerleşim değişiklikleri gerçek zamanlı olarak yansıtılır
  • Deneme sonucu oluşturulan CSS kodu kopyalanabilir

Varsayılan örnek ayarları

  • Örnek .container ayarı aşağıdaki CSS'i kullanır
.container {
  display: flex;
  flex-direction: row;
  justify-content: space-around;
  align-items: flex-start;
  flex-wrap: nowrap;
}
  • Ekranda 1, 2, 3, 4, 5 öğeleri gösterilir ve Flexbox yerleşim sonucunu görmenizi sağlar

1 yorum

 
GN⁺ 2025-01-06
Hacker News yorumları
  • Flexbox’ın kendisi basit ve mantıklı, ama özellik ve değer adları komite usulü belirlenmiş gibi olduğundan sezgisel değil
    justify-content ile align-items hangisiydi diye hatırlamaya çalışırken sonunda pes edip, çalışana kadar şunu bunu değiştirmeye başlıyorsunuz

    • Her seferinde CSS-Tricks Flexbox kılavuzuna https://css-tricks.com/snippets/css/a-guide-to-flexbox/ bakıyorum
      Grid için de benzer bir kılavuz var ve o da çok iyi
    • Flexbox’ta kutu içindeki kutular için; içeriğin kutuyu mu dolduracağı, yoksa kutunun içeriği mi saracağı konusunda gereken ayarları ezberlemek gerçekten zor
      Özellikle SPA’lerde kutuların ekranı doldurması ama taşmaması gerektiğinde önemli. Sonunda oraya buraya min-width: 0 gibi hiç sezgisel olmayan ayarlar koyup birkaç şeyi daha kurcalayınca bir şekilde oluyor
      Tüm bunları kapsayacak birkaç CSS sınıfı yapılabilir gibi geliyor, ama henüz her duruma uyan bir çözüm bulamadım
    • Chrome CSS denetçisinde display: flex kuralının yanındaki ikona basınca çeşitli Flexbox özellikleri ikonlarla görselleştiriliyor ve tıklayarak doğrudan ayarlanabiliyor
      Fiilen her sayfa bir deneme alanına dönüşüyor
    • Tailwind’in bunu daha da kafa karıştırıcı hale getirmesi ilginç
      justify-content: center için justify-center, align-items: center için items-center; neden böyle yaptıklarını anlamıyorum
    • justify-contente main-axis, align-itemsa ise cross-axis denmeliydi
      Bunu anlayınca Flexbox’ın tamamı kolaylaşıyor
  • Zaten çokça bahsedildi ama Flexbox Froggy https://flexboxfroggy.com/ öneregeldim ve başkaları da hızlıca öğrendi
    CSS Grid öğrenmek için https://cssgridgarden.com/ da iyi

    • cssgridgarden’daki oyunlaştırma hoşuma gidiyor
      Daha çok çocuklara yönelik olan https://www.codemonkey.com/ ile benzer
    • OP’ninkine çok benzeyen bir Flexbox favori sitesi olarak https://flexbox.tech/ var
      Bootstrap kodu oluştururken https://build.layoutit.com/ işe yarıyor; CSS Grid için de https://grid.layoutit.com/ var. Ancak ilkinin Bootstrap 5 değil, yalnızca Bootstrap 4’e kadar desteklemesi üzücü
    • flexboxfroggy’yi denedim; kavram iyi, uygulaması da başarılı, ama sözdizimi otomatik tamamlamasının olmaması epey can sıkıyor
  • Josh’un kılavuzunu https://www.joshwcomeau.com/css/interactive-guide-to-flexbox/ şiddetle tavsiye ederim
    flex-basis, otomatik boşluklar, min-width gibi daha ileri seviye tuzakları ve ipuçlarını ayrıntılı ele alıyor

    • Okuduklarım arasında en iyilerden biriydi
      Flexbox ve Tailwind CSS bileşenlerini oldukça iyi bildiğimi sanıyordum, ama bu yazı teorik temele duyduğum açlığı güzelce giderdi
  • Güzel bir playground
    Birkaç yıl önce sonunda benzer bir playground bulunan etkileşimli bir kılavuz hazırlamıştım: https://lik.ai/guides/an-interactive-guide-to-flexbox/
    Ara sıra hafızamı tazelemek için işe yaramıştı

  • 2025’e geldik; 2 yıl ve 3 eğitimden sonra hâlâ Flexbox’ı düzgün kullanamıyorum
    https://flexboxfroggy.com/ da pek yardımcı olmadı

    • Birkaç yıl Flexbox kullandıktan sonra, Flexbox’ın USB-A takmaya benzediğini fark ettim
      justify ve align ilk denemede her zaman ters oluyor
    • Neden hatırlaması bu kadar zor bilmiyorum
      CSS float yerleşimleri dahil her türlü şeyi yıllarca hatırlıyorum, ama Flexbox’ı birkaç ay kullanmayınca %80’ini unutup baştan okumam ve playground’da zaman harcamam gerekiyor
      Sorun, özellik adlarının çok fazla olması ve bunların önemli bir kısmının sezgisel olmaması ya da düpedüz yanlış adlandırılmış gibi hissettirmesi. Bir iki harflik sembol adları verilseydi de herhalde benzer olurdu
    • flexboxfroggy’yi biliyorum, ama okuyup yazmaktansa “oynayarak” öğrenmeyi sevdiğim için o site bana faydalı olmadı
      Umarım bu araç yardımcı olur; eksik bir şey varsa bildirirseniz sevinirim
  • Bu özellik adlarına neden justify-content, align-items denmiş ki?
    main-axis-arrangement ve cross-axis-alignment daha mantıklı olmaz mıydı?

    • Elbette bir açıklaması vardır, ama genel olarak CSS özelliklerinde kafa karıştırıcı ve sezgisel olmayan çok şey var.
      color, text-align, position: absolute ve position: fixed gibi şeyler de öyle; absolute bile teknik olarak hâlâ göreli.
    • Tartışma açısından bakınca bu adlandırma hem Grid hem de Flexbox için uygun ve justify-items, justify-self ile olan teamüllere de uyduğu için tutarlı.
      Yine de align-content ile hâlâ karıştırıyorum.
    • grid-template kısayolunun önce y eksenini yazması da kafa karıştırıcı: y1 / x1 / y2 / x2
      Üstelik 0’dan da başlamadığı için hep unutuyorum.
    • Google’ın LLM ile Encanto 2 spoiler’ı vermeye fazla odaklanıp arama yeteneğinin körelip körelmediğini mi düşünmeliyim, yoksa böyle bir Tailwind eklentisinin hâlâ olmamasına şaşırmakta haklı mıyım bilmiyorum.
      cross-axis-center’ı align-items: center’a, main-axis-between’i justify-content: space-between’e eşleyen türden bir Tailwind alias eklentisi çabucak yapılabilir.
    • “Benim dilimde metni justify etmek yatay yönde olur” şeklindeki hafıza tekniğini kullanınca karıştırmadım.
      Elbette değiştirilebilir, ama Flexbox’ın varsayılan davranışı bu hafıza tekniğiyle kapsanıyor.
  • Flexbox öğrenirken özelliklere bakmak için bir cheat sheet hazırlamıştım.
    Başkalarına da faydalı olabilir: https://darekkay.com/flexbox-cheatsheet/

    • Seçim yapmadan da etkinin hemen görünmesi güzel; MDN bağlantılarının eklenmiş olması da hoşuma gitti.
  • Hızlıca bakılan görsel bir cheat sheet olarak iyi, ama sonuçta projelerin farklı yerlerinde kullana kullana oturduğunu düşünüyorum.
    Söz dizimi genel olarak kendini açıklıyor sayılır, ama row ve column bunun istisnası.
    Flexbox ya da Grid’in çoğunda büyük ölçüde bocaladığım olmadı, ama insanların çok karıştırdığını görüyorum. Kutu modelini anlamak ve Firefox geliştirici araçlarını kullanmak, Flexbox modelini öğrenirken çok yardımcı oluyor. Konteyneri oldukça iyi görselleştiriyor; artık Chrome geliştirici araçları da benzer hale geliyor gibi.
    flexboxfroggy ve cssgridgarden da pratik için faydalıydı. Yine de söz dizimine bakmak için her seferinde CSS-Tricks cheat sheet’ini açıyorum ve row mu column mı olduğunu ilk denemede asla tutturamıyorum.

    • Chrome/Edge’de, Firefox’ta yok gibi görünen güzel bir özellik var.
      Flex modu geçişini hızlıca açıp kapatabiliyorsunuz https://imgur.com/a/17iy1eN
  • Bu araç yalnızca 4 konteyner özelliğini ele aldığı için fazla sınırlı görünüyor.
    Flexbox’ta oldukça önemli olan alt öğe özellikleri tamamen eksik.

  • CSS layout alıştırması yapabileceğimiz ilginç bir görev koleksiyonu olsa güzel olurdu.
    İyi yazılmış çözümler ve açıklamalar, ayrıca “bu kod parçası neden istenen layout’u oluşturmuyor?” gibi debugging görevleri de olsa iyi olur.
    CSS sorunlarını debug etmede ChatGPT oldukça yardımcı oldu. Her zaman doğru değil, ama genelde doğru yönü gösteriyor. Yine de CSS’in gerçekte nasıl çalıştığını daha derinlemesine anlamak istiyorum. Kitaplar ve eğitimler de okudum; sonunda bunun bir kurallar kümesi olduğunu biliyorum, ama doğru uygulamak zor.

    • Ben de benzer şekilde Claude kullanıyorum.
      CSS’i düzelterek istediğim görünüme getirecek şekilde yeniden yazmasını sık sık istiyorum; dokümanlarda aramaktan çok daha hızlı hallediyor.