CodeBlanks Logo Icon CodeBlanks

Tema kullanımı

ThemeProvider ile tema değerlerini tüm bileşenlere aktarmayı öğrenirsin.

Tema kullanımı

Tema, renk ve boyutları tek bir nesnede toplayıp uygulamaya sunar. ThemeProvider ile sararsın; alt bileşenler props.theme üzerinden değerleri okur.

Örnek: tema {primary: "blue"}; şablonda color: ${props => props.theme.primary}. Tema değişince her yer güncellenir.

Karanlık/aydınlık mod bu yapıyla kolayca yapılır. Tema nesnesini değiştirip ThemeProvider'a vermen yeter; tüm alt bileşenler yeni renkleri hemen alır. Bu, tutarlı bir tasarım dilini bütün uygulamada korur.

ThemeProvider

ThemeProvider'ı uygulamanın en üstüne sararsın: <ThemeProvider theme={myTheme}><App /></ThemeProvider>. İçerideki tüm stilli bileşenler temayı görür.

Tema nesnesini ayrı bir dosyada tutmak temizliktir; renkleri tek yerden değiştirirsin.

Bu yapı, tutarlı tasarım sistemlerinin temelidir. Bir renk ya da boyutu değiştirmek için yalnızca tema nesnesine dokunman yeter; tüm bileşenler anında güncellenir.

Uygulama Temalı düğme

Aşağıdaki iskeleti tamamla. ThemedButton adında stilli bileşen oluştur; styled.button\`color: ${props => props.theme.primary};\` ile tanımla. Dışa aktar.

Başlangıç kodu

App.jsx
// ThemedButton bileşenini buraya tanımla

Örnek çözüm

App.jsx
const ThemedButton = styled.button`color: ${props => props.theme.primary};`;

export default ThemedButton;

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Tema değerine şablonda nasıl erişilir?

App.jsx
ThemeProvider provides props.theme.
  • props.theme.x Doğru cevap
  • this.theme
  • theme.x
  • window.theme

Açıklama: props.theme üzerinden okunur.

2 Tema kullanımı: eksik parçayı tamamla

Soru
color: ${props => props.theme.____};
Cevap
color: ${props => props.theme.primary};

Açıklama: theme.primary ile ana rengi aldın.

3 Tema kullanımı: kavramları eşleştir

Kavram Anlamı
ThemeProvider Tema sağlayıcı
props.theme Tema erişimi
theme={x} Tema geçme
{primary: "blue"} Tema nesnesi

Başlangıç bölümündeki tüm dersler