İçeriğe atla
Tüm yazılar

Frontend / CSS-in-JS

Javascript İçinde CSS Yazmak: Styled Components

Styled Components ile CSS-in-JS yaklaşımının dinamik stilleme, performans ve bakım taraflarını sade bir örnek üzerinden inceliyorum.

CSS-in-JS yaklaşımını temsil eden soyut kod ve arayüz katmanları

Yaklaşım

Neden Styled Components?

Styled Components ile JavaScript içerisinde CSS yazmak, modern web geliştirme yöntemlerinde önemli bir konuma sahip. Bu geliştirme yaklaşımı, özellikle bileşen tabanlı geliştirme süreçlerinde stil ve bileşen mantığını bir arada tutarak daha tutarlı ve yönetilebilir uygulamalar oluşturmanızı sağlar.

Styled Components, CSS-in-JS kütüphanesi olarak stil tanımlarınızı JavaScript dosyaları içinde güvenli bir şekilde saklamanıza ve bileşenlerinizle doğrudan ilişkilendirmenize olanak tanır. Dinamik stillemeler, tema desteği ve props üzerinden stil değişiklikleri gibi özellikleriyle geliştiricilere esnek ve güçlü bir araç sunar. Bu metodoloji, stil çakışmalarını önler ve uygulamanızın farklı cihaz ve ekran boyutlarına uyum sağlamasını kolaylaştırır. Styled Components kullanarak daha okunabilir, modüler ve yeniden kullanılabilir kodlar yazabilir, geliştirme sürecinizi hızlandırabilirsiniz.

Öne çıkanlar

Öne çıkan avantajlar

09 nokta
  1. 01

    Props üzerinden dinamik CSS

    React'ın güçlü özelliklerinden biri olan props üzerinden dinamik CSS tanımlamaları yapabilme olanağı sağlar. Uygulamanızın farklı durumlarına veya kullanıcı etkileşimlerine göre stil değişikliklerini kolaylaştırır.

  2. 02

    Gerektiği kadar CSS

    Yalnızca ekranda render edilen componentler için gerekli CSS kodlarını yükler. Gereksiz CSS yükünün önüne geçerek sayfa yükleme sürelerinin kısalmasına katkıda bulunur.

  3. 03

    Stilde JavaScript fonksiyonları

    CSS tanımlarınız içerisinde JavaScript fonksiyonlarından faydalanabilirsiniz. Bu, stilleri daha dinamik hale getirir ve uygulamanın farklı bölümlerindeki yeniden kullanılabilirliği artırır.

  4. 04

    Kritik CSS'in otomatik eklenmesi

    Bir sayfada hangi bileşenlerin render edildiğini takip eder ve yalnızca bu bileşenlere özgü stilleri dinamik olarak sayfaya enjekte eder. Böylece yalnızca ihtiyaç duyulan CSS yüklenir.

  5. 05

    Sınıf adı çakışmalarının önlenmesi

    Her styled component için benzersiz sınıf adları otomatik olarak oluşturulur. Stiller arasındaki çakışma ya da sınıf adı yazım hataları gibi sorunların önüne geçilir.

  6. 06

    CSS'i temizlemeyi kolaylaştırması

    Her stil doğrudan ilgili bileşene atanır. Bir bileşen projeden kaldırıldığında ona ait stil tanımlamalarını da beraberinde temizlemek kolaylaşır; kod tabanı yönetilebilir kalır.

  7. 07

    Kolay dinamik stilleme

    Kompleks ve çok sayıda sınıf yönetimiyle uğraşmak yerine, props üzerinden dinamik stil değişiklikleri yaparak farklı durumlara kolayca uyum sağlayabilirsiniz.

  8. 08

    Kolay bakım

    Bir bileşenin stilini değiştirmek için doğru CSS dosyasını aramak gerekmez. Stil, bileşenin kendisiyle aynı yerde saklandığı için bakım ve güncellemeler daha basit ilerler.

  9. 09

    Tarayıcı ön eklerinin otomatik eklenmesi

    CSS kodu otomatik olarak işlenir ve gerekli tarayıcı ön ekleri eklenir. Bu, stil tanımlarının çeşitli tarayıcılarda sorunsuz çalışmasına yardımcı olur.

01

Temiz bir React projesiyle başlamak

styled-comp adında temiz bir proje oluşturuyorum. Projeyi oluşturduktan sonra işime yaramayacak kod ve dosyaları kaldırıyor, terminalden proje dizinine giriş yapıp npm install komutunu yazıyorum.

$ npx create-react-app styled-comp
$ npm install
02

Styled Components'ı eklemek

Yeni oluşturduğumuz React projesinde Styled Components kullanabilmek için paketi projeye kurmamız gerekiyor.

$ npm install styled-components
03

Örnek bileşen yapısı

Örnek bir uygulama için projemin src/components konumunda Title adında bir component oluşturuyorum. Title klasörü içerisinde bir adet index.js; stilleri ayrı bir JavaScript dosyasında tutmak için de style.js dosyasını oluşturuyorum.

04

Title componentini bağlamak

Her şey hazır olduğunda Title componentimizin index.js kodlarını yazmaya başlayabiliriz. Burada Title adında bir component ve bu componentin içinde text adında bir prop oluşturuyoruz. Bu text, TitleWrapper ile stilize edilmiş şekilde gösterilir.

Ardından components/Title/style.js dosyasında TitleWrapper componentinin stillerini tanımlıyoruz. Styled Components kullanarak bir h1 elementi için stil tanımladığımızda, bu stil Title componentimizin görünümünü belirler.

05

Uygulama içinde görmek

Son olarak uygulamamızda yaptığımız örneği görebilmek için app.js dosyamızı düzenliyoruz. Çok detaya girmeden Styled Components kullanımını en basit ve anlaşılır haliyle bu şekilde göstermiş oldum.

Yazılara destek ol

Yazı faydalı olduysa bir kahve ısmarlayabilirsin.

Yazılarımı beğeniyorsanız ve daha fazlası için destek olmak isterseniz, buradan bana kahve ısmarlayabilirsiniz. Teşekkürler.

Kahve ısmarla ↗